:root{--bg:#f7f6f4;--sidebar:#fff;--sidebar-ink:#1a1a1a;--sidebar-muted:#8c8880;--sidebar-line:#ece9e3;--card:#fff;--line:#e6e3dc;--ink:#1a1a1a;--muted:#827e75;--accent:#a40000;--accent-hover:#850000;--accent-tint:#fbebe9;--accent-ink:#fff;--danger-bg:#fbebe9;--danger-ink:#a40000;--ok-bg:#e6f2e8;--ok-ink:#2f7a45;--due-bg:#faf1dc;--due-ink:#93732c;--shadow:0 1px 2px #14141408, 0 2px 10px #1414140a}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55}.main,.side,.drawer{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#d8d4cb transparent}.main::-webkit-scrollbar{width:9px}.side::-webkit-scrollbar{width:9px}.drawer::-webkit-scrollbar{width:9px}.main::-webkit-scrollbar-track{background:0 0}.side::-webkit-scrollbar-track{background:0 0}.drawer::-webkit-scrollbar-track{background:0 0}.main::-webkit-scrollbar-thumb{border:2px solid var(--bg);background-color:#d8d4cb;border-radius:8px}.side::-webkit-scrollbar-thumb{border:2px solid var(--bg);background-color:#d8d4cb;border-radius:8px}.drawer::-webkit-scrollbar-thumb{border:2px solid var(--bg);background-color:#d8d4cb;border-radius:8px}.side::-webkit-scrollbar-thumb{border-color:var(--sidebar)}.drawer::-webkit-scrollbar-thumb{border-color:var(--sidebar)}.main::-webkit-scrollbar-thumb:hover{background-color:#c2beb3}.side::-webkit-scrollbar-thumb:hover{background-color:#c2beb3}.drawer::-webkit-scrollbar-thumb:hover{background-color:#c2beb3}.table{scrollbar-width:thin;scrollbar-color:#d8d4cb transparent}a{color:inherit;text-decoration:none}h1,h2,h3{letter-spacing:-.015em;font-weight:700}h1{margin:0 0 22px;font-size:25px}h2{color:var(--ink);margin:0 0 12px;font-size:15px}h3{margin:0 0 10px;font-size:14px}.schedule-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:18px;display:grid}.schedule-day h3{border-bottom:1px solid var(--line);padding-bottom:10px}.schedule-list{gap:10px;display:grid}.schedule-slot{background:#faf9f7;border-radius:10px;align-items:flex-start;gap:10px;padding:10px;display:flex}.schedule-time{color:var(--accent);white-space:nowrap;min-width:88px;font-size:12.5px;font-weight:600}.schedule-remove{border-radius:50%;flex-shrink:0;width:28px;height:28px;min-height:28px;margin-left:auto;padding:0}.empty-state{background:var(--card);border:1px dashed var(--line);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:56px 24px;display:flex}.empty-icon{background:var(--accent-tint);width:52px;height:52px;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.empty-icon svg{width:24px;height:24px}.empty-state h3{margin:0;font-size:16px}.empty-state p{max-width:360px;margin:0 0 14px}.shell{grid-template-columns:230px 1fr;height:100vh;transition:grid-template-columns .2s;display:grid}@media (min-width:901px){.shell:has(.side[data-collapsed=true]){grid-template-columns:76px 1fr}}.side{background:var(--sidebar);color:var(--sidebar-ink);border-right:1px solid var(--sidebar-line);flex-direction:column;min-width:0;height:100vh;padding:26px 20px;transition:width .2s,padding .2s;display:flex;position:relative;overflow-y:auto}.side[data-collapsed=true]{padding:26px 14px}.collapse-toggle{background:var(--card);border:1px solid var(--line);width:26px;height:26px;min-height:26px;color:var(--muted);box-shadow:var(--shadow);z-index:5;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:30px;right:-13px}.collapse-toggle:hover{color:var(--ink);background:#f5f3ef}.brand{min-height:34px;margin-bottom:18px}.brand img{width:auto;height:34px;display:block}.brand img.brand-icon,.side[data-collapsed=true] .brand img.brand-full{display:none}.side[data-collapsed=true] .brand img.brand-icon{height:30px;display:block}.muted{color:var(--muted);font-size:13px;line-height:1.5}.side .muted{color:var(--sidebar-muted)}.side[data-collapsed=true] .nav-label,.side[data-collapsed=true]>.muted{display:none}.side[data-collapsed=true] .nav-link{justify-content:center;padding:12px 0}.side[data-collapsed=true] .nav-link.active:before{left:-14px}.nav{gap:2px;margin-top:24px;display:grid}.nav-link{color:#4a4740;border-radius:9px;align-items:center;gap:11px;min-height:44px;padding:12px;font-size:14px;transition:background .15s,color .15s;display:flex;position:relative}.nav-link:hover{color:var(--ink);background:#f5f3ef}.nav-link.active{background:var(--accent-tint);color:var(--accent);font-weight:600}.nav-link.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:8px;bottom:8px;left:-20px}.nav-icon{opacity:.85;flex-shrink:0;display:flex}.main{width:100%;min-width:0;max-width:1300px;height:100vh;padding:32px 36px;overflow-y:auto}.mobile-topbar{display:none}.top{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.top h1{margin:0}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:20px}.stat{letter-spacing:-.01em;margin-top:8px;font-size:26px;font-weight:650}.stat-card{align-items:flex-start;gap:14px;display:flex}.stat-icon{background:var(--accent-tint);width:38px;height:38px;color:var(--accent);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);width:100%;box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);background:#faf9f7;padding:12px 16px;font-size:12.5px;font-weight:600}.table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:14px 16px;font-size:14px}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#faf7f6}.badge{letter-spacing:.01em;background:#efece3;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600}.danger{background:var(--danger-bg);color:var(--danger-ink)}.ok{background:var(--ok-bg);color:var(--ok-ink)}.due{background:var(--due-bg);color:var(--due-ink)}.form-groups{gap:22px;max-width:760px;display:grid}.form-group h2{color:var(--muted);text-transform:none;margin-bottom:10px;font-size:14px}.form{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:22px;display:grid}.field{gap:7px;display:grid}.field label{color:var(--muted);font-size:13px;font-weight:500}.field.full{grid-column:1/-1}input,select,textarea,button{font:inherit;border:1px solid var(--line);color:var(--ink);background:var(--card);border-radius:10px;min-height:44px;padding:10px 12px}input,select,textarea{width:100%}textarea{min-height:80px}input[type=checkbox],input[type=radio]{flex-shrink:0;width:18px;height:18px;min-height:0}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input::placeholder,textarea::placeholder{color:#b3ac9c}input:disabled,button:disabled{opacity:.45;cursor:not-allowed}button{background:var(--ink);color:#fff;cursor:pointer;border:0;font-weight:600;transition:background .15s,transform .1s}button:hover:not(:disabled){background:#000}button:active:not(:disabled){transform:scale(.98)}.button-light{background:var(--card);color:var(--ink);border:1px solid var(--line)}.button-light:hover:not(:disabled){background:#f1efe8}.button-primary{background:var(--accent)}.button-primary:hover:not(:disabled){background:var(--accent-hover)}.login{background:#141414;place-items:center;min-height:100vh;display:grid}.loginbox{background:var(--card);text-align:center;border-radius:20px;width:min(400px,92vw);padding:34px;box-shadow:0 8px 40px #0006}.loginbox img{width:auto;height:52px;margin:0 auto 22px;display:block}.loginbox .field{text-align:left}.error{background:var(--danger-bg);color:var(--danger-ink);border-radius:10px;margin-bottom:14px;padding:11px 14px;font-size:14px}.alerts{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:16px;display:grid}.alert-card{border:1px solid #0000;border-radius:14px;align-items:center;gap:10px;padding:14px 16px;font-size:14px;display:flex}.alert-warn{background:var(--danger-bg);color:var(--danger-ink)}.alert-due{background:var(--due-bg);color:var(--due-ink)}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.actions input,.actions select{flex:90px;width:auto;min-width:70px}.actions button{flex-shrink:0}.money{font-variant-numeric:tabular-nums}.section{margin-top:28px}.section h2{border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:10px}.bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}@media (max-width:900px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.side{display:none}.mobile-topbar{background:var(--sidebar);border-bottom:1px solid var(--sidebar-line);z-index:20;justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.mobile-logo{width:auto;height:26px}.hamburger{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;min-height:42px;padding:0;display:flex}.hamburger:hover{background:#f5f3ef}.drawer-overlay{z-index:30;background:#14141473;display:flex;position:fixed;inset:0}.drawer{background:var(--sidebar);width:min(280px,82vw);height:100%;padding:22px 18px;position:relative;overflow-y:auto;box-shadow:4px 0 24px #0003}.drawer-close{color:var(--ink);background:0 0;border:0;width:36px;height:36px;min-height:36px;padding:0;font-size:18px;position:absolute;top:14px;right:14px}.drawer .brand{margin-top:8px}.drawer .nav-link{padding:13px 14px;font-size:15px}.main{height:auto;min-height:0;padding:20px;overflow-y:auto}.grid{grid-template-columns:repeat(2,1fr)}.form{grid-template-columns:1fr}.field.full{grid-column:auto}}@media (max-width:560px){.grid{grid-template-columns:1fr}.table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.top{flex-direction:column;align-items:flex-start;gap:12px}.bar{flex-direction:column;align-items:stretch}.bar>a,.bar>button,.bar>a button{width:100%}}
