/* v4 輪班鬧鐘: settings page, ringing screen and scheduling through the app reminder bridge.
   Sections: 1 shared chips + badges · 2 下一次響 · 3 提前多久響 · 4 各班別 · 5 setting rows · 6 接下來 5 次 · 7 ringing screen. */

/* ── 1. Shared ── */
html.v4 .v4al-chip{padding:3px 8px;font-size:12px;line-height:17px}
html.v4 .v4al-chip.v4al-hol{border:1px dashed var(--v4-hol-line)}
html.v4 .v4al-chip .v4-ic{font-size:13px;stroke-width:2.4}
html.v4 .v4al-badge{flex:none;display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;border:1px solid var(--v4-ok-line);background:var(--v4-ok-bg);color:var(--v4-ok-ink);font-size:11px;line-height:16px;font-weight:700;white-space:nowrap}
html.v4 .v4al-badge.off{border-color:var(--v4-tile-line);background:var(--v4-tile);color:var(--v4-muted)}
html.v4 .v4al-badge.warn{border-color:var(--v4-warn-line);background:var(--v4-warn-bg);color:var(--v4-red-text)}
html.v4 [data-v4-sub="alarm"] .v4-group-title{height:24px;margin:-2px 0;padding-top:4px}
html.v4 .v4-switch.v4al-onoff{margin-top:5px}
html.v4 .v4al-list{padding:12px;gap:0}

/* ── 2. 下一次響 ── */
html.v4 .v4al-next{gap:8px;overflow:hidden}
html.v4 .v4al-big{margin:0;font-size:34px;line-height:42px;font-weight:900;color:var(--v4-ink);white-space:nowrap}
html.v4 .v4al-big.soft{font-family:var(--v4-serif);font-size:26px;letter-spacing:.04em;color:var(--v4-title)}
html.v4 .v4al-line{margin:0;padding-right:56px;font-size:13px;line-height:18px;font-weight:700;color:var(--v4-sub)}
html.v4 .v4al-chips{display:flex;flex-wrap:wrap;gap:6px;padding-right:72px}
html.v4 .v4al-chips .v4-ic{font-size:12px;stroke-width:2.4}
html.v4 .v4al-warn,html.v4 .v4al-note{margin:0;padding-right:72px;font-size:12px;line-height:17px}
html.v4 .v4al-warn{font-weight:700;color:var(--v4-red-text)}
html.v4 .v4al-note{font-weight:500;color:var(--v4-muted)}
html.v4 .v4al-next>.v4al-next-cat{position:absolute;right:6px;bottom:-1px;width:78px;height:89px;object-fit:contain;pointer-events:none}

/* ── 3. 提前多久響 ── */
html.v4 .v4al-lead{padding:12px;gap:10px}
html.v4 .v4al-seg{display:flex;gap:5px}
html.v4 .v4al-seg>button{position:relative;flex:1 1 0;min-width:0;height:40px;display:flex;align-items:center;justify-content:center;padding:0 2px;border-radius:11px;border:1px solid var(--v4-tile-line);background:var(--v4-tile);color:var(--v4-sub);font-family:var(--v4-sans);font-size:13px;line-height:18px;font-weight:700;white-space:nowrap;cursor:pointer}
html.v4 .v4al-seg>button.on{border-color:#755136;background:linear-gradient(180deg,#986e51 0%,#8a5c3f 16%,#8a5c3f 84%,#906446 100%);box-shadow:0 6px 12px rgba(70,40,20,.2),0 3px 0 #5a3a26,inset 0 1px 0 rgba(255,255,255,.14);color:#fff7ec;font-family:var(--v4-serif);font-weight:900;text-shadow:0 1px 0 rgba(70,16,10,.45)}
html.v4 .v4al-seg>button.on::before{content:"";position:absolute;inset:2.5px;border:1.2px dashed rgba(255,241,226,.55);border-radius:7.5px;pointer-events:none}
html.v4 .v4al-desc{margin:0;font-size:12px;line-height:17px;font-weight:500;color:var(--v4-muted)}
html.v4 .v4al-custom{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14px;line-height:20px;font-weight:700;color:var(--v4-sub)}
html.v4 .v4al-custom span{font-weight:500;color:var(--v4-muted)}
html.v4 .v4-sub-body .v4al-custom input{width:84px;height:36px;padding:0 8px;font:inherit;font-size:16px;font-weight:900;text-align:center}

/* ── 4. 各班別的響鈴時間 ── */
html.v4 .v4al-shift{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 0;min-width:0}
html.v4 .v4al-mid{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;cursor:pointer}
html.v4 .v4al-mid b{font-size:14px;line-height:20px;font-weight:700;color:var(--v4-ink);white-space:nowrap}
html.v4 .v4al-mid small{display:flex;align-items:center;gap:2px;min-width:0;font-size:12px;line-height:17px;font-weight:400;color:var(--v4-muted);white-space:nowrap}
html.v4 .v4al-mid small .v4-ic{font-size:11px;stroke-width:2.4;opacity:.8}
html.v4 .v4-sub-body .v4al-mid select{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;font-size:16px;-webkit-appearance:none;appearance:none}
html.v4 .v4al-at{flex:none;display:flex;align-items:baseline;gap:3px;white-space:nowrap}
html.v4 .v4al-at b{font-size:20px;line-height:26px;font-weight:900;color:var(--v4-ink)}
html.v4 .v4al-at i{font-style:normal;font-size:12px;line-height:16px;font-weight:700;color:var(--v4-sub)}
html.v4 .v4al-at.dim{opacity:.4}
/* Narrow phones: the ring time drops under the shift rather than over its start time. */
@media (max-width:379.98px){
  html.v4 .v4al-shift{flex-wrap:wrap;row-gap:4px}
  html.v4 .v4al-mid{flex:1 1 auto;min-width:auto}
  html.v4 .v4al-at,html.v4 .v4al-shift>:last-child{margin-left:auto}
}

/* ── 5. Setting rows (前一天提醒, 休假與假日, 響法) ── */
html.v4 .v4al-row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:8px 0;margin:0;min-width:0;border:0;background:none;text-align:left;color:inherit;font:inherit}
html.v4 .v4al-row.eve{padding:6px 0}
html.v4 .v4al-row.radio{padding:9px 0}
html.v4 button.v4al-row{cursor:pointer}
html.v4 .v4al-txt{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px}
html.v4 .v4al-txt>b{max-width:100%;font-size:15px;line-height:21px;font-weight:700;color:var(--v4-ink)}
html.v4 .v4al-txt>small{max-width:100%;font-size:12px;line-height:17px;font-weight:400;color:var(--v4-muted)}
html.v4 .v4al-tp{position:relative;display:inline-block;color:var(--v4-red-text);border-bottom:1.5px dashed var(--v4-red-dash);line-height:19px;cursor:pointer}
html.v4 .v4-sub-body .v4al-tp input:is([type=time],.t24){position:absolute;inset:0;width:100%;height:100%;min-width:0;margin:0;padding:0;opacity:0;cursor:pointer;font-size:16px}
html.v4 .v4al-radio{position:relative;flex:none;width:22px;height:22px;border-radius:11px;border:2px solid var(--v4-tile-line);background:var(--v4-card)}
html.v4 .v4al-radio.on{border-color:var(--v4-brown)}
html.v4 .v4al-radio.on::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--v4-brown)}
html.v4 .v4al-row.off .v4al-radio,html.v4 .v4al-row.off .v4al-txt>b,html.v4 .v4al-row.off .v4al-txt>small{opacity:.5}
html.v4 .v4al-soon{display:inline-flex;margin-top:4px;padding:2px 7px;border-radius:6px;border:1px dashed var(--v4-p-amber-line);background:var(--v4-card-gold);color:var(--v4-p-amber-ink);font-style:normal;font-size:11px;line-height:16px;font-weight:700}
html.v4 .v4al-name{flex:1;min-width:0;font-size:15px;line-height:21px;font-weight:700;color:var(--v4-ink)}
html.v4 .v4al-val{flex:none;font-style:normal;font-size:13px;line-height:18px;font-weight:500;color:var(--v4-muted);white-space:nowrap}
html.v4 .v4al-row .v4-chev{color:var(--v4-muted);stroke-width:2}
html.v4 .v4al-hint{margin:-4px 0 8px 44px;font-size:12px;line-height:17px;font-weight:500;color:var(--v4-muted)}

/* ── 6. 接下來 5 次 ── */
html.v4 .v4al-nx{display:flex;align-items:center;gap:12px;min-height:58px;padding:8px 0;min-width:0}
html.v4 .v4al-date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:46px;height:42px;border-radius:10px;border:1px solid var(--v4-tile-line);background:var(--v4-tile)}
html.v4 .v4al-date b{font-size:13px;line-height:17px;font-weight:900;color:var(--v4-ink)}
html.v4 .v4al-date small{font-size:10px;line-height:13px;font-weight:700;color:var(--v4-muted)}
html.v4 .v4al-nx .v4al-chip{min-width:0;overflow:hidden;text-overflow:ellipsis}
html.v4 .v4al-nx>.fill{flex:1;min-width:0}
html.v4 .v4al-nx>strong{flex:none;font-size:16px;line-height:22px;font-weight:900;color:var(--v4-ink);white-space:nowrap}
html.v4 .v4al-nx>strong.no{color:var(--v4-muted)}
html.v4 .v4al-nx>strong.dim{opacity:.45}
html.v4 .v4-btn.v4al-save{height:48px;font-size:16px}

/* ── 7. Ringing screen: a full-screen top-layer dialog ── */
html.v4 dialog.v4al-ring{position:fixed;inset:0;box-sizing:border-box;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0 var(--v4-safe-right) 0 var(--v4-safe-left);border:0;border-radius:0;background:linear-gradient(180deg,var(--v4-ring-top),var(--v4-ring-bottom));color:var(--v4-ink);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;font-family:var(--v4-sans);-webkit-font-smoothing:antialiased;box-shadow:none}
html.v4 dialog.v4al-ring:not([open]){display:none}
html.v4 dialog.v4al-ring:focus{outline:none}
html.v4 dialog.v4al-ring::backdrop{background:var(--v4-ring-bottom)}
.v4al-ring *{box-sizing:border-box}
.v4al-ring-in{display:flex;flex-direction:column;align-items:center;width:100%;max-width:440px;min-height:100%;margin:0 auto;padding:max(62px,calc(var(--v4-safe-top) + 10px)) 24px max(34px,calc(var(--v4-safe-bottom) + 12px))}
.v4al-ring-top{display:flex;flex-direction:column;align-items:center;gap:2px}
.v4al-ring-tag{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:12px;border:1px solid var(--v4-tile-line);background:var(--v4-tile);color:var(--v4-sub);font-size:12px;line-height:17px;font-weight:700}
.v4al-ring-tag .v4-ic{font-size:13px;stroke-width:2.4}
.v4al-ring-date{margin:0;font-size:16px;line-height:24px;font-weight:700;color:var(--v4-muted)}
.v4al-ring-time{margin:0;font-size:84px;line-height:96px;font-weight:900;color:var(--v4-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.v4al-ring-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;margin:18px 0 0;padding:16px 20px 20px;background:var(--v4-card);border:1.25px solid var(--v4-card-line);border-radius:22px;box-shadow:var(--v4-shadow);text-align:center}
.v4al-ring-card::before{content:"";position:absolute;inset:3.75px;border:1px dashed var(--v4-stitch);border-radius:17px;pointer-events:none}
.v4al-ring-card>*{position:relative}
.v4al-ring-cat{display:block;width:163px;height:186px;object-fit:contain;background:none}
.v4al-ring-title{margin:0;font-family:var(--v4-serif);font-weight:900;font-size:22px;line-height:30px;letter-spacing:.04em;color:var(--v4-title)}
.v4al-ring-line{margin:0;font-size:15px;line-height:21px;font-weight:700;color:var(--v4-sub)}
.v4al-ring-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.v4al-ring-fill{flex:1 1 auto;min-height:24px}
.v4al-ring-note{margin:0 0 14px;width:100%;text-align:center;font-size:12px;line-height:16px;font-weight:500;color:var(--v4-muted)}
html.v4 .v4al-ring .v4-btn{width:100%;flex:none;margin:0}
html.v4 .v4al-ring .v4al-wake{height:58px;border-radius:18px;font-size:19px}
html.v4 .v4al-ring .v4al-wake::before{border-radius:14px}
html.v4 .v4al-ring .v4al-snooze{height:50px;margin-top:12px;border-radius:16px;font-size:16px}
html.v4 .v4al-ring .v4al-snooze::before{border-radius:12px}
@media (max-height:740px){
  .v4al-ring-in{padding-top:max(24px,calc(var(--v4-safe-top) + 8px))}
  .v4al-ring-time{font-size:64px;line-height:74px}
  .v4al-ring-card{margin-top:12px;gap:8px}
  .v4al-ring-cat{width:118px;height:135px}
}
