:root{--midnight:#111827;--emerald:#176b5b;--champagne:#d4a857;--bg:#eef2f0;--surface:#fff;--surface-2:#f7f8fa;--border:#e5e9e7;--text:#111827;--muted:#64748b;--brand:#17805a;--brand-contrast:#fff;--brand-soft:#e6f4ee;--bar:#3dbf86;--bar-hi:#17805a;--success:#16835d;--warning:#d69e32;--error:#d64545;--error-soft:#fdecec;--warning-soft:#fdf3df;--success-soft:#e6f4ee;--shadow:0 1px 2px #1118270a, 0 8px 24px #1118270d;--radius:14px;--c1:#17805a;--c2:#3dbf86;--c3:#86d9b0;--c4:#bdeed6;--c5:#cfd6d3;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0a0c0b;--surface:#131715;--surface-2:#1a1f1c;--border:#d4a85729;--text:#f3f4f6;--muted:#9ba5a1;--brand:#d4a857;--brand-contrast:#111827;--brand-soft:#d4a85724;--bar:#2f7a5a;--bar-hi:#d4a857;--success:#3fb27f;--error-soft:#d6454526;--warning-soft:#d69e3226;--success-soft:#3fb27f24;--shadow:0 1px 2px #0006, 0 10px 30px #00000059;--c1:#d4a857;--c2:#2f7a5a;--c3:#44a07a;--c4:#6fbd9a;--c5:#59625e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,Segoe UI,system-ui,-apple-system,Roboto,sans-serif;font-size:14px;line-height:1.45}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}h1,h2,h3,p{margin:0}.muted{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:6px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.logo{align-items:center;gap:8px;padding:2px 8px 18px;display:flex}.logo b{letter-spacing:-.5px;font-size:22px}.logo small{color:var(--muted);margin-top:-2px;font-size:9px;display:block}.nav a{color:var(--text);border-radius:10px;align-items:center;gap:12px;margin-bottom:2px;padding:10px 12px;font-weight:500;display:flex}.nav a:hover{background:var(--surface-2)}.nav a.active{background:var(--brand);color:var(--brand-contrast);font-weight:600}:root[data-theme=dark] .nav a.active{background:var(--brand-soft);color:var(--brand)}.nav svg{opacity:.9;flex:none;width:18px;height:18px}.main{min-width:0;padding:18px 28px 40px}.topbar{align-items:center;gap:14px;margin-bottom:22px;display:flex}.search{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex:1;align-items:center;gap:8px;max-width:520px;height:42px;padding:0 12px;display:flex;position:relative}.search input{background:0 0;border:0;outline:0;flex:1;height:100%}.search kbd{color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:11px}.search-results{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:30;border-radius:12px;position:absolute;top:46px;left:0;right:0;overflow:hidden}.search-results a{padding:10px 14px;display:block}.search-results a:hover{background:var(--surface-2)}.spacer{flex:1}.icon-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.icon-btn svg{width:18px;height:18px}.user{cursor:pointer;align-items:center;gap:10px;display:flex;position:relative}.user .meta b{font-size:13px;display:block}.user .meta span{color:var(--muted);font-size:12px}.avatar{background:linear-gradient(135deg, var(--emerald), #3dbf86);color:#fff;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:grid}:root[data-theme=dark] .avatar{background:linear-gradient(135deg, #8a6a2b, var(--champagne));color:#111827}.avatar.sm{width:30px;height:30px;font-size:11px}.menu{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:40;border-radius:12px;min-width:180px;padding:6px;position:absolute;top:48px;right:0}.menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:9px 10px;display:block}.menu button:hover{background:var(--surface-2)}.burger{display:none}.theme-toggle{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:4px;padding:3px;display:flex}.theme-toggle button{cursor:pointer;width:30px;height:30px;color:var(--muted);background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.theme-toggle button.on{background:var(--brand);color:var(--brand-contrast)}.theme-toggle svg{width:16px;height:16px}.page-head{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:18px;display:flex}.greet{align-items:center;gap:12px;display:flex}.greet svg{width:34px;height:34px;color:var(--champagne)}.greet h1{letter-spacing:-.3px;font-size:22px}.greet p{color:var(--muted);font-size:13px}h1.title{letter-spacing:-.3px;font-size:22px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.card>header,.card-h{align-items:center;gap:8px;margin-bottom:12px;font-weight:600;display:flex}.card-h svg{width:17px;height:17px;color:var(--brand)}.card-h .right{color:var(--brand);align-items:center;gap:4px;margin-left:auto;font-size:12px;font-weight:500;display:flex}.grid{gap:16px;display:grid}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.g-agenda{grid-template-columns:1fr 1.35fr}.g-mid{grid-template-columns:1fr 1.05fr 1fr}.g-low{grid-template-columns:1fr 1fr}.kpi .label{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.kpi .label svg{width:18px;height:18px;color:var(--brand)}.kpi .value{letter-spacing:-.5px;margin:6px 0 4px;font-size:25px;font-weight:700}.delta{color:var(--muted);font-size:12px}.delta b{color:var(--success);font-weight:600}.delta b.neg{color:var(--error)}.progress{background:var(--surface-2);border-radius:99px;height:6px;margin-top:6px;overflow:hidden}.progress i{background:var(--brand);border-radius:99px;height:100%;display:block}:root[data-theme=dark] .progress i{background:linear-gradient(90deg, #9b7a31, var(--champagne))}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:9px 0;display:flex}.list-row:last-child{border-bottom:0}.dot{background:var(--success);border-radius:50%;flex:none;width:8px;height:8px}.dot.pending{background:var(--warning)}.dot.done{background:var(--muted)}.list-row time{min-width:46px;font-weight:600}.list-row .grow{flex:1;min-width:0}.list-row .who{color:var(--muted)}.chart{align-items:flex-end;gap:14px;height:170px;padding:6px 4px 0 44px;display:flex;position:relative}.chart .yaxis{color:var(--muted);flex-direction:column;justify-content:space-between;font-size:10px;display:flex;position:absolute;top:0;bottom:22px;left:0}.chart .col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.chart .bar{background:linear-gradient(180deg, var(--bar), color-mix(in srgb, var(--bar) 55%, transparent));border-radius:6px 6px 0 0;width:100%;max-width:40px;min-height:3px;transition:height .4s}.chart .bar.hi{background:var(--bar-hi)}.chart .col span{color:var(--muted);font-size:11px}.big-money{text-align:right;margin-left:auto;font-size:16px;font-weight:700}.cash-row{color:var(--muted);align-items:center;gap:8px;padding:7px 0;display:flex}.cash-row b{color:var(--text);margin-left:auto;font-weight:600}.cash-total{background:var(--brand-soft);color:var(--brand);border-radius:10px;justify-content:space-between;margin-top:8px;padding:9px 12px;font-weight:700;display:flex}:root:not([data-theme=dark]) .cash-total{color:var(--emerald)}.donut-wrap{align-items:center;gap:18px;display:flex}.donut{border-radius:50%;flex:none;place-items:center;width:112px;height:112px;display:grid}.donut div{background:var(--surface);text-align:center;width:74px;height:74px;color:var(--muted);border-radius:50%;place-items:center;font-size:10px;line-height:1.1;display:grid}.donut div b{color:var(--text);font-size:20px;display:block}.legend{flex:1;font-size:12px}.legend div{align-items:center;gap:8px;padding:3px 0;display:flex}.legend i{border-radius:50%;flex:none;width:8px;height:8px}.legend b{margin-left:auto}.alert{cursor:pointer;border-radius:10px;align-items:center;gap:8px;margin-bottom:8px;padding:10px 12px;font-size:12.5px;font-weight:500;display:flex}.alert.error{background:var(--error-soft);color:var(--error)}.alert.warning{background:var(--warning-soft);color:var(--warning)}.alert.success{background:var(--success-soft);color:var(--success)}.alert:after{content:"›";opacity:.7;margin-left:auto}.rank{align-items:center;gap:10px;padding:9px 0;display:flex}.rank .pos{text-align:center;width:22px;color:var(--champagne);font-weight:700}.rank .info{flex:1}.rank .info small{color:var(--muted);display:block}.rank .amount{font-weight:700}.btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;align-items:center;gap:6px;height:38px;padding:0 14px;font-weight:600;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--brand);color:var(--brand-contrast);border-color:#0000}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--error)}.btn.sm{height:30px;padding:0 10px;font-size:12.5px}.btn:disabled{opacity:.55;cursor:not-allowed}.field{flex-direction:column;gap:5px;margin-bottom:12px;display:flex}.field label{color:var(--muted);font-size:12px;font-weight:600}.input,.field input,.field select,.field textarea,select.input{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;height:40px;padding:0 12px}.field textarea{height:auto;min-height:80px;padding:10px 12px}.row{gap:12px;display:flex}.row>*{flex:1}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 10px}.table tr:last-child td{border-bottom:0}.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--surface-2)}.table-wrap{overflow-x:auto}.badge{background:var(--surface-2);color:var(--muted);border-radius:99px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-block}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.err{background:var(--error-soft);color:var(--error)}.badge.brand{background:var(--brand-soft);color:var(--brand)}.empty{text-align:center;color:var(--muted);padding:30px 10px}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--border), var(--surface-2));background-size:200% 100%;border-radius:10px;height:18px;animation:1.2s infinite sk}@keyframes sk{to{background-position:-200% 0}}.error-msg{background:var(--error-soft);color:var(--error);border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:13px}.tabs{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.tabs button{border:1px solid var(--border);background:var(--surface);cursor:pointer;height:34px;color:var(--muted);border-radius:99px;padding:0 14px;font-weight:600}.tabs button.on{background:var(--brand);color:var(--brand-contrast);border-color:#0000}.modal-bg{z-index:100;background:#00000080;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);width:100%;max-width:480px;max-height:92vh;box-shadow:var(--shadow);border-radius:16px;padding:22px;overflow:auto}.modal.wide{max-width:720px}.modal h2{margin-bottom:14px;font-size:18px}.modal .actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.toast{background:var(--midnight);color:#fff;z-index:200;box-shadow:var(--shadow);border:1px solid var(--champagne);border-radius:12px;padding:12px 16px;position:fixed;bottom:20px;right:20px}.agenda-grid{gap:0;display:grid;overflow-x:auto}.agenda-col{border-left:1px solid var(--border);min-width:190px}.agenda-col h3{text-align:center;border-bottom:1px solid var(--border);background:var(--surface);padding:10px;font-size:13px;position:sticky;top:0}.slot-area{position:relative}.appt{cursor:pointer;border-left:4px solid var(--brand);background:var(--brand-soft);border-radius:8px;padding:4px 8px;font-size:12px;position:absolute;left:4px;right:4px;overflow:hidden}.appt.pending{border-color:var(--warning);background:var(--warning-soft)}.appt.completed{border-color:var(--muted);background:var(--surface-2);opacity:.85}.appt.cancelled,.appt.no_show{border-color:var(--error);background:var(--error-soft);opacity:.7;text-decoration:line-through}.hour-line{border-top:1px dashed var(--border);color:var(--muted);font-size:10px;position:absolute;left:0;right:0}.time-col{min-width:48px;position:relative}.portal{max-width:560px;margin:0 auto;padding:24px 16px 60px}.choice{text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:12px;width:100%;margin-bottom:10px;padding:14px;display:flex}.choice:hover,.choice.on{border-color:var(--brand)}.slots{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.slots button{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;height:40px;font-weight:600}.slots button.on,.slots button:hover{background:var(--brand);color:var(--brand-contrast)}.steps{gap:6px;margin-bottom:20px;display:flex}.steps i{background:var(--border);border-radius:4px;flex:1;height:4px}.steps i.on{background:var(--brand)}.login-wrap{background:radial-gradient(900px 500px at 10% 0%, #176b5b40, transparent), var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.login{width:100%;max-width:400px}@media (max-width:1180px){.g4{grid-template-columns:repeat(2,1fr)}.g-mid{grid-template-columns:1fr 1fr}.g-agenda{grid-template-columns:1fr}}@media (max-width:860px){.shell{grid-template-columns:1fr}.sidebar{z-index:90;width:260px;transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow);transform:none}.scrim{z-index:80;background:#00000073;position:fixed;inset:0}.burger{display:grid}.main{padding:14px 16px 40px}.g-mid,.g-low,.g3,.g2{grid-template-columns:1fr}.user .meta,.search kbd{display:none}.row{flex-direction:column;gap:0}}@media (max-width:520px){.g4{grid-template-columns:1fr 1fr}.kpi .value{font-size:20px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
