:root{--bg: #f0f3f8;--bg2: #ffffff;--bg3: #e8edf5;--bg4: #dde4f0;--border: #d0daea;--border2: #bccadf;--text: #0d1829;--text2: #4a6080;--text3: #8fa3be;--accent: #1a3a8f;--accent2: #1e44a8;--accent-dim: rgba(26,58,143,.08);--accent-glow: rgba(26,58,143,.15);--green: #16a34a;--green-dim: rgba(22,163,74,.1);--red: #dc2626;--red-dim: rgba(220,38,38,.1);--yellow: #d97706;--yellow-dim: rgba(217,119,6,.1);--blue: #2563eb;--purple: #7c3aed;--teal: #0d9488;--orange: #ea580c;--font: "Syne", sans-serif;--body: "DM Sans", sans-serif;--mono: "DM Mono", monospace;--radius: 10px;--radius-lg: 16px;--shadow: 0 2px 12px rgba(13,24,41,.08);--shadow-lg: 0 8px 32px rgba(13,24,41,.12);--sidebar-w: 236px;--topbar-h: 58px;--mobile-nav-h: 62px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{font-family:var(--body);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text3)}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.fade-up{animation:fadeIn .22s ease forwards}.fade-in{animation:fadeIn .18s ease forwards}.spinner{width:18px;height:18px;border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .65s linear infinite;display:inline-block;flex-shrink:0}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;z-index:50;overflow-y:auto;transition:transform .28s cubic-bezier(.4,0,.2,1)}.sidebar-logo{padding:18px 16px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.logo-mark{width:32px;height:32px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-mark svg{width:18px;height:18px}.logo-text{font-family:var(--font);font-weight:800;font-size:17px;color:var(--text);letter-spacing:-.3px}.logo-sub{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.08em;text-transform:uppercase}.nav{flex:1;padding:8px 0}.nav-section{font-family:var(--mono);font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.12em;padding:12px 16px 4px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;font-size:13.5px;font-weight:500;color:var(--text2);border-left:2px solid transparent;transition:all .15s;-webkit-user-select:none;user-select:none;position:relative}.nav-item:hover{color:var(--text);background:var(--bg3)}.nav-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--accent-dim)}.nav-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0}.nav-badge{margin-left:auto;background:var(--accent);color:#fff;font-family:var(--mono);font-size:9px;padding:1px 6px;border-radius:10px}.sidebar-footer{padding:12px 16px;border-top:1px solid var(--border)}.sidebar-user{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius);cursor:pointer;transition:background .15s}.sidebar-user:hover{background:var(--bg3)}.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-dim);border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-family:var(--font);font-size:13px;font-weight:700;color:var(--accent);flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-family:var(--mono);font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:49;animation:fadeIn .2s ease}.sidebar-overlay.open{display:block}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{height:var(--topbar-h);background:var(--bg2);border-bottom:1px solid var(--border);padding:0 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:40}.topbar-left{display:flex;align-items:center;gap:12px}.menu-btn{display:none;background:none;border:none;color:var(--text);font-size:20px;cursor:pointer;padding:4px;border-radius:8px;transition:background .15s}.menu-btn:hover{background:var(--bg3)}.page-title{font-family:var(--font);font-size:18px;font-weight:700;color:var(--text)}.page-subtitle{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.08em}.topbar-right{display:flex;align-items:center;gap:8px}.content-wrap{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.content{padding:20px;max-width:1400px}.bottom-nav{display:none;height:var(--mobile-nav-h);background:var(--bg2);border-top:1px solid var(--border);flex-shrink:0;overflow-x:auto;scrollbar-width:none}.bottom-nav::-webkit-scrollbar{display:none}.bottom-nav-inner{display:flex;align-items:center;height:100%;padding:0 4px;min-width:max-content}.bnav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px 12px;cursor:pointer;min-width:60px;border-radius:var(--radius);color:var(--text3);transition:all .15s;font-size:10.5px;gap:3px;font-weight:500}.bnav-item.active{color:var(--accent);background:var(--accent-dim)}.bnav-icon{font-size:19px;line-height:1}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius);border:none;cursor:pointer;font-family:var(--body);font-size:13.5px;font-weight:500;transition:all .15s;white-space:nowrap;line-height:1.3}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent2)}.btn-secondary{background:var(--bg3);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg4)}.btn-outline{background:transparent;color:var(--accent);border:1px solid var(--accent)}.btn-outline:hover:not(:disabled){background:var(--accent-dim)}.btn-ghost{background:transparent;color:var(--text2)}.btn-ghost:hover:not(:disabled){background:var(--bg3);color:var(--text)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid rgba(220,38,38,.2)}.btn-danger:hover:not(:disabled){background:#dc262633}.btn-success{background:var(--green-dim);color:var(--green);border:1px solid rgba(22,163,74,.2)}.btn-sm{padding:5px 10px;font-size:12px}.btn-lg{padding:11px 20px;font-size:15px}.btn-icon{padding:7px;border-radius:8px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:16px}.card-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font-family:var(--font);font-size:15px;font-weight:700}.card-body{padding:16px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;position:relative;overflow:hidden;transition:box-shadow .15s}.stat-card:hover{box-shadow:var(--shadow)}.stat-label{font-family:var(--mono);font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.stat-value{font-family:var(--font);font-size:26px;font-weight:800;color:var(--text);line-height:1}.stat-sub{font-size:11px;color:var(--text3);margin-top:4px}.stat-accent{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--accent)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-family:var(--mono);font-size:10px;font-weight:500;white-space:nowrap}.badge-green{background:var(--green-dim);color:var(--green)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-yellow{background:var(--yellow-dim);color:var(--yellow)}.badge-blue{background:#2563eb1a;color:var(--blue)}.badge-purple{background:#7c3aed1a;color:var(--purple)}.badge-gray{background:var(--bg3);color:var(--text2)}.badge-accent{background:var(--accent-dim);color:var(--accent)}.table-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:16px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse}th{font-family:var(--mono);font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}td{padding:11px 14px;font-size:13.5px;color:var(--text);border-bottom:1px solid var(--border);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg3)}.td-mono{font-family:var(--mono);font-size:12px;color:var(--text2)}.td-primary{font-weight:600;color:var(--text)}.td-actions{display:flex;gap:6px;align-items:center}.field{margin-bottom:14px}.field label{display:block;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--text2);margin-bottom:6px}.input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:9px 12px;font-family:var(--body);font-size:14px;border-radius:var(--radius);outline:none;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder{color:var(--text3)}select.input{cursor:pointer}textarea.input{resize:vertical;min-height:80px}.search-wrap{position:relative;margin-bottom:14px}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--text3);pointer-events:none}.search-input{padding-left:34px!important}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d182980;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;animation:fadeIn .18s ease}.modal{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:fadeUp .2s ease;flex-shrink:0}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-title{font-family:var(--font);font-size:16px;font-weight:700}.modal-close{background:none;border:none;cursor:pointer;color:var(--text3);font-size:20px;padding:2px;border-radius:6px;transition:all .15s;line-height:1}.modal-close:hover{background:var(--bg3);color:var(--text)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.alert{padding:10px 14px;border-radius:var(--radius);font-size:13px;margin-bottom:14px;display:flex;align-items:center;gap:10px;animation:fadeUp .2s ease}.alert-error{background:var(--red-dim);color:var(--red);border:1px solid rgba(220,38,38,.2)}.alert-success{background:var(--green-dim);color:var(--green);border:1px solid rgba(22,163,74,.2)}.alert-info{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-glow)}.empty-state{padding:48px 24px;text-align:center;color:var(--text3)}.empty-icon{font-size:36px;margin-bottom:12px;opacity:.5}.empty-title{font-family:var(--font);font-size:15px;font-weight:700;color:var(--text2);margin-bottom:4px}.empty-sub{font-size:13px}.detail-table{width:100%;border-collapse:collapse}.detail-table tr{border-bottom:1px solid var(--border)}.detail-table tr:last-child{border-bottom:none}.detail-table td{padding:9px 0;font-size:13.5px}.detail-table td:first-child{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);width:40%;padding-right:12px}.confirm-msg{font-size:14px;line-height:1.6;color:var(--text);margin-bottom:4px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-title{font-family:var(--font);font-size:13px;font-weight:700;color:var(--text)}.section-count{font-family:var(--mono);font-size:10px;color:var(--text3)}.skeleton{background:linear-gradient(90deg,var(--bg3) 25%,var(--bg4) 50%,var(--bg3) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.plan-badge{font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:4px}.plan-probna{background:var(--yellow-dim);color:var(--yellow)}.plan-osnovna{background:#2563eb1a;color:var(--blue)}.plan-pro{background:#7c3aed1a;color:var(--purple)}.plan-enterprise{background:var(--accent-dim);color:var(--accent)}@media (max-width: 768px){.sidebar{position:fixed;top:0;left:0;height:100%;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.menu-btn{display:flex!important}.bottom-nav{display:flex}.sidebar-desktop-only{display:none}.content{padding:14px}.topbar{padding:0 14px}.stats-grid{grid-template-columns:repeat(2,1fr)}}.cal-day-view{display:grid;overflow:hidden}.cal-time-col{width:52px;flex-shrink:0;border-right:1px solid var(--border)}.cal-time-slot{height:60px;display:flex;align-items:flex-start;padding:2px 8px 0;font-family:var(--mono);font-size:10px;color:var(--text3);border-bottom:1px solid var(--border)}.cal-slot{height:60px;border-bottom:1px solid var(--border);position:relative;cursor:pointer;transition:background .1s}.cal-slot:hover{background:var(--accent-dim)}.cal-event{position:absolute;left:3px;right:3px;border-radius:6px;padding:4px 8px;font-size:11.5px;font-weight:500;cursor:pointer;overflow:hidden;border-left:3px solid;transition:opacity .15s;z-index:1}.cal-event:hover{opacity:.85}.cal-event-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-time{font-family:var(--mono);font-size:9px;opacity:.8}.status-rezerviran{background:#2563eb1f;color:var(--blue);border-color:var(--blue)}.status-vo_tek{background:#d977061f;color:var(--yellow);border-color:var(--yellow)}.status-zavrsen{background:#16a34a1f;color:var(--green);border-color:var(--green)}.status-otkazan{background:#dc26261f;color:var(--red);border-color:var(--red)}.status-ne_se_pojavi{background:var(--bg3);color:var(--text3);border-color:var(--text3)}
