:root{--wine:#65003f;--gold:#d6b85f;--paper:#f7f5f1;--ink:#292329;--muted:#736b71;--line:#e5dfe2}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:9px;min-height:48px;padding:12px 18px}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}.shell{display:flex;min-height:100dvh}aside{width:224px;background:var(--wine);color:white;padding:36px 22px;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100dvh}.brand{font:27px Georgia,serif;text-decoration:none;color:white;white-space:nowrap}.brand span{color:#f0d595}.eyebrow{font-size:11px;letter-spacing:.13em;font-weight:700;margin:0 0 12px}aside>.eyebrow{color:#e4cb8c;margin-top:12px}nav{display:grid;gap:9px;margin-top:50px}nav button{text-align:left;background:transparent;color:white;font-size:14px;display:flex;align-items:center;gap:13px}nav button span{font-size:22px;width:24px;text-align:center}nav button[aria-current=page]{background:#f1dfb2;color:var(--wine)}.aside-foot{margin-top:auto;color:#e5bed5;font-size:12px}main{max-width:1350px;width:100%;padding:28px 44px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:32px}header .eyebrow{color:var(--muted);margin-bottom:4px}h1{font:26px Georgia,serif;margin:0}h2{font:32px/1.15 Georgia,serif;margin:0 0 15px}h3{font-size:17px;margin:0 0 12px}p{margin:0 0 18px}.login{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:45px;min-height:65vh}.intro h2{font-size:46px;line-height:1.13}.intro>p:not(.eyebrow){max-width:380px;color:var(--muted)}.intro-note{border-left:3px solid var(--gold);padding-left:18px;margin-top:38px;font-size:14px;color:var(--wine)}.card{background:white;border:1px solid var(--line);padding:28px;border-radius:15px}.card .eyebrow{color:var(--wine)}label{display:block;margin:20px 0 7px;font-weight:600;font-size:14px}input,select,textarea{width:100%;min-height:50px;border:1px solid #cfc4cb;border-radius:8px;padding:12px;background:white;color:var(--ink)}textarea{min-height:105px;resize:vertical}.primary{background:var(--wine);color:white;font-weight:650}.login .primary{width:100%;margin:18px 0 12px;display:flex;justify-content:space-between;gap:10px}.quiet{background:#eee7eb;color:var(--wine)}.hint{font-size:12px;color:var(--muted);line-height:1.6;margin:6px 0}.hero{display:flex;justify-content:space-between;gap:24px;align-items:center;margin:28px 0}.hero p{color:var(--muted);margin:0}.hero h2{font-size:38px}.badge{font-size:12px;padding:5px 10px;border-radius:20px;background:#edf5ef;color:#226239;display:inline-block}.badge.pending{background:#fcf0cf;color:#705212}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0}.stat{padding:22px}.stat strong{display:block;font:38px Georgia,serif;color:var(--wine);margin:10px 0}.stat p{font-size:13px;color:var(--muted);margin:0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.row{padding:18px 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.row:first-of-type{border-top:0}.row p{margin:4px 0 0;color:var(--muted);font-size:13px}.row strong{display:block;overflow-wrap:anywhere}.row button{flex-shrink:0}.empty{padding:30px 0;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-actions{margin-top:24px;display:flex;gap:12px;align-items:center}#message:not(:empty){padding:15px 18px;background:#fff1d7;border-left:4px solid var(--gold);border-radius:5px;margin-bottom:20px}#sample{background:#e8dcb9;color:#503c13;text-align:center;padding:8px;font-size:12px}footer{font-size:11px;color:var(--muted);margin-top:50px;padding:20px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:10px}.section-heading h2{margin:0}.list{margin-top:25px}#code-wrap{border-top:1px solid var(--line);margin-top:20px}
@media(max-width:1000px){main{padding:24px}.login{gap:25px}.intro h2{font-size:36px}aside{width:190px;padding:28px 16px}.brand{font-size:24px}.grid{grid-template-columns:1fr}}
@media(max-width:700px){aside{width:0;padding:0;height:0;position:static}.brand,aside>.eyebrow,.aside-foot{display:none}main{padding:22px 20px 96px}header{margin-bottom:24px;padding-bottom:18px}h1{font-size:24px}.login{display:block;min-height:0}.intro{margin:26px 0}.intro h2{font-size:35px}.intro-note{display:none}.intro>p:not(.eyebrow){font-size:14px;margin-bottom:26px}.card{padding:22px;border-radius:13px}nav{position:fixed;bottom:0;left:0;right:0;z-index:10;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:7px 6px calc(7px + env(safe-area-inset-bottom));background:white;border-top:1px solid var(--line)}nav button{color:var(--muted);font-size:10px;display:flex;flex-direction:column;gap:0;padding:5px 2px;min-height:52px;text-align:center;border-radius:7px}nav button[aria-current=page]{background:#f4e9ef;color:var(--wine)}nav button span{font-size:21px}.hero{display:block}.hero h2{font-size:33px}.hero .primary{margin-top:18px}.stats{gap:9px;margin:22px 0}.stat{padding:15px 10px}.stat strong{font-size:30px}.stat p{font-size:11px}.form-grid{grid-template-columns:1fr;gap:0}.row{gap:10px}.row button{padding:10px;min-height:44px;font-size:13px}.section-heading h2{font-size:27px}footer{margin-top:25px}.login .card h2{font-size:29px}}
.wrap{flex-wrap:wrap}.grid>*{min-width:0}#request-total{min-height:72px}#refresh-checks{margin-top:16px}button:disabled{cursor:not-allowed}@media(max-width:700px){.wrap button{width:100%}}

.document-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.document-tabs button{flex:1 1 135px}.document-preview{margin-top:20px}.document-preview p{overflow-wrap:anywhere}

.document-tabs{position:static;padding:0;background:transparent;border:0;margin-top:0}.document-tabs button{color:var(--wine);display:block}.document-tabs button.primary{color:white;background:var(--wine)}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin:20px 0}.calendar-toolbar h3{margin:0}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.calendar-legend span{font-size:12px;padding:5px 9px;border-radius:5px}.calendar-week,.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-week span{text-align:center;font-size:12px;padding:8px 0}.calendar-day{min-height:100px;padding:8px 5px;background:white;border:1px solid var(--line);border-radius:6px;text-align:left;align-content:start;overflow-wrap:anywhere}.calendar-day strong{display:block}.calendar-day.outside{background:#eeeae6;color:#746e70}.calendar-day.selected{outline:2px solid var(--wine);outline-offset:-2px}.calendar-event{display:block;font-size:11px;line-height:1.25;margin:4px 0;padding:3px;border-radius:3px}.booked{background:#e0f1e7;color:#215c3d}.pending{background:#fff0c8;color:#735400}.work{background:#e0edfc;color:#214e85}.blocked{background:#fbe0e5;color:#8b1733}.holiday{background:#efe5fa;color:#603982}@media(max-width:700px){.calendar-day{min-height:85px;padding:5px 2px}.calendar-event{font-size:9px}.calendar-week,.calendar-month{gap:2px}.calendar-legend{gap:4px}.document-tabs button{font-size:13px}}

.nonworking{background:#e9e9e9;color:#505050}.team{background:#dcf1f1;color:#205858}

.notification-card{margin:20px 0}.notification-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.notification-head h2{font:600 20px system-ui;margin:0}.notification-card summary{cursor:pointer;padding:12px 0;min-height:44px}.notification-list{max-height:260px;overflow:auto}.notification-item{border-top:1px solid var(--line);padding:12px 0}.notification-item p{margin:6px 0;overflow-wrap:anywhere}.notification-test{margin-top:10px}.notification-test button{margin-top:12px}#absence-date-notice{padding:12px;border-left:4px solid var(--gold);background:#fff5d8;color:#493805}@media(max-width:700px){.notification-head button{font-size:13px;padding:10px}.notification-head h2{font-size:18px}}
