:root{font-family:"DM Sans",Arial,sans-serif;color:#242624;background:#f6f2e9;font-synthesis:none;--forest:#18392b;--forest-hover:#244b39;--paper:#f6f2e9;--surface:#fffdf8;--sage:#7c9881;--brass:#c5a46d;--ink:#242624;--muted:#647267;--border:#d7d3c8;--danger:#a33b32;--shadow:0 22px 60px rgba(24,57,43,.18)}
*{box-sizing:border-box}html{scrollbar-color:#91a690 #eeeae0;scrollbar-width:thin}body{margin:0;min-width:320px;background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{width:100%;border:1px solid #bbb9b0;border-radius:6px;background:#fff;padding:11px 12px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--forest);box-shadow:0 0 0 3px rgba(124,152,129,.2)}textarea{resize:none}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--forest)}[hidden]{display:none!important}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#eeeae0}::-webkit-scrollbar-thumb{background:#91a690;border:2px solid #eeeae0;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#657d69}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.brand{display:flex;align-items:center;gap:12px;color:var(--forest);text-decoration:none}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border:1px solid currentColor;font-size:11px;font-weight:700}.brand-name{font-size:14px;line-height:1.08;font-weight:600}.brand-name em{font-family:"Libre Baskerville",Georgia,serif;font-weight:400}.section-label,.eyebrow{margin:0 0 12px;color:#977442;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.muted{color:var(--muted);line-height:1.55}.loading-screen{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:18px;background:var(--paper);color:var(--forest);z-index:100;font-size:13px}.loading-screen .brand-mark{animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.45;transform:scale(.96)}}
.auth-view{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(420px,.92fr)}.auth-brand{display:flex;flex-direction:column;justify-content:space-between;padding:44px 6vw;background:var(--forest);color:var(--paper);position:relative;overflow:hidden}.auth-brand:after{content:"";position:absolute;width:320px;height:320px;border:1px solid rgba(197,164,109,.45);border-radius:50%;right:-100px;bottom:12%;box-shadow:0 0 0 70px rgba(197,164,109,.05),0 0 0 140px rgba(197,164,109,.03)}.auth-brand .brand{color:var(--paper);position:relative;z-index:1}.auth-statement{position:relative;z-index:1;max-width:650px}.auth-statement .eyebrow{color:var(--brass)}.auth-statement h1{margin:0;font-size:clamp(42px,5vw,78px);font-weight:400;line-height:1.03;letter-spacing:-.05em}.auth-statement h1 em{font-family:"Libre Baskerville",Georgia,serif;color:#b8c8b8;font-weight:400}.auth-footer{position:relative;z-index:1;margin:0;color:#9cb09f;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.auth-panel{display:grid;place-items:center;padding:48px;background:#eeeae0}.auth-card{width:min(100%,440px)}.auth-card h2{margin:0;font-size:38px;color:var(--forest);font-weight:500;letter-spacing:-.04em}.auth-card form{margin-top:32px}.field{margin-bottom:18px}.field label,.type-picker legend{display:block;margin-bottom:7px;color:#3b443e;font-size:12px;font-weight:600}.field small{display:block;margin-top:6px;color:#778078;font-size:11px}.field-error{display:block;min-height:17px;margin-top:4px;color:var(--danger);font-size:11px}.field.invalid input,.field.invalid select{border-color:var(--danger)}.password-wrap{display:flex;position:relative}.password-wrap input{padding-right:48px}.password-wrap .icon-button{position:absolute;right:4px;top:4px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;border:1px solid transparent;border-radius:6px;padding:9px 16px;font-size:12px;font-weight:700;transition:background .18s,color .18s,border .18s}.button.primary{background:var(--forest);color:#fff}.button.primary:hover{background:var(--forest-hover)}.button.outline{border-color:#aaa99f;background:transparent;color:var(--forest)}.button.outline:hover{border-color:var(--forest);background:#eef1eb}.button.danger{background:var(--danger);color:#fff}.button.danger.ghost{background:transparent;border-color:#d7aaa6;color:var(--danger)}.button.full{width:100%}.icon-button{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:6px;background:transparent;color:inherit}.icon-button:hover{background:rgba(24,57,43,.08)}.text-button,.back-button{border:0;background:transparent;color:var(--forest);padding:10px 0;font-size:12px;text-decoration:underline;text-underline-offset:3px}.text-button{display:block;margin:14px auto 0}.back-button{margin-bottom:22px;text-decoration:none}.form-message{min-height:20px;margin:3px 0 12px;color:var(--forest);font-size:12px}.form-message.error{color:var(--danger)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:244px minmax(0,1fr)}.app-sidebar{position:fixed;inset:0 auto 0 0;width:244px;display:flex;flex-direction:column;padding:28px 18px 18px;background:var(--forest);color:#edf1eb;z-index:20}.sidebar-brand{color:#fff;padding:0 8px 31px;border-bottom:1px solid #486453}.app-nav{display:grid;gap:6px;padding-top:24px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:6px;padding:12px 13px;background:transparent;color:#bdcbbf;text-align:left;font-size:13px}.nav-item span{width:18px;text-align:center;font-size:17px}.nav-item:hover,.nav-item.active{background:#2b503d;color:#fff}.sidebar-user{display:grid;grid-template-columns:36px minmax(0,1fr) 36px;gap:10px;align-items:center;margin-top:auto;padding-top:18px;border-top:1px solid #486453}.avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--brass);color:var(--forest);font-size:11px;font-weight:700}.sidebar-user strong,.sidebar-user span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user strong{font-size:12px}.sidebar-user div span{margin-top:3px;color:#a9bcad;font-size:10px}.icon-button.inverse{color:#fff}.icon-button.inverse:hover{background:#2b503d}.app-main{grid-column:2;min-width:0}.mobile-header{display:none}.workspace{max-width:1540px;margin:auto;padding:36px 42px 56px}.workspace-header{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:31px}.workspace-header h1{margin:0;color:var(--forest);font-size:38px;font-weight:500;letter-spacing:-.04em}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:15px}.date-navigation{display:flex;align-items:center;gap:8px}.date-navigation h2{margin:0 0 0 12px;color:var(--forest);font-size:21px;font-weight:600}.segmented{display:flex;border:1px solid #bbb9b0;border-radius:6px;padding:3px;background:#eeeae0}.segmented button{border:0;border-radius:4px;padding:7px 12px;background:transparent;color:var(--muted);font-size:11px}.segmented button.active{background:var(--surface);color:var(--forest);box-shadow:0 1px 3px rgba(0,0,0,.08)}.calendar-legend{display:flex;justify-content:flex-end;gap:18px;margin:0 0 10px;color:var(--muted);font-size:10px}.calendar-legend span{display:flex;align-items:center;gap:6px}.event-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#6384a4}.event-dot.meeting{background:#a46b55}.event-dot.reminder{background:#b58b32}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));border:1px solid var(--border);border-radius:8px;overflow:auto;background:var(--surface);min-height:610px;box-shadow:0 3px 18px rgba(24,57,43,.04)}.calendar-weekday{padding:11px 12px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:#f0eee7;color:#6e766f;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.calendar-weekday:nth-child(7){border-right:0}.calendar-day{min-height:114px;padding:9px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fffdf8;overflow:hidden}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#f3f0e8;color:#999}.calendar-day.today .day-number{background:var(--brass);color:var(--forest)}.day-number{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:11px;font-weight:600}.day-events{display:grid;gap:4px;margin-top:5px}.calendar-entry{display:block;width:100%;overflow:hidden;border:0;border-left:3px solid #6384a4;border-radius:3px;padding:5px 6px;background:#e9f0f4;color:#2e4c67;text-align:left;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.calendar-entry:hover{filter:brightness(.97)}.calendar-entry.meeting{border-color:#a46b55;background:#f4eae5;color:#6e4032}.calendar-entry.reminder{border-color:#b58b32;background:#f7f0d9;color:#725814}.calendar-entry.shared:after{content:" · shared";opacity:.7}.week-layout{grid-template-columns:72px repeat(7,minmax(120px,1fr));min-height:650px}.week-layout .calendar-weekday:first-child{background:#f0eee7}.week-column{min-height:590px;border-right:1px solid var(--border);padding:8px;background:repeating-linear-gradient(to bottom,#fffdf8 0,#fffdf8 47px,#e7e4db 48px)}.week-column:last-child{border-right:0}.week-time{padding:8px;color:#8a8e89;font-size:9px;border-right:1px solid var(--border);background:repeating-linear-gradient(to bottom,#f7f4ec 0,#f7f4ec 47px,#e7e4db 48px)}.week-entry{margin-bottom:6px;white-space:normal}.content-section{margin-top:26px;border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px 24px;border-bottom:1px solid var(--border)}.section-heading h2{margin:0;color:var(--forest);font-size:17px}.section-heading p{margin:5px 0 0;color:var(--muted);font-size:12px}.count-badge,.status-badge{display:inline-flex;align-items:center;border-radius:20px;padding:4px 8px;background:#efe4cf;color:#795d2f;font-size:10px;font-weight:700}.search-wrap{position:relative;width:240px}.search-wrap input{height:38px;padding-right:36px}.search-clear{position:absolute;right:4px;top:3px;width:32px;height:32px;border:0;background:transparent}.table-wrap{overflow:auto;scrollbar-gutter:stable}.table-wrap table{width:100%;border-collapse:collapse;min-width:700px}.table-wrap th,.table-wrap td{padding:14px 24px;border-bottom:1px solid #e5e1d8;text-align:left;font-size:12px}.table-wrap th{color:#737a74;background:#f5f2ea;font-size:10px;text-transform:uppercase;letter-spacing:.07em}.table-wrap tbody tr:last-child td{border-bottom:0}.table-actions{display:flex;justify-content:flex-end;gap:4px}.status-badge.active{background:#e4eee5;color:#365a3e}.status-badge.inactive{background:#eee9e6;color:#755a50}.empty-state{padding:38px;text-align:center;color:var(--muted);font-size:13px}.request-list{display:grid}.reset-request{display:flex;align-items:center;gap:18px;padding:15px 24px;border-bottom:1px solid #e5e1d8}.reset-request:last-child{border-bottom:0}.reset-request div:first-child{flex:1}.reset-request strong,.reset-request span{display:block}.reset-request strong{font-size:13px}.reset-request span{margin-top:3px;color:var(--muted);font-size:11px}.reset-request input{width:220px}.reset-request .button{flex:none}
.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:24px;background:rgba(17,34,26,.6);z-index:50}.modal{width:min(680px,100%);max-height:calc(100vh - 48px);overflow:auto;scrollbar-gutter:stable;border-radius:8px;background:var(--surface);padding:26px;box-shadow:var(--shadow)}.modal-narrow{width:min(520px,100%)}.modal-small{width:min(430px,100%)}.modal-header{display:flex;align-items:start;justify-content:space-between;margin-bottom:24px}.modal-header h2{margin:0;color:var(--forest);font-size:25px}.modal-header .section-label{margin-bottom:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.type-picker{display:flex;gap:8px;margin:0 0 18px;padding:0;border:0}.type-picker legend{width:100%;margin-bottom:7px}.type-picker label input{position:absolute;opacity:0;pointer-events:none}.type-picker label span{display:flex;align-items:center;gap:7px;border:1px solid #bbb9b0;border-radius:6px;padding:8px 12px;font-size:11px}.type-picker label input:checked+span{border-color:var(--forest);background:#e9eee8;color:var(--forest)}.type-picker label input:focus-visible+span{outline:3px solid rgba(124,152,129,.35)}.checkbox-row,.switch-row{display:flex!important;align-items:center;gap:9px;min-height:40px}.checkbox-row{margin:-4px 0 14px;font-size:12px}.user-checklist{display:grid;grid-template-columns:repeat(2,1fr);max-height:150px;overflow:auto;border:1px solid #ccc9bf;border-radius:6px;padding:8px}.user-checklist label{display:flex;align-items:center;gap:8px;margin:0;padding:7px;font-weight:400}.modal-actions{display:flex;align-items:center;gap:9px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.action-spacer{flex:1}.danger-text{color:var(--danger)}.toast-region{position:fixed;right:22px;bottom:22px;display:grid;gap:8px;z-index:80}.toast{min-width:260px;max-width:390px;border-left:4px solid var(--sage);border-radius:6px;padding:13px 16px;background:#fff;color:var(--ink);box-shadow:0 8px 30px rgba(24,57,43,.2);font-size:12px}.toast.error{border-color:var(--danger)}
@media(max-width:900px){.auth-view{grid-template-columns:1fr}.auth-brand{min-height:300px;padding:30px}.auth-statement{margin:70px 0 25px}.auth-statement h1{font-size:45px}.auth-footer{display:none}.auth-panel{padding:42px 24px}.app-shell{display:block}.app-sidebar{transform:translateX(-100%);transition:transform .2s ease;box-shadow:var(--shadow)}.app-sidebar.open{transform:translateX(0)}.app-main{min-height:100vh}.mobile-header{display:flex;align-items:center;gap:12px;height:58px;padding:0 18px;border-bottom:1px solid var(--border);background:var(--surface);color:var(--forest);font-size:12px;font-weight:600}.workspace{padding:28px 20px 45px}.calendar-grid{grid-template-columns:repeat(7,minmax(115px,1fr))}.calendar-toolbar{align-items:flex-start}.date-navigation{flex-wrap:wrap}.date-navigation h2{width:100%;margin:8px 0 0}.section-heading{align-items:flex-start;flex-direction:column}.search-wrap{width:100%}.reset-request{align-items:stretch;flex-wrap:wrap}.reset-request input{width:100%;flex:1}.sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.25);z-index:19}}
@media(max-width:600px){.auth-brand{min-height:240px}.auth-statement{margin:45px 0 10px}.auth-statement h1{font-size:35px}.auth-panel{place-items:start center}.workspace-header{align-items:flex-start}.workspace-header h1{font-size:31px}.workspace-header .button{min-width:42px}.calendar-toolbar{flex-direction:column}.calendar-legend{justify-content:flex-start}.form-grid{grid-template-columns:1fr;gap:0}.type-picker{flex-wrap:wrap}.user-checklist{grid-template-columns:1fr}.modal-backdrop{padding:0;align-items:end}.modal{max-height:92vh;border-radius:8px 8px 0 0;padding:22px}.modal-actions{position:sticky;bottom:-22px;background:var(--surface);padding-bottom:20px}.button{min-height:44px}.toast-region{right:12px;bottom:12px;left:12px}.toast{min-width:0;max-width:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(forced-colors:active){*{scrollbar-color:auto}.event-dot{forced-color-adjust:none}.button,.nav-item,.calendar-entry{border:1px solid ButtonText}}
