:root{--brand-primary:#8d6fdd;--brand-anchor:#40e1d1;--brand-accent:#78f2ee;--bg:#f7f6fb;--surface:#fff;--text:#1f2330;--muted:#6b7280;--border:#e7e6ef}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit;text-decoration:none}.login-wrap{background:linear-gradient(135deg,#8d6fdd 0%,#40e1d1 100%);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:var(--surface);border-radius:16px;flex-direction:column;gap:14px;width:360px;max-width:92vw;padding:32px;display:flex;box-shadow:0 20px 60px #0000002e}.login-card h1{margin:6px 0 0;font-size:22px}.login-sub{color:var(--muted);margin:0;font-size:14px}.login-card label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-card input,.login-card select{border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;font-size:14px}.login-note{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.4}.btn-primary{background:linear-gradient(135deg, var(--brand-primary), var(--brand-anchor));color:#fff;cursor:pointer;border:0;border-radius:9px;padding:11px 16px;font-size:14px;font-weight:600}.btn-ghost{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:8px;padding:7px 12px;font-size:13px}.logo{align-items:center;gap:10px;display:flex}.logo-mark{background:linear-gradient(135deg, var(--brand-accent), var(--brand-primary));color:#fff;border-radius:10px;place-items:center;width:38px;height:38px;font-size:15px;font-weight:800;display:grid}.logo-text{flex-direction:column;line-height:1.15;display:flex}.logo-name{font-size:15px;font-weight:700}.logo-tag{color:var(--muted);font-size:11px}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--brand-primary);color:#fff;flex-direction:column;gap:22px;padding:20px 14px;display:flex}.sidebar .logo-name,.sidebar .logo-tag{color:#fff}.sidebar .logo-tag{opacity:.8}.sidebar nav{flex-direction:column;gap:4px;display:flex}.nav-item{color:#fff;opacity:.9;border-radius:8px;padding:10px 12px;font-size:14px}.nav-item:hover{background:#ffffff1f}.nav-item.active{opacity:1;background:#ffffff38;font-weight:600}.shell-main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;height:60px;padding:0 22px;display:flex}.topbar-spacer{flex:1}.topbar-right{align-items:center;gap:14px;display:flex}.topbar-user{color:var(--muted);font-size:13px}.shell-content{padding:26px}.page-title{margin:0 0 4px;font-size:24px}.page-sub{color:var(--muted);margin:0 0 20px;font-size:14px}.section-title{margin:26px 0 4px;font-size:16px}.section-note{color:var(--muted);margin:0 0 14px;font-size:13px}.card{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:18px;font-size:14px;line-height:1.5}.card code{background:#f3f1fb;border-radius:5px;padding:1px 6px;font-size:13px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin-bottom:20px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}.stat-num{color:var(--brand-primary);font-size:30px;font-weight:700}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.data-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;overflow:hidden}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 16px;font-size:14px}.data-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;background:#faf9fe;font-size:12px;font-weight:600}.data-table tr:last-child td{border-bottom:0}.link{color:var(--brand-primary);font-weight:600}.pill{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.pill-ok{color:#0f9b78;background:#e6f9f3}.pill-muted{color:#6b7280;background:#f0f0f4}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.detail-grid>div{flex-direction:column;gap:4px;display:flex}.detail-grid .k{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px}.detail-grid .v{font-size:15px}.back-link{margin-bottom:12px;font-size:13px;display:inline-block}.elig-wrap{grid-template-columns:minmax(320px,380px) 1fr;align-items:start;gap:22px;display:grid}@media (max-width:820px){.elig-wrap{grid-template-columns:1fr}}.elig-form{flex-direction:column;gap:14px;display:flex}.elig-form label{color:var(--muted);flex-direction:column;gap:6px;min-width:0;font-size:13px;display:flex}.elig-form input,.elig-form select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:8px;width:100%;min-width:0;padding:10px 12px;font-size:14px}.elig-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.elig-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.elig-note{color:var(--muted);margin:0;font-size:12px}.elig-error{color:#b3261e;background:#fdf2f2;border-color:#f3c2c2}.elig-error-detail{color:#9a6a66}.elig-card{padding:0;overflow:hidden}.elig-card-head{color:#fff;background:linear-gradient(135deg, var(--brand-primary), var(--brand-anchor));justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.elig-payer{font-size:16px;font-weight:700}.elig-plan{opacity:.9;margin-top:2px;font-size:13px}.elig-card-head .pill-ok{color:#0f9b78;background:#fff}.elig-card-head .pill-muted{color:#6b7280;background:#fff}.elig-grid{padding:18px}.elig-trace{color:var(--muted);margin:0;padding:0 18px 16px;font-size:11px}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.cal-range{font-size:15px;font-weight:700}.cal-spacer{flex:1}.cal-filters{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;display:flex}.cal-filter{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.cal-filter select{border:1px solid var(--border);color:var(--text);background:var(--surface);cursor:pointer;border-radius:8px;padding:7px 10px;font-family:inherit;font-size:13px;font-weight:400}.cal-filter-count{color:var(--muted);font-size:12px}.renewal-ok{color:var(--muted)}.renewal-soon{color:#b45309;font-weight:600}.renewal-due{color:#dc2626;font-weight:700}.renewal-callout{border-radius:8px;margin:0 0 14px;padding:10px 12px;font-size:13px;line-height:1.45}.renewal-callout-soon{color:#5a4316;background:#fff7e8;border:1px solid #f1d88b}.renewal-callout-due{color:#7f1d1d;background:#fdf2f2;border:1px solid #f3c2c2}.cal-wrap{overflow-x:auto}.cal{border:1px solid var(--border);background:var(--surface);border-radius:12px;min-width:860px;overflow:hidden}.cal-header{border-bottom:1px solid var(--border);background:#faf9fe;grid-template-columns:64px repeat(7,1fr);display:grid}.cal-corner{border-right:1px solid var(--border)}.cal-day-head{text-align:center;color:var(--muted);border-right:1px solid var(--border);padding:8px 6px;font-size:12px;font-weight:600}.cal-day-head:last-child{border-right:none}.cal-day-head .cal-day-num{color:var(--text);font-size:16px;font-weight:700}.cal-day-head.today{color:var(--brand-primary);background:#efe9fb}.cal-day-head.today .cal-day-num{color:var(--brand-primary)}.cal-body{grid-template-columns:64px repeat(7,1fr);display:grid}.cal-times{border-right:1px solid var(--border)}.cal-time-slot{color:#9aa0ac;text-align:right;box-sizing:border-box;height:64px;padding:4px 8px 0 0;font-size:11px}.cal-col{border-right:1px solid var(--border);background-image:repeating-linear-gradient(#0000 0 63px,#f0eff7 63px 64px);position:relative}.cal-col:last-child{border-right:none}.cal-col.today{background-color:#faf8ff}.cal-appt{color:#fff;cursor:pointer;text-align:left;border:0;border-radius:5px;margin-left:2px;padding:3px 6px;font-family:inherit;font-size:10px;line-height:1.25;transition:transform .12s,box-shadow .12s;position:absolute;overflow:hidden;box-shadow:0 1px 2px #00000026}.cal-appt:hover,.cal-appt:focus-visible{z-index:10;outline:none;overflow:visible;transform:scale(1.015);box-shadow:0 8px 22px #00000047}.cal-appt-rbt{background:var(--brand-anchor)}.cal-appt-bcba{background:var(--brand-primary);opacity:.92;border-left:2px solid #ffffffb3}.cal-appt-bcba.solo{opacity:.96;border-left:none}.cal-appt.cancelled{opacity:.5}.cal-appt.cancelled .cal-appt-cpt{text-decoration:line-through}.cal-appt-time{opacity:.95;font-weight:700}.cal-appt-client{font-weight:600}.cal-appt-staff{opacity:.9;font-size:9.5px}.cal-appt-cpt{background:#0000002e;border-radius:3px;margin-top:2px;padding:0 4px;font-weight:700;display:inline-block}.cal-appt-status{vertical-align:middle;border-radius:10px;margin-left:4px;padding:0 4px;font-size:9px;font-weight:800}.cal-appt-status.cancel{background:#dc2626}.cal-appt-status.noshow{background:#1f2937}.cal-detail-overlay{z-index:100;background:#14102847;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.cal-detail{width:100%;max-width:420px}.cal-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.cal-detail-title{font-size:18px;font-weight:700}.cal-detail-sub{color:var(--muted);font-size:13px}.cal-detail-note{color:#15803d;margin:12px 0 0;font-size:13px}@media (max-width:820px){.cal{min-width:720px}}.cal-detail-actions{flex-shrink:0;gap:8px;display:flex}.appt-drawer{width:100%;max-width:520px;max-height:86vh;overflow-y:auto}.appt-field.locked{opacity:.55;pointer-events:none}.appt-note-edit{color:#1d4ed8;background:#eff5ff;border:1px solid #cfe0ff;border-radius:8px;margin:0;padding:8px 10px;font-size:12px;line-height:1.4}.appt-note-locked{color:#b3261e;background:#fdf2f2;border:1px solid #f3c2c2;border-radius:8px;margin:0;padding:8px 10px;font-size:12px;line-height:1.4}.appt-cascade{border:1px solid var(--border);background:#faf9fe;border-radius:8px;padding:10px 12px}.appt-cascade-row{color:var(--text);align-items:center;gap:8px;font-size:14px;display:flex}.appt-cascade .elig-note{margin-top:6px}.auth-panel{margin-top:20px}.auth-head{margin-bottom:12px}.auth-title{font-size:16px;font-weight:700}.auth-sub{color:var(--muted);margin-top:2px;font-size:12px}.auth-list{flex-direction:column;gap:10px;display:flex}.auth-row{border:1px solid var(--border);background:#fff;border-radius:10px;grid-template-columns:minmax(150px,1.2fr) 2fr auto;align-items:center;gap:14px;padding:10px 12px;display:grid}.auth-row.warn{background:#fffaf2;border-color:#f0c98a}.auth-row.crit{background:#fdf3f3;border-color:#f1b0b0}.auth-row-id{font-size:13px;font-weight:700}.auth-row-meta{color:var(--muted);margin-top:2px;font-size:11px}.auth-row-m{min-width:0}.auth-bar{background:#f0f0f4;border-radius:5px;height:8px;display:flex;overflow:hidden}.auth-seg-used{background:#0f9b78;height:100%}.auth-seg-resv{background:repeating-linear-gradient(45deg,#6aa9f0,#6aa9f0 3px,#c5dcfa 3px 6px);height:100%}.auth-row.warn .auth-seg-used{background:#d98a1f}.auth-row.crit .auth-seg-used{background:#dc2626}.auth-text{color:var(--text);margin-top:5px;font-size:12px}.auth-resv{color:#2a7de1}.auth-row-r{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.auth-pill-low{color:#92400e;background:#fef3c7}.auth-pill-over{color:#991b1b;background:#fee2e2}.auth-exp{font-weight:600}.auth-exp-active{color:#0f9b78;background:#e6f9f3}.auth-exp-reassess{color:#2a55c6;background:#eef4ff}.auth-exp-submit{color:#92400e;background:#fef3c7}.auth-exp-expired{color:#991b1b;background:#fee2e2}@media (max-width:700px){.auth-row{grid-template-columns:1fr;gap:6px}.auth-row-r{flex-flow:wrap;align-items:center}}.appt-daycap-warn{color:#92400e;cursor:help;z-index:2;background:#fef3c7;border:1px solid #f59e0b;border-radius:999px;padding:1px 4px;font-size:9px;font-weight:800;line-height:1;position:absolute;bottom:3px;right:4px;box-shadow:0 1px 2px #0000002e}.cal-appt.appt-daycap-over{box-shadow:inset 0 0 0 2px #f59e0b}.appt-cap-strip{border:1px solid var(--border);background:#f8fafc;border-left:4px solid #94a3b8;border-radius:8px;padding:10px 12px;font-size:13px}.appt-cap-strip.ok{background:#f3fbf8;border-left-color:#0f9b78}.appt-cap-strip.warn{background:#fffaf2;border-left-color:#d98a1f}.appt-cap-strip.bad{background:#fdf3f3;border-left-color:#dc2626}.appt-cap-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.appt-cap-pill{letter-spacing:.3px;color:#334155;background:#e2e8f0;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:800}.appt-cap-strip.ok .appt-cap-pill{color:#0f9b78;background:#e6f9f3}.appt-cap-strip.warn .appt-cap-pill{color:#92400e;background:#fef3c7}.appt-cap-strip.bad .appt-cap-pill{color:#991b1b;background:#fee2e2}.appt-cap-title{color:var(--text);font-weight:600}.appt-cap-rows{flex-direction:column;gap:3px;display:flex}.appt-cap-row{justify-content:space-between;gap:12px;display:flex}.appt-cap-row .lbl{color:var(--muted)}.appt-cap-row .v{color:var(--text);text-align:right;font-weight:600}.appt-cap-row .v.bad{color:#991b1b}.appt-cap-row.sub .lbl{padding-left:12px;font-style:italic;font-weight:400}.appt-cap-note{color:#991b1b;margin:8px 0 0;font-size:12px;line-height:1.45}.appt-cap-strip.warn .appt-cap-note{color:#92400e}
