/* ============ 鵝黃手繪風 ============ */
:root{
  --bg:#fff6d2; --bg-deep:#ffeeb0; --paper:#fffdf6; --hl:#ffe27a;
  --navy:#2e3a6b; --navy-soft:#5c6797; --sky:#8db4e2;
  --salmon:#e8977b; --salmon-dark:#d67c60; --orange:#bf6a32;
  --muted:#7a7468; --line:rgba(46,58,107,.22); --ok:#3d8a62; --bad:#c94c4c;
  --hand:"Huninn","PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;
  --sys:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;
  --r-hand:18px 22px 17px 23px / 22px 17px 23px 18px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--navy);line-height:1.6}
a{color:var(--salmon-dark)}
[hidden]{display:none!important}
code{background:var(--bg);padding:1px 6px;border-radius:6px;font-size:.9em}
input,select,textarea,button{font:inherit;color:inherit}

/* ============ 公開表單 ============ */
.public{font-family:var(--hand);font-size:16px;background:var(--bg)}
.wrap{max-width:560px;margin:0 auto;padding:12px 14px 24px}

.hero{position:relative;text-align:center;padding:30px 8px 14px}
.hero h1{margin:0 auto;max-width:15em;text-wrap:balance;padding:0 18px;font-size:1.45rem;line-height:1.4;font-weight:400;letter-spacing:.04em}
.sparkles{position:absolute;top:-2px;right:-6px;width:110px;height:74px}
.sparkles .fill,.doodle-star path{fill:var(--sky)}
.sparkles .plus{fill:none;stroke:var(--sky);stroke-width:2.2;stroke-linecap:round}
.sparkles .dot{fill:var(--sky)}
.squiggle{display:block;width:150px;height:12px;margin:6px auto 14px}
.squiggle path{fill:none;stroke:var(--salmon);stroke-width:3;stroke-linecap:round}
.banner{margin:0 auto 14px;background:var(--salmon);color:#fff;border-radius:22px;padding:10px 18px;
  font-size:1rem;letter-spacing:.05em;white-space:pre-line;max-width:30em}
.intro{text-wrap:pretty;white-space:pre-line;margin:0;color:var(--orange);font-size:.95rem;line-height:1.75}
.deadline{display:inline-block;margin:12px 0 0;padding:3px 14px;border:1.5px dashed var(--navy-soft);border-radius:99px;font-size:.88rem}
.notice{background:var(--paper);border:1.5px dashed var(--salmon);border-radius:14px;padding:8px 12px;font-size:.9rem}

.card{background:var(--paper);border:2px solid var(--navy);border-radius:var(--r-hand);padding:16px 16px 12px;
  margin-bottom:16px;box-shadow:4px 4px 0 rgba(46,58,107,.12)}
.card h2{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px;font-size:1.08rem;font-weight:400}
.card h2 small{color:var(--muted);font-size:.78em}
.doodle-star{width:18px;height:18px;flex-shrink:0}
.center{text-align:center}
.center h2{justify-content:center}
.big{font-size:2.4rem;margin:0}

.q{margin-bottom:12px}
.q:last-child{margin-bottom:4px}
.field{display:block;margin:0;border:0;padding:0;min-width:0}
.q-label{display:block;margin-bottom:5px;font-size:.95rem}
.q-label em{font-style:normal;color:#fff;background:var(--salmon);border-radius:99px;font-size:.68rem;padding:1px 7px;margin-left:6px;vertical-align:2px}
legend{padding:0;margin-bottom:0}
.public input:not([type=radio]):not([type=checkbox]),.public select,.public textarea{
  width:100%;padding:9px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font-size:16px}
.public input:focus,.public select:focus,.public textarea:focus{outline:3px solid rgba(255,226,122,.9);border-color:var(--navy)}
.public textarea{resize:vertical}
.hint{display:block;color:var(--muted);font-size:12px;margin:-2px 0 5px}
.field .hint{margin:4px 0 0}
.err{display:block;color:var(--bad);font-size:.82rem;margin-top:3px}
.err:empty{display:none}
.invalid{border-color:var(--bad)!important}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 出席選項 */
.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1px;height:100%;
  padding:10px 4px;border:1.5px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:.15s}
.choice-body .emoji{font-size:1.5rem;line-height:1.3}
.choice-body strong{font-weight:400;font-size:12px}
.choice-body small{color:var(--muted);font-size:10px;line-height:1.35}
.choice input:checked+.choice-body{background:var(--hl);border:2px solid var(--navy);transform:rotate(-1deg);box-shadow:2px 3px 0 var(--navy)}
.choice input:focus-visible+.choice-body{outline:3px solid var(--sky)}

/* 人數 */
.counter{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1.5px dashed var(--line)}
.counter strong{font-weight:400}
.counter small{display:block;color:var(--muted);font-size:.76rem}
.stepper{display:flex;align-items:center;gap:6px;flex-shrink:0}
.stepper button{width:36px;height:36px;border-radius:50%;border:1.8px solid var(--navy);background:#fff;font-size:1.15rem;line-height:1;cursor:pointer;padding:0}
.stepper button:active{background:var(--hl)}
.public .stepper input[type=number]{width:48px;text-align:center;padding:6px 2px;font-size:1.05rem}
.total{text-align:right;margin:8px 0 0;font-size:.95rem}
.total strong{color:var(--salmon-dark);font-size:1.35rem;font-weight:400}

/* 時段與選項 */
.link-btn{background:none;border:none;color:var(--salmon-dark);cursor:pointer;padding:0 0 8px;font-size:.9rem}
.slots,.opts{display:grid;gap:8px}
.opts{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.slot,.opt{display:flex;gap:10px;align-items:center;padding:9px 12px;border:2px solid var(--line);border-radius:var(--r-hand);
  background:#fff;cursor:pointer;transition:transform .15s,background .15s,box-shadow .15s,border-color .15s}
.slot:hover,.opt:hover{border-color:var(--navy-soft)}
.slot small{display:block;color:var(--muted);font-size:.78rem}
.slot strong{font-weight:400;font-size:12px}
.opt span{font-size:12px}
/* 可愛的圓圈／方框：選到時跳出愛心或勾勾 */
.slot input,.opt input{-webkit-appearance:none;appearance:none;width:22px;height:22px;flex-shrink:0;margin:0;cursor:pointer;
  border:2px solid var(--navy);background:#fff;display:grid;place-content:center}
.opt input[type=radio]{border-radius:50%}
.opt input[type=checkbox],.slot input{border-radius:7px}
.slot input::before,.opt input::before{content:"";width:13px;height:12px;transform:scale(0);
  transition:transform .2s cubic-bezier(.3,1.7,.5,1)}
.opt input[type=radio]::before{background:var(--salmon);
  clip-path:path("M6.5 12C6.5 12 0 7.6 0 3.6A3.3 3.3 0 0 1 6.5 2.4A3.3 3.3 0 0 1 13 3.6C13 7.6 6.5 12 6.5 12Z")}
.opt input[type=checkbox]::before,.slot input::before{background:var(--navy);
  clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}
.slot input:checked,.opt input:checked{background:#fff}
.slot input:checked::before,.opt input:checked::before{transform:scale(1)}
.slot input:focus-visible,.opt input:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.slot:has(input:checked),.opt:has(input:checked){background:var(--hl);border-color:var(--navy);box-shadow:2px 3px 0 var(--navy);transform:rotate(-1deg)}
.slot:nth-child(even):has(input:checked),.opt:nth-child(even):has(input:checked){transform:rotate(1deg)}

/* 可愛的下拉選單 */
.public select{-webkit-appearance:none;appearance:none;cursor:pointer;color:var(--navy);
  border:2px solid var(--navy);border-radius:var(--r-hand);background-color:var(--paper);padding-right:46px;
  box-shadow:2px 3px 0 var(--navy);transition:transform .12s,box-shadow .12s;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='12' fill='%23ffe27a' stroke='%232e3a6b' stroke-width='2'/%3E%3Cpath d='M9 12.5l5 5 5-5' fill='none' stroke='%232e3a6b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:26px 26px}
.public select:hover{transform:translateY(-1px);box-shadow:3px 4px 0 var(--navy)}
.public select:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--navy)}
.public select:focus{outline:3px solid rgba(255,226,122,.9)}

.privacy{color:var(--muted);font-size:.8rem;text-align:center;margin:4px 0 12px}
.submit{display:block;width:100%;padding:12px;font-size:1.1rem;letter-spacing:.2em;border:2px solid var(--navy);border-radius:99px;
  background:var(--salmon);color:#fff;cursor:pointer;box-shadow:3px 3px 0 var(--navy);transition:.1s}
.submit:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--navy)}
.submit:disabled{opacity:.6;cursor:wait}
.form-error{color:var(--bad);text-align:center;font-size:.9rem}
.copy-row{display:flex;gap:8px;margin:10px 0}
.copy-row input{font-size:.8rem!important}
.copy-row button{flex-shrink:0;padding:0 16px;border-radius:12px;border:2px solid var(--navy);background:var(--hl);cursor:pointer}
.foot{display:flex;justify-content:center;align-items:center;gap:6px;color:var(--navy-soft);font-size:.82rem;padding:16px 0 4px}
.foot .doodle-star{width:12px;height:12px}



/* 封面照片：拍立得風 */
.photo{position:relative;margin:4px auto 20px;max-width:440px;padding:10px 10px 12px;background:#fff;border:2px solid var(--navy);
  border-radius:6px 9px 5px 8px;box-shadow:5px 5px 0 rgba(46,58,107,.13);transform:rotate(-1.4deg)}
.photo img{display:block;width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;object-position:50% 18%;border-radius:3px}
.photo-tape{position:absolute;top:-13px;left:50%;width:92px;height:26px;transform:translateX(-50%) rotate(3deg)}
.photo-tape path{fill:rgba(255,226,122,.85);stroke:rgba(46,58,107,.25);stroke-width:1}
@media (max-width:420px){.photo{margin:2px 6px 18px}}

/* ============ 後台 ============ */
.admin{font-family:var(--sys);font-size:14px;background:#faf5e8}
.page-head{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin:-6px 0 12px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.panel{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:14px}
.panel h2{margin:0 0 10px;font-size:1.15em}
.panel h3{margin:0 0 6px;font-size:1.02em}
.panel.highlight{border:2px solid var(--salmon)}
.panel.best{background:linear-gradient(135deg,#fff,#fff3c4);border-left:5px solid var(--salmon)}
.best-list{margin:0;padding-left:1.4em}
.best-list li{margin:4px 0}
.btn{display:inline-flex;align-items:center;gap:4px;padding:7px 14px;border-radius:10px;border:1.5px solid var(--navy);background:#fff;color:var(--navy);
  font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--bg)}
.btn.primary{background:var(--navy);color:#fff}
.btn.primary:hover{background:#1f2850}
.btn.danger{border-color:var(--bad);color:var(--bad)}
.btn.danger:hover{background:#fbeaea}
.btn.ghost{border-color:transparent;background:transparent}
.btn.sm{padding:3px 10px;font-size:.9em}
.btn.wide{width:100%;justify-content:center;padding:10px}
.icon-btn{width:28px;height:24px;border:1.5px solid var(--line);background:#fff;border-radius:7px;cursor:pointer;font-size:.75em;color:var(--navy);padding:0}
.icon-btn:hover:not(:disabled){background:var(--hl)}
.icon-btn:disabled{opacity:.3;cursor:default}
.admin input:not([type=radio]):not([type=checkbox]),.admin select,.admin textarea{width:100%;padding:7px 10px;border:1.5px solid var(--line);border-radius:9px;background:#fff}
.admin input:focus,.admin select:focus,.admin textarea:focus{outline:3px solid rgba(255,226,122,.8);border-color:var(--navy)}
.admin .field{margin-bottom:10px}
.admin .field>span{display:block;font-weight:600;margin-bottom:4px}
.flash{padding:9px 14px;border-radius:10px;margin-bottom:12px;background:var(--bg)}
.flash.ok{background:#e6f4ea;color:#225c3c}
.flash.error{background:#fbeaea;color:#8f2c2c}
.muted{color:var(--muted)}
.pill{display:inline-block;padding:1px 9px;border-radius:99px;font-size:.78rem;font-weight:600;background:#e7eaf6;color:var(--navy);font-family:var(--sys)}
.pill.green,.pill.att-yes{background:#e3f3e8;color:#225c3c}
.pill.att-maybe{background:#fff0c2;color:#7a5600}
.pill.gray,.pill.att-no{background:#efede8;color:#6c675c}
.chip{display:inline-block;background:var(--bg);border-radius:6px;padding:0 6px;margin:1px 2px;font-size:.82em;white-space:nowrap}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.stat{background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:12px 14px}
.stat span{display:block;color:var(--muted);font-size:.88em}
.stat strong{font-size:1.9em;line-height:1.2}
.stat small{color:var(--muted);margin-left:4px}
.stat.sm strong{font-size:1.45em}
.legend{color:var(--muted);font-size:.9em;margin:-4px 0 8px}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:-1px;margin:0 4px 0 8px}
.sw.yes,.bar .yes{background:var(--navy)}
.sw.maybe,.bar .maybe{background:var(--sky)}
.bar-row{display:grid;grid-template-columns:190px 1fr 170px;gap:6px 14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.bar-row.inactive{opacity:.5}
.bar-label small{display:block;color:var(--muted);font-size:.85em}
.bar{display:flex;height:20px;background:#f5f1e3;border-radius:6px;overflow:hidden}
.bar span{display:block;width:0;transition:width .5s}
.bar-num strong{font-size:1.25em}
.missing{grid-column:1/-1;font-size:.88em;color:var(--muted)}
.missing p{margin:4px 0 0}
.custom-stat{padding:8px 0 10px;border-bottom:1px dashed var(--line)}
.custom-stat:last-child{border:0}
.mini-bar{display:grid;grid-template-columns:140px 1fr 40px;gap:10px;align-items:center;margin:4px 0}
.mini-bar .bar{height:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid2>.panel{margin-bottom:0}
.grid2+.panel{margin-top:14px}
.tbl-wrap{overflow-x:auto;background:#fff;border:1.5px solid var(--line);border-radius:14px}
.panel .tbl-wrap{border:0}
.tbl{width:100%;border-collapse:collapse}
.tbl th,.tbl td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{background:#fdf8e4;font-size:.86em;color:var(--muted);white-space:nowrap}
.tbl tr:hover td{background:#fffcf0}
.tbl tr.warn td{background:#fff3f0}
.nowrap{white-space:nowrap}
.note{padding:7px 0;border-bottom:1px dashed var(--line)}
.note p{margin:2px 0}
.msg{margin:0 0 10px;padding:9px 13px;background:#fffaea;border-left:4px solid var(--salmon);border-radius:8px}
.msg p{margin:0;white-space:pre-line}
.msg footer{color:var(--muted);font-size:.86em;margin-top:3px}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.admin .filters input{max-width:220px}
.admin .filters select{width:auto}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 18px}
.span2{grid-column:1/-1}
.admin fieldset.field{border:1.5px solid var(--line);border-radius:10px;padding:8px 14px}
.admin fieldset legend{font-weight:600;padding:0 4px}
.inline{display:inline-flex!important;align-items:center;gap:6px;margin-right:14px;font-weight:normal!important}
.admin .inline input{width:auto}
.counts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.row-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.danger-zone{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.slot-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.admin .slot-form input[name=label],.admin .slot-form input[name=title]{flex:2;min-width:170px;width:auto}
.admin .slot-form input[name=note],.admin .slot-form input[name=subtitle]{flex:3;min-width:170px;width:auto}
.admin .slot-form input[type=number]{width:84px}
.slot-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.slot-item>form:first-child{flex:1}
.slot-item.inactive{opacity:.55}
.steps{padding-left:1.3em}
textarea.code{font-family:ui-monospace,Menlo,monospace;font-size:.82em;margin:6px 0}
.user-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.admin .user-actions input{width:140px}

/* 表單題目編輯器 */
.fb-section{border-width:2px}
.fb-head{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding-bottom:10px;border-bottom:1.5px dashed var(--line)}
.fb-move{display:flex;flex-direction:column;gap:3px;align-self:center}
.fb-title{display:flex;gap:10px;align-items:flex-end;flex:1;flex-wrap:wrap}
.fb-title .field{flex:1;min-width:150px;margin-bottom:0!important}
.fb-list{list-style:none;margin:0;padding:0}
.fb-list li{display:flex;gap:10px;align-items:center;padding:9px 4px;border-bottom:1px solid var(--line)}
.fb-list li.off{opacity:.5}
.fb-list .fb-move{flex-direction:row}
.fb-q{flex:1;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.fb-q small{flex-basis:100%}
.fb-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.fb-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px;padding:10px;background:#fffaea;border-radius:10px}
.fb-add-label{font-weight:600}
.admin .fb-add select{width:auto}
.admin .fb-add input{flex:1;min-width:180px;width:auto}
.att-grid{display:grid;grid-template-columns:70px 1fr 2fr;gap:6px 10px;align-items:center}
.att-grid.cats{grid-template-columns:50px 1fr 2fr}
.att-grid.cats input[type=checkbox]{width:18px;height:18px;justify-self:center}

@media (max-width:760px){
  .bar-row{grid-template-columns:1fr}
  .grid2,.form-grid{grid-template-columns:1fr}
  .counts{grid-template-columns:1fr 1fr}
  .mini-bar{grid-template-columns:100px 1fr 32px}
  .fb-list li{flex-wrap:wrap}
  .fb-actions{width:100%}
}
.panel.narrow{max-width:520px}

/* ============ 後台版面：上方列＋左側選單 ============ */
.admin h1,.admin h2,.admin h3,.brand-text,.stat strong,.bar-num strong,.login-brand h1{font-family:var(--hand);font-weight:400}
.ic{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
:root{--top-h:60px;--side-w:236px}
.topbar{position:fixed;inset:0 0 auto 0;height:var(--top-h);z-index:30;display:flex;align-items:center;gap:12px;
  padding:0 16px;background:var(--navy);color:#fff;box-shadow:0 2px 10px rgba(20,26,60,.25)}
.hamburger{display:none;width:40px;height:40px;border:0;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;
  align-items:center;justify-content:center}
.hamburger .ic{width:22px;height:22px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;min-width:calc(var(--side-w) - 32px)}
.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--hl);font-size:20px;
  box-shadow:inset 0 0 0 2px #fff}
.brand-mark.big{width:64px;height:64px;font-size:34px;margin:0 auto 6px;box-shadow:inset 0 0 0 3px var(--navy)}
.brand-text{display:flex;flex-direction:column;line-height:1.15;font-size:1.15rem;color:var(--hl)}
.brand-text small{font-family:var(--sys);font-size:.68rem;color:#c9cfee;letter-spacing:.2em}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.top-actions form{margin:0}
.top-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.06);color:#fff;text-decoration:none;font-weight:600;cursor:pointer;font-size:.92rem}
.top-btn:hover{background:rgba(255,226,122,.16);color:var(--hl)}
.top-btn .ic{width:18px;height:18px}

.sidebar{position:fixed;top:var(--top-h);bottom:0;left:0;width:var(--side-w);z-index:20;overflow-y:auto;
  background:#fff;border-right:1px solid var(--line);padding:12px 10px;display:flex;flex-direction:column}
.sidebar nav{display:flex;flex-direction:column;gap:2px;flex:1}
.nav-top,.nav-group summary{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;color:var(--navy);
  text-decoration:none;font-size:1rem;cursor:pointer;list-style:none;user-select:none}
.nav-group summary::-webkit-details-marker{display:none}
.nav-top .ic,.nav-group summary .ic{color:var(--salmon-dark)}
.nav-top:hover,.nav-group summary:hover{background:#fdf6e0}
.nav-top.on{background:var(--hl);font-weight:700}
.nav-group.active>summary{background:#fff3d0;color:var(--salmon-dark);font-weight:700}
.chev{margin-left:auto;width:16px!important;height:16px!important;color:var(--muted)!important;transition:transform .2s}
.nav-group:not([open]) .chev{transform:rotate(-90deg)}
.nav-sub{display:block;margin:2px 6px 2px 44px;padding:8px 12px;border-radius:10px;color:#4a4f6a;text-decoration:none;font-size:.95rem}
.nav-sub:hover{background:#fdf6e0;color:var(--navy)}
.nav-sub.on{color:var(--navy);font-weight:700;background:#fff;box-shadow:inset 0 0 0 2px var(--salmon)}
.side-foot{display:flex;align-items:center;gap:6px;justify-content:center;color:var(--muted);font-size:.8rem;margin:16px 0 4px}
.side-foot .ic{width:14px;height:14px;color:var(--salmon)}
.scrim{position:fixed;inset:var(--top-h) 0 0 0;background:rgba(20,26,60,.35);z-index:15}

.admin-main{margin-left:var(--side-w);padding:calc(var(--top-h) + 16px) 26px 60px;max-width:calc(1240px + var(--side-w))}
.titlebar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;
  margin:0 -26px 18px;padding:14px 26px;background:#f3ecd8;border-bottom:1px solid var(--line)}
.titlebar h1{display:flex;align-items:center;gap:10px;margin:0;font-size:1.35rem}
.titlebar h1 .ic{width:24px;height:24px;color:var(--salmon-dark)}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;list-style:none;margin:0;padding:0;font-size:.85rem;color:var(--muted)}
.crumbs li+li::before{content:"›";margin:0 6px 0 2px;color:#b3ab98}
.crumbs a{display:inline-flex;align-items:center;gap:4px;color:var(--navy);text-decoration:none}
.crumbs .ic{width:15px;height:15px}
.panel{box-shadow:0 1px 3px rgba(46,58,107,.05)}

/* 總覽統計卡 */
.stat{display:flex;gap:12px;align-items:flex-start}
.stat-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;flex-shrink:0;background:#e7eaf6;color:var(--navy)}
.stat-ic .ic{width:22px;height:22px}
.stat-ic.yellow{background:#fff0bf;color:#8a6200}
.stat-ic.salmon{background:#fde3d9;color:var(--salmon-dark)}
.stat-ic.green{background:#e3f3e8;color:#2c6e48}
.stat-ic.sky{background:#e3eefb;color:#3c6aa6}
.stat>div{min-width:0}

/* 登入頁 */
.login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;
  background:radial-gradient(circle at 20% 15%,#fff3c4 0,transparent 45%),radial-gradient(circle at 85% 85%,#fde3d9 0,transparent 40%),#faf5e8}
.login-wrap .flash{width:100%;max-width:380px}
.login-card{width:100%;max-width:380px;background:#fff;border:2px solid var(--navy);border-radius:var(--r-hand);
  padding:26px 24px 20px;box-shadow:5px 5px 0 rgba(46,58,107,.12)}
.login-brand{text-align:center;margin-bottom:16px}
.login-brand h1{margin:0;font-size:1.5rem}
.login-brand p{margin:0;color:var(--muted);letter-spacing:.3em;font-size:.8rem}

@media (max-width:900px){
  .hamburger{display:inline-flex}
  .brand{min-width:0}
  .top-btn span{display:none}
  .top-btn{padding:0 10px}
  .sidebar{transform:translateX(-100%);transition:transform .22s;box-shadow:4px 0 20px rgba(20,26,60,.15)}
  body.nav-open .sidebar{transform:none}
  .admin-main{margin-left:0;padding:calc(var(--top-h) + 12px) 14px 50px}
  .titlebar{margin:0 -14px 14px;padding:12px 14px}
}
@media (max-width:420px){.brand-text small{display:none}}
.stat-sub{display:block;margin:2px 0 0!important;font-size:.8em}
.stats.main{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.stats.cats{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}

/* 回覆名單 */
.rlist td{vertical-align:middle}
.rlist .sub{display:block;color:var(--muted);font-size:.82em;margin-top:1px}
.right{text-align:right!important}
.row-btns{white-space:nowrap;text-align:right}
.row-btns form{display:inline}
.icon-action{display:inline-flex;align-items:center;gap:4px;height:32px;padding:0 10px;margin-left:4px;border:1.5px solid var(--line);
  border-radius:9px;background:#fff;cursor:pointer;font-size:.88em;color:var(--navy)}
.icon-action:hover{background:var(--hl);border-color:var(--navy)}
.icon-action.danger{color:var(--bad)}
.icon-action.danger:hover{background:#fbeaea;border-color:var(--bad)}

/* 快速編輯視窗 */
.qe{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 40px);padding:0;border:2px solid var(--navy);border-radius:18px;
  box-shadow:6px 6px 0 rgba(46,58,107,.15);color:var(--navy)}
.qe::backdrop{background:rgba(20,26,60,.4)}
.qe form{display:flex;flex-direction:column;max-height:calc(100vh - 44px)}
.qe-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#fff6d2;border-bottom:1px solid var(--line)}
.qe-head h2{margin:0;font-size:1.15em}
.qe-close{border:0;background:none;font-size:1.2em;cursor:pointer;color:var(--muted);padding:4px 8px;border-radius:8px}
.qe-close:hover{background:rgba(0,0,0,.06)}
.qe-body{padding:16px 18px 6px;overflow-y:auto}
.qe-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg label{flex:1;min-width:90px}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;text-align:center;padding:7px 8px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;font-weight:400!important}
.seg input:checked+span{background:var(--hl);border-color:var(--navy);font-weight:700!important}
.seg input:focus-visible+span{outline:3px solid var(--sky)}
.qe-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.qe-counts label{display:flex;flex-direction:column;gap:2px}
.qe-counts small{color:var(--muted)}
.admin .qe-counts input{text-align:center}
.qe-slots{display:flex;flex-direction:column;gap:6px}
.qe-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid var(--line);background:#fffcf2}
.qe-full{font-size:.88em}
.grow{flex:1}

@media (max-width:760px){
  .rlist thead{display:none}
  .rlist,.rlist tbody,.rlist tr,.rlist td{display:block;width:100%}
  .rlist tr{padding:10px 12px;border-bottom:1px solid var(--line)}
  .rlist td{border:0;padding:3px 0}
  .rlist td[data-label]{display:flex;gap:10px}
  .rlist td[data-label]::before{content:attr(data-label);flex:0 0 3.2em;color:var(--muted);font-size:.85em;padding-top:2px}
  .rlist td[data-label="姓名"]{display:block}
  .rlist td[data-label="姓名"]::before{display:none}
  .rlist td[data-label="姓名"] strong{font-size:1.08em}
  .row-btns{text-align:left;padding-top:8px!important}
  .icon-action{margin:0 6px 0 0}
  .qe-row2{grid-template-columns:1fr}
  .qe-counts{grid-template-columns:repeat(2,1fr)}
}

/* 「其他：自行填寫」 */
.other-text{margin-top:8px}

.pill.sky{background:#e3eefb;color:#3c6aa6}
.admin input.short{width:auto!important;max-width:220px;display:inline-block}
.admin input.mt{margin-top:6px}
.other-cfg .inline{margin-bottom:6px}
.other-cfg small{display:block}

/* 輸入框內的淡色提示文字 */
::placeholder{color:#bdb5a5;opacity:1;font-size:inherit}
.slot:has(input:checked),.slot:nth-child(even):has(input:checked){transform:rotate(-.4deg)}

/* ===== 小方格選項（原本的下拉選單） ===== */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:8px}
.tile{position:relative;cursor:pointer}
.tile input{position:absolute;opacity:0;pointer-events:none}
.tile span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;height:100%;
  padding:8px 6px;text-align:center;font-size:12px;line-height:1.35;background:#fff;
  border:2px solid var(--line);border-radius:var(--r-hand);transition:transform .15s,background .15s,box-shadow .15s,border-color .15s}
.tile span small{color:var(--muted);font-size:10px}
.tile:hover span{border-color:var(--navy-soft)}
.tile input:checked+span{background:var(--hl);border-color:var(--navy);box-shadow:2px 3px 0 var(--navy);transform:rotate(-1.5deg)}
.tile:nth-child(even) input:checked+span{transform:rotate(1.5deg)}
.tile input:checked+span::after{content:"♥";position:absolute;top:-8px;right:-4px;color:var(--salmon);font-size:15px;
  line-height:1;text-shadow:1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;animation:pop .25s cubic-bezier(.3,1.7,.5,1)}
.tile input:focus-visible+span{outline:3px solid var(--sky);outline-offset:2px}
.tile.invalid span,.opt.invalid{border-color:var(--bad)}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}

/* ===== 可愛的輸入格 ===== */
.public input:not([type=radio]):not([type=checkbox]),.public textarea{
  border:2px dashed rgba(46,58,107,.38);border-radius:var(--r-hand);background-color:var(--paper);color:var(--navy);
  caret-color:var(--salmon-dark);transition:border-color .15s,box-shadow .15s,background-color .15s}
.public input:not([type=radio]):not([type=checkbox]):hover,.public textarea:hover{border-color:var(--navy-soft)}
.public input:not([type=radio]):not([type=checkbox]):focus,.public textarea:focus{
  border:2px solid var(--navy);background-color:#fff;box-shadow:2px 3px 0 var(--navy);outline:3px solid rgba(255,226,122,.9);outline-offset:1px}
/* 多行的格子像筆記本 */
.public textarea{line-height:26px;padding:6px 12px;background-attachment:local;
  background-image:repeating-linear-gradient(to bottom,transparent 0 25px,rgba(141,180,226,.45) 25px 26px);background-position:0 6px}
/* 人數的 ＋／− 按鈕 */
.stepper button{background:var(--hl);box-shadow:1.5px 2px 0 var(--navy);transition:transform .1s,box-shadow .1s}
.stepper button:active{transform:translate(1px,1px);box-shadow:0 0 0 var(--navy)}

/* 補充說明裡的連結 */
.hint a{color:var(--salmon-dark);text-decoration:underline;text-decoration-style:wavy;text-underline-offset:3px;word-break:break-all}
.hint a:hover{color:var(--orange)}

/* 題目間距：標題 → 說明 → 作答區，每題都一樣 */
.public .q{margin-bottom:22px}
.public .q-label{margin-bottom:8px}
.public .q .hint{margin:-2px 0 12px;line-height:1.6}
.public .q .hint a{text-underline-offset:4px}
.public legend{margin-bottom:0;width:100%}
.public .other-text{margin-top:10px}

/* ===== 所有選擇題統一：一排三格，格子等寬等高 ===== */
.public .choices,.public .tiles,.public .opts,.public .slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.public .opt,.public .slot{flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px;
  min-height:76px;padding:10px 6px;height:100%}
.public .opt span,.public .slot span{line-height:1.4;word-break:break-word}
.public .slot small{font-size:10px}
.public .tile span{min-height:58px}

/* ===== v3：格子變小、單選不要圈圈、說明多留白 ===== */
.form-sub{margin:10px 0 0;font-size:.95rem;color:var(--navy);border-top:1.5px dashed var(--line);padding-top:12px}
/* 說明文字：行距與上下留白 */
.public .intro{line-height:2;letter-spacing:.03em}
.public .q-label{margin-bottom:10px}
.public .q .hint{margin:-4px 0 14px;line-height:1.75}
.public .card h2{margin-bottom:16px}
.public .q{margin-bottom:26px}
.public .q:last-child{margin-bottom:6px}
.public .privacy{margin:14px 0 16px;line-height:1.8}

/* 所有選擇格：小一點，統一一排三格 */
.public .choices,.public .tiles,.public .opts,.public .slots{gap:8px}
.public .tile span{min-height:0;padding:7px 6px}
.public .opt,.public .slot{min-height:0;padding:7px 6px;gap:2px}
.public .choice-body{padding:7px 4px}
.public .choice-body .emoji{font-size:1.15rem;line-height:1.25}
.public .slot strong{font-size:12px}

/* 單選、複選都不要圈圈／方框：點了格子變黃，角落冒出愛心或勾勾 */
.public .opt,.public .slot{position:relative}
.public .opt input,.public .slot input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.public .opt:has(input:checked)::after,.public .slot:has(input:checked)::after{
  position:absolute;top:-8px;right:-4px;font-size:15px;line-height:1;
  text-shadow:1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;animation:pop .25s cubic-bezier(.3,1.7,.5,1)}
.public .opt:has(input[type=radio]:checked)::after{content:"♥";color:var(--salmon)}
.public .opt:has(input[type=checkbox]:checked)::after,.public .slot:has(input:checked)::after{content:"✔";color:var(--navy)}
.public .opt:has(input:focus-visible),.public .slot:has(input:focus-visible){outline:3px solid var(--sky);outline-offset:2px}
.public .choice input:checked+.choice-body{position:relative}
.public .choice input:checked+.choice-body::after{content:"♥";position:absolute;top:-8px;right:-4px;color:var(--salmon);font-size:15px;line-height:1;
  text-shadow:1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;animation:pop .25s cubic-bezier(.3,1.7,.5,1)}
.public .slot span{display:block;line-height:1.35}
.public .slot strong{display:block;line-height:1.35;word-break:keep-all}
.public .slot small{margin-top:2px;line-height:1.3}

/* ===== v4 ===== */
/* 所有標題用粗體 */
.public h1,.public .card h2,.public .q-label,.public legend .q-label{font-weight:700}
.public .card h2 small{font-weight:400}
/* 補充說明：可換行、拿掉底線、上下更寬 */
.public .q .hint{white-space:pre-line;margin:0 0 16px;line-height:1.8}
.public .q-label{margin-bottom:6px}
.public .q-label+.hint,.public legend .hint{margin-top:2px}
.public .hint a{text-decoration:none;color:var(--salmon-dark);font-weight:700}
.public .hint a:hover{text-decoration:underline}
/* 每個選擇格大小一致（同一題所有格子一樣高） */
.public .choices,.public .tiles,.public .opts,.public .slots{grid-auto-rows:1fr}
.public .tile,.public .choice{height:100%}
.public .tile span,.public .opt span{line-height:1.4}
/* 出席：圖示放在文字旁邊 */
.public .choice-body strong{display:inline-flex;align-items:center;gap:4px;font-weight:700}
.public .choice-body .emoji{font-size:1rem;line-height:1}

/* ===== 輸入框字體 13px ===== */
.public input:not([type=radio]):not([type=checkbox]),.public textarea{font-size:13px;padding:8px 12px}
.public textarea{line-height:22px;padding:5px 12px;background-image:repeating-linear-gradient(to bottom,transparent 0 21px,rgba(141,180,226,.45) 21px 22px);background-position:0 5px}
.public .stepper input[type=number]{font-size:15px}

/* ===== Dashboard（可自訂區塊） ===== */
.dash{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.dash-item{grid-column:span 1;margin:0}
.dash-item.wide{grid-column:1/-1}
.dash-bare .stats{margin-bottom:0}
.dash-title{margin:0 0 8px;font-size:1rem;color:var(--navy)}
.memo-text{white-space:pre-line;margin:0;line-height:1.8}
.dash-edit td{vertical-align:middle}
.dash-edit .order-in{width:64px!important;text-align:center}
.dash-edit small{display:block;margin-top:2px}
@media (max-width:760px){.dash{grid-template-columns:1fr}.dash-item{grid-column:1/-1}}
.dash-edit+*,.tbl-wrap+.field{margin-top:18px}

/* 選項：選了之後換一段文字 */
.public .o-on{display:none!important}
.public .tile input:checked+.o-off,.public .opt:has(input:checked) .o-off{display:none!important}
.public .tile input:checked+.o-off+.o-on{display:flex!important}
.public .opt:has(input:checked) .o-on{display:inline!important}
.public .tile input:checked+.o-off+.o-on{background:var(--hl);border-color:var(--navy);box-shadow:2px 3px 0 var(--navy);transform:rotate(-1.5deg)}
.public .tile input:checked+.o-off+.o-on::after{content:"♥";position:absolute;top:-8px;right:-4px;color:var(--salmon);font-size:15px;line-height:1;
  text-shadow:1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;animation:pop .25s cubic-bezier(.3,1.7,.5,1)}

/* ===== 多頁表單 ===== */
.page[hidden]{display:none!important}
.page-intro .submit.start{margin-top:18px}
.steps{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 12px}
.steps i{width:22px;height:6px;border-radius:99px;background:rgba(46,58,107,.15)}
.steps i.on{background:var(--salmon)}
.steps span{margin-left:6px;font-size:12px;color:var(--muted)}
.pager{display:flex;align-items:center;gap:12px;margin:6px 0 10px}
.pager .submit{flex:1;margin:0}
.pager-back{flex-shrink:0;background:none;border:none;color:var(--navy-soft);font:inherit;font-size:14px;cursor:pointer;padding:10px 4px}
.pager-back:hover{color:var(--navy)}
.pager .submit[hidden]{display:none}
.done-body{white-space:pre-line}
.public .stepper input[type=number]{padding:6px 2px;width:48px;text-align:center}

/* ===== v5 ===== */
/* 人數格：數字不要被切掉 */
.public .stepper input[type=number][name]{width:52px;padding:6px 0;text-align:center;font-size:15px;border-radius:14px}
/* 第一頁介紹文字置中 */
.page-intro{text-align:center}
.page-intro .intro{margin-left:auto;margin-right:auto;text-align:center}
.page-intro .deadline{display:inline-block;margin-left:auto;margin-right:auto}
.page-intro .banner{margin-left:auto;margin-right:auto;text-align:center}
/* 日期／時段分開選 */
.slot-sub{margin:4px 0 8px;font-size:13px;font-weight:700;color:var(--navy)}
.slot-sub small{font-weight:400;color:var(--muted);font-size:11px}
.slot-pick .slots+.slot-sub{margin-top:16px}
.flex-pick{position:relative;display:block;cursor:pointer}
.flex-pick input{position:absolute;opacity:0;pointer-events:none}
.flex-pick span{display:block;text-align:center;padding:10px 12px;font-size:13px;font-weight:700;background:#fff;
  border:2px dashed var(--salmon);border-radius:var(--r-hand);color:var(--salmon-dark);transition:transform .15s,background .15s,box-shadow .15s}
.flex-pick span::before{content:"🙆 "}
.flex-pick input:checked+span{background:var(--hl);border:2px solid var(--navy);color:var(--navy);box-shadow:2px 3px 0 var(--navy);transform:rotate(-.6deg)}
.flex-pick input:checked+span::after{content:"♥";position:absolute;top:-8px;right:-4px;color:var(--salmon);font-size:15px;line-height:1;
  text-shadow:1px 1px 0 #fff,-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff;animation:pop .25s cubic-bezier(.3,1.7,.5,1)}
.flex-pick input:focus-visible+span{outline:3px solid var(--sky);outline-offset:2px}
.slot-pick.is-flex .slots{opacity:.45}
/* 後台 */
.admin .slot-form select{width:auto}
.chip.flex{background:var(--hl);border-color:var(--navy)}
.bar-group{margin:14px 0 6px;font-size:.92rem;color:var(--navy-soft)}
.slot-line{margin:6px 0}

/* 修改連結 QR code */
.qr{display:block;margin:4px auto 12px;width:132px;height:132px;border:2px solid var(--navy);border-radius:14px;
  background:var(--paper);box-shadow:2px 3px 0 var(--navy)}
.qr[hidden]{display:none}
.admin .qr{margin:8px 0}

/* 人數格：拿掉瀏覽器的上下箭頭，只用 ＋／− */
.public input[type=number]{-moz-appearance:textfield;appearance:textfield}
.public input[type=number]::-webkit-inner-spin-button,
.public input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}
/* 日期／時段／時間都可以：所有格子同樣高度 */
.public .slot-pick .slot,.public .flex-pick span{min-height:58px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center}
.public .flex-pick span{flex-direction:row}

/* ===== v6：日期 × 午餐／晚餐 對齊格 ===== */
.pair-grid{display:grid;gap:8px;grid-auto-rows:58px}
.pair-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.pair-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pair-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pair-date{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:100%;margin:0;padding:6px;
  font:inherit;color:var(--navy);background:var(--bg-deep);border:2px solid transparent;border-radius:var(--r-hand);cursor:pointer}
.pair-date strong{font-size:13px;font-weight:700;line-height:1.3}
.pair-date small{font-size:10px;color:var(--muted)}
.pair-date:hover{border-color:var(--navy-soft)}
.pair-date:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.public .pair-grid .slot{min-height:0;height:100%}
/* 「時間都可以」：跟其他格子一樣的樣式，橫跨整排 */
.public .slot.flex-all{grid-column:1/-1}
.slots .slot.flex-all{grid-column:1/-1}
.slot-pick.is-flex .pair-grid .slot:not(.flex-all),.slot-pick.is-flex .pair-date,
.slot-pick.is-flex .slots .slot:not(.flex-all){opacity:.45}
.slot-pick.is-flex .slots{opacity:1}

/* 所有輸入框：統一實線框，跟選項格子同一種樣式 */
.public input:not([type=radio]):not([type=checkbox]),.public textarea{
  border:2px solid var(--line);border-radius:var(--r-hand);background-color:#fff}
.public input:not([type=radio]):not([type=checkbox]):hover,.public textarea:hover{border-color:var(--navy-soft)}
.public .stepper input[type=number][name]{border:2px solid var(--line);background:#fff}
.public textarea{background-image:none;line-height:1.6;padding:8px 12px}

/* 後台：日期 × 午餐／晚餐 勾選表對齊（日期固定寬，後面每一格同寬） */
.slot-line{display:grid;grid-template-columns:8.5em repeat(auto-fill,6em);align-items:center;column-gap:8px;row-gap:4px;margin:6px 0}
.slot-line>.muted{white-space:nowrap}
.slot-line .inline{margin:0}

/* 換頁按鈕：主按鈕置中滿版，「上一步」置中放在下面 */
.pager{flex-direction:column;align-items:stretch;gap:4px}
.pager .submit{width:100%;flex:none}
.pager-back{order:2;align-self:center}

/* 後台「日期與時段」：每列欄位對齊 */
.slot-item{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:10px}
.slot-item>form:first-child{display:grid;grid-template-columns:78px minmax(0,1fr) minmax(0,1.4fr) 78px 64px auto;align-items:center;gap:8px}
.slot-item>form:last-child{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}
.admin .slot-item .slot-form input[name=label],.admin .slot-item .slot-form input[name=note]{min-width:0;width:100%}
.slot-item .inline{margin:0}
@media (max-width:900px){
  .slot-item{grid-template-columns:1fr}
  .slot-item>form:first-child{grid-template-columns:78px minmax(0,1fr) 70px;}
  .slot-item>form:first-child input[name=note]{grid-column:1/-1}
  .slot-item>form:last-child{justify-content:flex-start}
}
/* 回覆名單：時間標籤自動換行，不會超出卡片 */
.chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.chips .chip{margin:0}
@media (max-width:900px){
  .slot-item>form:first-child{grid-template-columns:78px minmax(0,1fr) auto}
  .slot-item>form:first-child input[name=label]{grid-column:2/-1}
}
