@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,700;0,800;1,700&display=swap');
:root{--ink:#19273a;--blue:#2d61e7;--cream:#faf8f2;--line:#dde2e8}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}h1{font:800 clamp(45px,9vw,80px)/.9 'Playfair Display';letter-spacing:-3px;margin:9px 0}h1 em{color:var(--blue)}.eyebrow{font:11px 'DM Mono';letter-spacing:1.4px;color:#506076}.primary{border:0;border-radius:7px;background:var(--blue);color:#fff;font-weight:700;padding:12px 15px}.join-shell{max-width:640px;margin:auto;min-height:100vh;padding:52px 24px;background:radial-gradient(circle at 104% 0,#dfff43 0 6%,transparent 6.1%),var(--cream)}.join-card{max-width:440px;margin:13vh auto}.join-card p{color:#59677a}.join-card form{display:grid;gap:10px;margin-top:28px}.join-card label{font-size:13px;font-weight:700}.join-card input{padding:14px;border:1px solid #aeb9c8;border-radius:7px}.join-card small{min-height:18px;color:#b63e35}
.calendar-shell{min-height:100vh;max-width:1440px;margin:auto;padding:42px clamp(18px,5vw,72px);background:#f7f7f7}
.calendar-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;border-bottom:2px solid var(--ink);padding-bottom:22px}
.calendar-header h1{font-size:clamp(42px,6vw,68px)}
.calendar-header p{margin:10px 0 0;color:#647187}
.header-actions{display:flex;gap:8px;flex-wrap:wrap}
.calendar-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:34px;margin-top:28px}
.calendar-library{border-right:1px solid var(--line);padding-right:22px}
.calendar-library h2{font:700 23px 'Playfair Display';margin:0 0 13px}
.calendar-library button{width:100%;text-align:left;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;margin-bottom:8px;color:var(--ink)}
.calendar-library button.active{border-color:var(--blue);background:#eaf0ff}
.calendar-library button b,.calendar-library button small{display:block}
.calendar-library button small{margin-top:3px;color:#718096}
.calendar-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:25px}
.calendar-toolbar label{display:grid;gap:5px;flex:1;min-width:190px;font-size:12px;font-weight:700;color:#506076}
.calendar-toolbar input{width:100%;border:1px solid #aeb9c8;border-radius:7px;padding:10px;color:var(--ink);background:#fff}
.calendar-toolbar button{height:41px}
.calendar-paper{background:#fff;padding:24px 28px 30px;box-shadow:0 1px 8px #17243d18}
.calendar-month-title{display:inline-block;margin:0 0 8px;padding:2px 7px;background:#f7191d;color:#fff;font:900 clamp(25px,3vw,43px)/1 'Playfair Display';letter-spacing:-1px}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;border-top:1px solid #222;border-left:1px solid #222}
.calendar-weekday{grid-row:1;text-align:center;font:700 14px/1.8 Georgia,serif;color:#242424;background:#fff}
.calendar-day{position:relative;min-height:142px;border-right:1px solid #222;border-top:1px solid #222;background:#fff;padding:8px 8px 24px;display:flex;flex-direction:column}
.calendar-day.blank{border-top:0}
.calendar-day time{font:700 14px/1 Arial,sans-serif;color:#303030}
.calendar-day.outside-month time{color:#f02424}
.event-list{display:grid;gap:3px;margin:auto 0}.event-row{display:flex;align-items:center;gap:2px}.calendar-day textarea{min-height:25px;width:100%;resize:none;overflow:hidden;border:0;outline:0;background:transparent;padding:2px;text-align:center;font:700 clamp(11px,1.15vw,17px)/1.12 Arial,sans-serif;text-transform:uppercase}
.calendar-day textarea:focus{background:#f6f8ff;outline:1px dashed #a7b3c7}
.calendar-day textarea::placeholder{color:#bec5ce;text-transform:none;font-weight:400}
.event-color{position:absolute;right:5px;bottom:4px;width:16px;height:16px;padding:0;border:0;border-radius:50%;opacity:.25;cursor:pointer}
.calendar-day:hover .event-color,.calendar-day.has-event .event-color{opacity:1}
.event-row .event-color{position:static;flex:0 0 15px;width:15px;height:15px;opacity:.7}.add-event{display:none;align-self:center;border:0;background:transparent;color:#8f99a6;font:11px 'DM Mono';padding:2px}.calendar-day:hover .add-event{display:block}
.calendar-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:25px}
.calendar-actions .right{display:flex;gap:8px}
.secondary{border:1px solid #bdc7d3;border-radius:7px;background:#fff;color:var(--ink);padding:10px 13px;font-weight:700}
.danger-solid{border:0;border-radius:7px;background:#c8493c;color:#fff;padding:10px 13px;font-weight:700}
.calendar-empty{padding:42px;border:1px dashed #b4beca;border-radius:9px;color:#718096;text-align:center}
.calendar-status{font-size:13px;color:#557040}
@media(max-width:760px){.calendar-shell{padding:28px 12px}.calendar-header,.calendar-layout{display:block}.calendar-library{border:0;border-bottom:1px solid var(--line);padding:0 0 15px;margin-bottom:25px}.calendar-library-list{display:flex;gap:8px;overflow:auto}.calendar-library button{min-width:190px}.calendar-paper{padding:12px 3px 15px;overflow:auto}.calendar-grid{min-width:650px}.calendar-day{min-height:108px;padding:6px}.calendar-day textarea{font-size:12px}.calendar-actions{align-items:flex-start;flex-direction:column}}
