:root{--ink:#16242C;--ink-soft:#5C6B72;--pine:#365B6D;--pine-dark:#28434E;--paper:#F7F7F7;--card:#FFFFFF;--card-border:#E2E2E2;--gold:#AF9757;--gold-soft:#EBE5D5;--gold-text:#6B5A2E;--rust:#AC6451;--rust-soft:#EAD8D3;--shadow: 0 2px 0 rgba(22,36,44,.08), 0 8px 20px rgba(22,36,44,.08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:Karla,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit}.wrap{max-width:760px;margin:0 auto;padding:0 0 64px}.topnav{background:var(--pine-dark);color:var(--paper)}.topnav-inner{max-width:760px;margin:0 auto;padding:12px 20px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.topnav-brand{display:flex;align-items:center;text-decoration:none}.topnav-logo{height:34px;width:auto;display:block}.topnav-links{display:flex;align-items:center;gap:18px}.topnav-links a{font-size:13.5px;font-weight:600;text-decoration:none;color:var(--paper);opacity:.9}.topnav-links a:hover{opacity:1;text-decoration:underline}.topnav-links button.ghost.small{border-color:#fbf8f259;color:var(--paper);padding:6px 12px;font-size:12.5px}.topnav-links button.ghost.small:hover{border-color:var(--paper)}header.band{background:var(--pine);color:var(--paper);padding:40px 24px 46px;position:relative;overflow:hidden}header.band:after{content:"";position:absolute;left:0;right:0;bottom:0;height:14px;background:repeating-linear-gradient(90deg,var(--pine-dark) 0 18px,transparent 18px 36px);opacity:.35}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;color:var(--gold-soft);margin:0 0 10px}h1{font-family:Fraunces,serif;font-weight:700;font-size:clamp(28px,5vw,40px);margin:0 0 12px;line-height:1.1}.editable-title{cursor:pointer;border-bottom:1px dashed transparent;transition:border-color .12s ease;width:fit-content}.editable-title:hover{border-bottom-color:#fbf8f28c}.title-edit-input{display:block;font-family:Fraunces,serif;font-weight:700;font-size:clamp(28px,5vw,40px);line-height:1.1;margin:0 0 12px;width:100%;max-width:100%;background:transparent;color:var(--paper);border:none;border-bottom:1px dashed rgba(251,248,242,.55);padding:0 0 2px}.title-edit-input:focus{outline:none;border-bottom-color:var(--paper)}h3{font-family:Fraunces,serif;font-size:16px;margin:26px 0 10px;color:var(--ink)}header.band p{margin:0;max-width:52ch;font-size:15.5px;line-height:1.55;color:#d7dee2}main{padding:0 20px;position:relative;z-index:1}.stat-row{display:flex;gap:10px;margin:-24px 0 28px;flex-wrap:wrap}.stat{background:var(--card);border:1px solid var(--card-border);border-radius:10px;box-shadow:var(--shadow);padding:12px 16px;flex:1;min-width:130px}.stat .n{font-family:Fraunces,serif;font-weight:700;font-size:22px;color:var(--pine)}.stat .l{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-weight:600}.date-group{margin-bottom:26px}.date-head{display:flex;align-items:baseline;gap:10px;margin:0 0 10px;padding-left:2px}.date-head .day{font-family:Fraunces,serif;font-weight:700;font-size:19px;color:var(--ink)}.slot-card{background:var(--card);border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--shadow);padding:16px 18px;margin-bottom:10px;position:relative}.slot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}.role-name{font-family:Fraunces,serif;font-weight:600;font-size:17px;color:var(--ink)}.badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:4px 10px;border-radius:999px;white-space:nowrap}.badge.open{background:var(--gold-soft);color:var(--gold-text)}.badge.filled{background:var(--rust-soft);color:var(--rust)}.names{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.name-pill{display:flex;align-items:center;justify-content:space-between;background:var(--gold-soft);border-radius:8px;padding:8px 10px;font-size:14.5px}.name-pill .who{font-weight:600}.name-pill .who small{display:block;font-weight:400;color:var(--ink-soft);margin-top:2px}.remove-btn{background:none;border:none;cursor:pointer;color:var(--ink-soft);font-size:12.5px;text-decoration:underline;padding:2px 4px}.remove-btn:hover{color:var(--rust)}.open-slot-line{font-size:13.5px;color:var(--ink-soft);font-style:italic;margin-bottom:10px}button.primary{background:var(--pine);color:var(--paper);border:none;border-radius:8px;padding:9px 16px;font-family:Karla,sans-serif;font-weight:700;font-size:13.5px;cursor:pointer;transition:transform .08s ease,background .15s ease}button.primary:hover{background:var(--pine-dark)}button.primary:active{transform:scale(.97)}button.primary:disabled{opacity:.45;cursor:not-allowed}button.primary.small{padding:7px 12px;font-size:12.5px}button.ghost{background:none;border:1px solid var(--card-border);color:var(--ink);border-radius:8px;padding:8px 14px;font-family:Karla,sans-serif;font-weight:600;font-size:13px;cursor:pointer}button.ghost:hover{border-color:var(--pine)}.signup-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:10px;border-top:1px dashed var(--card-border)}.signup-form input{flex:1;min-width:140px;border:1px solid var(--card-border);border-radius:7px;padding:8px 10px;font-family:Karla,sans-serif;font-size:14px;background:#fff}.signup-form input:focus{outline:2px solid var(--pine);outline-offset:1px}.stamp{position:absolute;top:14px;right:16px;font-family:Fraunces,serif;font-weight:700;font-size:11px;letter-spacing:.05em;color:var(--rust);border:2px solid var(--rust);border-radius:6px;padding:2px 7px;transform:rotate(4deg) translateZ(0);backface-visibility:hidden;will-change:transform;opacity:.85}.empty-state{background:var(--card);border:1px dashed var(--card-border);border-radius:12px;padding:24px;text-align:center;color:var(--ink-soft);font-size:14px}.footnote{font-size:12.5px;color:var(--ink-soft);text-align:center;margin-top:34px;line-height:1.6}.archive-row{display:flex;justify-content:flex-end;gap:10px;margin:-24px 0 28px}button.ghost.warning{color:var(--rust);border-color:var(--rust);background:var(--rust-soft)}button.ghost.warning:hover{background:var(--rust);color:var(--paper)}.field-row{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--card-border);font-size:14px}.field-row:last-of-type{border-bottom:none}.field-row-label{flex:1;font-weight:600;color:var(--ink)}.field-row-label-editable{cursor:pointer;border-bottom:1px dashed transparent}.field-row-label-editable:hover{border-bottom-color:var(--card-border)}.field-label-input{flex:1;font-family:Karla,sans-serif;font-weight:600;font-size:14px;color:var(--ink);border:none;border-bottom:1px dashed var(--pine);background:transparent;padding:0 0 2px}.field-label-input:focus{outline:none}.field-row-tag{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.autosave-note{min-height:16px;font-size:12px;color:var(--ink-soft);margin-top:5px}.login-card{background:var(--card);border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--shadow);padding:28px;margin-top:-24px}.stack-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink)}.field input{border:1px solid var(--card-border);border-radius:7px;padding:10px 12px;font-family:Karla,sans-serif;font-size:14.5px;font-weight:400}.field input:focus{outline:2px solid var(--pine);outline-offset:1px}.error-text{color:var(--rust);font-size:13px}.sheet-list{display:flex;flex-direction:column;gap:10px}.sheet-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--shadow);padding:14px 18px;color:var(--ink)}.sheet-row:hover{border-color:var(--pine)}.sheet-row-link{flex:1;min-width:0;text-decoration:none;color:inherit}.sheet-row-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.rename-btn{background:none;border:none;cursor:pointer;color:var(--ink-soft);font-size:12.5px;text-decoration:underline;padding:2px 4px}.rename-btn:hover{color:var(--pine)}.rename-btn-danger:hover{color:var(--rust)}.sheet-row-editing{padding:10px 14px}.sheet-rename-input{width:100%;font-family:Fraunces,serif;font-weight:600;font-size:17px;color:var(--ink);border:none;border-bottom:1px dashed var(--pine);background:transparent;padding:4px 0}.sheet-rename-input:focus{outline:none}.link-copy{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--card-border);border-radius:10px;padding:10px 14px;margin-bottom:24px;flex-wrap:wrap}.link-copy code{font-size:13px;color:var(--ink-soft);flex:1;word-break:break-all}.manage-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.manage-row input{border:1px solid var(--card-border);border-radius:7px;padding:8px 10px;font-family:Karla,sans-serif;font-size:14px}.reminders-box{background:var(--card);border:1px solid var(--card-border);border-radius:12px;box-shadow:var(--shadow);padding:16px 18px;margin-bottom:20px}.checkbox-row{display:flex;align-items:center;gap:9px;font-size:14.5px;font-weight:600;color:var(--ink);cursor:pointer}.checkbox-row input{width:16px;height:16px;accent-color:var(--pine);cursor:pointer}.reminders-note{font-size:12.5px;color:var(--ink-soft);margin:12px 0 0;line-height:1.5}.existing-slots{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.existing-slot-row{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--card-border);border-radius:8px;padding:9px 12px;font-size:13.5px}
