:root{--bg:#f3f8f8;--surface:#ffffff;--surface-2:#e9f2f1;--border:#d6e3e2;--text:#062b51;--text-muted:#617595;--teal:#08afc5;--teal-dark:#17d1c8;--navy:#062b51;--blue:#073d9a;--danger:#ab4038;--radius:10px;--dent-grad-start:#17d1c8;--dent-grad-end:#08afc5}@media (prefers-color-scheme:dark){:root{--bg:#0b1b27;--surface:#102838;--surface-2:#163449;--border:#204257;--text:#eaf4f4;--text-muted:#9ab2bc;--teal:#2ed9c7;--teal-dark:#4fe0d1;--navy:#eaf4f4;--blue:#6ba6f5;--dent-grad-start:#2ed9c7;--dent-grad-end:#4fe0d1;--danger:#e08079}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,system-ui,sans-serif}a{color:inherit}img{max-width:100%;height:auto}.app-shell{display:grid;grid-template-columns:240px 1fr;height:100vh}.sidebar{border-right:1px solid var(--border);padding:24px 16px;display:flex;flex-direction:column;gap:24px;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:1.1rem}.brand img{max-width:100%;height:auto}.logo{display:flex;align-items:center;gap:8px}.brand-text{color:var(--navy)}.brand .dent{background:linear-gradient(135deg,var(--dent-grad-start),var(--dent-grad-end));background-clip:text;-webkit-background-clip:text;color:transparent}.nav-links{display:flex;flex-direction:column;gap:2px}.nav-links a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--text-muted);font-size:.92rem}.nav-icon{flex:none;opacity:.75}.nav-links a.active .nav-icon,.nav-links a:hover .nav-icon{opacity:1}.nav-links a.active,.nav-links a:hover{background:var(--surface-2);color:var(--text)}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;font-size:.8rem;color:var(--text-muted)}.sidebar-footer .user-name{color:var(--text);font-weight:600}.sidebar-footer .user-role{font-size:.72rem}.sidebar-footer button{align-self:center;padding:6px 10px;font-size:.8rem}main.content{padding:32px 40px;width:100%;height:100vh;overflow-y:auto;box-sizing:border-box}h1{font-size:1.6rem;margin:0 0 20px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:18px}input,select,textarea{border:1px solid var(--border);padding:8px 10px}button,input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border-radius:7px}button{border:1px solid var(--border);padding:8px 14px;cursor:pointer}button.primary{background:var(--teal);border-color:var(--teal);color:#fff}table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}td,th{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border);font-size:.92rem}tbody tr:hover{background:var(--surface-2);cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;max-width:640px}.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--text-muted)}.form-grid .full{grid-column:1/-1}.week-grid{display:grid;grid-template-columns:70px repeat(7,1fr);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface)}.week-grid .head{padding:8px;font-size:.8rem;color:var(--text-muted);border-bottom:1px solid var(--border);text-align:center}.week-grid .hour{padding:4px 6px;font-size:.72rem;color:var(--text-muted);text-align:right}.week-grid .cell,.week-grid .hour{border-top:1px solid var(--border)}.week-grid .cell{min-height:44px;border-left:1px solid var(--border);padding:2px;position:relative}.week-grid .cell-besonders,.week-grid .head-besonders{background:var(--surface-2)}.appt-chip{border-radius:6px;border:none;padding:3px 6px;font-family:inherit;font-size:.72rem;color:#fff;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;text-align:left;cursor:pointer}.badge{font-size:.7rem;padding:2px 7px;border-radius:999px;background:var(--surface-2);color:var(--text-muted)}.error{color:var(--danger);font-size:.88rem}.pagination{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:.85rem;color:var(--text-muted)}.city-autocomplete-panel{position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 20px rgba(0,0,0,.12);margin-top:4px;max-height:260px;overflow-y:auto}.city-autocomplete-panel div{padding:8px 12px;font-size:.85rem;cursor:pointer}.city-autocomplete-panel div:hover{background:var(--surface-2)}.column-picker-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 20px rgba(0,0,0,.12);padding:10px;display:flex;flex-direction:column;gap:2px;max-height:360px;overflow-y:auto;min-width:220px}.column-picker-panel label{display:flex;align-items:center;gap:8px;font-size:.85rem;padding:5px 6px;border-radius:6px;cursor:pointer;white-space:nowrap}.column-picker-panel label:hover{background:var(--surface-2)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:20px;gap:20px}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;display:flex;flex-direction:column}.dashboard-card h2{font-size:1rem;margin:0}.dashboard-card .dashboard-count{font-size:2.2rem;font-weight:700;color:var(--navy);margin:6px 0 12px}.dashboard-card ul{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px;flex:1 1}.dashboard-card li{font-size:.85rem}.dashboard-card .dashboard-empty{font-size:.85rem;color:var(--text-muted);margin:0 0 12px}.dashboard-card .dashboard-link{font-size:.82rem;color:var(--teal);text-decoration:none;align-self:flex-start}.documents-section{margin-top:32px}.dropzone{margin:12px 0;padding:18px;border:2px dashed var(--border);border-radius:var(--radius);text-align:center;font-size:.85rem;color:var(--text-muted);transition:border-color .15s ease,background .15s ease}.dropzone-active{border-color:var(--teal);background:var(--surface-2);color:var(--text)}.documents-section h2{font-size:1.15rem;margin:0 0 14px}.modal-backdrop{position:fixed;inset:0;background:rgba(6,43,81,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;width:100%;max-width:480px;max-height:calc(100vh - 32px);overflow-y:auto;box-shadow:0 12px 32px rgba(6,43,81,.25)}.week-grid .cell{cursor:pointer}@media print{.no-print,.sidebar{display:none!important}.app-shell{display:block}main.content{padding:0;max-width:none}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:36px 40px;width:100%;max-width:360px;display:flex;flex-direction:column;gap:20px;align-items:stretch}.login-card .logo{justify-content:center;font-size:1.3rem;font-weight:800;margin-bottom:4px}.login-form{gap:14px}.login-form,.login-form label{display:flex;flex-direction:column}.login-form label{gap:4px;font-size:.85rem;color:var(--text-muted)}.mobile-topbar,.sidebar-backdrop{display:none}@media (max-width:860px){.app-shell{grid-template-columns:1fr;height:auto;min-height:100vh}.mobile-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface)}.mobile-menu-toggle{font-size:1.3rem;line-height:1;padding:6px 10px;justify-self:start}.mobile-topbar-brand{grid-column:2;display:flex;justify-content:center}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(80vw,280px);height:100vh;z-index:50;background:var(--surface);transform:translateX(-100%);transition:transform .25s ease;box-shadow:2px 0 16px rgba(0,0,0,.2)}.sidebar.sidebar-open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40}main.content{height:auto;padding:18px}.form-grid{grid-template-columns:1fr;max-width:none}.toolbar{flex-wrap:wrap}table{display:block;white-space:nowrap}.week-grid,table{overflow-x:auto}}