/* SIX panel — calm, neutral, light/dark. */
:root {
  --bg:#f5f6f8; --card:#ffffff; --text:#1d2630; --muted:#687482; --line:#e2e6eb; --soft:#eef1f4;
  --accent:#2f6f8f; --accent-hover:#285f7b; --accent-text:#ffffff; --accent-soft:#e6f0f5;
  --ok:#2e7d4f; --ok-soft:#e7f4ec; --err:#a83c2e; --err-soft:#fbeaea; --warn-soft:#fff6e0;
  --radius:10px; --shadow:0 1px 2px rgba(20,30,40,.05), 0 2px 8px rgba(20,30,40,.04);
}
@media (prefers-color-scheme: dark) { :root {
  --bg:#12161b; --card:#1a2027; --text:#e4e9ee; --muted:#93a0ad; --line:#2a323b; --soft:#202830;
  --accent:#6aa9c7; --accent-hover:#82b9d3; --accent-text:#0d1418; --accent-soft:#1c2c36;
  --ok:#6cc292; --ok-soft:#1b2e24; --err:#e39182; --err-soft:#3a2323; --warn-soft:#332c1a; --shadow:none; } }
* { box-sizing:border-box; }
html { scroll-padding-top:5rem; }
body { margin:0; font:15px/1.55 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; background:var(--bg); color:var(--text); }
a { color:var(--accent); } a:hover { color:var(--accent-hover); }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }
.i { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }

/* Header + navigation */
header { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:1rem; padding:.55rem 1rem; background:var(--card); border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; gap:.4rem; text-decoration:none; color:var(--text); margin-right:.5rem; }
.brand .sub { color:var(--muted); font-size:.9rem; }
nav { display:flex; gap:.15rem; flex:1; align-items:center; }
nav::-webkit-scrollbar { display:none; }
nav a { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .7rem; border-radius:8px; color:var(--muted); text-decoration:none; white-space:nowrap; }
nav a:hover { background:var(--soft); color:var(--text); }
nav a[aria-current="page"] { background:var(--accent-soft); color:var(--accent); font-weight:600; }
.logout { margin:0; } button.link { display:inline-flex; gap:.35rem; align-items:center; background:none; border:0; padding:.45rem .5rem; color:var(--muted); font:inherit; cursor:pointer; border-radius:8px; }
button.link:hover { background:var(--soft); color:var(--text); }
@media (max-width:760px) {
  header { flex-wrap:wrap; gap:.4rem; padding:.5rem .75rem 0; }
  nav { order:3; flex-basis:100%; margin:0 -.75rem; padding:0 .5rem .4rem; }
  nav a span { font-size:.88rem; } .logout { margin-left:auto; } .logout span { display:none; }
}

/* Layout */
main { max-width:980px; margin:1.5rem auto 3rem; padding:0 1rem; }
.page-head { margin:0 0 1.2rem; } .page-head h1 { margin:0 0 .2rem; } .page-head p { margin:0; }
.card { background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem 1.4rem; margin-bottom:1.1rem; box-shadow:var(--shadow); }
.card.narrow { max-width:420px; margin:3rem auto; }
h1 { font-size:1.45rem; line-height:1.25; margin:.1rem 0 1rem; } h2 { font-size:1.08rem; margin:0 0 .8rem; } h3 { font-size:.98rem; margin:0; }
.muted { color:var(--muted); } .small { font-size:.85rem; } .ok { color:var(--ok); } .off { color:var(--err); }
@media (max-width:600px) { main { margin-top:1rem; } .card { padding:1rem; } }

/* Dashboard tiles */
.tiles { display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:.8rem; margin-bottom:1.1rem; }
.tile { display:flex; flex-direction:column; gap:.1rem; padding:1rem 1.1rem; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); text-decoration:none; color:var(--text); box-shadow:var(--shadow); }
.tile:hover { border-color:var(--accent); } .tile .num { font-size:1.7rem; font-weight:650; line-height:1.1; }

/* Forms */
label { display:block; margin-bottom:.85rem; font-size:.9rem; color:var(--muted); }
input, select, textarea { display:block; width:100%; margin-top:.3rem; padding:.55rem .7rem; border:1px solid var(--line); border-radius:8px; background:var(--bg); color:var(--text); font:inherit; }
input:focus, select:focus, textarea:focus { border-color:var(--accent); outline:none; box-shadow:0 0 0 3px var(--accent-soft); }
textarea { resize:vertical; min-height:4.2rem; line-height:1.5; }
button { display:inline-flex; align-items:center; gap:.4rem; padding:.55rem 1.05rem; border:1px solid transparent; border-radius:8px; background:var(--accent); color:var(--accent-text); font:inherit; font-weight:550; cursor:pointer; }
button:hover:not(:disabled) { background:var(--accent-hover); }
button:disabled { opacity:.45; cursor:not-allowed; }
button.secondary { background:var(--card); color:var(--accent); border-color:var(--accent); } button.secondary:hover { background:var(--accent-soft); }
button.small { padding:.3rem .7rem; font-size:.85rem; }
.row { display:flex; gap:.8rem; flex-wrap:wrap; align-items:end; } .row > label { flex:1 1 180px; margin:0; } .row > button { margin-bottom:1px; }
[hidden] { display:none !important; }

/* Messages */
.error, .notice { padding:.65rem .9rem; border-radius:8px; margin:0 0 1rem; } .error { background:var(--err-soft); } .notice { background:var(--ok-soft); }
.error p { margin:.2rem 0; } .notice { word-break:break-word; }
.status { font-size:.88rem; } .status[data-kind="ok"] { color:var(--ok); } .status[data-kind="err"] { color:var(--err); } .status[data-kind="muted"] { color:var(--muted); }

/* Prompt editors */
form.prompt { padding:1rem 0; border-top:1px solid var(--line); } h2 + form.prompt { border-top:0; padding-top:.2rem; }
.prompt-head { display:flex; flex-wrap:wrap; align-items:baseline; gap:.2rem .6rem; margin-bottom:.4rem; }
form.prompt.dirty textarea { border-color:var(--accent); }
form.prompt.busy { opacity:.7; } form.prompt.busy button[data-save] { cursor:progress; }
.row-actions { display:flex; gap:.8rem; align-items:center; flex-wrap:wrap; margin-top:.55rem; } .row-actions audio { height:36px; max-width:100%; }
.flash { animation:flash 2s ease-out; } @keyframes flash { from { background:var(--accent-soft); } to { background:transparent; } }
.js form.prompt:not(.editing):not(.dirty) .tags { display:none; }
.tags { display:flex; flex-wrap:wrap; gap:.35rem .9rem; margin-top:.45rem; }
.tag-group { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; }
.tag-label { font-size:.75rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); margin-right:.1rem; }
.chip { padding:.2rem .6rem; border-radius:999px; background:var(--soft); color:var(--text); border:1px solid var(--line); font-size:.82rem; font-weight:450; }
.chip:hover:not(:disabled) { background:var(--accent-soft); border-color:var(--accent); color:var(--accent); }
details.help summary { cursor:pointer; color:var(--accent); font-size:.92rem; } details.help[open] summary { margin-bottom:.4rem; }
details.help ul { margin:.3rem 0 0; padding-left:1.2rem; } details.help li { margin:.2rem 0; }

/* Tables */
table { width:100%; border-collapse:collapse; } th, td { text-align:left; padding:.55rem .45rem; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--muted); font-weight:500; font-size:.83rem; } td form { margin:0; }
tbody tr:hover td { background:var(--soft); }
tr.sub td { padding-top:0; } tr.sub:hover td { background:none; } tr.sub details summary { cursor:pointer; color:var(--muted); font-size:.83rem; }
dl { display:grid; grid-template-columns:minmax(10rem, max-content) 1fr; gap:.2rem .9rem; margin:.4rem 0 .6rem; font-size:.84rem; } dt { color:var(--muted); } dd { margin:0; word-break:break-all; }
table.hours td.times { white-space:nowrap; } table.hours td.times input { display:inline-block; width:5.4rem; margin:0; }
table.hours th[scope=row] { color:var(--text); font-weight:500; font-size:.92rem; }
@media (max-width:600px) {
  table:not(.hours) { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; } table:not(.hours) td, table:not(.hours) th { white-space:nowrap; }
  table:not(.hours) tr.sub td { white-space:normal; min-width:280px; }
  table { font-size:.9rem; } dl { grid-template-columns:1fr; } dt { margin-top:.35rem; }
  table.hours thead { display:none; } table.hours tr { display:block; padding:.4rem 0; border-bottom:1px solid var(--line); } table.hours th, table.hours td { display:block; border:0; padding:.15rem 0; }
}
code { font-family:ui-monospace, SFMono-Regular, Menlo, monospace; font-size:.9em; background:var(--soft); padding:.05rem .3rem; border-radius:4px; }
.qr { display:flex; justify-content:center; margin:1rem 0; } .qr svg { background:#fff; padding:8px; border-radius:8px; }
.badge { display:inline-block; margin-left:.4rem; padding:.05rem .5rem; border-radius:999px; background:var(--warn-soft); font-size:.75rem; color:var(--text); }
td.actions { display:flex; gap:.4rem; flex-wrap:wrap; }
.live-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:.6rem 1.2rem; }
.live-grid > div { display:flex; align-items:center; gap:.55rem; } .live-grid strong { margin-left:auto; font-weight:600; }
.dot { width:10px; height:10px; border-radius:50%; background:var(--line); flex:none; }
.dot[data-state="ok"] { background:var(--ok); } .dot[data-state="bad"] { background:var(--err); } .dot[data-state="warn"] { background:#d49a2a; } .dot[data-state="busy"] { background:var(--accent); }
.badge-new { background:var(--accent-soft); color:var(--accent); font-weight:600; }
.button-link { display:inline-flex; align-items:center; padding:.55rem 1rem; border:1px solid var(--accent); border-radius:8px; color:var(--accent); text-decoration:none; font-weight:550; margin-bottom:1px; }
.button-link:hover { background:var(--accent-soft); }
.filters > label { flex:1 1 150px; }

/* Belschema */
.tabs { display:flex; gap:.3rem; margin-top:.8rem; } .tabs a { padding:.35rem .8rem; border-radius:999px; border:1px solid var(--line); text-decoration:none; color:var(--muted); background:var(--card); }
.tabs a[aria-current="page"] { background:var(--accent-soft); color:var(--accent); border-color:var(--accent); font-weight:600; }
ol.flow { list-style:none; padding:0; margin:0; }
.step { display:flex; gap:1rem; position:relative; padding-bottom:1.1rem; }
.step:not(:last-child)::before { content:""; position:absolute; left:15px; top:34px; bottom:0; width:2px; background:var(--line); }
.step-n { flex:none; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:var(--accent-text); font-weight:650; }
.step-body { flex:1; min-width:0; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.2rem; box-shadow:var(--shadow); }
.step-body h3 { margin:0 0 .5rem; font-size:1rem; }
.say { border-left:3px solid var(--accent-soft); padding:.2rem 0 .4rem .8rem; margin:.5rem 0; }
.say-head { display:flex; justify-content:space-between; gap:1rem; align-items:baseline; } .say .quote { margin:.2rem 0 .4rem; font-style:italic; }
.say audio { height:32px; max-width:100%; }
.branch { display:flex; gap:.7rem; margin:.6rem 0 0; } .branch > div { flex:1; min-width:0; }
.branch .key { flex:none; min-width:2.2rem; height:fit-content; padding:.15rem .55rem; border-radius:6px; background:var(--soft); border:1px solid var(--line); font-weight:600; font-size:.85rem; text-align:center; }
ul.plain { margin:0; padding-left:1.1rem; } ul.plain li { margin:.35rem 0; }
@media (max-width:600px) { .step { gap:.6rem; } .step-body { padding:.8rem; } .branch { flex-direction:column; gap:.3rem; } }

/* Grouped menu (dropdowns) */
details.menu { position:relative; }
details.menu > summary { list-style:none; display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .7rem; border-radius:8px; color:var(--muted); cursor:pointer; white-space:nowrap; user-select:none; }
details.menu > summary::-webkit-details-marker { display:none; }
details.menu > summary:hover, details.menu[open] > summary { background:var(--soft); color:var(--text); }
details.menu > summary.active { background:var(--accent-soft); color:var(--accent); font-weight:600; }
.i.chev { width:14px; height:14px; transition:transform .15s; } details.menu[open] .chev { transform:rotate(180deg); }
.menu-panel { position:absolute; top:calc(100% + 6px); left:0; z-index:20; min-width:190px; display:flex; flex-direction:column; padding:.35rem; background:var(--card); border:1px solid var(--line); border-radius:10px; box-shadow:0 8px 24px rgba(20,30,40,.12); }
.menu-panel a { padding:.5rem .7rem; border-radius:7px; color:var(--text); }
.menu-panel a[aria-current="page"] { background:var(--accent-soft); color:var(--accent); font-weight:600; }
@media (max-width:760px) {
  nav { overflow:visible; flex-wrap:wrap; }
  details.menu > summary span { font-size:.88rem; }
}
.quote .tag { font-style:normal; font-size:.75rem; color:var(--muted); background:var(--soft); border:1px solid var(--line); border-radius:999px; padding:0 .4rem; margin-right:.2rem; }
.pre { background:var(--soft); border:1px solid var(--line); border-radius:8px; padding:.7rem .8rem; font:.8rem/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; white-space:pre-wrap; word-break:break-all; margin:0 0 .8rem; }
.pre.log { max-height:420px; overflow:auto; }
details.card.ext > summary { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; cursor:pointer; list-style:none; }
details.card.ext > summary::-webkit-details-marker { display:none; } details.card.ext[open] > summary { margin-bottom:.9rem; }
.ext-n { font-weight:700; color:var(--accent); min-width:2.5rem; }
.checks { display:flex; flex-direction:column; gap:.2rem; flex:1 1 260px; } label.check { display:flex; gap:.5rem; align-items:center; margin:0; color:var(--text); }
label.check input { width:auto; margin:0; }
section.created { border-color:var(--accent); }
.submenu { border-left:2px dashed var(--line); padding-left:.8rem; margin-top:.3rem; }
table.keys td, table.keys th { vertical-align:middle; } table.keys select { margin:0; } .key-cell { width:3rem; font-size:1.05rem; font-weight:700; color:var(--accent); }
