:root{color-scheme:light;--ink:#172e31;--muted:#5e7171;--paper:#f4f6f3;--line:#dce4dd;--accent:#175e53;--focus:#126c92;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid transparent;border-radius:10px;padding:12px 18px;background:var(--accent);color:#fff;font-weight:600;min-height:44px}button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:default}a{color:var(--accent);text-underline-offset:3px}input,select,textarea{border:1px solid #bbc9c2;border-radius:8px;background:#fff;color:var(--ink);padding:11px 12px;min-height:44px;max-width:100%}input,textarea{width:100%}label{display:flex;flex-direction:column;gap:8px;font-size:.9rem;font-weight:500}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.15;letter-spacing:-.035em;font-weight:650}h2{font-size:1.4rem;line-height:1.25}h3{font-size:1rem}p{line-height:1.55}form{display:flex;flex-direction:column;gap:16px}.brand{font-size:1.65rem;letter-spacing:-.06em;font-weight:750;text-decoration:none;color:var(--ink)}.brand span{font-weight:400;color:var(--muted)}.eyebrow{font-size:.68rem;font-weight:650;letter-spacing:.14em;color:var(--muted);margin-bottom:12px}.subtle{color:var(--muted);font-size:.85rem}.error{color:#9a3128;font-size:.9rem}.error:empty,.notice:empty{display:none}.notice,.save-message{color:var(--accent);font-size:.9rem}.secondary{background:white;color:var(--ink);border-color:var(--line)}.login{max-width:440px;margin:clamp(40px,12vh,120px) auto;padding:0 24px;display:flex;flex-direction:column;gap:24px}.login .eyebrow{margin-bottom:-12px}.login h1{font-size:2.6rem}.login>p{color:var(--muted)}.login form{margin-top:8px}.admin{max-width:760px;margin:48px auto;padding:0 24px;display:flex;flex-direction:column;gap:24px}.admin section{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:18px}.admin section form+form{padding-top:12px}.admin article{padding-block:12px;border-top:1px solid var(--line)}.admin code{word-break:break-all;font-size:.85rem}.admin article form{margin-top:12px}
#calendar-app{max-width:1600px;padding:0 40px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:26px 0;border-bottom:1px solid var(--line);gap:16px}.topbar-right{display:flex;align-items:center;gap:24px}.private-label{font-size:.8rem;color:var(--muted)}.text-button{background:transparent;color:var(--muted);font-size:.8rem;padding:4px 0;min-height:36px}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:38px 0 30px}.page-heading h1{margin-bottom:10px}.month-navigation{display:flex;align-items:center;gap:8px}.month-navigation select{text-transform:capitalize;min-width:190px;border-color:var(--line)}.icon-button{background:#fff;color:var(--ink);border-color:var(--line);width:44px;padding:0;font-size:1.6rem;font-weight:400}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:start}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekdays{font-size:.75rem;color:var(--muted);text-align:center;padding-bottom:12px}.day{display:flex;align-items:flex-start;flex-direction:column;gap:8px;padding:12px;min-height:105px;min-width:0;border:1px solid transparent;border-radius:10px;text-align:left;color:var(--ink);font-weight:400;background:#fff;position:relative}.day-number{font-size:.9rem;font-weight:600;font-variant-numeric:tabular-nums}.day-label{font-size:.72rem;line-height:1.35;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.day[data-status="1"]{background:#e4eef8}.day[data-status="2"]{background:#e8ece8;color:#65706a}.day[data-status="3"]{background:#fff;border-color:var(--line)}.day[data-status="4"]{background:#ddefe4}.day[data-status="5"]{background:#ede6f5}.day[data-status="6"]{background:#f9e2d8}.day[aria-pressed="true"]{outline:2px solid var(--accent);outline-offset:1px}.day.today .day-number{text-decoration:underline;text-underline-offset:4px}.pending-label{font-size:.65rem;color:#7c591c;border-top:1px dashed currentColor;padding-top:3px;width:100%}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:.73rem;color:var(--muted);margin-top:20px}.legend span{display:flex;align-items:center;gap:6px}.legend span::before{content:"";height:8px;width:8px;border-radius:50%;background:#a6b3a5}.legend [data-status="1"]::before{background:#578abd}.legend [data-status="3"]::before{background:#a6b3a5}.legend [data-status="2"]::before{background:#8d9690}.legend [data-status="4"]::before{background:#5a9b77}.legend [data-status="5"]::before{background:#9a80b4}.legend [data-status="6"]::before{background:#c97853}.event-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:18px}.event-panel .eyebrow{margin-bottom:-8px}.event-panel hr{border:0;border-top:1px solid var(--line);width:100%;margin:2px 0}.event-panel h2{text-transform:capitalize}.event-panel #selected-detail{display:flex;flex-direction:column;gap:12px;font-size:.85rem;overflow-wrap:anywhere}.event-panel textarea{resize:vertical;min-height:96px}.status-badge{align-self:flex-start;border-radius:5px;padding:4px 7px;background:#edf1eb;font-size:.72rem;font-weight:600}.status-badge[data-status="1"]{background:#e4eef8}.status-badge[data-status="4"]{background:#ddefe4}.status-badge[data-status="6"]{background:#f9e2d8}.pending-event{color:#77591e;font-size:.8rem}.empty-calendar{grid-column:1/-1;padding:36px 16px;color:var(--muted);line-height:1.6}footer{display:flex;justify-content:space-between;gap:16px;padding:36px 0 24px;font-size:.72rem;color:var(--muted)}footer a{color:var(--muted)}.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}[hidden]{display:none!important}#page-error{margin-bottom:24px}
@media(min-width:1500px){.day{min-height:125px}.day-label{font-size:.8rem}}
@media(max-width:1100px){#calendar-app{padding:0 24px}.calendar-layout{grid-template-columns:minmax(0,1fr) 260px;gap:20px}.event-panel{padding:20px}.day{padding:9px;min-height:100px}.days,.weekdays{gap:6px}}
@media(max-width:850px){.calendar-layout{grid-template-columns:1fr}.event-panel{max-width:none}.event-panel form{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:start}.event-panel form button,.event-panel form p{grid-column:1/-1}.day{min-height:100px}.page-heading{align-items:flex-start;flex-direction:column;gap:22px;padding-top:28px}.month-navigation{width:100%}.month-navigation select{flex:1}.event-panel h2{font-size:1.25rem}}
@media(max-width:500px){#calendar-app{padding:0 16px}.topbar{padding:18px 0}.topbar-right{gap:12px}.private-label{display:none}.page-heading{padding-bottom:22px}.day{min-height:66px;padding:10px 8px;gap:5px}.day-label{display:none}.day::after{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.45}.day[data-status="3"]::after,.day[data-status="2"]::after{visibility:hidden}.day-number{align-self:center}.days,.weekdays{gap:5px}.pending-label{font-size:0;border:0;padding:0;position:absolute;right:5px;top:6px;width:5px;height:5px;border-radius:50%;background:#9c6e28}.event-panel form{display:flex;flex-direction:column}.event-panel form label,.event-panel form button{width:100%}.event-panel{padding:20px}.legend{gap:10px;font-size:.7rem}footer{flex-direction:column;gap:10px;padding-top:24px}.brand{font-size:1.5rem}.weekdays{font-size:.7rem}}
