*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--text-primary:#0f172a;--text-secondary:#64748b;--accent:#6366f1;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--sidebar-width:240px}html,body{height:100%}body{background:var(--bg);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}.app-shell{min-height:100vh;display:flex}.app-main{flex:1;min-width:0;overflow-y:auto}.sidebar{width:var(--sidebar-width);background:var(--text-primary);flex-direction:column;flex-shrink:0;height:100vh;min-height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar__brand{border-bottom:1px solid #ffffff14;padding:1.5rem 1.25rem 1.25rem}.sidebar__brand-text{color:#fff;letter-spacing:-.02em;font-size:1rem;font-weight:700}.sidebar__nav{flex-direction:column;flex:1;gap:.25rem;padding:1rem .75rem;display:flex}.sidebar__nav-item{color:#fff9;border-radius:8px;align-items:center;gap:.75rem;padding:.625rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar__nav-item:hover{color:#ffffffe6;background:#ffffff14}.sidebar__nav-item--active{color:#fff;background:#ffffff1f}.sidebar__nav-icon{flex-shrink:0;align-items:center;display:flex}.sidebar__footer{border-top:1px solid #ffffff14;padding:1rem 1.25rem}.sidebar__user-email{color:#ffffff80;text-overflow:ellipsis;white-space:nowrap;margin-bottom:.625rem;font-size:.75rem;overflow:hidden}.sidebar__logout{color:#ffffffb3;cursor:pointer;text-align:center;background:#ffffff14;border:1px solid #ffffff1f;border-radius:6px;width:100%;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;transition:all .15s}.sidebar__logout:hover{color:#fff;background:#ffffff26}.page{max-width:1200px;padding:2rem}.page-header{margin-bottom:1.75rem}.page-header h1{color:var(--text-primary);font-size:1.625rem;font-weight:700}.page-header p{color:var(--text-secondary);margin-top:.25rem;font-size:.875rem}.page-header__row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page--narrow{max-width:680px}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:1.5rem}.card h2{color:var(--text-primary);margin-bottom:1rem;font-size:1.0625rem;font-weight:600}.card-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.card-header h2{margin-bottom:0}.kpi-grid{gap:1.25rem;margin-bottom:1.5rem;display:grid}.kpi-grid--2{grid-template-columns:repeat(2,1fr)}.kpi-grid--5{grid-template-columns:repeat(5,1fr)}@media (max-width:1100px){.kpi-grid--5{grid-template-columns:repeat(3,1fr)}}@media (max-width:800px){.kpi-grid--2,.kpi-grid--5{grid-template-columns:1fr}}.stat-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:1.25rem 1.5rem}.stat-card--blue{background:#eff6ff;border-color:#bfdbfe}.stat-card--green{background:#f0fdf4;border-color:#bbf7d0}.stat-card__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:.5rem;font-size:.75rem;font-weight:500}.stat-card__value{color:var(--text-primary);font-size:1.625rem;font-weight:700;line-height:1.2}.stat-card--small .stat-card__value{font-size:1.25rem}.stat-card__sub{color:var(--text-secondary);margin-top:.25rem;font-size:.75rem}.kpi-delta{border-radius:9999px;margin-top:.375rem;padding:.125rem .375rem;font-size:.75rem;font-weight:600;display:inline-block}.kpi-delta--up{color:#166534;background:#dcfce7}.kpi-delta--down{color:#991b1b;background:#fee2e2}.kpi-delta--neutral{color:var(--text-secondary);background:#f1f5f9}.segmented-control{background:#f1f5f9;border-radius:8px;gap:2px;padding:3px;display:inline-flex}.segmented-control__btn{cursor:pointer;color:var(--text-secondary);white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:.375rem .875rem;font-size:.8125rem;font-weight:500;transition:all .15s}.segmented-control__btn--active{background:var(--surface);color:var(--text-primary);box-shadow:0 1px 3px #0000001a}.time-range{align-items:center;gap:.25rem;display:flex}.time-range__btn{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:6px;padding:.3125rem .625rem;font-size:.8125rem;font-weight:500;transition:all .15s}.time-range__btn:hover{border-color:var(--accent);color:var(--accent)}.time-range__btn--active{background:var(--accent);border-color:var(--accent);color:#fff}.filter-pills{gap:.375rem;display:flex}.filter-pill{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:9999px;align-items:center;padding:.375rem .875rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.filter-pill:hover{border-color:var(--text-primary);color:var(--text-primary)}.filter-pill--active{background:var(--text-primary);border-color:var(--text-primary);color:#fff}table{border-collapse:collapse;width:100%}thead tr{border-bottom:2px solid var(--border)}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:.5rem .75rem;font-size:.75rem;font-weight:600}th.right,td.right{text-align:right}td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:.875rem .75rem}tr:last-child td{border-bottom:none}tbody tr:hover td{background:#f8fafc}.text-secondary{color:var(--text-secondary)}.font-mono{font-family:SF Mono,SFMono-Regular,ui-monospace,monospace}.empty-state{color:var(--text-secondary);text-align:center;padding:3rem}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:400px;box-shadow:var(--shadow);border-radius:16px;padding:2.5rem}.auth-card h1{color:var(--text-primary);margin-bottom:.25rem;font-size:1.5rem;font-weight:700}.auth-subtitle{color:var(--text-secondary);margin-bottom:1.75rem;font-size:.875rem}.auth-form{flex-direction:column;gap:1.25rem;display:flex}.auth-link{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.875rem}.auth-link a{color:var(--accent);font-weight:500;text-decoration:none}.auth-link a:hover{text-decoration:underline}.form-group{flex-direction:column;gap:.375rem;display:flex}.form-group label{color:var(--text-primary);font-size:.875rem;font-weight:500}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--border);color:var(--text-primary);background:var(--surface);border-radius:8px;outline:none;width:100%;padding:.625rem .875rem;font-size:.875rem;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f11f}.form-group--checkbox{flex-direction:row;align-items:center;gap:.5rem}.form-group--checkbox input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.form-group--inline{flex-direction:row;flex-shrink:0;align-items:center;gap:.5rem}.form-group--inline label{white-space:nowrap;margin:0}.form-group--inline select{width:auto}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-error{color:#ef4444;font-size:.8125rem}.form-actions{gap:.75rem;padding-top:.5rem;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.entity-form{flex-direction:column;gap:1.25rem;display:flex}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-flex}.btn-primary:hover:not(:disabled){opacity:.88}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn-secondary:hover{background:var(--bg);color:var(--text-primary)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-link{cursor:pointer;color:var(--accent);background:0 0;border:none;border-radius:4px;padding:.25rem .375rem;font-size:.8125rem;font-weight:500;text-decoration:none;transition:background .1s}.btn-link:hover{background:#6366f114}.btn-link--danger{color:#ef4444}.btn-link--danger:hover{background:#ef444414}.back-link{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text-primary)}.header-actions{align-items:center;gap:.75rem;display:flex}.row-actions{align-items:center;gap:.25rem;display:flex}.badge{border-radius:9999px;align-items:center;padding:.2rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge--aktiv{color:#166534;background:#dcfce7}.badge--beendet{color:var(--text-secondary);background:#f1f5f9}.badge--betreuung{color:#1d4ed8;background:#eff6ff}.badge--lizenz{color:#15803d;background:#f0fdf4}.badge--bezahlt{color:#166534;background:#dcfce7}.badge--ausstehend{color:#854d0e;background:#fef9c3}.badge--offen{color:var(--text-secondary);background:#f1f5f9}.badge--ausserhalb{color:#9d174d;background:#fce7f3}.search-bar{flex:1;max-width:360px;position:relative}.search-bar input{border:1px solid var(--border);background:var(--surface);border-radius:8px;outline:none;width:100%;padding:.5rem .875rem .5rem 2.25rem;font-size:.875rem;transition:border-color .15s}.search-bar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f11f}.search-bar__icon{color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:.625rem;transform:translateY(-50%)}.payment-select{border:1px solid var(--border);cursor:pointer;background:var(--surface);border-radius:6px;outline:none;padding:.25rem .5rem;font-size:.8125rem}.chart-stats{gap:1rem;margin-bottom:1rem;display:flex}.chart-stat{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:8px;flex:1;padding:.625rem 1rem}.chart-stat__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-size:.6875rem;font-weight:500}.chart-stat__value{color:var(--text-primary);margin-top:.125rem;font-size:1rem;font-weight:700}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-bottom:2rem;display:grid}
