:root{--ink:#202a25;--muted:#6e7772;--paper:#f4f1e9;--panel:#fffefb;--green:#1d493c;--line:#deddd4;--gold:#d5aa4d}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--paper);color:var(--ink);font-family:DM Sans,Segoe UI,sans-serif}button,input,select{font:inherit}.shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}aside{position:sticky;top:0;height:100vh;background:#173b32;color:#ecf1ed;padding:28px 18px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 30px}.brand>b{width:40px;height:40px;border:1px solid #78958a;border-radius:12px;display:grid;place-items:center;font:700 16px Georgia,Times New Roman,serif;color:#f1d28e}.brand span,.sync span{display:flex;flex-direction:column}.brand strong{font-family:Georgia,Times New Roman,serif;font-size:17px}.brand small,.sync small{color:#9fb2aa;font-size:12px;margin-top:2px}nav{display:grid;gap:5px}.archive button,nav button{border:0;background:transparent;color:#b8c9c2;text-align:left;border-radius:9px;padding:11px 12px;cursor:pointer}nav button.active{background:#2b5548;color:#fff}.archive{margin-top:31px;border-top:1px solid #36564c;padding-top:23px}.archive>p{color:#829d92;text-transform:uppercase;font-size:10px;letter-spacing:1.6px;padding:0 12px}.archive button{width:100%;display:flex;justify-content:space-between}.archive button small{color:#829d92}.archive button.selected{color:#f4d797}.sync{margin-top:auto;background:#23493e;border:1px solid #3c6257;border-radius:12px;padding:13px;display:flex;align-items:center;gap:10px}.sync>i{width:9px;height:9px;background:#8fd9ab;border-radius:50%;box-shadow:0 0 0 4px #8fd9ab20}.main{padding:36px 42px 60px;min-width:0}.main>header{display:flex;justify-content:space-between;align-items:center;gap:24px}.main>header p{font-size:10px;letter-spacing:1.8px;color:#728078;font-weight:800;margin:0 0 5px}.main h1{font:600 34px Georgia,Times New Roman,serif;margin:0}.actions{display:flex;align-items:center;gap:10px}.actions em{font-style:normal;font-size:12px;color:#326b59;max-width:260px}.actions button,.panelhead>button{border-radius:9px;padding:10px 15px;border:1px solid #cfd3cb;background:#fff;cursor:pointer;font-weight:700;font-size:13px}.actions .primary{background:var(--green);border-color:var(--green);color:#fff}.primary:disabled{opacity:.6}.monthbar{margin:30px 0 20px;display:flex;align-items:center;width:max-content;background:#ebe8df;border:1px solid #dbd8cf;border-radius:11px;padding:4px}.monthbar button{width:35px;height:35px;border:0;background:transparent;font-size:23px;cursor:pointer}.monthbar button:disabled{opacity:.25}.monthbar>span{min-width:190px;text-align:center;display:flex;flex-direction:column}.monthbar small{font-size:10px;color:var(--muted);text-transform:uppercase}.monthbar strong{font-family:Georgia,Times New Roman,serif}.monthbar select{margin-left:10px;border:0;background:transparent;padding:8px;color:var(--muted)}.summary{display:grid;grid-template-columns:1.25fr 1fr 1.25fr;gap:14px;margin-bottom:14px}.summary article{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:20px 22px;box-shadow:0 4px 18px #273c3210}.summary p{margin:0 0 7px;color:var(--muted);font-size:12px;font-weight:700}.summary article>strong{font:600 29px Georgia,Times New Roman,serif;display:block}.summary article>small{color:var(--muted)}.summary .green{background:#244f43;color:#fff;border-color:#244f43}.summary .green p,.summary .green small{color:#bed0c8}.summary .share{border-left:4px solid var(--gold)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 18px #273c320a;overflow:hidden}.panelhead{padding:20px 22px;display:flex;justify-content:space-between;align-items:center}.panelhead h2{font:600 20px Georgia,Times New Roman,serif;margin:0 0 3px}.panelhead p{margin:0;color:var(--muted);font-size:12px}.panelhead>small{color:#537563;background:#eef5ef;border-radius:20px;padding:6px 10px;font-size:10px}.sheet{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:1.35fr 1.2fr .85fr .8fr .75fr;align-items:center;min-height:62px;border-bottom:1px solid #e9e7e0;padding:0 22px;gap:16px;font-size:13px}.row.head{min-height:35px;color:#7b827e;text-transform:uppercase;letter-spacing:.7px;font-size:9px;background:#f8f7f2}.util{display:flex;align-items:center;gap:10px}.util>i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-weight:900;font-size:17px}.util em,.util>i{font-style:normal}.util em{font-size:8px;letter-spacing:.6px;color:#857243;background:#f5edcf;padding:3px 5px;border-radius:4px}.period{color:var(--muted)}.row>label{display:flex;align-items:center;border:1px solid #d6d8d1;border-radius:7px;background:#fff;padding:0 7px;max-width:115px}.row>label:focus-within{border-color:#4f7b6c;box-shadow:0 0 0 3px #4f7b6c18}.row>label span{color:#8b938e}.row input{outline:0;width:100%;padding:8px 4px;text-align:right;background:transparent}.doc,.row input{border:0;font-weight:700}.doc{background:#edf4f1;color:#2b6755;border-radius:7px;padding:7px 9px;cursor:pointer;font-size:11px}.missing{color:#a1a6a3}.row.total{background:#f6f4ed;border:0;min-height:52px}.lower{display:grid;grid-template-columns:1.45fr .8fr;gap:14px;margin-top:14px}.rooms{padding:0 18px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.room{border:1px solid #e2e1da;border-radius:9px;padding:12px;background:#fbfaf6}.room>div{display:flex;justify-content:space-between;align-items:center}.room>div>span:first-child{display:flex;flex-direction:column}.room small,.tenants small{font-size:10px;color:var(--muted)}.step{display:flex;align-items:center;border:1px solid #dddcd5;border-radius:7px;overflow:hidden;background:#fff}.step button{border:0;background:#f5f4ee;width:28px;height:28px;cursor:pointer}.step b{width:27px;text-align:center}.room>input{width:100%;border:0;border-bottom:1px solid #dddcd5;background:transparent;margin-top:8px;padding:5px 2px;font-size:12px;text-align:left}.tenants{padding:0 20px}.tenants>div{display:grid;grid-template-columns:33px 1fr auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #e9e7e0}.tenants>div>i{width:31px;height:31px;border-radius:50%;background:#dfece6;color:#285a4b;display:grid;place-items:center;font-style:normal;font-weight:800}.tenants>div>span{display:flex;flex-direction:column}.wide{margin:17px 20px 20px;width:calc(100% - 40px);border:0;background:#e7eee9;color:#254e41;padding:11px;border-radius:8px;font-weight:800;cursor:pointer}.trends{min-height:600px}.chart{height:445px;padding:15px 22px}.note{margin:0 22px 22px;padding:14px;border-left:3px solid #2f91b2;background:#edf6f7;display:flex;flex-direction:column;font-size:12px}.note span{color:var(--muted);margin-top:3px}.modal{position:fixed;inset:0;background:#10231dcc;z-index:20;display:grid;place-items:center;padding:30px}.modal>div{width:min(1050px,95vw);height:90vh;background:#fff;border-radius:13px;overflow:hidden;display:flex;flex-direction:column}.modal header{padding:12px 16px;display:flex;justify-content:space-between;align-items:center}.modal button{border:0;background:transparent;font-size:25px;cursor:pointer}.modal iframe{width:100%;flex:1;border:0;background:#eee}.loading{height:100vh;display:grid;place-content:center;text-align:center;color:var(--muted)}.loading i{width:35px;height:35px;border:3px solid #d5d9d4;border-top:3px solid var(--green);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(1turn)}}@media(max-width:1000px){.shell{grid-template-columns:80px 1fr}aside{padding:25px 10px}.archive,.brand span,.sync span{display:none}.brand{padding:0 10px 30px}nav button{font-size:18px;text-align:center}nav button span{display:none}.main{padding:28px 24px}.row{grid-template-columns:1.2fr 1fr .8fr .8fr}.row>span:last-child{display:none}.lower{grid-template-columns:1fr}}@media(max-width:720px){.shell{display:block}aside{position:static;width:100%;height:auto;flex-direction:row;align-items:center;padding:10px 14px}.brand{padding:0;margin-right:auto}.brand span,nav{display:flex}.sync{display:none}.main{padding:22px 14px}.main>header{align-items:flex-start}.actions{flex-wrap:wrap;justify-content:flex-end}.actions em{order:3;width:100%}.summary{grid-template-columns:1fr}.sheet{overflow:auto}.row{min-width:720px}.lower,.rooms{grid-template-columns:1fr}.main h1{font-size:28px}.actions>button:first-of-type{display:none}}.review-banner{margin:0 0 14px;padding:13px 16px;border:1px solid #e7c979;border-left:4px solid #c28b18;background:#fff8df;border-radius:9px;display:flex;gap:9px;align-items:center;font-size:12px}.review-banner span{color:#756841}.sourcecell{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.audit{font-size:9px;font-weight:800;letter-spacing:.2px}.audit.source_match,.audit.source_verified{color:#34705d}.audit.needs_review{color:#a45f13}.audit.workbook{color:#8a8f8c}.actions .stop{background:#fff3ef;border-color:#e0a99b;color:#9b3f2f}.analysis-console{margin:-5px 0 20px;background:#17231f;color:#dce9e3;border:1px solid #32463f;border-radius:12px;overflow:hidden;box-shadow:0 8px 24px #17231f24}.analysis-console>header{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:#1e302a}.analysis-console>header span{display:flex;gap:10px;align-items:baseline}.analysis-console>header small{color:#93aaa1}.analysis-console>header>b{font-size:12px;color:#f1d28e}.progress{height:4px;background:#30443d}.progress i{display:block;height:100%;background:#d5aa4d;transition:width .25s}.console-lines{max-height:250px;overflow:auto;padding:9px 16px;font:12px/1.45 Consolas,Courier New,monospace}.console-lines p{display:grid;grid-template-columns:82px 1fr;gap:8px;margin:4px 0}.console-lines time{color:#789087}.console-lines .success span{color:#91d6aa}.console-lines .warning span{color:#f1d28e}.console-lines .error span{color:#ff9e8c}.analysis-console>button{margin:0 16px 13px;border:1px solid #486159;border-radius:6px;background:transparent;color:#b8cac3;padding:6px 10px;cursor:pointer;font-size:11px}.payment-panel{margin-top:14px}.payment-table{border-top:1px solid var(--line)}.payment-row{display:grid;grid-template-columns:1.25fr .65fr .75fr .9fr 1.4fr;gap:14px;align-items:center;min-height:58px;padding:8px 22px;border-bottom:1px solid #e9e7e0;font-size:12px}.payment-row>span:first-child{display:flex;flex-direction:column}.payment-row small{color:var(--muted);font-size:10px}.payment-head{min-height:35px;background:#f8f7f2;color:#7b827e;text-transform:uppercase;letter-spacing:.7px;font-size:9px}.payment-row>input{width:100%;border:1px solid #d6d8d1;border-radius:7px;background:#fff;padding:8px}.payment-row>input:disabled{background:#efeee9;color:#aaa}.paid-check{display:flex;align-items:center;gap:7px;font-weight:800;color:#8b4d3e}.paid-check:has(input:checked){color:#34705d}.paid-check input{width:16px;height:16px;accent-color:#34705d}.empty-payments{padding:22px;color:var(--muted)}@media(max-width:720px){.payment-table{overflow:auto}.payment-row{min-width:760px}}.review-actions{display:flex;gap:4px;flex-wrap:wrap}.review-actions button{border:1px solid #d6c37f;background:#fff9df;color:#735e1d;border-radius:5px;padding:4px 6px;font-size:9px;font-weight:800;cursor:pointer}.review-actions button:last-child{border-color:#bad0c7;background:#edf5f1;color:#2b6755}.review-actions button:disabled{opacity:.45;cursor:wait}.audit.human_verified{color:#34705d}.workbook-panel{min-height:620px}.workbook-toolbar{display:flex;justify-content:space-between;align-items:center;padding:0 20px 12px;gap:16px}.workbook-toolbar>span{display:flex;gap:5px}.workbook-toolbar button{border:1px solid #d5d8d1;background:#f4f3ed;padding:7px 13px;border-radius:7px;cursor:pointer;font-size:11px;font-weight:800}.workbook-toolbar button.active{background:#244f43;color:#fff;border-color:#244f43}.workbook-toolbar em{font-style:normal;font-size:11px;color:var(--muted)}.workbook-grid{max-height:680px;overflow:auto;border-top:1px solid var(--line);background:#fff}.workbook-grid table{border-collapse:separate;border-spacing:0;min-width:100%;font:11px Arial,sans-serif}.workbook-grid th{position:sticky;background:#eef0ec;color:#66716b;font-weight:700;text-align:center;z-index:2}.workbook-grid thead th{top:0;height:28px;border-bottom:1px solid #cfd4ce}.workbook-grid tbody th{left:0;min-width:38px;border-right:1px solid #cfd4ce}.workbook-grid td{min-width:95px;height:30px;border-right:1px solid #e1e3df;border-bottom:1px solid #e1e3df;padding:0}.workbook-grid td.formula{background-image:linear-gradient(135deg,transparent 92%,#4f7b6c 0)}.workbook-grid td:focus-within{outline:2px solid #4f7b6c;outline-offset:-2px;position:relative;z-index:3}.workbook-grid input{width:100%;height:100%;min-height:29px;border:0;background:transparent;padding:5px 7px;color:inherit;font:inherit;font-weight:inherit;font-style:inherit;outline:0}.workbook-empty{display:grid;place-items:center;min-height:400px;color:var(--muted)}.logout{margin-top:10px;border:1px solid #3c6257;background:transparent;color:#b8c9c2;border-radius:9px;padding:9px 12px;cursor:pointer;text-align:left}.logout:hover{background:#23493e;color:#fff}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#315d50 0,#173b32 36%,#102a23 100%)}.login-page form{width:min(420px,100%);background:#fffefb;border-radius:18px;padding:34px;box-shadow:0 24px 70px #07191288}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.login-brand>b{width:44px;height:44px;border:1px solid #78958a;border-radius:13px;background:#173b32;display:grid;place-items:center;font:700 16px Georgia,serif;color:#f1d28e}.login-brand span{display:flex;flex-direction:column}.login-brand strong{font:600 18px Georgia,serif}.login-brand small{color:var(--muted)}.login-page h1{font:600 30px Georgia,serif;margin:0 0 8px}.login-page form>p{color:var(--muted);font-size:13px;line-height:1.5;margin:0 0 24px}.login-page label{display:grid;gap:7px;margin-top:15px;font-size:12px;font-weight:800}.login-page input{width:100%;border:1px solid #cfd5d0;border-radius:9px;padding:12px;background:#fff}.login-page input:focus{outline:3px solid #2f6b5720;border-color:#2f6b57}.login-page form>button{width:100%;margin-top:20px;border:0;border-radius:9px;padding:13px;background:#1d493c;color:#fff;font-weight:800;cursor:pointer}.login-page form>button:disabled{opacity:.6}.login-error{margin-top:15px;padding:10px 12px;border-radius:8px;background:#fff0eb;color:#9b3f2f;font-size:12px}.login-note{display:block;text-align:center;color:#8a928d;margin-top:15px}@media(max-width:1000px){.logout span{display:none}}@media(max-width:720px){.logout{margin:0 0 0 8px}}.workbook-grid thead th{user-select:none}.column-resizer{position:absolute;top:0;right:-3px;width:7px;height:100%;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none;z-index:4}.column-resizer:focus-visible,.column-resizer:hover{background:#4f7b6c55;outline:0}.workbook-grid input[readonly]{cursor:default;color:inherit;background:transparent}.workbook-save-actions{display:flex;align-items:center;gap:8px}.workbook-save-actions small{color:var(--muted);font-size:11px}.workbook-save-actions button{border:1px solid #cfd3cb;background:#fff;border-radius:7px;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer}.workbook-save-actions .save-excel{background:#1d493c;border-color:#1d493c;color:#fff}.workbook-save-actions button:disabled{opacity:.45;cursor:not-allowed}.workbook-grid td.dirty{box-shadow:inset 0 0 0 2px #d5aa4d;background:#fff9df!important}.workbook-grid input[readonly]{user-select:text}.workbook-toolbar button:disabled{opacity:.4;cursor:not-allowed}.workbook-grid table{width:max-content;min-width:max-content;table-layout:fixed}.workbook-grid tbody th,.workbook-grid thead th:first-child{box-sizing:border-box;width:42px!important;min-width:42px!important;max-width:42px!important;padding:0;text-align:center}.workbook-grid thead th:first-child{left:0;z-index:5;border-right:1px solid #cfd4ce}.workbook-grid tbody th{z-index:3}.openai-toggle{display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #cfcbbf;border-radius:9px;background:#fff;color:#343832;font-style:normal;position:relative}.openai-toggle input{accent-color:#456b57}.openai-toggle small{position:absolute;top:100%;right:0;width:210px;padding-top:3px;color:#9a5e42;font-size:10px}.review-actions .teach{background:#f3ecff;border-color:#a98bd4;color:#593982}.lesson-overlay{position:fixed;inset:0;z-index:1000;background:#1d241fcc;display:grid;place-items:center;padding:24px}.lesson-manager{background:#f8f7f2;border-radius:16px;width:min(900px,96vw);max-height:90vh;overflow:auto;box-shadow:0 24px 80px #0006}.lesson-manager>header{position:sticky;top:0;z-index:2;background:#f8f7f2;padding:20px;display:flex;justify-content:space-between;border-bottom:1px solid #ddd8cb}.lesson-manager h2{margin:0}.lesson-manager p{margin:5px 0}.lesson-list{padding:20px;display:grid;gap:14px}.lesson-list article{background:#fff;border:1px solid #ddd8cb;border-radius:12px;padding:16px}.lesson-list article>div,.lesson-list footer{display:flex;justify-content:space-between;gap:8px}.lesson-list textarea{width:100%;min-height:80px;margin:12px 0;padding:10px;border:1px solid #cbc5b7;border-radius:8px}.lesson-status{text-transform:uppercase;font-size:11px;padding:4px 8px;border-radius:999px}.lesson-status.pending{background:#fff2c8}.lesson-status.active{background:#dcefe2}.lesson-status.disabled,.lesson-status.rejected{background:#eceae4}.lesson-list footer{justify-content:flex-end;margin-top:12px}.lesson-list .danger{color:#9b3e36}