@font-face{font-family:"Pretendard Variable";src:url("/fonts/PretendardVariable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

:root{font-family:'Pretendard Variable',Pretendard,'Malgun Gothic',sans-serif;color:#203832;background:#f5f5ef;--line:#dce3d9;--muted:#697b73;--amber:#855012}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:10px;background:white;color:inherit;font-weight:600}button:hover{border-color:var(--accent);background:var(--accent-soft)}button:disabled{cursor:not-allowed;opacity:.45}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button[aria-pressed=true],button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}a{color:var(--accent-text)}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.2px;line-height:1.3;margin-bottom:12px}h2{font-size:21px;letter-spacing:-.6px}h3{font-size:17px}p{line-height:1.7}small,.muted{color:var(--muted)}.demo{padding:9px 24px;background:#203832;color:#e7efda;text-align:center;font-size:13px;line-height:1.5}.top{border-bottom:1px solid var(--line);background:#fafbf6}.top-inner{max-width:1160px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;gap:16px}.brand{font-weight:800;font-size:20px;letter-spacing:-.7px}.brand b{display:inline-grid;place-items:center;background:var(--accent-soft);width:35px;height:35px;border-radius:11px;margin-right:10px}.switch{display:flex;gap:5px;background:#edf0e8;padding:4px;border-radius:14px}.switch button{border:0;background:transparent}.switch button.active{background:white;box-shadow:0 2px 5px #20383212}.shell{max-width:1160px;margin:32px auto;padding:0 24px}.layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px}.sidebar{padding-top:8px}.sidebar button{display:block;width:100%;text-align:left;margin-bottom:8px;background:transparent;border-color:transparent}.sidebar button.active{background:var(--accent-soft);color:var(--accent-text)}.eyebrow{font-size:12px;font-weight:700;color:var(--accent-text);letter-spacing:1.5px;margin-bottom:12px}.card{background:#fff;border:1px solid var(--line);padding:26px;border-radius:18px;margin-bottom:18px}.row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.stack{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tag{display:inline-block;padding:5px 10px;background:#edf2e9;border-radius:7px;font-size:12px;white-space:nowrap}.tag.warn{background:#fff0d9;color:var(--amber)}.tag.done{background:var(--accent-soft);color:var(--accent-text)}.divider{border-top:1px solid var(--line);margin:22px 0}.intro{margin-bottom:24px}.intro p{margin-bottom:10px}.steps{display:flex;gap:8px;margin:22px 0}.step{flex:1;border-bottom:3px solid var(--line);padding:10px 0;color:var(--muted);font-size:14px}.step.on{border-color:var(--accent);color:var(--accent-text);font-weight:700}.days{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin:18px 0}.days button{padding:10px 3px;font-size:13px}.days small{display:block;margin-bottom:4px}.slots{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.slots button{font-weight:500;font-size:13px;padding:11px 3px}.hint{font-size:13px;background:#f3f5ef;border-radius:10px;padding:12px 14px;line-height:1.7;margin:16px 0}.actions{display:flex;justify-content:space-between;gap:10px;padding:18px 0;position:sticky;bottom:0;background:#f5f5eff5;z-index:2}.field{display:block;font-size:14px;font-weight:600}.field input,.field select,.field textarea{display:block;margin-top:8px;width:100%}input,select,textarea{padding:11px;border:1px solid #bccbc0;border-radius:8px;background:white;color:inherit}textarea{min-height:92px;resize:vertical;width:100%}input[type=number]{width:90px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.dungeon{padding:18px 0;border-bottom:1px solid var(--line)}.dungeon:last-child{border:0}.dungeon h3{margin-bottom:5px}.requests{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.check{display:flex;gap:8px;align-items:center;font-size:14px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.metric{background:white;border:1px solid var(--line);border-radius:15px;padding:18px}.metric strong{font-size:30px;display:block;margin-top:9px}.metric small{font-size:13px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-size:12px;color:var(--muted);font-weight:500}td,th{padding:15px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.notice{padding:14px 18px;border-radius:12px;border:1px solid var(--accent-border);background:var(--accent-soft);margin-bottom:20px;line-height:1.6}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quote{background:#f6f6f1;border-radius:12px;padding:18px;white-space:pre-wrap;line-height:1.7}.result-card{border-left:4px solid var(--accent)}.time{font-size:22px;font-weight:700}.result-card p{margin-bottom:8px}.empty{padding:30px;text-align:center;color:var(--muted)}#feedback{margin-bottom:16px;color:#80391e;font-weight:600;line-height:1.6}#feedback:empty{display:none}.small{font-size:13px}.date-summary{line-height:1.9;margin:0;padding-left:18px}footer{max-width:1160px;margin:32px auto;padding:0 24px;color:var(--muted);font-size:12px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:800px){.layout{grid-template-columns:1fr;gap:20px}.sidebar{display:flex;overflow:auto;gap:5px;padding:0}.sidebar button{white-space:nowrap;width:auto;margin:0;font-size:13px}.sidebar .aside-note{display:none}.shell{margin-top:20px;padding:0 16px}.card{padding:20px}.top-inner{padding:16px;flex-wrap:wrap}.brand{font-size:18px}.switch{width:100%}.switch button{flex:1}.intro h1{font-size:27px}.days{grid-template-columns:repeat(4,1fr)}.slots{grid-template-columns:repeat(4,1fr)}.metrics{gap:8px}.metric{padding:13px}.metric strong{font-size:25px}.review-grid{grid-template-columns:1fr}.actions button{flex:1}.demo{font-size:12px}.dungeon .row{align-items:flex-start}.step{font-size:12px}}


:root{color-scheme:dark;color:#f5f5f5;background:#171717;--accent:#7f8cc5;
/* All interaction colors follow the selected member's accent. */
--accent-soft:color-mix(in srgb,var(--accent) 14%,#202020);
--accent-soft-hover:color-mix(in srgb,var(--accent) 23%,#202020);
--accent-hover:color-mix(in srgb,var(--accent) 78%,white);
--accent-text:color-mix(in srgb,var(--accent) 78%,white);
--accent-border:color-mix(in srgb,var(--accent) 60%,#393939);
--on-accent:#171717;--line:#393939;--muted:#aaa;--amber:#ddd}
body{background:#171717}button{background:#262626;color:#f5f5f5}button:hover{background:var(--accent-soft);border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button[aria-pressed=true],button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-text)}.demo{background:#101010;color:#aaa}.top{background:#1c1c1c}.brand{display:flex;align-items:center;gap:12px}.brand img{width:40px;height:40px;object-fit:contain}.switch{background:#141414}.switch button.active{background:var(--accent-soft);color:var(--accent-text);box-shadow:none}.sidebar button.active{background:var(--accent-soft);color:var(--accent-text)}.card,.metric{background:#202020}.tag,.tag.done,.tag.warn{background:#303030;color:#ddd}.tag.done{color:var(--accent-text);background:var(--accent-soft)}.hint,.quote{background:#292929}.actions{background:#171717f5}input,select,textarea{background:#191919;color:#f5f5f5;border-color:#505050}input[type=checkbox]{accent-color:var(--accent)}.notice{background:var(--accent-soft);border-color:var(--accent);color:#eee}.result-card{border-left-color:var(--accent)}.step.on{color:var(--accent-text);border-color:var(--accent)}.eyebrow,a{color:var(--accent-text)}#feedback{display:none}.identity{display:flex;gap:12px;align-items:center}.identity button{color:var(--accent-text)}[hidden]{display:none!important}
dialog{color:#f5f5f5;background:#222;border:1px solid #494949;border-radius:20px;padding:28px;width:min(540px,calc(100% - 32px));max-height:85dvh;box-shadow:0 24px 100px #0009}dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}dialog h2{line-height:1.5}dialog p{white-space:pre-wrap;color:#ccc}.nickname-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0 12px}.nickname-grid button{display:flex;align-items:center;gap:10px;text-align:left}.swatch{width:13px;height:13px;border-radius:50%;background:var(--swatch);flex-shrink:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.identity-caption{font-size:13px;color:#aaa}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent)}
@media(max-width:800px){.top-inner{gap:12px}.brand{font-size:18px}.identity{width:100%;justify-content:space-between}.identity .switch{width:auto;flex:1}.nickname-grid{grid-template-columns:repeat(2,1fr)}dialog{padding:22px}}


.schedule-board{padding:20px 14px}.schedule-controls{margin-bottom:12px}.party-matrix{min-width:1050px;table-layout:fixed;font-size:13px}.party-matrix th,.party-matrix td{text-align:center;padding:10px 4px}.party-matrix thead th{background:#292929}.party-matrix th:first-child{position:sticky;left:0;background:#232323;text-align:left;width:138px;max-width:150px;z-index:1}.party-matrix th:nth-child(2),.party-matrix td:nth-child(2){width:175px;max-width:200px;text-align:left}.party-matrix thead th:not(:first-child):not(:nth-child(2)){overflow-wrap:anywhere}.schedule-time{display:inline-block;margin-top:5px;font-weight:400}.role-mark{display:inline-grid;place-items:center;width:29px;height:29px;color:var(--person);border:1px solid var(--person);border-radius:6px;background:#303030;font-weight:700}.person-chip{display:inline-flex;gap:6px;align-items:center;color:var(--person);background:#292929;border-left:3px solid var(--person);padding:5px 8px;border-radius:5px;font-size:13px}.person-chip small{color:#bdbdbd;font-size:11px}.party-chips{display:flex;flex-wrap:wrap;gap:7px}.mobile-schedule{display:none}.lock-button{padding:7px 10px;font-size:12px}.mobile-date h3{color:var(--accent-text);padding-top:16px}.mobile-date td,.mobile-date th{white-space:normal;padding:14px 7px;vertical-align:top}.mobile-date .mobile-time{width:70px;font-size:14px;line-height:1.8}.mobile-date td p{margin:6px 0 12px}.mobile-date table{table-layout:fixed}.mobile-date thead th:first-child{width:70px}
@media(min-width:801px){.top-inner,.shell,footer{max-width:1370px}.layout{grid-template-columns:180px minmax(0,1fr);gap:20px}}
.dungeon-heading{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.dungeon-heading .participation{margin-left:18px;padding:6px 0}.requests input:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:800px){.desktop-schedule{display:none}.mobile-schedule{display:block}.schedule-board{padding:18px 12px}.schedule-controls{align-items:stretch}.schedule-controls select{max-width:180px}}

.week-banner{position:sticky;top:0;z-index:3;background:#171717;padding:12px 0;border-bottom:1px solid #393939}.message{white-space:pre-wrap}.login{max-width:600px;margin:50px auto}.slots{grid-template-columns:repeat(6,1fr)}.slot-hour{margin:12px 0}.actions{flex-wrap:wrap}button.selected{background:var(--accent-soft);border-color:var(--accent)}.form-error{color:#ffb4ab}.link-value{width:100%;font-size:13px} .desktop-only{display:block}@media(max-width:800px){.slots{grid-template-columns:repeat(4,1fr)}.desktop-only{display:none}}
.time-unit{border:0;padding:0;margin:16px 0}.time-unit legend{font-size:14px;margin-bottom:8px}.time-unit label{padding:8px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.time-unit input{accent-color:var(--accent);margin:0;width:18px;height:18px}.slots button[aria-pressed=mixed]{border-color:var(--accent);background:repeating-linear-gradient(135deg,var(--accent-soft) 0 6px,#373737 6px 12px)}

/* Compact application shell; widen only when a future screen requires it. */
:root{--content-width:880px}
.top-inner,.shell{max-width:var(--content-width)}
.top-inner{padding:16px 24px}.brand{font-size:18px}.brand img{width:32px;height:32px}
.shell{margin:16px auto 24px}.layout{display:flex;flex-direction:column;gap:24px;margin-top:16px}main{min-width:0}
h1{font-size:27px;letter-spacing:-.8px}h2{font-size:20px}.card{padding:24px}.week-banner{font-size:14px;line-height:1.6}
.top-nav{display:flex;align-items:stretch;gap:4px;padding:5px;background:#202020;border:1px solid var(--line);border-radius:14px;overflow-x:auto}
.top-nav button{display:flex;flex:1 0 auto;align-items:center;justify-content:center;gap:8px;padding:11px 12px;border-color:transparent;background:transparent;font-size:14px;white-space:nowrap;color:var(--muted)}
.top-nav button:hover{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-border)}.top-nav button.active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent)}
.nav-icon{width:19px;height:19px;flex-shrink:0}.steps{margin:18px 0}.days{gap:5px}.days button{font-size:12px}
body.entry{min-height:100svh;display:grid;place-items:center;padding:24px 16px}
.entry .top,.entry #nav{display:none}
.entry .shell{width:100%;max-width:480px;margin:0;padding:28px;background:#202020;border:1px solid var(--line);border-radius:20px}
.entry .week-banner{position:static;background:transparent;padding:0 0 20px;font-size:14px;line-height:1.6}
.entry-week-label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.entry .layout{margin-top:22px;gap:0}.entry .login{margin:0;padding:0;background:transparent;border:0;border-radius:0}
.entry h1{font-size:22px;letter-spacing:-.6px;line-height:1.4;margin:0 0 20px}.entry .nickname-grid{margin:0;gap:8px}.entry .nickname-grid button{padding:12px;min-height:48px;font-size:14px}
@media(max-width:600px){
 .top-inner{padding:14px 16px}.shell{padding:0 16px}.layout{gap:20px}.card{padding:18px}
 .top-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:4px;overflow:visible}
 .top-nav button{flex-direction:column;gap:6px;padding:10px 2px;font-size:11px;letter-spacing:-.3px;min-width:0}.nav-icon{width:20px;height:20px}
 .top-nav button[data-page="admin"],.top-nav button[data-page="settings"]{grid-column:span 2;flex-direction:row}
 h1{font-size:24px}.week-banner .row{gap:8px}.entry .shell{padding:24px}.entry .nickname-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.entry .nickname-grid button{padding:10px 8px;gap:8px}
}
@media(max-width:360px){.entry .nickname-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-nav button{font-size:10px}}

/* Keep time selection and bulk actions together, above the time sections. */
.actions{position:fixed;inset:auto 0 0;z-index:4;display:block;padding:0;border:0;border-top:1px solid var(--line);border-radius:0;background:#1c1c1c;box-shadow:none;backdrop-filter:none}
.actions-inner{max-width:var(--content-width);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:max(16px,env(safe-area-inset-bottom,0px)) 24px}
#main:has(.actions){padding-bottom:calc(var(--action-bar-height,100px) + 16px)}
@media(max-width:800px){.actions-inner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:max(14px,env(safe-area-inset-bottom,0px)) 16px}.actions-inner button{min-width:0;padding:10px 8px;font-size:14px;overflow-wrap:anywhere}}
.availability-timeline{margin:0 0 20px;padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#1c1c1c}
.availability-caption{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.availability-caption h3{margin:0;font-size:14px;font-weight:600}.availability-caption>span{font-size:12px;color:var(--accent-text);font-variant-numeric:tabular-nums}
.timeline-periods{display:grid;grid-template-columns:4fr 8fr 6fr 6fr;margin-bottom:10px}
.timeline-periods>span{display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;color:var(--muted)}
.timeline-periods .nav-icon{width:16px;height:16px}
.timeline-track{position:relative;height:22px;background:#393939;border-radius:5px;isolation:isolate}
.timeline-excluded,.timeline-selected{position:absolute;top:0;height:100%}
.timeline-excluded,.legend-excluded{background:repeating-linear-gradient(135deg,#202020 0 3px,#303030 3px 5px)}
.timeline-excluded:first-child{border-radius:5px 0 0 5px}.timeline-selected{background:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-hover)}
.timeline-track{overflow:hidden}.timeline-tick{position:absolute;top:0;height:100%;border-left:1px solid #1116;pointer-events:none}
.timeline-hours{position:relative;height:26px;margin-top:6px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.timeline-hours span{position:absolute;transform:translateX(-50%)}.timeline-hours span:first-child{transform:none}.timeline-hours span:last-child{transform:translateX(-100%)}
.timeline-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.timeline-legend>span{display:inline-flex;align-items:center;gap:5px}.timeline-legend i{width:10px;height:10px;border-radius:2px;border:1px solid #ffffff15}
.legend-selected{background:var(--accent)}.legend-empty{background:#393939}
.timeline-ranges{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:12px 0 0;padding:0;font-size:12px;font-variant-numeric:tabular-nums}
.timeline-ranges li{padding:4px 8px;border-radius:5px;background:var(--accent-soft);color:var(--accent-text)}
.timeline-empty{margin:12px 0 0;font-size:12px;color:var(--muted);line-height:1.5}
@media(max-width:600px){.availability-timeline{padding:14px 12px}.timeline-hours{font-size:10px}.timeline-periods>span{font-size:11px;gap:3px}.timeline-periods .nav-icon{width:14px;height:14px}.availability-caption h3{font-size:13px}}
.time-tools{padding:16px;border:1px solid var(--line);border-radius:12px;background:#1c1c1c}
.time-tools-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.time-tools .time-unit{margin:0;min-width:0}.time-tools .time-unit legend{font-size:12px;color:var(--muted)}
.time-tools .time-unit .stack{gap:4px}.time-tools .time-unit label{min-height:44px;padding:8px 12px;font-size:13px;background:#242424;border-radius:8px}
.time-tools .time-unit label:has(input:checked){border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}
.clear-day,.add-range{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px}
button.clear-day{color:#dfb6b3;border-color:transparent;background:transparent;padding:10px 4px;font-weight:500}
button.clear-day:hover:not(:disabled){color:#ffd3cf;background:#362524;border-color:#71504d}
button.clear-day:disabled{color:var(--muted)}
.range-tools{display:grid;grid-template-columns:minmax(130px,1.2fr) minmax(100px,1fr) minmax(140px,1fr) auto;align-items:end;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.range-tools .field{min-width:0;font-size:12px;color:var(--muted);font-weight:500}
.range-tools select{min-width:0;margin-top:6px;font-size:13px;min-height:44px;padding:10px 8px}
.add-range{min-height:44px}.time-help{margin:12px 0 20px;line-height:1.6}
.time-section{margin:0 0 24px}.time-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.time-section-heading h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin:0}
.time-section-heading .nav-icon{width:17px;height:17px;color:var(--muted)}
.time-section-heading>span{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.slots button.slot-boundary{padding-top:6px;padding-bottom:6px;line-height:1.3}
.slot-boundary span{display:block}.slot-end{font-size:11px;opacity:.85;margin-top:2px}
@media(max-width:600px){
 .time-tools{padding:12px}.time-tools-top{gap:8px}.clear-day{font-size:12px;gap:5px}.clear-day .nav-icon{width:16px;height:16px}
 .range-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.range-date,.add-range{grid-column:1/-1}
}

/* Distinguish hovering an already selected control from its resting state. */
button[aria-pressed=true]:hover,button.active:hover,button.selected:hover,.top-nav button.active:hover{background:var(--accent-soft-hover);border-color:var(--accent-hover);color:var(--accent-text)}
.time-tools .time-unit label:hover{background:var(--accent-soft-hover);border-color:var(--accent-border)}
input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--accent-border)}
::selection{background:var(--accent-soft-hover);color:#f5f5f5}

/* One aligned row per dungeon on desktop; paired fields on narrow screens. */
.dungeon-option{display:grid;grid-template-columns:70px minmax(0,1fr) 374px;align-items:center;gap:12px;padding:14px 12px;border:1px solid var(--line);border-radius:10px;margin-top:10px;background:#1c1c1c}
.dungeon-option.is-participating{border-color:var(--accent-border);background:color-mix(in srgb,var(--accent) 5%,#202020)}
.dungeon-info{min-width:0}.dungeon-info h3{margin:0 0 5px;font-size:15px;line-height:1.4;color:var(--accent-text)}.dungeon-info p{margin:0;font-size:11px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.dungeon-participation{justify-content:center;min-height:44px;padding:8px 4px;white-space:nowrap;border-radius:8px;font-size:13px;cursor:pointer}
.dungeon-participation:has(input:checked){color:var(--accent-text);background:var(--accent-soft)}
.dungeon-option input[type=checkbox]{flex-shrink:0;margin:0}
.dungeon-inputs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 88px;align-items:center;gap:10px;min-width:0}
.dungeon-count{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;font-weight:500;min-width:0}
.dungeon-count>span{white-space:nowrap}.dungeon-count small{font-size:10px}
.dungeon-count input{width:64px;min-width:0;min-height:44px;margin:0;padding:10px 6px;text-align:right;font-size:13px;font-variant-numeric:tabular-nums;appearance:textfield}
.dungeon-count input::-webkit-inner-spin-button,.dungeon-count input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.dungeon-count input::placeholder{color:var(--muted);opacity:1}.dungeon-count input:disabled{background:#242424;color:var(--muted);border-color:var(--line);cursor:not-allowed}
.dungeon-unlimited{justify-content:flex-end;gap:6px;min-height:44px;font-size:12px;white-space:nowrap;cursor:pointer}
.dungeon-unlimited:has(input:disabled){color:var(--muted);cursor:not-allowed}.dungeon-unlimited:has(input:checked){color:var(--accent-text)}
.dungeon-fixed{margin:0;text-align:right;font-size:13px;color:var(--muted);line-height:1.5}.dungeon-fixed.is-active{color:var(--accent-text);font-weight:600}
@media(max-width:800px){
 .dungeon-option{grid-template-columns:70px minmax(0,1fr);gap:10px 12px;padding:14px 12px}
 .dungeon-info{text-align:right}
 .dungeon-participation{min-width:70px}.dungeon-info p{font-size:12px}
 .dungeon-inputs{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;padding-top:10px;border-top:1px solid var(--line)}
 .dungeon-count input{width:64px;flex-shrink:1}.dungeon-unlimited{grid-column:1/-1;justify-self:end}
 .dungeon-fixed{grid-column:1/-1;padding-top:10px;border-top:1px solid var(--line)}
}
@media(max-width:360px){.dungeon-inputs{column-gap:10px}.dungeon-count{flex-wrap:wrap;gap:5px}.dungeon-count input{width:100%}}

/* Final review: participation and requested counts lead, details follow. */
.confirmation .card{padding:20px 24px;margin-bottom:14px}
.confirmation h3{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:15px}.confirmation h3 .nav-icon{width:18px;height:18px;color:var(--accent-text)}
.confirm-overview{border-color:var(--accent-border);background:var(--accent-soft)}
.confirm-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.confirm-kicker{font-size:13px;color:var(--muted);margin:0 0 6px}.confirm-heading h2{font-size:25px;margin:0;line-height:1.3;color:var(--accent-text)}
.confirm-pending{font-size:12px;white-space:nowrap;padding:5px 9px;border:1px solid var(--accent-border);border-radius:6px;color:var(--accent-text)}
.confirm-metrics{display:grid;grid-template-columns:1fr 1fr 1.4fr;margin:20px 0 0;padding-top:16px;border-top:1px solid var(--accent-border);gap:16px}
.confirm-metrics>div{min-width:0}.confirm-metrics dt{font-size:12px;color:var(--muted);margin-bottom:6px}.confirm-metrics dd{margin:0;font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.confirm-metrics dd small{font-size:13px;font-weight:500;margin-left:5px}.confirm-metrics dd.confirm-total{font-size:20px;line-height:1.6}
.confirm-dungeon-list{list-style:none;margin:0;padding:0}.confirm-dungeon-list>li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line)}.confirm-dungeon-list>li:first-child{border-top:0;padding-top:0}.confirm-dungeon-list>li>strong{font-size:15px;line-height:1.5}
.confirm-counts{display:grid;grid-template-columns:80px 110px;gap:20px;margin:0;text-align:right;flex-shrink:0}.confirm-counts dt{font-size:11px;color:var(--muted);margin-bottom:3px}.confirm-counts dd{margin:0;font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--accent-text)}.confirm-counts dd small{margin-left:4px;font-size:12px;font-weight:400}.confirm-counts dd.is-unlimited{font-size:16px;line-height:1.6}
.confirm-fixed{font-size:15px;color:var(--accent-text)}.confirm-fixed b{font-size:21px}.confirm-fixed small{font-size:12px}
.confirm-roles{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:8px;padding-top:14px}.confirm-roles>span{font-size:12px;color:var(--muted)}.confirm-roles>div{display:flex;gap:6px;flex-wrap:wrap}.confirm-roles b{font-size:12px;padding:5px 10px;border-radius:6px;background:var(--accent-soft);color:var(--accent-text);font-weight:600}
.confirm-date-list{margin:0}.confirm-date-list>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;padding:12px 0;border-top:1px solid var(--line)}.confirm-date-list>div:first-child{border-top:0;padding-top:0}.confirm-date-list>div:last-child{padding-bottom:0}.confirm-date-list dt{font-size:13px;font-weight:600;line-height:1.8}.confirm-date-list dd{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:0;min-width:0}.confirm-date-list dd span{padding:4px 8px;background:#292929;border-radius:5px;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.confirm-note-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:14px;margin:0 0 12px}.confirm-note small{font-size:12px}.confirm-no-note{font-size:13px;margin:0}.confirm-absence{font-size:14px;margin:14px 0 0;color:var(--muted)}
.confirm-submit-help{font-size:13px;line-height:1.8;margin:18px 0 8px;color:var(--muted)}.confirm-submit-help strong{color:var(--accent-text);font-weight:600}.confirm-submit-help span{font-size:12px}
@media(max-width:600px){
 .confirmation .card{padding:18px 16px}.confirm-heading h2{font-size:22px}.confirm-metrics{gap:10px;grid-template-columns:1fr 1fr}.confirm-metrics>div:last-child{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between}.confirm-metrics>div:last-child dt{margin:0}.confirm-metrics dd{font-size:24px}
 .confirm-dungeon-list>li{flex-wrap:wrap;gap:8px}.confirm-counts{margin-left:auto;grid-template-columns:64px 94px;gap:12px}.confirm-fixed{margin-left:auto}.confirm-date-list>div{grid-template-columns:1fr;gap:6px}.confirm-date-list dd{justify-content:flex-start}
}

.identity button{color:#fff}
/* One-week, optional birthday question. Celebration itself recurs every year. */
.birthday-question{border-color:var(--accent-border);background:linear-gradient(125deg,var(--accent-soft),#202020 70%)}
.birthday-question-tag{display:inline-block;margin-bottom:12px;font-size:11px;letter-spacing:.4px;color:var(--accent-text)}
.birthday-question h2{font-size:20px;line-height:1.5;margin-bottom:8px}.birthday-question>p{font-size:14px;color:var(--accent-text)}
.birthday-fields{display:flex;align-items:end;gap:12px;margin:20px 0 14px}.birthday-fields label{width:125px;max-width:38%}.birthday-question-mascot{width:64px;height:64px;object-fit:cover;border-radius:12px;border:2px solid var(--accent-border);transform:rotate(6deg)}
.birthday-confirm{display:flex;align-items:center;gap:8px}.birthday-confirm img{width:28px;height:28px;border-radius:7px;object-fit:cover}
.birthday-question p.birthday-help{margin:0;font-size:12px;color:var(--muted)}
/* Click-through confetti: never traps focus or blocks the date/time controls. */
.birthday-party{position:fixed;inset:0;z-index:20;pointer-events:none;overflow:hidden;display:grid;place-items:center;padding:20px}
.birthday-party:empty{display:none}
.birthday-scene{width:min(500px,100%);position:relative;animation:birthday-depart .3s ease-in 2.5s both}
.birthday-banner{position:relative;padding:30px 48px 32px;text-align:center;border:7px ridge var(--accent);border-radius:3px;background:repeating-linear-gradient(135deg,var(--accent-soft) 0 14px,color-mix(in srgb,var(--accent) 20%,#202020) 14px 28px);color:var(--accent-text);box-shadow:10px 10px 0 var(--accent-border),0 0 0 3px var(--accent-border),0 18px 65px #0009;animation:birthday-stamp .45s cubic-bezier(.2,.8,.3,1.2) both;transform:rotate(-2deg)}
.birthday-banner p{position:relative;z-index:1;line-height:1.35;margin:0}
.birthday-ribbon{display:inline-block;position:relative;margin-top:-52px;margin-bottom:17px;background:var(--accent);color:var(--on-accent);padding:7px 25px;border:3px solid var(--accent-hover);font-size:22px;font-weight:900;letter-spacing:5px;box-shadow:4px 4px 0 var(--accent-border);transform:rotate(2deg)}
.birthday-date{font-weight:700;font-size:17px}
.birthday-banner .birthday-name{margin:8px 0;font-size:clamp(30px,7vw,46px);font-weight:950;letter-spacing:-1.5px;color:var(--accent-text);text-shadow:2px 2px 0 #171717,4px 4px 0 var(--accent-border);overflow-wrap:anywhere}
.birthday-name span{display:block;margin-top:4px;font-size:20px;letter-spacing:0;color:var(--accent-text);text-shadow:none}
.birthday-congratulations{font-size:clamp(27px,6.5vw,40px);font-weight:950;letter-spacing:-1px;color:var(--accent-text);text-shadow:2px 2px 0 #171717,4px 3px 0 var(--accent-border)}
.birthday-banner .birthday-remark{display:inline-block;margin:18px 0 10px;padding:6px 12px;font-size:13px;font-weight:800;background:var(--accent);color:var(--on-accent);transform:rotate(1deg);border:1px dashed var(--accent-border)}
.birthday-banner .birthday-from{font-size:11px;font-weight:700;letter-spacing:1px}
.birthday-mascot{position:absolute;bottom:22px;width:78px;height:78px;animation:birthday-bop .45s ease-in-out 5 alternate}
.birthday-mascot img{display:block;width:100%;height:100%;object-fit:cover;border-radius:18px;border:3px solid var(--accent);box-shadow:3px 4px 0 var(--accent-border)}
.birthday-left{left:-24px;transform:rotate(-15deg)}.birthday-right{right:-24px;transform:rotate(15deg);animation-delay:.12s}
.birthday-combo{position:absolute;right:-8px;bottom:-21px;padding:7px 12px;border:3px solid var(--accent-hover);background:var(--accent-soft);color:var(--accent-text);font-size:15px;font-weight:900;transform:rotate(-5deg);box-shadow:3px 3px 0 var(--accent-border)}
.birthday-sparks{position:fixed;inset:0;overflow:hidden}
.birthday-sparks img{width:38px;height:38px;object-fit:cover;border-radius:50%;border:2px solid var(--accent)}
.birthday-sparks span{position:absolute;left:var(--x);top:-55px;font-size:30px;animation:birthday-rain 2.4s ease-in var(--delay) both;color:var(--accent);text-shadow:2px 2px 0 var(--accent-border)}
.birthday-variant-1 .birthday-banner{animation-name:birthday-twirl}.birthday-variant-2 .birthday-banner{animation-name:birthday-entrance}.birthday-variant-3 .birthday-banner{animation-name:birthday-encore}
@keyframes birthday-stamp{0%{opacity:0;transform:scale(1.5) rotate(-12deg)}65%{opacity:1;transform:scale(.95) rotate(3deg)}100%{transform:scale(1) rotate(-2deg)}}
@keyframes birthday-twirl{from{opacity:0;transform:scale(.3) rotate(-35deg)}to{opacity:1;transform:rotate(-2deg)}}
@keyframes birthday-entrance{from{opacity:0;transform:translateY(100px) rotate(5deg)}to{opacity:1;transform:rotate(-2deg)}}
@keyframes birthday-encore{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.08) rotate(3deg)}100%{transform:rotate(-2deg)}}
@keyframes birthday-bop{from{translate:0 0;scale:1}to{translate:0 -12px;scale:1.1}}
@keyframes birthday-rain{from{transform:translateY(-5vh) rotate(0)}to{transform:translateY(110vh) rotate(320deg)}}
@keyframes birthday-depart{from{opacity:1}to{opacity:0;transform:translateY(15px)}}
@media(max-width:600px){.birthday-banner{padding:25px 22px 28px;border-width:5px}.birthday-ribbon{font-size:18px;padding:6px 15px;letter-spacing:3px}.birthday-date{font-size:15px}.birthday-name span{font-size:18px}.birthday-mascot{width:54px;height:54px;bottom:30px}.birthday-left{left:-12px}.birthday-right{right:-12px}.birthday-mascot img{border-radius:12px}.birthday-sparks img{width:30px;height:30px}.birthday-remark{max-width:100%}.birthday-question h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.birthday-scene,.birthday-banner,.birthday-mascot{animation:none}.birthday-sparks{display:none}}
.brand{font-size:22px}

.response-page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:20px}.response-page-heading p{margin-bottom:0}.response-page-heading button{white-space:nowrap}
.response-stamp{font-size:12px;color:var(--muted);margin:16px 0 0;line-height:1.6}.response-empty h2{font-size:19px}.response-empty p{font-size:14px}
.team-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 24px}.team-totals>div{padding:16px 18px;border:1px solid var(--line);border-radius:12px;background:#202020}.team-totals dt{font-size:12px;color:var(--muted)}.team-totals dd{margin:8px 0 0;font-size:26px;font-weight:700}.team-totals dd small{font-size:12px;margin-left:5px;font-weight:400}
.member-response{--accent-soft:color-mix(in srgb,var(--accent) 14%,#202020);--accent-soft-hover:color-mix(in srgb,var(--accent) 23%,#202020);--accent-hover:color-mix(in srgb,var(--accent) 78%,white);--accent-text:color-mix(in srgb,var(--accent) 78%,white);--accent-border:color-mix(in srgb,var(--accent) 60%,#393939);margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:#202020;overflow:hidden}
.member-response>summary{display:grid;grid-template-columns:minmax(140px,1fr) auto 20px;align-items:center;gap:14px;padding:18px 20px;cursor:pointer;list-style:none;min-height:76px}.member-response>summary::-webkit-details-marker{display:none}.member-response>summary:hover{background:var(--accent-soft)}.member-response>summary:focus-visible{outline-offset:-4px}
.member-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.member-heading>b{font-size:17px;color:var(--accent-text)}.member-status{font-size:11px;padding:4px 7px;border-radius:5px;color:var(--accent-text);background:var(--accent-soft)}.member-brief{font-size:12px;line-height:1.6;color:var(--muted);font-variant-numeric:tabular-nums}.member-expand{display:flex;color:var(--accent-text)}.member-response[open]{border-color:var(--accent-border)}.member-response[open] .member-expand{transform:rotate(45deg)}
.member-detail{padding:0 20px 20px}.member-detail .confirmation{border-top:1px solid var(--line);padding-top:18px}.member-detail .card{background:#1c1c1c}.member-detail .card:last-child{margin-bottom:0}
.member-quiet{padding:18px 20px}.member-quiet p{margin:8px 0 0;font-size:12px;color:var(--muted)}.member-quiet .member-status{background:#303030;color:var(--muted)}
@media(max-width:600px){.team-totals{gap:8px}.team-totals>div{padding:14px 12px}.member-response>summary{grid-template-columns:minmax(0,1fr) 20px;gap:6px 10px;padding:16px}.member-brief{grid-row:2;grid-column:1}.member-expand{grid-column:2;grid-row:1/3}.member-detail{padding:0 12px 12px}.member-quiet{padding:16px}.response-page-heading{gap:12px}}
