:root{color:#243027;font-synthesis:none;text-rendering:optimizelegibility;background:#f6f1e7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 8% 4%,#d8b65a38,#0000 28%),radial-gradient(circle at 92% 10%,#a8b99a52,#0000 24%),#f6f1e7;min-width:320px;margin:0}button,input,select,textarea{font:inherit}button:disabled{opacity:.45;cursor:not-allowed}main{max-width:1520px;margin:0 auto;padding:22px}.hero{color:#fffdf7;background:linear-gradient(135deg,#2f4a3af5,#6f8f72e6),#2f4a3a;border-radius:34px;grid-template-columns:auto 1fr auto;justify-content:space-between;align-items:center;gap:22px;padding:30px;display:grid;box-shadow:0 24px 70px #2430272e}.botanical-mark{color:#d8b65a;background:#f6f1e729;border:1px solid #fffdf74d;border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.eyebrow{text-transform:uppercase;letter-spacing:.11em;opacity:.78;margin:0 0 6px;font-size:12px;font-weight:800}h1{letter-spacing:-.035em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,7vw,78px);font-weight:650;line-height:.92}h2,h3,p{margin-top:0}.lede{color:#fffdf7e0;max-width:700px;margin:14px 0 0;font-size:clamp(17px,2vw,22px)}.panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf7e0;border:1px solid #2f4a3a1f;border-radius:28px;padding:24px;box-shadow:0 16px 42px #24302714}.quick-resources{margin:14px 0}.section-title{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.section-title svg{color:#6f8f72;flex:none}.section-title h2{letter-spacing:-.02em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:29px}.section-title p{color:#66746b;margin:3px 0 0}.primary,.secondary,.danger{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:12px 18px;font-weight:800;display:inline-flex}.primary{color:#243027;background:#d8b65a;box-shadow:0 12px 24px #5d44162e}.secondary{color:#2f4a3a;background:#eef3ef;border:1px solid #2f4a3a1a}.danger{color:#9e2f19;background:#ffe7e1}.icon-button{width:48px;padding:0}.wide{width:100%;margin-top:14px}.resource-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px;display:grid}.resource-card{min-height:104px;color:inherit;background:linear-gradient(#fffdf7,#fbf5eb);border:1px solid #e6ded1;border-radius:18px;flex-direction:column;gap:6px;padding:12px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.resource-card:hover{transform:translateY(-1px);box-shadow:0 10px 20px #273b331a}.resource-card strong{font-size:17px;line-height:1.15}.resource-card small{color:#6e766f;font-size:13px;line-height:1.28}.pill,.tag{background:#ece4d8;border-radius:999px;align-self:flex-start;padding:6px 10px;font-size:12px;font-weight:800}.open-link{color:#2f4a3a;align-items:center;gap:4px;margin-top:auto;font-weight:800;display:inline-flex}.board-layout{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:20px;display:grid}.calendar-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.month-controls{color:#66746b;white-space:nowrap;align-items:center;gap:10px;font-weight:850;display:flex}.month-picker{color:#66746b;align-items:center;gap:8px;margin:0;display:flex}.month-picker span{text-transform:uppercase;letter-spacing:.08em;font-size:12px}.month-picker select{color:#2f4a3a;background:#fffdf7;border-radius:999px;width:auto;min-width:190px;min-height:48px;font-weight:850}.today-button{min-width:82px}.month-rail{scrollbar-color:#a8b99a transparent;gap:8px;margin:-2px 0 8px;padding:2px 0 14px;display:flex;overflow-x:auto}.month-rail button{color:#526058;cursor:pointer;background:#fffaf3;border:1px solid #e2dacd;border-radius:999px;flex:none;padding:9px 12px;font-weight:850}.month-rail button.active{color:#fffdf7;background:#2f4a3a;border-color:#2f4a3a}.legend{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.tag.teal{color:#2f4a3a;background:#dcebe2}.tag.purple{color:#62536d;background:#e8e3ee}.tag.orange{color:#8f432d;background:#f3ddd1}.months{grid-template-columns:1fr;gap:14px;display:grid}.single-month .month-card{width:100%}.month-card{background:linear-gradient(#fffdf7,#fff9ef);border:1px solid #e6ded1;border-radius:26px;padding:clamp(14px,2vw,24px)}.month-card h3{letter-spacing:-.035em;color:#2f4a3a;margin:0 0 16px;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,52px)}.weekdays,.days{grid-template-columns:repeat(7,1fr);gap:7px;display:grid}.weekdays span{text-align:center;color:#7a847d;padding-bottom:5px;font-size:13px;font-weight:900}.day{text-align:left;cursor:pointer;background:#fffaf3;border:1px solid #ebe4da;border-radius:18px;min-height:clamp(96px,11vw,148px);padding:10px;transition:transform .12s,box-shadow .12s,border-color .12s;position:relative;overflow:hidden}.day:hover{transform:translateY(-1px);box-shadow:0 8px 18px #24302714}.day:hover,.day.selected{border-color:#d8b65a;outline:3px solid #d8b65a66}.day.selected{background:#fff6df}.day.muted{opacity:.38}.date-number{color:#243027;font-size:clamp(15px,1.4vw,20px);font-weight:950}.event-dots{gap:3px;display:flex;position:absolute;top:11px;right:11px}.event-dots i{border-radius:50%;width:10px;height:10px;display:block}.day small{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;margin-top:6px;padding:4px 7px;font-size:clamp(10px,1vw,12px);font-weight:850;display:block;overflow:hidden}.day em{color:#5f665f;margin-top:4px;font-size:11px;font-style:normal;display:block}.teal{color:#2f4a3a;background:#dcebe2}.purple{color:#62536d;background:#e8e3ee}.orange{color:#8f432d;background:#f3ddd1}.day-panel{position:sticky;top:14px}.empty{color:#69746b;background:#f7f3ed;border-radius:18px;padding:16px}.event-card{text-align:left;cursor:pointer;border:0;border-radius:18px;width:100%;margin:10px 0;padding:14px}.event-card small{opacity:.78;font-weight:900;display:block}.event-card strong{margin:5px 0 0;font-size:18px;display:block}.event-card p{color:#0000009e;margin:8px 0 0}.data-note{color:#66746b;margin-top:16px}.data-note summary{cursor:pointer;align-items:center;gap:4px;display:flex}code{background:#eee5d9;border-radius:6px;padding:2px 5px}.modal-backdrop{z-index:10;background:#0b171485;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.modal{background:#fffaf3;border-radius:28px;width:min(620px,100%);max-height:94vh;padding:22px;overflow:auto;box-shadow:0 24px 80px #00000047}label{color:#344039;gap:7px;margin:12px 0;font-weight:800;display:grid}input,select,textarea{background:#fff;border:1px solid #d9d0c3;border-radius:14px;width:100%;min-height:48px;padding:11px 13px}textarea{resize:vertical;min-height:92px}.two-col{grid-template-columns:1fr 1fr;gap:12px;display:grid}.modal-actions{align-items:center;gap:10px;margin-top:16px;display:flex}.spacer{flex:1}.toast{color:#fff;background:#2f4a3a;border-radius:999px;padding:14px 18px;font-weight:900;position:fixed;bottom:18px;right:18px;box-shadow:0 14px 30px #0003}@media (width<=900px){main{padding:12px}.hero{border-radius:24px;grid-template-columns:1fr;align-items:stretch;padding:22px}.hero .primary{width:100%}.botanical-mark{width:54px;height:54px}.board-layout{grid-template-columns:1fr;gap:14px}.calendar-heading{flex-direction:column}.month-controls{flex-wrap:wrap;width:100%}.month-picker{flex:220px}.month-picker select{flex:1;min-width:0}.day-panel{order:-1;position:static}.day-panel .sticky{gap:8px;display:grid}.months{grid-template-columns:1fr}.day{min-height:72px}}@media (width<=640px){body{background-size:auto}main{padding:10px}h1{font-size:clamp(34px,13vw,54px)}.lede{font-size:16px;line-height:1.35}.panel{border-radius:20px;padding:14px}.section-title{margin-bottom:12px}.section-title h2{font-size:24px}.section-title p{font-size:14px;line-height:1.3}.quick-resources{margin:10px 0}.resource-grid{grid-template-columns:1fr 1fr;gap:8px}.resource-card{border-radius:16px;min-height:84px;padding:10px}.resource-card small{display:none}.resource-card strong{font-size:15px}.pill,.tag{padding:5px 8px;font-size:11px}.month-controls{grid-template-columns:48px 1fr 48px;gap:8px;display:grid}.month-picker{grid-area:1/1/auto/-1}.month-controls .icon-button:first-child{grid-area:2/1}.month-controls .icon-button:nth-of-type(2){grid-area:2/3}.today-button{grid-area:2/2;width:100%}.month-card{border-radius:18px;padding:10px}.month-card h3{margin-bottom:10px;font-size:30px}.weekdays,.days{gap:4px}.weekdays span{font-size:10px}.day{text-align:center;border-radius:11px;min-height:54px;padding:6px 4px}.day:hover{box-shadow:none;transform:none}.day:hover,.day.selected{outline-width:2px}.date-number{font-size:14px}.event-dots{justify-content:center;margin-top:7px;position:static}.event-dots i{width:7px;height:7px}.day small,.day em{display:none}.event-card{border-radius:15px;margin:7px 0;padding:12px}.event-card strong{font-size:17px}.empty{margin-bottom:0;padding:12px}.data-note{display:none}.two-col{grid-template-columns:1fr;gap:0}.modal-backdrop{align-items:end;padding:0}.modal{border-radius:24px 24px 0 0;width:100%;max-height:92vh;padding:18px}.modal-actions{flex-wrap:wrap}.modal-actions .primary,.modal-actions .secondary,.modal-actions .danger{flex:42%}.time-row{grid-template-columns:1fr 1fr 78px;gap:6px}.toast{text-align:center;border-radius:18px;justify-content:center;bottom:10px;left:10px;right:10px}}@media (width<=380px){.resource-grid{grid-template-columns:1fr}.month-rail button{padding:8px 9px;font-size:12px}.day{min-height:48px}.time-row{grid-template-columns:1fr 1fr}.time-row select{grid-column:1/-1}}.auth-screen{place-items:center;min-height:100vh;display:grid}.auth-card{background:#fffdf7f0;border:1px solid #2f4a3a1f;border-radius:30px;width:min(460px,100vw - 28px);padding:28px;box-shadow:0 24px 70px #24302729}.auth-card .botanical-mark{color:#d8b65a;background:#2f4a3a;margin-bottom:18px}.auth-card h1{color:#2f4a3a;margin-bottom:12px}.auth-card p,.auth-card small{color:#66746b;line-height:1.45}.auth-card input{letter-spacing:.34em;text-align:center;font-size:28px;font-weight:900}.dev-note,.error-note{border-radius:999px;align-items:center;gap:8px;margin:14px 0 0;padding:10px 14px;font-weight:800;display:inline-flex}.dev-note{color:#2f4a3a;background:#eef3ef}.error-note{color:#9e2f19;background:#ffe7e1}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.time-row{grid-template-columns:1fr 1fr 86px;gap:8px;display:grid}.time-row input,.time-row select{min-width:0}
