:root{--red:#c90000;--ink:#171719;--muted:#707078;--line:#e7e7ea;--soft:#f5f5f6}*{box-sizing:border-box}body{color:var(--ink);background:#f4f4f5;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}header{color:#fff;background:#050505;align-items:center;gap:22px;height:76px;padding:0 max(20px,50vw - 620px);display:flex}header img{width:190px;height:auto}header>div{align-items:center;gap:12px;margin-left:auto;display:flex}.eyebrow{letter-spacing:.22em;color:var(--red);font-size:11px;font-weight:800}.ghost{color:#fff;background:0 0;border:1px solid #444;border-radius:8px;padding:9px 12px}.app-nav{align-items:center;gap:5px;margin-left:auto;display:flex}.app-nav a{color:#bdbdc3;border-radius:7px;padding:9px 11px;font-size:13px;font-weight:800;text-decoration:none}.app-nav a.active{color:#fff;background:#242426}.button-link{margin-top:14px;text-decoration:none;display:inline-block}.shell{max-width:1240px;margin:auto;padding:34px 20px 60px}.topbar{justify-content:space-between;align-items:center;display:flex}.topbar h1{margin:0;font-size:34px}.muted{color:var(--muted);margin:.4rem 0}.primary,.request-form button,.auth form button{background:var(--red);color:#fff;border:0;border-radius:9px;padding:12px 18px;font-weight:700}.stats{grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0;display:grid}.stats article,.panel,.calendar-card{border:1px solid var(--line);background:#fff;border-radius:14px;box-shadow:0 2px 8px #00000008}.stats article{padding:18px}.stats span{color:var(--muted);font-size:13px;display:block}.stats b{font-size:29px}.calendar-card{overflow:hidden}.calendar-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:20px 22px;display:flex}.calendar-head h2{margin:0}.calendar-head button{border:1px solid var(--line);background:#fff;border-radius:8px;width:40px;height:36px;font-size:25px}.calendar{padding:12px}.weekdays,.grid{grid-template-columns:repeat(7,1fr);display:grid}.weekdays span{text-align:center;color:var(--muted);padding:8px;font-size:12px;font-weight:700}.day{border-top:1px solid var(--line);border-right:1px solid var(--line);min-height:116px;padding:8px;overflow:hidden}.day:nth-child(7n){border-right:0}.day>b{font-size:13px}.day>span{white-space:nowrap;text-overflow:ellipsis;color:#8b0000;border-left:3px solid var(--red);background:#ffe1e1;border-radius:5px;margin-top:5px;padding:4px 5px;font-size:11px;display:block;overflow:hidden}.day>span.half{color:#925000;background:#fff0dd;border-left-color:#ed8b00}.day>span.pending{color:#555;background:#eee;border-left-color:#999}.day small{font-weight:800}.legend{border-top:1px solid var(--line);color:var(--muted);align-items:center;gap:8px;padding:16px 22px;font-size:12px;display:flex}.legend i{border-left:3px solid var(--red);background:#ffe1e1;border-radius:3px;width:12px;height:12px;margin-left:10px}.legend i.half{background:#fff0dd;border-color:#ed8b00}.legend i.pending{background:#eee;border-color:#999}.lower{grid-template-columns:1fr 1.25fr;gap:18px;margin-top:18px;display:grid}.panel{padding:22px}.panel h2{margin-top:0}.request-form{gap:14px;display:grid}.period-row{grid-template-columns:minmax(0,1fr) 110px;gap:10px;display:grid}.range-note{min-height:42px;color:var(--muted);align-self:end;align-items:center;font-size:12px;font-weight:700;display:flex}.full-day-lock{background:var(--soft);text-align:center;border:1px solid #d6d6da;border-radius:8px;place-content:center;align-self:end;min-height:42px;display:grid}.full-day-lock b{font-size:13px}.full-day-lock span{color:var(--muted);font-size:9px}.request-form label,.auth label{gap:6px;font-size:13px;font-weight:700;display:grid}.request-form input,.request-form select,.request-form textarea,.auth input{background:#fff;border:1px solid #d6d6da;border-radius:8px;width:100%;padding:11px}.requests article{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:13px 0;display:flex}.requests article>div:first-child{flex:1;gap:3px;display:grid}.requests span,.requests small{color:var(--muted);font-size:12px}.requests em{text-transform:uppercase;background:#eee;border-radius:5px;padding:5px 7px;font-size:11px;font-style:normal}.requests em.approved{color:#19672d;background:#dff5e5}.requests em.pending{color:#815b00;background:#fff0cf}.actions{gap:6px;display:flex}.actions button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:7px}.actions button.cancel{color:#a00000;border-color:#e4b7b7}.notice{background:#eef7ee;border-radius:8px;padding:10px}.auth,.splash{background:#070707;place-items:center;min-height:100vh;display:grid}.auth section{background:#fff;border-radius:16px;width:min(440px,100% - 30px);padding:34px}.auth img,.splash img{width:250px;max-width:100%}.auth h1{margin-bottom:0}.auth form{gap:15px;margin-top:24px;display:grid}.auth .checkbox-label{cursor:pointer;align-items:center;gap:9px;display:flex}.auth .checkbox-label input{width:18px;height:18px;margin:0}.request-form .checkbox-label{cursor:pointer;grid-template-columns:none;align-items:center;gap:10px;display:flex}.request-form .checkbox-label input{width:19px;height:19px;accent-color:var(--red);flex:none;margin:0}.admin-checkbox{width:fit-content}.link{color:#555;background:0 0;border:0;padding:16px 0 0}.error{color:#a00000;background:#ffe9e9;border-radius:7px;padding:9px}.splash{color:#fff}.splash p{text-align:center}.roster-scroll{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;isolation:isolate;overflow-x:auto}.roster-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);width:max-content;min-width:100%;display:grid}.roster-corner,.person-name,.date-head,.roster-cell{border-bottom:1px solid #d9d9dc;border-right:1px solid #d9d9dc}.roster-corner,.person-name{z-index:3;background:#fff;position:sticky;left:0;box-shadow:3px 0 5px #00000012}.roster-corner{color:var(--muted);align-items:end;padding:12px;font-size:12px;font-weight:800;display:flex}.person-name{white-space:nowrap;align-items:center;height:42px;padding:0 12px;font-size:13px;font-weight:700;display:flex}.date-head{background:#fff;place-items:center;height:48px;line-height:1;display:grid}.date-head small{color:var(--muted);text-transform:uppercase;font-size:9px}.date-head b{font-size:13px}.date-head.weekend,.roster-cell.weekend{background:#eeeeef}.roster-cell{background:#fff;place-items:center;height:42px;display:grid}.roster-cell.available:hover{background:#eaf5ec}.roster-cell.covered{color:#8b0000;background:#f7c9cd}.roster-cell.covered.pending{color:#555;background:#e4e4e6}.roster-cell.cancellable{cursor:pointer;box-shadow:inset 0 0 0 1px #0000}.roster-cell.cancellable:hover,.roster-cell.cancellable:focus-visible{outline:none;box-shadow:inset 0 0 0 2px #a00000}.roster-cell b{font-size:10px}.roster-cell.birthday{grid-auto-flow:column;gap:2px}.roster-cell.birthday span{font-size:13px}.birthday-key{color:var(--ink);margin-left:10px}.expense-shell{gap:18px;display:grid}.expense-title{margin-bottom:2px}.expense-search{justify-content:space-between;align-items:end;gap:18px;display:flex}.expense-search>div{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.expense-search label{color:var(--muted);text-transform:uppercase;gap:5px;font-size:11px;font-weight:800;display:grid}.expense-search input,.expense-search select{min-height:42px;color:var(--ink);background:#fff;border:1px solid #d6d6da;border-radius:8px;padding:8px 10px}.view-as-control select{min-width:220px;max-width:290px}.view-as-banner{color:#650707;background:#fff7f7;border:1px solid #f0c7c7;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:11px 14px;display:flex}.view-as-banner span{color:#765858;font-size:12px}.expense-search>strong{color:var(--red);white-space:nowrap;font-size:28px}.expense-search>strong small{color:var(--muted);text-align:right;text-transform:uppercase;font-size:10px;display:block}.expense-totals{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;display:grid}.expense-totals button{text-align:left;border:1px solid var(--line);min-height:90px;color:var(--ink);background:#fff;border-radius:11px;align-content:start;gap:6px;padding:11px 13px;display:grid}.expense-totals button.selected{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}.expense-totals span{color:var(--muted);font-size:11px;font-weight:700}.expense-totals b{font-size:19px}.expense-totals .group-difference{font-size:10px;font-weight:800;line-height:1.25}.expense-totals .group-difference.above{color:var(--red)}.expense-totals .group-difference.below{color:#176a42}.expense-totals .group-difference.even{color:var(--muted)}.expense-totals .reimbursement-split{border-top:1px solid var(--line);color:var(--ink);gap:4px;padding-top:7px;display:grid}.expense-totals .reimbursement-split small{color:var(--muted);justify-content:space-between;gap:7px;font-size:9px;line-height:1.2;display:flex}.expense-totals .reimbursement-split small span{color:inherit;font-size:inherit;font-weight:700}.expense-totals .reimbursement-split strong{color:var(--ink);white-space:nowrap;font-size:10px}.expense-layout{grid-template-columns:minmax(340px,.8fr) minmax(0,1.4fr);align-items:start;gap:18px;display:grid}.expense-layout.preview-mode{grid-template-columns:minmax(0,1fr)}.entry-tabs{background:var(--soft);border-radius:9px;grid-template-columns:1fr 1fr;margin-bottom:15px;padding:4px;display:grid}.entry-tabs button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:9px;font-weight:700}.entry-tabs button.active{color:var(--ink);background:#fff;box-shadow:0 1px 4px #00000014}.receipt-drop{cursor:pointer;background:#fafafa;border:1px dashed #b3b3b9;border-radius:10px;padding:16px}.receipt-drop input{background:0 0;border:0;padding:7px 0}.receipt-drop span{color:var(--muted);font-size:11px;font-weight:400}.receipt-preview{object-fit:contain;border:1px solid var(--line);background:var(--soft);border-radius:9px;width:100%;max-height:260px}.scan-note,.audit-note{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.expense-fields-two,.expense-fields-three{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.expense-fields-three{grid-template-columns:90px minmax(0,1fr) minmax(0,1fr)}.conversion-field{display:flex}.conversion-field input{border-radius:8px 0 0 8px}.conversion-field button{background:#27272a;border-radius:0 8px 8px 0;padding:0 9px;font-size:10px}.request-form .expense-reimbursement{background:#fff7f7;border:1px solid #efc2c2;border-radius:9px;align-items:start;padding:11px}.expense-reimbursement span{gap:2px;display:grid}.expense-reimbursement small{color:var(--muted);font-size:10px;font-weight:400;line-height:1.35}.expense-form-actions{gap:8px;display:flex}.expense-form-actions .secondary,.expense-line-actions button{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:9px 12px}.audit-note{border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.expense-lines>h2{margin-bottom:7px}.expense-lines article{border-bottom:1px solid var(--line);padding:15px 0}.expense-line-head{justify-content:space-between;gap:14px;display:flex}.expense-line-head>div{gap:3px;display:grid}.expense-line-head span,.expense-line-meta,.expense-lines article>p{color:var(--muted);font-size:12px}.expense-line-head strong{color:var(--red);white-space:nowrap}.expense-line-meta{flex-wrap:wrap;gap:5px 14px;margin-top:9px;display:flex}.expense-line-meta .reimbursement-badge{color:#8f0808;background:#fff0f0;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:800}.expense-lines article>p{margin:8px 0 0}.expense-line-actions{gap:8px;margin-top:10px;display:flex}.expense-line-actions a,.expense-line-actions button{color:#5f0808;font-size:11px;font-weight:800;text-decoration:none}.expense-line-actions a{padding:9px 0}.expense-line-actions .delete-expense{color:#9d0808;background:#fff7f7;border-color:#efb5b5}.expense-list-notice{margin:10px 0 2px}.inline-delete-confirm{background:#fff7f7;border:1px solid #efb5b5;border-radius:10px;gap:8px;margin-top:12px;padding:12px;display:grid}.inline-delete-confirm>p{color:#765858;margin:0;font-size:13px;line-height:1.4}.inline-delete-confirm>div{gap:8px;display:flex}.inline-delete-confirm button{color:var(--ink);background:#fff;border:1px solid #d7c5c5;border-radius:8px;padding:10px 12px;font-weight:800}.inline-delete-confirm .confirm-delete-expense{color:#fff;background:#b00000;border-color:#b00000}.delete-dialog-error{color:#8f0808;background:#fff0f0;border-radius:8px;margin:0;padding:10px;font-size:13px;line-height:1.4}.group-admin>div{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.group-admin label{border:1px solid var(--line);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:10px;display:flex}.group-admin label>span{gap:2px;font-size:12px;font-weight:700;display:grid}.group-admin label small{color:var(--muted);font-size:9px;font-weight:400}.group-admin select{background:#fff;border:1px solid #d6d6da;border-radius:7px;max-width:165px;padding:8px;font-size:11px}.meeting-shell{gap:20px;display:grid}.meeting-title .muted{max-width:650px}.meeting-notice{margin:0}.meeting-view-controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.meeting-switch{border:1px solid var(--line);background:#fff;border-radius:10px;padding:3px;display:flex}.meeting-switch button{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:9px 14px;font-size:13px;font-weight:800}.meeting-switch button.active{color:#fff;background:#242426}.outlook-calendar-connect{border-left:4px solid var(--red);gap:14px;padding:16px 18px;display:grid}.outlook-calendar-status{justify-content:flex-end;align-items:center;gap:7px;min-height:30px;display:flex}.outlook-calendar-status button{color:var(--muted);border:0;padding:5px 7px;font-size:11px}.outlook-calendar-disconnected{min-height:0}.outlook-not-connected{color:var(--muted);font-size:11px;font-weight:800}.outlook-calendar-heading{justify-content:space-between;align-items:center;gap:22px;display:flex}.outlook-calendar-connect h2{margin:3px 0 5px;font-size:17px}.outlook-calendar-connect p{max-width:720px;color:var(--muted);margin:0;font-size:13px;line-height:1.45}.outlook-calendar-actions{flex:none;align-items:center;gap:8px;display:flex}.outlook-calendar-actions button,.outlook-device-flow .button-link{border:1px solid var(--line);color:var(--ink);border-radius:8px;justify-content:center;align-items:center;padding:10px 13px;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.outlook-connected{color:#246b2b;background:#e8f5e9;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900}.outlook-device-flow{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;padding-top:14px;display:grid}.outlook-device-flow>div{align-content:start;justify-items:start;gap:6px;display:grid}.outlook-device-flow span,.outlook-device-flow small{color:var(--muted);font-size:11px}.outlook-device-code{color:#fff;letter-spacing:.12em;background:#242426;border:0;border-radius:8px;padding:8px 12px;font-size:21px;font-weight:900}.meeting-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:18px;display:grid}.meeting-calendar{min-width:0}.meeting-weekdays,.meeting-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.meeting-weekdays{border-bottom:1px solid var(--line);background:#fafafa}.meeting-weekdays b{color:var(--muted);text-align:center;padding:9px;font-size:11px}.meeting-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:126px;padding:6px;overflow:hidden}.meeting-day:nth-child(7n){border-right:0}.meeting-day.outside{background:#f7f7f8}.meeting-day.today{box-shadow:inset 0 0 0 2px var(--red)}.day-number{background:0 0;border:0;border-radius:50%;width:25px;height:25px;padding:0;font-size:11px;font-weight:800}.day-number:hover{background:#f1f1f2}.meeting-chip{border:0;border-left:3px solid var(--red);text-align:left;background:#fff0f0;border-radius:5px;width:100%;margin-top:4px;padding:5px 6px;display:block}.meeting-chip b,.meeting-chip span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.meeting-chip b{font-size:10px}.meeting-chip span{color:#745c5c;margin-top:2px;font-size:9px}.meeting-agenda{padding:15px}.agenda-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.agenda-head h2{margin:0;font-size:18px}.agenda-head button{border:1px solid var(--line);background:#fff;border-radius:8px;width:36px;height:34px;font-size:22px}.meeting-agenda>button{border:0;border-top:1px solid var(--line);text-align:left;background:#fff;gap:3px;width:100%;padding:11px 2px;display:grid}.meeting-agenda time,.meeting-agenda span,.meeting-agenda small{color:var(--muted);font-size:12px}.meeting-detail,.meeting-entry{padding:20px}.meeting-detail>div:first-child{justify-content:space-between;align-items:start;display:flex}.meeting-detail h2,.meeting-entry h2{margin:5px 0 14px}.detail-close{background:0 0;border:0;font-size:28px}.meeting-detail dl{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:0;display:grid}.meeting-detail dt{color:var(--muted);text-transform:uppercase;font-size:10px;font-weight:800}.meeting-detail dd{margin:4px 0 0}.meeting-actions{gap:8px;margin-top:16px;display:flex}.meeting-actions button,.meeting-form .secondary{border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 12px;font-weight:800}.meeting-actions .danger-text{color:#a00000}.meeting-form{gap:13px;max-width:760px;display:grid}.meeting-form label{gap:6px;font-size:12px;font-weight:800;display:grid}.meeting-form input,.meeting-form textarea{background:#fff;border:1px solid #d6d6da;border-radius:8px;width:100%;padding:11px}.meeting-fields-two{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=720px){header{gap:6px;height:64px;padding:0 14px}header img{flex:0 94px;width:94px;min-width:0}header strong{display:none}header .app-nav{gap:0;min-width:0}header .app-nav a{padding:8px 5px;font-size:10px}header>.ghost{white-space:nowrap;flex:none;padding:7px 6px;font-size:11px}.shell{padding:14px 7px 32px}.topbar h1{font-size:26px}.stats{grid-template-columns:repeat(3,1fr);gap:7px}.stats article{padding:8px}.stats span{font-size:10px}.stats b{font-size:18px}.calendar{overflow-x:auto}.weekdays,.grid{min-width:720px}.day{min-height:92px}.roster-corner,.person-name{width:var(--name-width);min-width:var(--name-width);max-width:var(--name-width)}.person-name{white-space:normal;overflow-wrap:anywhere;z-index:6;height:34px;padding:0 7px;font-size:11px;line-height:1.1}.roster-grid{--name-width:120px;--day-width:28px}.roster-corner{z-index:7;padding:5px;font-size:9px}.date-head{height:36px}.date-head small{font-size:7px}.date-head b{font-size:10px}.roster-cell{height:34px}.roster-cell b{font-size:8px}.roster-cell.birthday span{font-size:9px}.calendar-head{padding:10px 8px}.calendar-head h2{font-size:16px}.calendar-head button{width:32px;height:29px;font-size:19px}.legend{flex-wrap:wrap;gap:4px;padding:8px 5px;font-size:9px}.legend i{margin-left:4px}.lower{grid-template-columns:1fr}.calendar-card{border-radius:10px}.topbar .muted{max-width:220px}.expense-title{align-items:end}.expense-title h1{font-size:25px}.expense-title .muted{font-size:11px}.expense-title>button{padding:10px;font-size:12px}.expense-search{display:grid}.expense-search>div{grid-template-columns:1fr 1fr;display:grid}.expense-search>div button,.expense-search .view-as-control{grid-column:1/-1}.view-as-control select{width:100%;min-width:0;max-width:none}.view-as-banner{display:grid}.expense-search>strong,.expense-search>strong small{text-align:left}.expense-totals{scroll-snap-type:x proximity;padding-bottom:4px;display:flex;overflow-x:auto}.expense-totals button{scroll-snap-align:start;flex:0 0 162px}.expense-layout,.expense-fields-two,.expense-fields-three{grid-template-columns:1fr}.expense-line-head strong{font-size:15px}.group-admin>div,.meeting-layout{grid-template-columns:1fr}.meeting-view-controls{display:grid}.meeting-switch{width:100%}.meeting-switch button{flex:1;padding:9px 6px}.outlook-calendar-connect{padding:14px}.outlook-calendar-status{justify-content:flex-start}.outlook-calendar-heading{gap:13px;display:grid}.outlook-calendar-actions{grid-template-columns:auto 1fr 1fr;display:grid}.outlook-calendar-connect button,.outlook-calendar-connect .button-link{width:100%}.outlook-device-flow{grid-template-columns:1fr}.meeting-day{min-height:68px;padding:3px}.meeting-weekdays b{padding:7px 2px;font-size:9px}.day-number{width:21px;height:21px;font-size:9px}.meeting-chip{border-left-width:2px;padding:3px}.meeting-chip b{font-size:8px}.meeting-chip span{display:none}.meeting-fields-two{grid-template-columns:1fr}.meeting-detail,.meeting-entry{padding:14px}}.cover-selection{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.cover-selection button{color:#164b85;background:#fff;border:1px solid #abc0d5;border-radius:6px;margin-left:auto;padding:8px 12px}button.broker-select{text-align:left;color:inherit;cursor:pointer;border-top:0;border-left:0;border-radius:0;gap:6px;width:100%}button.broker-select:focus-visible{outline-offset:-3px;outline:3px solid #236ba5}.roster-cell.broker-selected,.person-name.broker-selected{box-shadow:inset 0 2px #9b6805,inset 0 -2px #9b6805}.person-name.broker-selected,.roster-cell.available.broker-selected{background:#fff1c7}.roster-cell.broker-can-cover,.person-name.broker-can-cover{box-shadow:inset 0 2px #277cba,inset 0 -2px #277cba}.person-name.broker-can-cover,.roster-cell.available.broker-can-cover{background:#e0f1ff}.roster-cell.available.weekend.broker-can-cover{background:#ccdfef}.cover-badge{color:#176399;margin-left:auto}.cover-settings{margin:20px 0}.cover-settings summary{cursor:pointer;font-size:18px;font-weight:700}.cover-settings p{color:var(--muted);margin:12px 0;font-size:14px;line-height:1.5}.cover-settings>label{gap:6px;max-width:360px;margin:16px 0;display:grid}.cover-options{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:16px 0;display:grid}.cover-options label{background:#f5f7fa;border-radius:6px;align-items:center;gap:10px;min-height:44px;padding:8px;display:flex}.cover-options input{width:18px;height:18px;margin:0}
