:root{color:#132239;font-synthesis:none;--navy:#062543;--blue:#0b63f6;--green:#15a36d;--teal:#10a6a4;--amber:#f0a21a;--line:#dfe5ec;--muted:#708096;background:#f5f7fa;font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{color:#fff;z-index:30;background:linear-gradient(#062543 0%,#062b4c 100%);flex-direction:column;width:194px;padding:20px 12px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:10px;padding:0 6px 28px;display:flex}.brand-mark{border:2px solid #fff;border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.brand-mark svg{width:23px}.brand b{font-size:17px;display:block}.brand span{opacity:.66;font-size:11px}.sidebar nav{gap:6px;display:grid}.sidebar nav button{color:#d9e7f4;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:13px;height:44px;padding:0 14px;font-size:14px;display:flex}.sidebar nav button svg{width:19px}.sidebar nav button.active,.sidebar nav button:hover{color:#fff;background:#0b63f6}.profile{border-top:1px solid #31506b;align-items:center;gap:9px;margin-top:auto;padding:18px 7px 0;display:flex}.profile>span{color:#17334e;background:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.profile div{display:grid}.profile b{font-size:13px}.profile small{opacity:.65;font-size:11px}.profile svg{opacity:.6;width:16px;margin-left:auto}.workspace{flex:1;min-width:0;margin-left:194px;padding:0 22px 24px}.workspace>header{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:16px;height:86px;margin:0 -22px 20px;padding:0 22px;display:flex}.workspace h1{margin:0 0 4px;font-size:22px}.workspace header p{color:var(--muted);margin:0;font-size:12px}.workspace header .primary{margin-left:auto}.primary{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:7px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 17px;font-size:13px;font-weight:650;display:inline-flex;box-shadow:0 5px 14px #0b63f62b}.primary svg{width:17px}.mobile-menu{background:0 0;border:0;display:none}.metrics{grid-template-columns:repeat(4,minmax(145px,1fr));gap:14px;margin-bottom:16px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:13px;min-height:92px;padding:16px;display:flex}.metric-icon{border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.metric-icon svg{width:21px}.metric-icon.blue{color:var(--blue);background:#eaf2ff}.metric-icon.green{color:var(--green);background:#e9f7f1}.metric-icon.teal{color:var(--teal);background:#e8f7f7}.metric-icon.amber{color:var(--amber);background:#fff4df}.metric div:last-child{display:grid}.metric span,.metric small{color:var(--muted);font-size:11px}.metric strong{font-size:21px;line-height:1.35}.content-grid{grid-template-columns:minmax(550px,1.65fr) minmax(390px,.95fr);align-items:start;gap:16px;display:grid}.student-area,.detail{border:1px solid var(--line);background:#fff;border-radius:8px}.toolbar{border-bottom:1px solid var(--line);gap:10px;padding:13px;display:flex}.search{border:1px solid var(--line);border-radius:6px;flex:1;align-items:center;gap:8px;height:38px;padding:0 11px;display:flex}.search svg{color:#9aa8ba;width:17px}.search input{border:0;outline:0;width:100%;font-size:12px}.toolbar select{border:1px solid var(--line);color:#40516a;background:#fff;border-radius:6px;padding:0 10px;font-size:12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#718197;border-bottom:1px solid var(--line);white-space:nowrap;padding:11px 12px;font-size:11px;font-weight:600}td{vertical-align:middle;cursor:pointer;white-space:nowrap;border-bottom:1px solid #e9edf2;padding:13px 12px}td small{color:#7b899c;margin-top:4px;font-size:10px;display:block}tr.selected{box-shadow:inset 3px 0 var(--blue);background:#edf5ff}tbody tr:hover{background:#f6f9fc}.progress-cell{min-width:80px}.progress-cell>span{font-size:11px}.progress-cell>div{background:#e5eaf0;border-radius:5px;height:4px;margin-top:6px}.progress-cell i{background:#10a15f;border-radius:5px;height:100%;display:block}.status{border:1px solid;border-radius:5px;padding:3px 7px;font-size:10px}.s-练习中{color:#0b63f6;background:#f4f8ff;border-color:#8ab5ff}.s-已完成{color:#16865f;background:#effaf5;border-color:#87d1b4}.s-未开始{color:#718197}.s-待付款{color:#a56700;background:#fff8e8;border-color:#efc46f}.empty{text-align:center;color:var(--muted);padding:50px}.detail{overflow:hidden}.detail-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:15px;display:flex}.detail-head h2{margin:0;font-size:17px}.detail-head span{color:var(--muted);font-size:10px}.detail button{cursor:pointer;background:0 0;border:0}.detail-head button svg{width:18px}.identity{gap:14px;padding:14px;display:flex}.avatar{color:#17344f;background:linear-gradient(145deg,#dfe9f3,#9eb8cf);border-radius:8px;place-items:center;width:75px;height:88px;font-size:18px;font-weight:800;display:grid;position:relative}.avatar button{background:#fff;border-radius:50%;width:25px;height:25px;position:absolute;bottom:3px;right:3px;box-shadow:0 2px 8px #223b5a30}.avatar svg{width:13px}.contact{gap:5px;min-width:0;display:grid}.contact span{color:#40516a;overflow-wrap:anywhere;align-items:center;gap:7px;font-size:10px;display:flex}.contact svg{color:#63758c;flex:none;width:14px}.license-row{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:1fr 125px;gap:12px;padding:13px 14px;display:grid}.license-row>div:first-child{display:grid}.license-row small{color:var(--muted);font-size:10px}.license-row strong{font-size:16px}.license-row span{color:var(--blue);margin:3px 0;font-size:11px}.license-row em{color:var(--muted);font-size:10px;font-style:normal}.document{border:1px dashed #a8b5c4;border-radius:7px;place-items:center;padding:8px;font-size:9px;display:grid}.document svg{color:#53708b;width:22px}.document b{color:var(--green)}.detail>section:not(.license-row){border-bottom:1px solid var(--line);padding:13px 14px}.section-title{justify-content:space-between;align-items:center;display:flex}.section-title h3{margin:0 0 10px;font-size:13px}.section-title button{color:var(--blue);font-size:10px;font-weight:650}.section-title svg{color:#8896a8;width:15px}.course-grid{grid-template-columns:1.05fr 100px .85fr;align-items:stretch;gap:9px;display:grid}.course-grid>div{border:1px solid var(--line);border-radius:7px;padding:10px}.package{align-content:center;display:grid}.package small,.remaining span,.remaining small{color:var(--muted);font-size:9px}.package strong{margin:3px 0 10px;font-size:11px}.package button{text-align:left;padding:0;font-size:11px;font-weight:750}.package button.paid{color:#18334d}.package button.unpaid{color:#a56700}.ring{--pct:0deg;aspect-ratio:1;background:conic-gradient(var(--blue) var(--pct),#e5eaf0 0);border-radius:50%;padding:7px}.ring>div{text-align:center;background:#fff;border-radius:50%;place-content:center;height:100%;display:grid}.ring strong{font-size:20px}.ring strong small{font-size:10px}.ring span{color:var(--muted);font-size:9px}.remaining{align-content:center;display:grid}.remaining b{color:var(--blue);margin:7px 0;font-size:13px}.mini-charts{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mini-charts>div{border:1px solid var(--line);border-radius:7px;height:112px;padding:9px}.mini-charts small{color:var(--muted);font-size:9px;display:block}.mini-charts strong{font-size:17px}.bars{border-bottom:1px solid #dfe5ec;align-items:end;gap:8px;height:56px;margin-top:7px;display:flex}.bars i{background:#0b63f6;border-radius:2px 2px 0 0;flex:1;min-height:3px}.mini-charts svg{width:100%;height:55px}.mini-charts path{fill:none;stroke:#10a6a4;stroke-width:3px}.mini-charts circle{fill:#10a6a4}.event{gap:10px;padding:7px 0 7px 2px;display:flex;position:relative}.event>i{background:#0b63f6;border-radius:50%;width:8px;height:8px;margin-top:3px;box-shadow:0 0 0 4px #eaf2ff}.event>div{display:grid}.event b{font-size:10px}.event span{color:var(--muted);margin-top:3px;font-size:9px}.modal-backdrop{z-index:100;background:#061b2e99;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:min(430px,100%);box-shadow:0 24px 70px #0005}.modal-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:17px 20px;display:flex}.modal-title h2{margin:0;font-size:18px}.modal-title button{background:0 0;border:0}.modal-title svg{width:19px}.modal form{gap:14px;padding:20px;display:grid}.modal label{gap:6px;font-size:12px;font-weight:650;display:grid}.modal input{border:1px solid var(--line);outline-color:var(--blue);border-radius:6px;height:40px;padding:0 10px;font-weight:400}.modal .primary{margin-top:4px}.mobile-menu svg{width:21px}.action-notice{color:#176c4c;background:#eaf8f1;border:1px solid #9ed8be;border-radius:8px;align-items:center;gap:9px;margin-bottom:14px;padding:10px 12px;font-size:12px;display:flex}.action-notice>svg{flex:none;width:18px}.action-notice span{line-height:1.45}.action-notice button{color:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:2px}.action-notice button svg{width:16px;display:block}.schedule-count{color:var(--blue);font-size:10px;font-weight:700}.schedule-list{gap:8px;display:grid}.schedule-item{background:#f8fbff;border:1px solid #dfe8f2;border-radius:8px;gap:5px;padding:10px 76px 10px 10px;display:grid;position:relative}.schedule-item.cancelled{background:#f7f8fa;border-color:#e3e7ec}.schedule-item.cancelled>.schedule-date,.schedule-item.cancelled>span,.schedule-item.cancelled>small{opacity:.62}.schedule-date{color:#123b63;align-items:center;gap:6px;display:flex}.schedule-date svg{width:14px}.schedule-date b{font-size:11px}.schedule-item>span{color:#31465f;font-size:10px}.schedule-item>small{color:var(--muted);align-items:center;gap:5px;font-size:9px;display:flex}.schedule-item>small svg{flex:none;width:12px}.schedule-status{border-radius:999px;padding:3px 7px;font-size:9px;font-style:normal;font-weight:700;position:absolute;top:10px;right:9px}.schedule-status.scheduled{color:var(--blue);background:#eaf2ff}.schedule-status.completed{color:var(--green);background:#e9f7f1}.schedule-status.cancelled{color:#6f7c8c;background:#f1f3f5}.schedule-actions{border-top:1px solid #e3eaf2;margin-top:3px;padding-top:7px}.schedule-actions .schedule-cancel{color:#b63a34;padding:0;font-size:10px;font-weight:700}.schedule-actions .schedule-cancel:hover{text-decoration:underline}.cancel-schedule-modal{gap:14px;padding:20px;display:grid}.cancel-schedule-summary{background:#f5f8fc;border:1px solid #dde6ef;border-radius:8px;align-items:center;gap:11px;padding:12px;display:flex}.cancel-schedule-summary>svg{color:var(--blue);width:20px}.cancel-schedule-summary div{gap:3px;display:grid}.cancel-schedule-summary b{font-size:13px}.cancel-schedule-summary span{color:var(--muted);font-size:11px}.cancel-schedule-modal>p{color:#41546a;margin:0;font-size:12px;line-height:1.55}.calendar-warning{color:#72551b;background:#fff7e8;border:1px solid #efcd87;border-radius:8px;align-items:flex-start;gap:9px;padding:11px;font-size:11px;line-height:1.5;display:flex}.calendar-warning>svg{color:#b77b0a;flex:none;width:18px}.calendar-warning span{gap:2px;display:grid}.calendar-warning b{font-size:11px}.modal-actions{justify-content:flex-end;gap:9px;margin-top:2px;display:flex}.modal-secondary,.danger{cursor:pointer;border-radius:7px;height:39px;padding:0 16px;font-size:12px;font-weight:700}.modal-secondary{color:#24415d;background:#fff;border:1px solid #cfd9e4}.danger{color:#fff;background:#bd3f39;border:1px solid #bd3f39}.modal-secondary:disabled,.danger:disabled{cursor:not-allowed;opacity:.55}.demo-banner,.error-banner{border-radius:8px;align-items:flex-start;gap:9px;margin-bottom:14px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.demo-banner{color:#755719;background:#fff8e8;border:1px solid #edcf8e}.error-banner{color:#8f2f2b;background:#fff0ef;border:1px solid #e3aaa6}.demo-banner>svg,.error-banner>svg{flex:none;width:18px}.demo-banner span,.error-banner span{gap:1px;display:grid}.error-banner button{color:inherit;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:2px}.error-banner button svg{width:16px;display:block}.sidebar nav button{position:relative}.sidebar nav button small{opacity:.72;margin-left:auto;font-size:8px}.sidebar nav button.coming-soon{cursor:not-allowed;opacity:.52}.sidebar nav button.coming-soon:hover{color:#d9e7f4;background:0 0}.profile>button{color:#fff;cursor:pointer;background:0 0;border:0;margin-left:auto;padding:9px}.profile>button svg{opacity:.75;width:17px;margin:0;display:block}.detail-empty{color:var(--muted);text-align:center;place-items:center;gap:8px;min-height:260px;padding:35px;display:grid}.detail-empty>svg{color:#9cabbc;width:34px}.detail-empty>b{color:#3a4d63;font-size:13px}.detail-empty>span{font-size:11px;line-height:1.5}.document.unavailable{background:#f8f9fb}.document.unavailable b{color:#7a8796}.schedule-empty{color:var(--muted);background:#f8fafc;border:1px dashed #cbd6e1;border-radius:8px;align-items:center;gap:9px;padding:12px;font-size:10px;line-height:1.45;display:flex}.schedule-empty>svg{flex:none;width:18px}.schedule-empty span{display:grid}.paid-total{color:#18334d;margin:2px 0 7px;font-size:14px}.package .record-payment{color:var(--blue);text-align:center;background:#edf4ff;border-radius:5px;padding:6px 8px;font-size:10px}.section-title button:disabled{color:#8b98a8;cursor:not-allowed}.form-context{color:#4d6075;background:#f5f8fc;border:1px solid #dce5ef;border-radius:7px;padding:10px;font-size:11px;line-height:1.5}.form-error{color:#a13732;background:#fff0ef;border:1px solid #e3aaa6;border-radius:7px;padding:9px 10px;font-size:11px;line-height:1.45}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.modal select{border:1px solid var(--line);outline-color:var(--blue);background:#fff;border-radius:6px;height:40px;padding:0 10px}.search:focus-within{border-color:#6aa0fa;box-shadow:0 0 0 3px #0b63f617}.table-wrap tbody tr:focus-visible,.sidebar button:focus-visible,.detail button:focus-visible,.workspace button:focus-visible{outline-offset:2px;outline:3px solid #78a8f7}.modal .primary{min-height:44px}.empty{justify-items:center;gap:10px;display:grid}.empty b{font-size:12px}.empty button{color:var(--blue);cursor:pointer;background:0 0;border:0;font-size:11px;font-weight:700}@media (width<=1180px){.content-grid{grid-template-columns:minmax(520px,1fr) 370px}.metrics{grid-template-columns:repeat(2,1fr)}.course-grid{grid-template-columns:1fr 95px}.remaining{display:none}}@media (width<=900px){.sidebar{transition:all .25s;transform:translate(-100%)}.sidebar.open{transform:translate(0);box-shadow:10px 0 30px #001b3380}.workspace{margin-left:0;padding:0 14px 20px}.workspace>header{margin:0 -14px 14px;padding:0 14px}.mobile-menu{place-items:center;display:grid}.content-grid{grid-template-columns:1fr}.detail{position:relative}.metrics{grid-template-columns:repeat(4,minmax(140px,1fr));overflow:auto}.metric{min-width:150px}}@media (width<=600px){.workspace>header{height:74px}.workspace header p{display:none}.workspace h1{font-size:18px}.primary{padding:0 12px}.header-actions .primary{font-size:0}.header-actions .primary svg{margin:0}.metrics{scroll-snap-type:x mandatory;display:flex;overflow:auto}.metric{scroll-snap-align:start;min-width:148px}.content-grid{display:block}.student-area{border-radius:8px}.toolbar{flex-direction:column}.toolbar select{height:38px}.table-wrap{overflow:visible}table,thead,tbody,tr,td{display:block}thead{display:none}tbody{display:grid}.table-wrap tr{border-bottom:1px solid var(--line);padding:13px 44px 13px 14px;position:relative}td{white-space:normal;border:0;padding:2px 0}td:nth-child(2),td:nth-child(3),td:nth-child(6){display:none}td:nth-child(4){width:65%;margin-top:9px}td:nth-child(5){position:absolute;top:14px;right:12px}.detail{z-index:60;border-radius:0;margin:0;position:fixed;inset:0;overflow:auto}.detail-head{z-index:3;background:#fff;position:sticky;top:0}.detail-empty{display:none}.identity{grid-template-columns:70px 1fr;display:grid}.avatar{width:70px;height:80px}.license-row{grid-template-columns:1fr 105px}.course-grid{grid-template-columns:1fr 90px}.form-row{grid-template-columns:1fr}.modal form{padding:16px}.modal .primary{width:100%;font-size:13px}.modal-backdrop{padding:12px}.modal{max-height:calc(100vh - 24px);overflow:auto}}.detail-load-error{text-align:center;align-content:center;justify-items:center;gap:12px;min-height:320px;padding:36px;display:grid}.detail-load-error>svg{color:#d4564e;width:34px}.detail-load-error h2{margin:0;font-size:17px}.detail-load-error p{color:var(--muted);max-width:280px;margin:0;font-size:11px;line-height:1.6}.detail-load-error .primary{background:var(--blue);color:#fff;margin-top:6px}.lesson-records{gap:8px;display:grid}.schedule-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.schedule-actions .schedule-confirm{color:#08734c;background:#eaf8f1;border:1px solid #9bd7ba;border-radius:6px;align-items:center;gap:4px;min-height:30px;padding:5px 8px;font-size:10px;font-weight:750;display:inline-flex}.schedule-actions .schedule-confirm:hover{background:#ddf4e9}.schedule-actions .schedule-confirm:disabled{cursor:wait;opacity:.62}.schedule-actions .schedule-confirm svg{width:13px}.schedule-actions .schedule-confirm.waiting{color:#6f7d8e;cursor:default;background:#f2f4f7;border-color:#d7dde5}.lesson-record{border:1px solid var(--line);background:#fbfcfe;border-radius:8px;gap:9px;padding:11px 12px;transition:border-color .18s,box-shadow .18s;display:grid}.lesson-record:focus-within{border-color:#8ab5ff;box-shadow:0 0 0 3px #0b63f612}.lesson-record.voided{background:#f7f8fa;border-style:dashed;border-color:#dfe4ea}.lesson-record.voided .lesson-record-main,.lesson-record.voided .lesson-record-main strong,.lesson-record.voided .lesson-record-main p{color:#667587}.lesson-record-main{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.lesson-record-main>*{min-width:0}.lesson-record-main strong{color:#263b53;overflow-wrap:anywhere;font-size:12px;line-height:1.45;display:block}.lesson-record-main p{color:#52657b;overflow-wrap:anywhere;margin:3px 0 0;font-size:11px;line-height:1.5}.lesson-record-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:5px 10px;font-size:10px;line-height:1.45;display:flex}.lesson-record-meta svg{flex:none;width:13px}.lesson-record-actions{border-top:1px solid #e8edf2;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;padding-top:8px;display:flex}.lesson-record-actions button,.detail .calendar-sync-action,.detail .calendar-retry{color:#1553a4;cursor:pointer;background:#edf4ff;border:1px solid #c9dcfb;border-radius:6px;justify-content:center;align-items:center;gap:5px;min-height:34px;padding:6px 10px;font-size:11px;font-weight:700;display:inline-flex}.lesson-record-actions button:hover,.detail .calendar-sync-action:hover,.detail .calendar-retry:hover{filter:brightness(.97)}.lesson-record-actions button:disabled,.detail .calendar-sync-action:disabled,.detail .calendar-retry:disabled{cursor:not-allowed;opacity:.55}.lesson-record-actions button svg,.calendar-sync-action svg,.calendar-retry svg{flex:none;width:14px}.lesson-record-actions .lesson-void,.detail .lesson-void{color:#a13732;background:#fff4f3;border:1px solid #e7b3af;border-radius:6px;font-weight:700}.void-lesson-modal{gap:14px;padding:20px;display:grid}.void-lesson-modal textarea{border:1px solid var(--line);font:inherit;outline-color:var(--blue);resize:vertical;border-radius:6px;width:100%;min-height:96px;padding:9px 10px;line-height:1.5}.void-impact{color:#72551b;background:#fff7e8;border:1px solid #efcd87;border-radius:8px;align-items:flex-start;gap:9px;padding:11px 12px;font-size:11px;line-height:1.55;display:flex}.void-impact svg{color:#b77b0a;flex:none;width:18px;margin-top:1px}.void-impact>span,.void-impact>div{gap:2px;display:grid}.void-impact strong{font-size:11px}.calendar-sync-badge{color:#667587;background:#f1f3f5;border:1px solid #dce1e7;border-radius:999px;align-items:center;gap:5px;width:fit-content;max-width:100%;padding:4px 8px;font-size:10px;font-style:normal;font-weight:700;line-height:1.2;display:inline-flex}.calendar-sync-badge svg{flex:none;width:13px}.calendar-sync-badge.synced,.calendar-sync-badge[data-state=synced]{color:#176c4c;background:#e9f7f1;border-color:#a4d9c3}.calendar-sync-badge.pending,.calendar-sync-badge[data-state=pending]{color:#225a9a;background:#eef4ff;border-color:#b9d2fa}.calendar-sync-badge.pending svg,.calendar-sync-badge[data-state=pending] svg{animation:1.1s linear infinite calendar-sync-spin}.calendar-sync-badge.failed,.calendar-sync-badge[data-state=failed]{color:#8f2f2b;background:#fff0ef;border-color:#e3aaa6}.calendar-sync-badge.unconfigured,.calendar-sync-badge[data-state=unconfigured]{color:#52657b;background:#f1f3f5;border-color:#d7dde4}.detail .calendar-sync-action{color:#7a5714;background:#fff7e8;border-color:#efcd87}.detail .calendar-retry{color:#993832;background:#fff4f3;border-color:#e3aaa6}.lesson-record-actions button:focus-visible,.lesson-void:focus-visible,.calendar-sync-action:focus-visible,.calendar-retry:focus-visible,.void-lesson-modal textarea:focus-visible{outline-offset:2px;outline:3px solid #78a8f7}@keyframes calendar-sync-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.lesson-record{transition:none}.calendar-sync-badge.pending svg,.calendar-sync-badge[data-state=pending] svg{animation:none}}@media (width<=600px){.lesson-record{padding:12px}.lesson-record-main{gap:6px;display:grid}.lesson-record-meta{font-size:11px}.lesson-record-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.lesson-record-actions button,.detail .lesson-void,.detail .calendar-sync-action,.detail .calendar-retry,.detail .section-title button,.detail .record-payment,.header-actions .primary{min-width:44px;min-height:44px}.lesson-record-actions button,.detail .lesson-void,.detail .calendar-sync-action,.detail .calendar-retry{width:100%}.calendar-sync-action,.calendar-retry{min-height:44px}.calendar-sync-badge{white-space:normal;font-size:11px}.void-lesson-modal{padding:16px}.void-lesson-modal .modal-actions{grid-template-columns:1fr;display:grid}.void-lesson-modal .modal-secondary,.void-lesson-modal .danger{width:100%;min-height:44px}}.student-area{min-width:0}.student-table{table-layout:fixed;min-width:720px}.student-table .col-name{width:17%}.student-table .col-contact{width:18%}.student-table .col-package{width:20%}.student-table .col-booked{width:14%}.student-table .col-progress{width:13%}.student-table .col-status,.student-table .col-instructor{width:9%}.student-table td.col-name,.student-table td.col-package{overflow-wrap:anywhere;white-space:normal}.booked-hours{gap:2px;line-height:1.3;display:grid}.booked-hours>span{display:none}.booked-hours strong{color:#1553a4;font-size:12px}.booked-hours small{color:var(--muted);margin:0;font-size:9px}.booked-hours.empty-booking strong,.booked-hours.empty-booking small{color:#8996a7}.booked-detail{color:#1553a4;margin:3px 0 10px;font-size:11px}@media (width>=1400px){.content-grid{grid-template-columns:minmax(720px,1.9fr) minmax(370px,.85fr)}}@media (width>=601px) and (width<=1399px){.student-table .col-contact{display:none}}@media (width<=600px){.student-table{table-layout:auto;min-width:0}.student-table .col-name,.student-table .col-booked,.student-table .col-progress,.student-table .col-status{width:auto;display:block}.student-table .col-contact,.student-table .col-package,.student-table .col-instructor{display:none}.student-table td.col-booked{width:auto;margin-top:7px;padding:0}.student-table td.col-progress{width:100%;margin-top:10px;position:static}.student-table td.col-status{position:absolute;top:14px;right:12px}.booked-hours{align-items:center;gap:5px;display:flex}.booked-hours>span{color:var(--muted);font-size:10px;display:inline}.booked-hours strong{font-size:11px}.booked-hours small{display:none}}.calendar-sync-row{flex-direction:column;align-items:flex-start;gap:5px;margin-top:2px;display:flex}.calendar-sync-error{overflow-wrap:anywhere;max-width:100%;line-height:1.45;color:#8f2f2b!important;font-size:9px!important;display:block!important}.lesson-record-meta em{color:#667587;background:#f1f3f5;border-radius:999px;padding:2px 6px;font-style:normal;font-weight:700}.lesson-record:focus-visible{outline-offset:2px;outline:3px solid #78a8f7}.lesson-record:not(.voided),.lesson-record.active{border-left:3px solid #8ab5ff}.lesson-record.voided{border-left:3px solid #a7b0bc}.lesson-record-actions .lesson-edit,.detail .lesson-edit{color:#1553a4;background:#edf4ff;border:1px solid #c9dcfb}.lesson-record-actions .lesson-delete,.detail .lesson-delete{color:#993832;background:#fff4f3;border:1px solid #e3aaa6}.lesson-record-actions .lesson-delete:hover,.detail .lesson-delete:hover{color:#fff;filter:none;background:#bd3f39;border-color:#bd3f39}.lesson-record-actions .lesson-edit:disabled,.lesson-record-actions .lesson-delete:disabled,.detail .lesson-edit:disabled,.detail .lesson-delete:disabled{cursor:not-allowed;opacity:.55}.lesson-edit:focus-visible,.lesson-delete:focus-visible{outline-offset:2px;outline:3px solid #78a8f7}.edit-lesson-modal{gap:14px;padding:20px;display:grid}.edit-lesson-modal textarea{border:1px solid var(--line);font:inherit;outline-color:var(--blue);resize:vertical;border-radius:6px;width:100%;min-height:88px;padding:9px 10px;line-height:1.5}.edit-lesson-modal input:focus-visible,.edit-lesson-modal select:focus-visible,.edit-lesson-modal textarea:focus-visible{border-color:#6aa0fa;outline:0;box-shadow:0 0 0 3px #0b63f617}@media (width<=600px){.lesson-record-actions .lesson-edit,.lesson-record-actions .lesson-delete,.detail .lesson-edit,.detail .lesson-delete{width:100%;min-width:44px;min-height:44px}.edit-lesson-modal{padding:16px}.edit-lesson-modal .modal-actions{grid-template-columns:1fr;display:grid}.edit-lesson-modal .modal-secondary,.edit-lesson-modal .primary,.edit-lesson-modal .danger{width:100%;min-height:44px}}.quality-audit-bar{background:#ecf8f2;border:1px solid #9bd7ba;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 14px;display:flex}.quality-audit-bar>span{color:#176c4c;grid-template-columns:20px auto;align-items:center;column-gap:7px;display:grid}.quality-audit-bar>span>svg{grid-row:1/3;width:18px}.quality-audit-bar b{font-size:11px}.quality-audit-bar small{opacity:.78;font-size:9px}.quality-audit-bar button{color:#176c4c;cursor:pointer;background:#fff;border:1px solid #8bcbae;border-radius:6px;align-items:center;gap:6px;min-height:34px;padding:6px 10px;font-size:10px;font-weight:750;display:flex}.quality-audit-bar button svg{width:15px}.quality-audit-bar button:disabled{cursor:not-allowed;opacity:.6}.detail-head>div:first-child{min-width:0}.detail-head h2,.detail-head>div:first-child>span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.detail-head-actions{flex:none;align-items:center;gap:6px;display:flex}.detail .detail-edit{color:#1553a4;background:#edf4ff;border:1px solid #c9dcfb;border-radius:6px;align-items:center;gap:5px;min-height:34px;padding:6px 9px;font-size:10px;font-weight:750;display:inline-flex}.detail .detail-edit:hover{background:#e4efff}.detail .detail-edit svg{flex:none;width:14px}.detail .detail-close{border-radius:6px;justify-content:center;align-items:center;min-width:34px;min-height:34px;display:inline-flex}.detail-action-notice{display:none}.contact .contact-note{color:#52657b;border-top:1px solid #e7ecf1;margin-top:2px;padding-top:5px;line-height:1.45}.detail .student-hours-summary{background:linear-gradient(135deg,#eef6ff 0%,#f8fbff 100%);border-top:1px solid #dbe8f7;border-bottom:1px solid #cfe0f5;grid-template-columns:1.35fr 1fr 1fr;align-items:stretch;padding:0;display:grid}.student-hours-summary>div{align-content:center;gap:4px;min-height:72px;padding:12px 16px;display:grid}.student-hours-summary>div+div{border-left:1px solid #d8e5f3}.student-hours-summary span{color:#6a7d94;font-size:10px}.student-hours-summary strong{color:#153b65;font-size:22px;line-height:1}.student-hours-summary strong small{color:#5f7590;margin-left:3px;font-size:10px;font-weight:650}.student-hours-summary .hours-summary-primary{background:#e6f1ff;align-items:center;gap:10px;display:flex}.hours-summary-primary>svg{color:#fff;background:#0b63f6;border-radius:50%;flex:none;width:34px;height:34px;padding:8px}.hours-summary-primary>span{gap:5px;display:grid}.hours-summary-primary strong{color:#0b63f6;font-size:25px}.student-edit-dialog{flex-direction:column;width:min(720px,100%);max-height:calc(100vh - 40px);display:flex;overflow:hidden}.student-edit-dialog .modal-title{flex:none}.modal .student-edit-form{gap:16px;overflow:auto}.student-edit-form fieldset{border:0;gap:12px;min-width:0;margin:0;padding:0;display:grid}.student-edit-form fieldset+fieldset{border-top:1px solid #e5eaf0;padding-top:15px}.student-edit-form legend{color:#263b53;margin-bottom:11px;padding:0;font-size:13px;font-weight:800}.student-edit-form textarea{border:1px solid var(--line);font:inherit;outline-color:var(--blue);resize:vertical;border-radius:6px;width:100%;min-height:76px;padding:9px 10px;line-height:1.5}.student-edit-form input:focus-visible,.student-edit-form select:focus-visible,.student-edit-form textarea:focus-visible{border-color:#6aa0fa;outline:0;box-shadow:0 0 0 3px #0b63f617}.student-edit-form [aria-invalid=true]{border-color:#d87a75}.student-edit-help{color:var(--muted);margin-top:-5px;font-size:10px;line-height:1.45}.form-warning{color:#72551b;background:#fff7e8;border:1px solid #efcd87;border-radius:7px;align-items:flex-start;gap:8px;padding:9px 10px;font-size:11px;line-height:1.5;display:flex}.form-warning svg{flex:none;width:17px;margin-top:1px}.modal .student-edit-checkbox{cursor:pointer;background:#f5f8fc;border:1px solid #dce5ef;border-radius:7px;align-items:flex-start;gap:9px;padding:10px;display:flex}.student-edit-checkbox input{flex:none;width:18px;height:18px;margin:1px 0 0}.student-edit-checkbox span{gap:2px;display:grid}.student-edit-checkbox small{color:var(--muted);font-size:10px;font-weight:400;line-height:1.45}.student-edit-form :disabled{cursor:not-allowed}.student-edit-form .primary:disabled{box-shadow:none;opacity:.55}@media (width<=600px){.student-hours-summary>div{min-height:66px;padding:10px 12px}.student-hours-summary strong{font-size:19px}.hours-summary-primary>svg{width:30px;height:30px;padding:7px}.hours-summary-primary strong{font-size:22px}.detail .detail-edit,.detail .detail-close{min-width:44px;min-height:44px}.detail .detail-edit{padding:6px 9px}.student-edit-dialog{max-height:calc(100dvh - 24px)}.modal .student-edit-form{padding:16px}.student-edit-form .modal-actions{grid-template-columns:1fr;display:grid}.student-edit-form .modal-secondary,.student-edit-form .primary{width:100%;min-height:44px}.detail-action-notice{color:#176c4c;background:#eaf8f1;border-bottom:1px solid #9ed8be;align-items:flex-start;gap:8px;padding:9px 14px;font-size:11px;line-height:1.45;display:flex}.detail-action-notice svg{flex:none;width:17px}}.profile{color:#fff;text-align:left;cursor:default;background:0 0;border-top:1px solid #31506b}.header-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.google-connect{color:#40516a;cursor:pointer;background:#fff;border:1px solid #cfd9e4;border-radius:7px;align-items:center;gap:7px;height:40px;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.google-connect svg{width:16px}.google-connect.connected{color:#176c4c;background:#eaf8f1;border-color:#8fd3b4}.google-connect:disabled{cursor:not-allowed;opacity:.6}.sync-monitor{background:linear-gradient(135deg,#f2fbf7,#fbfefd);border:1px solid #b9dfce;border-radius:12px;grid-template-columns:minmax(260px,1.35fr) minmax(420px,2fr) auto;align-items:center;gap:18px;min-height:86px;margin:18px 24px 0;padding:14px 16px;display:grid;position:relative}.sync-monitor.danger{background:linear-gradient(135deg,#fff4f3,snow);border-color:#f0b6b1}.sync-monitor.warning{background:#fffaf0;border-color:#eed49a}.sync-monitor.working{background:#f3f8fe;border-color:#a9ccef}.sync-monitor-heading{align-items:center;gap:11px;min-width:0;display:flex}.sync-monitor-heading>div{gap:3px;min-width:0;display:grid}.sync-monitor-heading b{color:#16344f;font-size:14px}.sync-monitor-heading small{color:#60758a;white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.4;overflow:hidden}.sync-monitor-icon{color:#16805b;background:#dff4e9;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.sync-monitor-icon svg{width:19px}.sync-monitor.danger .sync-monitor-icon{color:#c64338;background:#ffe2df}.sync-monitor.working .sync-monitor-icon{color:#176bc1;background:#e0efff}.sync-monitor-stats{grid-template-columns:repeat(4,minmax(78px,1fr));gap:8px;display:grid}.sync-monitor-stats span{border-left:1px solid #d7e3e9;gap:2px;padding-left:12px;display:grid}.sync-monitor-stats small{color:#738398;font-size:10px}.sync-monitor-stats b{color:#173854;font-size:13px}.sync-monitor-retry{color:#235477;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #9bb9d3;border-radius:8px;align-items:center;gap:6px;height:36px;padding:0 13px;font-weight:700;display:inline-flex}.sync-monitor-retry svg{width:15px}.sync-monitor-retry:disabled{opacity:.55;cursor:not-allowed}@media (width<=1100px){.sync-monitor{grid-template-columns:1fr auto}.sync-monitor-stats{grid-area:2/1/auto/-1}}@media (width<=700px){.sync-monitor{grid-template-columns:1fr;gap:12px;margin:12px 12px 0;padding:13px}.sync-monitor-retry{justify-content:center;width:100%}.sync-monitor-stats{grid-area:auto;grid-template-columns:repeat(2,1fr)}}.cloud-error,.login-error{color:#c23b32}.login-screen{background:radial-gradient(circle at 75% 15%,#dfeeff,#0000 35%),#f5f7fa;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);background:#fff;border-radius:14px;gap:16px;width:min(390px,100%);padding:32px;display:grid;box-shadow:0 24px 70px #17334f1c}.login-card .brand-mark{background:var(--navy);color:#fff}.login-card h1{margin:0;font-size:25px}.login-card p{color:var(--muted);margin:-10px 0 6px;font-size:13px}.login-card label{gap:7px;font-size:12px;font-weight:650;display:grid}.login-card input{border:1px solid var(--line);outline-color:var(--blue);border-radius:7px;height:42px;padding:0 11px}.login-card .primary{width:100%;font-size:13px}.login-error{font-size:12px}.header-actions{gap:9px;margin-left:auto;display:flex}.workspace header .header-actions .primary{margin-left:0}.secondary{color:#24415d;cursor:pointer;background:#fff;border:1px solid #cfd9e4;border-radius:7px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 17px;font-size:13px;font-weight:650;display:inline-flex}.secondary svg{width:17px}.primary:disabled,.secondary:disabled{box-shadow:none;cursor:not-allowed;opacity:.5}.google-import{gap:14px;padding:20px;display:grid}.google-note{color:#52657b;align-items:flex-start;gap:9px;margin:0;font-size:12px;line-height:1.5;display:flex}.google-note svg{color:var(--blue);flex:none;width:18px}.setup-notice{background:#fff8e8;border:1px solid #f0cf86;border-radius:7px;gap:4px;padding:12px;display:grid}.setup-notice b{color:#895a00;font-size:12px}.setup-notice span{color:#7a6a4c;font-size:11px}.google-search{border:1px solid var(--line);border-radius:7px;align-items:center;height:40px;padding:0 10px;gap:7px!important;display:flex!important}.google-search svg{color:#7c8ca0;width:17px}.google-search input{border:0;min-width:0;height:36px;padding:0}.contact-picker{border:1px solid var(--line);border-radius:8px;max-height:330px;overflow:auto}.contact-option{cursor:pointer;border-bottom:1px solid #edf0f4;flex-direction:row;align-items:center;padding:10px 12px;display:flex!important}.contact-option:last-child{border-bottom:0}.contact-option:hover{background:#f6f9fc}.contact-option input{width:17px;height:17px}.contact-option span{display:grid}.contact-option b{font-size:12px}.contact-option small{color:var(--muted);margin-top:2px;font-size:10px;font-weight:400}@media (width<=600px){.header-actions{gap:5px}.header-actions .secondary{padding:0 12px;font-size:0}.header-actions .secondary svg{margin:0}}.calendar-overview{gap:14px;min-width:0;display:grid}.calendar-overview button{font:inherit}.calendar-google-layout{grid-template-columns:178px minmax(0,1fr) 222px;align-items:stretch;gap:0;min-width:0;display:grid}.calendar-main-column{border-left:1px solid #e0e6ed;border-right:1px solid #e0e6ed;min-width:0;padding:0 10px}.calendar-utility-rail{background:#fff;min-width:0;padding:0 14px 14px 0}.calendar-student-search{z-index:8;position:relative}.calendar-student-search>label{background:#fff;border:1px solid #d9e2ec;border-radius:8px;align-items:center;gap:7px;height:36px;padding:0 9px;transition:border-color .16s,box-shadow .16s;display:flex}.calendar-student-search>label:focus-within{border-color:#75a7f7;box-shadow:0 0 0 3px #0b63f615}.calendar-student-search label svg{color:#73849a;flex:none;width:15px}.calendar-student-search input{color:#18324c;background:0 0;border:0;outline:0;width:100%;min-width:0;font-size:12px}.calendar-student-results{background:#fff;border:1px solid #dce4ed;border-radius:10px;width:272px;max-height:310px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 16px 38px #17324f2b}.calendar-student-results button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:50px;padding:7px;display:grid}.calendar-student-results button:hover{background:#f0f6ff}.calendar-student-results button>span{color:#244965;background:#e3edf8;border-radius:50%;place-items:center;width:34px;height:34px;font-size:10px;font-weight:750;display:grid}.calendar-student-results button div{gap:3px;min-width:0;display:grid}.calendar-student-results b,.calendar-student-results small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-student-results b{color:#19324c;font-size:11px}.calendar-student-results small{color:#73849a;font-size:9px}.calendar-student-results em{color:#0b63f6;font-size:10px;font-style:normal;font-weight:700}.calendar-student-results p{color:#7b899a;text-align:center;margin:0;padding:18px 10px;font-size:11px}.calendar-student-drawer-layer{z-index:90;pointer-events:none;position:fixed;inset:0}.calendar-student-drawer-backdrop{opacity:1;pointer-events:auto;cursor:default;background:#071c303d;border:0;position:absolute;inset:0}.calendar-student-drawer{pointer-events:auto;background:#fff;width:min(480px,100vw - 24px);animation:.2s ease-out calendar-drawer-in;position:absolute;top:0;bottom:0;right:0;overflow:auto;box-shadow:-18px 0 48px #071c3030}.calendar-student-drawer .detail{border:0;border-radius:0;min-height:100%}.calendar-student-drawer .detail-head{z-index:5;background:#fff;position:sticky;top:0}@keyframes calendar-drawer-in{0%{opacity:.65;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.calendar-create{color:#fff;cursor:pointer;background:#0b63f6;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;height:40px;margin-bottom:18px;font-size:12px;font-weight:750;display:flex;box-shadow:0 5px 14px #0b63f626}.calendar-create:hover{background:#0759df}.calendar-create svg{width:17px}.calendar-mini{border-bottom:1px solid #e5eaf0;padding-bottom:17px}.calendar-mini>strong{color:#23374e;margin:0 2px 11px;font-size:12px;display:block}.calendar-mini-weekdays,.calendar-mini-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-mini-weekdays span{color:#8390a0;text-align:center;font-size:8px;font-weight:700}.calendar-mini-grid{gap:2px 0;margin-top:5px}.calendar-mini-grid button{aspect-ratio:1;color:#344a62;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;font-size:9px;font-weight:650}.calendar-mini-grid button:hover{background:#edf3fa}.calendar-mini-grid button.outside{color:#b1bbc7}.calendar-mini-grid button.selected{color:#075fcf;background:#dbeaff}.calendar-mini-grid button.today{color:#fff;background:#1a73e8}.calendar-type-filters{gap:5px;padding-top:16px;display:grid}.calendar-type-filters button{color:#40546b;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:8px 1fr 26px;align-items:center;gap:8px;min-height:31px;padding:4px 5px;font-size:10px;display:grid}.calendar-type-filters button:hover{background:#f3f6f9}.calendar-type-filters button>i{background:#7b8796;border-radius:50%;width:8px;height:8px}.calendar-type-filters button span{font-weight:700}.calendar-type-filters button small{color:#8996a6;font-size:8px;font-weight:600}.calendar-type-filters button em{background:#cbd4df;border-radius:999px;width:26px;height:15px;position:relative}.calendar-type-filters button em:after{content:"";background:#fff;border-radius:50%;width:11px;height:11px;transition:all .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #1e344b33}.calendar-type-filters button[aria-pressed=true] em{background:#0b63f6}.calendar-type-filters button[aria-pressed=true] em:after{left:13px}.calendar-type-filters button[aria-pressed=false]{opacity:.5}.calendar-filter-g2>i{background:#169b66!important}.calendar-filter-g>i{background:#1a73e8!important}.calendar-filter-road-test>i{background:#d93025!important}.calendar-selected-panel{background:#fff;min-width:0;padding:7px 0 14px 14px}.calendar-selected-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.calendar-selected-head span{color:#8794a5;font-size:8px}.calendar-selected-head h3{color:#20344a;margin:2px 0 0;font-size:14px}.calendar-selected-head>button{color:#0b63f6;cursor:pointer;background:#fff;border:1px solid #cfdbe7;border-radius:7px;align-items:center;gap:4px;height:31px;padding:0 8px;font-size:9px;font-weight:750;display:inline-flex}.calendar-selected-head>button:hover{background:#f2f7ff;border-color:#abc7ef}.calendar-selected-head svg{width:13px}.calendar-selected-panel>p{color:#7c8999;border-bottom:1px solid #e7ebf0;margin:13px 0 0;padding-bottom:10px;font-size:9px}.calendar-selected-list{display:grid}.calendar-selected-list>article{border-bottom:1px solid #edf0f4;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.calendar-selected-student{color:#687789;cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:7px minmax(0,1fr);align-items:start;gap:7px;padding:11px 3px;display:grid}.calendar-selected-student:hover{background:#f8fafc}.calendar-selected-student>i{background:currentColor;border-radius:50%;width:7px;height:7px;margin-top:3px}.calendar-selected-list span{gap:3px;min-width:0;display:grid}.calendar-selected-list b{color:#2f4359;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.calendar-selected-list small{color:#8794a5;font-size:8px}.calendar-selected-empty{color:#8a97a7;text-align:center;place-items:center;gap:7px;padding:32px 12px;font-size:9px;line-height:1.5;display:grid}.calendar-selected-empty svg{color:#9daaba;width:25px}.calendar-selected-more{color:#0b63f6;cursor:pointer;background:0 0;border:0;padding:10px 3px;font-size:9px;font-weight:750}.calendar-confirm-course{color:#08754e;cursor:pointer;white-space:nowrap;background:#ecfaf4;border:1px solid #84d5b3;border-radius:6px;justify-content:center;align-items:center;gap:3px;height:27px;margin-right:3px;padding:0 6px;font-size:8px;font-weight:750;display:inline-flex}.calendar-confirm-course:hover{background:#dcf6eb}.calendar-confirm-course:disabled{cursor:wait;opacity:.65}.calendar-confirm-course svg{width:11px}.calendar-confirm-course.waiting{color:#718096;cursor:default;background:#f3f5f7;border-color:#d8dee6}.calendar-overview-toolbar{justify-content:space-between;align-items:center;gap:24px;min-width:0;padding:1px 0 2px;display:flex}.calendar-month-controls{flex:none;align-items:center;gap:9px;display:flex}.calendar-month-controls h2{color:#13243a;letter-spacing:-.025em;white-space:nowrap;margin:0 0 0 9px;font-size:22px;font-weight:760}.calendar-today,.calendar-shift-controls button{color:#27415c;cursor:pointer;background:#fff;border:1px solid #cfdae6;justify-content:center;align-items:center;height:38px;font-size:12px;font-weight:750;display:inline-flex;box-shadow:0 1px 2px #15314d0a}.calendar-today{border-radius:9px;padding:0 17px}.calendar-shift-controls{gap:7px;display:flex}.calendar-shift-controls button{border-radius:9px;width:38px}.calendar-shift-controls button+button{margin-left:0}.calendar-shift-controls svg{width:18px}.calendar-today:hover,.calendar-shift-controls button:hover{color:#0c5fc5;background:#f3f7fb;border-color:#b9c9da}.calendar-loading{color:var(--muted);white-space:nowrap;font-size:10px}.calendar-status-summary{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px 18px;min-width:0;display:flex}.calendar-status-summary span{color:#718095;white-space:nowrap;align-items:center;gap:5px;font-size:10px;display:inline-flex}.calendar-status-summary span>i{border-radius:50%;width:8px;height:8px}.calendar-status-summary b{color:#294058;font-size:10px;font-weight:760}.calendar-type-g2>i{background:#169b66}.calendar-type-g>i{background:#1a73e8}.calendar-type-road-test>i{background:#d93025}.calendar-type-other>i{background:#7b8796}.calendar-month-grid-wrap{background:#fff;border:1px solid #d6e0ea;border-radius:11px;min-width:0;overflow:hidden;box-shadow:0 10px 28px #1735520a,0 1px 2px #1735520a}.calendar-weekdays,.calendar-week-row{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{background:#fbfcfe;border-bottom:1px solid #d8e2ec}.calendar-weekdays span{color:#607188;letter-spacing:.02em;text-align:center;padding:11px 8px;font-size:11px;font-weight:720}.calendar-month-grid{display:grid}.calendar-month-grid.weeks-5{grid-template-rows:repeat(5,minmax(130px,1fr));height:clamp(650px,100vh - 300px,1040px)}.calendar-month-grid.weeks-6{grid-template-rows:repeat(6,minmax(116px,1fr));height:clamp(696px,100vh - 300px,1040px)}.calendar-week-row{min-height:0}.calendar-day{color:#24364b;background:#fff;border-bottom:1px solid #e4e9ef;border-right:1px solid #e4e9ef;min-width:0;min-height:0;padding:6px 7px 8px;transition:background .12s;position:relative;overflow:hidden}.calendar-week-row:last-child .calendar-day{border-bottom:0}.calendar-day:last-child{border-right:0}.calendar-day:first-child,.calendar-day:nth-child(7){background:#fafcff}.calendar-day:hover{background:#f7faff}.calendar-day.outside{color:#5f6f82;background:#f8fafc}.calendar-day.outside .calendar-day-events{opacity:.5}.calendar-day.selected{background:#eef5ff;box-shadow:inset 0 0 0 1px #c9dcf7}.calendar-day-select{cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;width:34px;height:28px;margin:0 auto 6px;padding:0;display:flex}.calendar-day-select.month-start-control{width:62px}.calendar-day-number{border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:760;display:inline-flex}.calendar-day-number.month-start{white-space:nowrap;border-radius:14px;width:auto;padding:0 6px}.calendar-day.today .calendar-day-number{color:#fff;background:#1a73e8}.calendar-day.selected:not(.today) .calendar-day-number{color:#1559b6;background:#dbe9ff}.calendar-day-events{gap:4px;min-width:0;display:grid}.calendar-event{color:#2b3e53;cursor:pointer;text-align:left;background:#f8fafc;border:1px solid #e5ebf1;border-left:3px solid;border-radius:4px;grid-template-columns:6px auto minmax(0,1fr) auto;align-items:center;gap:4px;width:100%;min-width:0;min-height:27px;padding:3px 5px 3px 4px;display:grid}.calendar-event:hover{background:#fff;border-color:#cfdbe7 #cfdbe7 #cfdbe7 currentColor;transform:translateY(-1px);box-shadow:0 4px 10px #1b3d5d12}.calendar-event-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.calendar-event span{white-space:nowrap;font-size:11px;font-weight:720}.calendar-event strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;font-weight:720;overflow:hidden}.calendar-event em{color:#718095;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-style:normal;overflow:hidden}.calendar-event-completed{color:#118657}.calendar-event-scheduled{color:#1b62ba}.calendar-event-review{color:#a96300}.calendar-event-cancelled{color:#556270}.calendar-event.calendar-course-g2{color:#118657}.calendar-event.calendar-course-g{color:#1a73e8}.calendar-event.calendar-course-road-test{color:#c5221f}.calendar-event.calendar-course-other{color:#667587}.calendar-event.calendar-course-g2{background:#f5fbf8;border-color:#dcefe6 #dcefe6 #dcefe6 currentColor}.calendar-event.calendar-course-g{background:#f5f9ff;border-color:#dce8f8 #dce8f8 #dce8f8 currentColor}.calendar-event.calendar-course-road-test{background:#fff7f6;border-color:#f3dfdc #f3dfdc #f3dfdc currentColor}.calendar-event.calendar-course-other{background:#f7f9fb;border-color:#e3e8ee #e3e8ee #e3e8ee currentColor}.calendar-event-cancelled strong{text-decoration:line-through}.calendar-event.sync-failed .calendar-event-dot{box-shadow:0 0 0 2px #efaaa5}.calendar-more{color:#58708a;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:4px;min-height:21px;padding:2px 11px;font-size:10px;font-weight:750}.calendar-more:hover{color:#174f94;background:#edf1f5}.calendar-mobile-markers{display:none}.calendar-data-note{color:#596a7d;align-items:center;gap:7px;padding:0 3px;font-size:9px;line-height:1.45;display:flex}.calendar-data-note>svg{flex:none;width:14px}.calendar-data-note>svg:last-child{margin-left:auto}.calendar-agenda-layer{z-index:90;position:fixed;inset:0}.calendar-agenda-backdrop{cursor:default;background:#10283f52;border:0;width:100%;position:absolute;inset:0}.calendar-agenda{background:#fff;grid-template-rows:auto minmax(0,1fr);width:380px;max-width:100%;height:100%;display:grid;position:absolute;top:0;right:0;overflow:hidden;box-shadow:-14px 0 42px #0c203738}.calendar-agenda-head{border-bottom:1px solid #e1e7ee;justify-content:space-between;align-items:flex-start;min-height:104px;padding:22px 20px 17px;display:flex}.calendar-agenda-head>div{gap:2px;display:grid}.calendar-agenda-head span,.calendar-agenda-head p{color:#5f6f82;margin:0;font-size:10px}.calendar-agenda-head h2{color:#1c2e44;margin:1px 0 3px;font-size:20px}.calendar-agenda-head>button{color:#5f7084;cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.calendar-agenda-head>button:hover{background:#eef2f6}.calendar-agenda-head svg{width:19px}.calendar-agenda-list{overflow:auto}.calendar-agenda-item{cursor:pointer;text-align:left;background:#fff;border:0;border-bottom:1px solid #e8edf2;grid-template-columns:66px minmax(0,1fr) 16px;align-items:start;gap:11px;width:100%;padding:15px 18px;display:grid}.calendar-agenda-item:hover{background:#f7f9fc}.calendar-agenda-item>svg{color:#8a98aa;align-self:center;width:15px}.calendar-agenda-time{color:#40546c;padding-top:3px;font-size:10px;font-weight:750}.calendar-agenda-item>div{gap:4px;min-width:0;display:grid}.calendar-agenda-status{color:#586a7f;letter-spacing:.03em;align-items:center;gap:5px;font-size:8px;font-weight:800;display:flex}.calendar-agenda-status i{background:#8995a5;border-radius:50%;width:7px;height:7px}.calendar-agenda-item-completed .calendar-agenda-status i{background:#169b66}.calendar-agenda-item-scheduled .calendar-agenda-status i{background:#1a73e8}.calendar-agenda-item-review .calendar-agenda-status i{background:#a96300}.calendar-agenda-item-cancelled .calendar-agenda-status i{background:#6c7a8b}.calendar-agenda-item.calendar-course-g2 .calendar-agenda-status i{background:#169b66}.calendar-agenda-item.calendar-course-g .calendar-agenda-status i{background:#1a73e8}.calendar-agenda-item.calendar-course-road-test .calendar-agenda-status i{background:#d93025}.calendar-agenda-item.calendar-course-other .calendar-agenda-status i{background:#7b8796}.calendar-agenda-item strong{color:#20344c;font-size:12px}.calendar-agenda-item p{color:#52657b;overflow-wrap:anywhere;margin:0;font-size:9px;line-height:1.45}.calendar-agenda-item small{color:#5f6f82;flex-wrap:wrap;align-items:center;gap:3px 5px;font-size:8px;display:flex}.calendar-agenda-item small svg{width:10px}.calendar-agenda-empty{color:var(--muted);text-align:center;place-items:center;gap:7px;min-height:300px;padding:35px;display:grid}.calendar-agenda-empty svg{color:#95a4b5;width:34px}.calendar-agenda-empty b{color:#40546c;font-size:13px}.calendar-agenda-empty span{font-size:10px;line-height:1.5}.calendar-overview button:focus-visible{outline-offset:2px;outline:3px solid #0b63f6}.calendar-agenda-item:focus-visible{outline-offset:-3px}.calendar-day-select:focus-visible{outline-offset:-1px}.calendar-header-sync:disabled{cursor:not-allowed;opacity:.58}.spinning{animation:1s linear infinite calendar-overview-spin}@keyframes calendar-overview-spin{to{transform:rotate(360deg)}}@media (width<=1350px){.calendar-google-layout{grid-template-columns:166px minmax(0,1fr)}.calendar-selected-panel{display:none}.calendar-main-column{border-right:0;padding-right:0}}@media (width<=900px){.calendar-google-layout{grid-template-columns:158px minmax(0,1fr)}.calendar-utility-rail{padding-right:10px}.calendar-main-column{padding-left:10px}}@media (width<=700px){.calendar-google-layout{display:block}.calendar-utility-rail{display:none}.calendar-main-column{border:0;padding:0}}@media (width<=1180px){.calendar-overview-toolbar{align-items:flex-start}.calendar-status-summary{max-width:420px}.calendar-month-grid{min-height:0}.calendar-event em{display:none}}@media (width<=900px){.calendar-overview-toolbar{align-items:stretch;gap:9px;display:grid}.calendar-status-summary{justify-content:flex-start;max-width:none}}@media (width<=700px){.calendar-overview{gap:10px}.calendar-month-controls{min-width:0}.calendar-month-controls h2{text-align:right;flex:1;margin-left:1px;font-size:18px}.calendar-loading{display:none}.calendar-today,.calendar-shift-controls button{min-width:44px;height:44px}.calendar-today{padding-inline:13px}.calendar-status-summary{background:#fff;border:1px solid #dfe5ec;border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid;overflow:hidden}.calendar-status-summary span{min-height:38px;padding:7px 9px}.calendar-status-summary span:nth-child(2n){border-left:1px solid #e5eaf0}.calendar-status-summary span:nth-child(n+3){border-top:1px solid #e5eaf0}.calendar-month-grid-wrap{border-radius:9px}.calendar-weekdays span{padding:8px 1px;font-size:9px}.calendar-month-grid.weeks-5{grid-template-rows:repeat(5,64px);height:320px}.calendar-month-grid.weeks-6{grid-template-rows:repeat(6,64px);height:384px}.calendar-day{min-height:64px;padding:3px 1px}.calendar-day-select{width:100%;height:57px;margin:0 auto}.calendar-day-select.month-start-control{width:100%}.calendar-day-number{width:25px;height:25px;font-size:10px;position:absolute;top:3px}.calendar-day-number.month-start{padding-inline:2px}.calendar-day-events{display:none}.calendar-mobile-markers{flex-wrap:wrap;justify-content:center;gap:2px;max-width:28px;display:flex;position:absolute;bottom:10px}.calendar-mobile-markers i{background:#8995a5;border-radius:50%;width:5px;height:5px}.calendar-mobile-markers .marker-g2{background:#169b66}.calendar-mobile-markers .marker-g{background:#1a73e8;border-radius:1px}.calendar-mobile-markers .marker-road-test{background:#d93025;border-radius:1px;transform:rotate(45deg)}.calendar-mobile-markers .marker-other{background:#7b8796}.calendar-data-note{align-items:flex-start}.calendar-data-note>svg:last-child{display:none}.calendar-header-sync{min-width:44px;min-height:44px;padding:0 12px;font-size:0}.calendar-header-sync svg{margin:0}.calendar-agenda{height:min(78dvh,680px);padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0;width:100%;top:auto;bottom:0}.calendar-agenda-head{min-height:92px;padding:16px 16px 13px}.calendar-agenda-item{grid-template-columns:60px minmax(0,1fr) 16px;min-height:78px;padding:14px 16px}}@media (prefers-reduced-motion:reduce){.spinning{animation:none}}.quality-layout{grid-template-columns:minmax(620px,1fr);gap:0;min-height:calc(100vh - 130px);display:grid}.quality-layout.has-inspector{grid-template-columns:minmax(600px,1fr) 390px}.quality-main{min-width:0}.quality-metrics{border:1px solid var(--line);background:#fff;border-radius:9px;grid-template-columns:repeat(4,1fr);margin-bottom:14px;display:grid;overflow:hidden}.quality-metric{align-items:center;gap:11px;min-height:82px;padding:15px 18px;display:flex}.quality-metric+.quality-metric{border-left:1px solid var(--line)}.quality-metric>svg{border-radius:50%;width:40px;height:40px;padding:10px}.quality-metric>span{color:var(--muted);font-size:10px;display:grid}.quality-metric strong{color:#142842;font-size:24px;line-height:1.2}.quality-metric.blue>svg{color:var(--blue);background:#eaf2ff}.quality-metric.amber>svg,.quality-metric.orange>svg{color:#d98900;background:#fff3dd}.quality-metric.red>svg{color:#d3443c;background:#ffeded}.quality-panel{border:1px solid var(--line);background:#fff;border-radius:9px;overflow:hidden}.quality-tabs{border-bottom:1px solid var(--line);padding:0 14px;display:flex}.quality-tabs button{color:#40516a;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:15px 14px;font-size:12px;font-weight:700}.quality-tabs button.active{border-bottom-color:var(--blue);color:var(--blue)}.quality-search{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 16px;display:flex}.quality-search svg{color:#8c9caf;width:17px}.quality-search input{border:1px solid var(--line);outline-color:var(--blue);border-radius:6px;width:min(570px,100%);height:38px;padding:0 11px}.quality-error{color:#9d342f;background:#fff0ef;align-items:center;gap:8px;padding:10px 16px;font-size:11px;display:flex}.quality-error svg{width:17px}.quality-list{min-height:370px}.quality-issue{border-bottom:1px solid #e6ebf1;align-items:center;min-height:105px;padding:14px 16px;display:flex}.quality-issue.selected{box-shadow:inset 3px 0 var(--blue);background:#f0f6ff}.quality-issue-body{cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.quality-issue-body>span:last-child{gap:5px;display:grid}.quality-issue-body b{color:#16304e;font-size:13px}.quality-issue-body small{color:var(--muted);font-size:10px}.quality-symbol{border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.quality-symbol svg{width:17px}.quality-symbol.review,.quality-symbol.warning{color:#d98900;background:#fff3dd}.quality-symbol.danger{color:#d3443c;background:#ffeded}.quality-row-actions{gap:6px;display:flex}.quality-row-actions button{color:#4f6074;cursor:pointer;background:#fff;border:1px solid #d4dde8;border-radius:6px;min-height:34px;padding:6px 9px;font-size:10px;font-weight:700}.quality-row-actions button.primary-outline{color:var(--blue);border-color:#88b2fb}.quality-empty{color:var(--muted);text-align:center;align-content:center;justify-items:center;gap:7px;min-height:350px;display:grid}.quality-empty svg{color:#45a77b;width:34px}.quality-empty b{color:#36516a;font-size:13px}.quality-empty span{font-size:10px}.quality-footnote{color:var(--muted);align-items:center;gap:7px;padding:13px 3px;font-size:10px;display:flex}.quality-footnote svg{width:16px}.quality-inspector{border-left:1px solid var(--line);background:#fff;min-height:calc(100vh - 86px);margin:-106px -22px -24px 16px;padding-bottom:22px;box-shadow:-12px 0 30px #1d395b0c}.quality-inspector-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:20px;display:flex}.quality-inspector-head>div{gap:5px;display:grid}.quality-inspector-head b{font-size:15px}.quality-inspector-head span{color:var(--muted);font-size:10px}.quality-inspector-head button{cursor:pointer;background:0 0;border:0}.quality-inspector-head svg{width:20px}.comparison-profiles{grid-template-columns:1fr 1fr;display:grid}.comparison-profiles button{border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;background:#fff;align-content:start;justify-items:start;gap:6px;min-height:165px;padding:17px;display:grid}.comparison-profiles button+button{border-left:1px solid var(--line)}.comparison-profiles small{color:var(--blue);background:#eaf2ff;border-radius:4px;padding:3px 6px;font-size:9px}.comparison-profiles span{color:#1565dc;background:#dceaff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.comparison-profiles b{font-size:13px}.comparison-profiles em{color:#50647b;overflow-wrap:anywhere;font-size:9px;font-style:normal}.comparison-table h3,.record-comparison h3{margin:0;padding:15px 14px;font-size:11px}.comparison-table>div{grid-template-columns:76px 1fr 1fr;min-height:42px;display:grid}.comparison-table>div>*{border-top:1px solid var(--line);align-items:center;padding:9px 11px;font-size:9px;display:flex}.comparison-table>div span{color:var(--muted)}.comparison-table>div b+b{border-left:1px solid var(--line)}.comparison-table .different{color:#d44840}.comparison-more,.merge-warning{color:#85621e;margin:12px 16px;font-size:10px;line-height:1.5}.quality-inspector-actions{gap:8px;padding:16px;display:grid}.quality-inspector-actions button{border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:42px;font-size:11px;font-weight:750;display:flex}.quality-inspector-actions button svg{width:16px}.quality-inspector-actions .danger-confirm{color:#fff;background:#c53c35;border:0}.merge-warning{background:#fff7e7;border:1px solid #efd29a;border-radius:6px;align-items:flex-start;margin:0;padding:9px;display:flex}.merge-warning svg{flex:none;width:16px}.record-comparison{padding:5px 16px}.record-comparison>div{border:1px solid var(--line);border-radius:7px;align-items:flex-start;gap:9px;margin-bottom:8px;padding:12px;display:flex}.record-comparison svg{color:#76899f;width:17px}.record-comparison span{gap:4px;display:grid}.record-comparison b{font-size:10px}.record-comparison small{color:var(--muted);font-size:9px}@media (width<=1100px){.quality-layout.has-inspector{grid-template-columns:1fr}.quality-inspector{border-left:0;border-top:1px solid var(--line);min-height:0;margin:16px 0 0}.quality-metrics{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.quality-metrics{grid-template-columns:1fr 1fr}.quality-metric{min-height:70px;padding:10px}.quality-metric>svg{width:34px;height:34px;padding:8px}.quality-issue{align-items:stretch;gap:10px;display:grid}.quality-row-actions{justify-content:flex-end}.quality-tabs{overflow:auto}.quality-tabs button{white-space:nowrap}.quality-inspector{bottom:0;inset-inline:0;z-index:70;margin:0;position:fixed;top:74px;overflow:auto}.quality-layout.has-inspector .quality-main{display:none}}.revenue-layout{grid-template-columns:1fr;min-height:calc(100vh - 130px);display:grid}.revenue-layout.has-drawer{grid-template-columns:minmax(650px,1fr) 360px}.revenue-main{min-width:0}.revenue-month{align-items:center;gap:7px;margin-bottom:12px;display:flex}.revenue-month button{border:1px solid var(--line);color:#3e5268;cursor:pointer;background:#fff;border-radius:7px;place-items:center;height:38px;padding:0 13px;display:grid}.revenue-month button svg{width:16px}.revenue-month strong{margin-left:7px;font-size:20px}.revenue-error{color:#9b332f;background:#fff0ef;border:1px solid #e3aaa6;border-radius:7px;margin-bottom:10px;padding:9px 12px;font-size:11px}.revenue-metrics{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px;display:grid}.revenue-metric{border:1px solid var(--line);background:#fff;border-radius:8px;justify-content:space-between;align-items:center;min-height:94px;padding:16px;display:flex}.revenue-metric>div{gap:7px;display:grid}.revenue-metric span{color:var(--muted);font-size:10px;font-weight:650}.revenue-metric strong{font-size:23px}.revenue-metric>svg{opacity:.2;width:38px;height:38px}.revenue-metric.blue strong,.revenue-metric.blue svg{color:var(--blue)}.revenue-metric.green strong,.revenue-metric.green svg,.received{color:#16865f}.revenue-metric.amber strong,.revenue-metric.amber svg,.due{color:#d45b00}.revenue-metric.teal strong,.revenue-metric.teal svg,.prepaid{color:#008b8b}.revenue-overview{grid-template-columns:minmax(450px,1.8fr) minmax(245px,.8fr);gap:12px;margin-bottom:14px;display:grid}.revenue-chart,.pricing-panel,.receivables-panel{border:1px solid var(--line);background:#fff;border-radius:8px}.revenue-chart,.pricing-panel{padding:14px}.revenue-section-head{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.revenue-section-head h2{margin:0 0 3px;font-size:13px}.revenue-section-head span{color:var(--muted);font-size:9px}.revenue-section-head button{color:#3f5269;background:#fff;border:1px solid #ccd8e5;border-radius:6px;align-items:center;gap:4px;padding:6px 8px;font-size:9px;display:flex}.revenue-section-head button svg{width:13px}.chart-wrap svg{width:100%;height:190px}.chart-wrap line{stroke:#e0e7ef;stroke-width:1px}.chart-wrap polyline{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:3px}.earned-line{stroke:#0b63f6}.paid-line{stroke:#18a36e}.chart-wrap>div{color:var(--muted);justify-content:space-between;padding:0 8px;font-size:8px;display:flex}.price-row{border:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px;display:flex}.price-row+.price-row{border-top:0}.price-row>span{color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:10px;font-weight:800;display:grid}.price-row .g2{background:#159a67}.price-row .g{background:#1875df}.price-row .road{background:#d33b35}.price-row b{font-size:12px}.receivables-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:10px 13px;display:flex}.receivable-tabs{display:flex}.receivable-tabs button{color:#53667b;background:#fff;border:1px solid #d8e1eb;padding:8px 12px;font-size:10px}.receivable-tabs button:first-child{border-radius:6px 0 0 6px}.receivable-tabs button:last-child{border-radius:0 6px 6px 0}.receivable-tabs button+button{border-left:0}.receivable-tabs button.active{color:var(--blue);background:#edf4ff;font-weight:750}.receivables-toolbar>label{border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding:0 9px;display:flex}.receivables-toolbar svg{color:#8291a4;width:15px}.receivables-toolbar input{border:0;outline:0;width:220px;height:34px}.receivables-table-wrap{overflow:auto}.receivables-table{min-width:760px}.receivables-table td{height:58px}.receivables-table td:first-child{display:grid}.receivables-table td:first-child b{font-size:11px}.receivables-table td:first-child small{color:var(--muted);font-size:8px}.receivables-table tr.selected{box-shadow:inset 3px 0 var(--blue);background:#edf5ff}.receivables-table td:last-child button{color:var(--blue);background:#fff;border:1px solid #8ab5ff;border-radius:5px;padding:6px 8px;font-size:9px;font-weight:700}.revenue-status{border-radius:4px;padding:4px 7px;font-size:9px;font-weight:700}.revenue-status.settled{color:#16865f;background:#eaf8f1}.revenue-status.due{color:#a95d00;background:#fff3df}.revenue-status.prepaid{color:#087c7a;background:#e8f7f7}.revenue-empty{color:var(--muted);text-align:center;padding:45px;font-size:11px}.revenue-note{color:var(--muted);align-items:center;gap:6px;font-size:9px;display:flex}.revenue-note svg{width:14px}.revenue-drawer{border-left:1px solid var(--line);background:#fff;min-height:calc(100vh - 86px);margin:-106px -22px -24px 16px;box-shadow:-12px 0 30px #1d395b0c}.revenue-drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:18px;display:flex}.revenue-drawer-head>div{grid-template-columns:42px 1fr;gap:3px;display:grid}.revenue-drawer-head>div>span{color:#fff;background:#0b63f6;border-radius:50%;grid-row:1/3;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.revenue-drawer-head b{font-size:14px}.revenue-drawer-head small{color:var(--muted);font-size:9px}.revenue-drawer-head button{background:0 0;border:0}.revenue-drawer-head svg{width:19px}.drawer-totals{grid-template-columns:repeat(4,1fr);padding:13px;display:grid}.drawer-totals span{color:var(--muted);gap:4px;font-size:8px;display:grid}.drawer-totals b{color:#15304c;font-size:13px}.revenue-drawer section{border-top:1px solid var(--line);padding:14px}.revenue-drawer h3{margin:0 0 10px;font-size:11px}.charge-list{max-height:245px;overflow:auto}.charge-list>div{border-bottom:1px solid #e9edf2;justify-content:space-between;align-items:center;padding:8px 0;display:flex}.charge-list span{gap:3px;display:grid}.charge-list b,.charge-list strong{font-size:9px}.charge-list small,.charge-list p{color:var(--muted);font-size:8px}.drawer-payment{color:#fff;background:#0b63f6;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;width:calc(100% - 32px);min-height:42px;margin:16px;font-size:11px;font-weight:750;display:flex}.drawer-payment svg{width:16px}.pricing-modal{width:min(420px,100%)}@media (width<=1100px){.revenue-layout.has-drawer{grid-template-columns:1fr}.revenue-drawer{border-top:1px solid var(--line);min-height:0;margin:16px 0 0}.revenue-metrics{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.revenue-overview{grid-template-columns:1fr}.revenue-metrics{grid-template-columns:1fr 1fr}.revenue-metric{min-height:78px;padding:11px}.revenue-metric strong{font-size:18px}.receivables-toolbar{flex-direction:column;align-items:stretch;gap:8px}.receivables-toolbar input{width:100%}.revenue-layout.has-drawer .revenue-main{display:none}.revenue-drawer{z-index:70;margin:0;position:fixed;inset:74px 0 0;overflow:auto}.revenue-month strong{font-size:17px}}.receivable-actions{align-items:center;gap:8px;display:flex}.receivable-actions>label{border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding:0 9px;display:flex}.calibrate-button{color:#0b63c9;white-space:nowrap;background:#edf5ff;border:1px solid #a9c8f7;border-radius:6px;align-items:center;gap:5px;height:36px;padding:0 10px;font-size:9px;font-weight:750;display:flex}.calibrate-button svg{color:#0b63c9}.calibration-modal{width:min(720px,100%);max-height:min(760px,90vh);overflow:auto}.calibration-modal .modal-title>div{gap:3px;display:grid}.calibration-modal .modal-title p{color:var(--muted);margin:0;font-size:10px}.calibration-summary{background:#f2f7fd;border:1px solid #d5e3f2;border-radius:7px;justify-content:space-between;margin:14px 0 10px;padding:11px 13px;font-size:11px;display:flex}.calibration-list{border:1px solid var(--line);border-radius:8px;max-height:400px;overflow:auto}.calibration-list>label{cursor:pointer;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid}.calibration-list>label+label{border-top:1px solid var(--line)}.calibration-list input{width:16px;height:16px}.calibration-list span{gap:3px;min-width:0;display:grid}.calibration-list b{font-size:11px}.calibration-list small{color:#496078;font-size:9px}.calibration-list em{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.calibration-list>label>strong{color:#173452;text-align:right;font-size:12px}.calibration-list strong small{border-radius:8px;padding:2px 5px;font-size:8px}.calibration-list strong small.high{color:#137653;background:#e6f7ef}.calibration-list strong small.medium{color:#a25a00;background:#fff2dc}.calibration-safety{color:#39705d;align-items:center;gap:6px;margin:10px 2px;font-size:9px;display:flex}.calibration-safety svg{width:14px}.calibration-confirm{justify-content:center;width:100%}.calibration-empty{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:7px;padding:55px 15px;display:flex}.calibration-empty svg{color:#22a06b;width:34px;height:34px}.calibration-empty b{color:#173452;font-size:13px}.calibration-empty span{font-size:10px}@media (width<=1100px){.receivables-toolbar{flex-direction:column;align-items:stretch}.receivable-actions{justify-content:space-between}}@media (width<=700px){.receivable-actions{flex-direction:column;align-items:stretch}.calibrate-button{justify-content:center}.calibration-summary{flex-direction:column;gap:5px}}.row-payment-actions{align-items:center;gap:6px;display:flex}.receivables-table td:last-child .row-payment-actions .mark-paid{color:#137653;white-space:nowrap;background:#eaf8f1;border-color:#91d6b7;align-items:center;gap:3px;display:flex}.row-payment-actions svg{width:12px;height:12px}.settle-modal{width:min(440px,100%)}.settle-person{background:#f3f8ff;border:1px solid #d9e6f5;border-radius:9px;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;margin:15px 0;padding:14px;display:grid}.settle-person>svg{color:#16865f;background:#e5f7ee;border-radius:50%;width:38px;height:38px;padding:9px}.settle-person>div{gap:3px;display:grid}.settle-person span{color:var(--muted);font-size:9px}.settle-person b{font-size:13px}.settle-person strong{color:#16865f;font-size:18px}.settle-modal>p{color:#5b6d82;font-size:10px;line-height:1.7}.settle-actions{grid-template-columns:1fr 2fr;gap:8px;margin-top:16px;display:grid}.settle-actions button{border:1px solid #ccd8e5;border-radius:7px;min-height:40px}.settle-actions .primary{border-color:#0b63f6}.payment-audit-list>div{grid-template-columns:minmax(0,1fr) auto;gap:7px;display:grid}.payment-audit-list .payment-row-actions{grid-column:1/3;gap:5px;display:flex}.payment-row-actions button{color:#446079;background:#fff;border:1px solid #c9d7e6;border-radius:5px;padding:4px 8px;font-size:8px}.payment-row-actions button:last-child{color:#b43f36;border-color:#e3b4af}.payment-audit-list .voided-payment{opacity:.72;background:#fff6f5;margin:0 -5px;padding:8px 5px}.voided-payment strong{color:#b43f36;font-size:8px}.payment-correction-modal{width:min(450px,100%)}.payment-action-context{color:#4f647b;background:#f3f7fb;border-radius:7px;padding:10px 12px;font-size:10px}.payment-audit-note{color:#4d705f;align-items:center;gap:6px;font-size:9px;display:flex}.payment-audit-note svg{width:14px;height:14px}.void-payment-summary{background:#fff4f2;border:1px solid #edc9c5;border-radius:8px;gap:4px;margin:14px 0;padding:13px;display:grid}.void-payment-summary span,.void-payment-summary small{color:#6c7887;font-size:9px}.void-payment-summary strong{color:#b43f36;font-size:19px}.void-payment-modal>p{color:#5b6d82;font-size:10px;line-height:1.7}.danger-payment-action{color:#fff;background:#c94338;font-weight:700;border-color:#c94338!important}
