/* THE DASHBOARDS LINE — portal styles. Tokens only (web/tokens.css is linked first and
   is the single source of truth); this file declares no :root block. */
body.dash-portal{margin:0;background:var(--plane);color:var(--text);font:var(--fs-body)/1.5 var(--font);}
[hidden]{display:none !important;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
a{color:var(--accent-text);}
h1{font-size:var(--fs-title);margin:0;}
h2{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.04em;color:var(--text3);margin:0 0 8px;font-weight:600;}

/* The editor's one bar (board.html): the brand, "Dashboards / name", the actions, the
   account. Its ground and edge are the deck app's top bar's (ONE SHELL, 2026-10-08). */
.dh{display:flex;align-items:center;gap:18px;flex-wrap:nowrap;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--border);}
.dh-account{margin-left:auto;color:var(--text2);font-size:var(--fs-small);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}

/* ---------------- ONE SHELL (2026-10-08) ----------------
   The deck app's sidebar and top bar, on the dashboards home and data pages: the same
   logo, CREATE rows, Presentations | Dashboards switch, search, list and Workspace, in
   the same places and the same colours. These rules are a COPY of web/style.css's,
   held EQUAL to them by gate stage 99 (computed styles and boxes, element by element,
   at a desktop and a phone width) — change one, change both. A copy, not a shared
   file: the deck's rules are unscoped (its .topbar would restyle the column profile's
   bars below, .top .topbar) and moving them would reorder the deck's own cascade. So
   these are scoped, and what the deck's sidebar gets from its globals — the reset, the
   root size (tokens.css) and the default line-height (this body is 13px/1.5), the button rules —
   is written out. The dashboard SURFACE below the top bar stays --plane. */
body.dash-portal .app{display:flex;min-height:100vh;}
body.dash-portal .main{flex:1;min-width:0;}
.sidebar{width:236px;flex-shrink:0;border-right:1px solid var(--border);background:var(--raised);display:flex;flex-direction:column;padding:14px 10px;gap:2px;overflow:hidden;box-sizing:border-box;
  position:sticky;top:0;height:100vh;align-self:flex-start;font-size:1rem;line-height:normal;color:var(--text);}
.sidebar *{box-sizing:border-box;margin:0;padding:0;}
.sidebar #tree{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;}
.sidebar .ws,.sidebar .search,.sidebar .new-story,.sidebar .side-bottom{flex-shrink:0;}
.ws{display:flex;align-items:center;gap:9px;padding:4px 8px 14px;color:inherit;text-decoration:none;border-radius:var(--r-sm);}
a.ws[href]{cursor:pointer;}
a.ws[href]:hover .ws-name{color:var(--accent-text);}
a.ws[href]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.ws-name{font-size:var(--fs-lead);font-weight:600;}
.logomark{display:inline-flex;align-items:center;height:22px;flex-shrink:0;color:var(--accent);}
.logomark svg{display:block;height:22px;width:auto;}
.sidebar .search{margin:0 4px 12px;position:relative;}
.sidebar .search input{width:100%;height:30px;border:1px solid var(--border);border-radius:var(--r-sm);padding:0 10px;font-family:inherit;font-size:var(--fs-body);background:var(--panel);color:var(--text);outline:none;}
.sidebar .search input:focus{border-color:var(--accent);}
.sidebar .search input::placeholder{color:var(--text3);opacity:1;}
.sidebar .sec{font-size:var(--fs-micro);color:var(--text3);padding:8px 8px 4px;letter-spacing:.04em;text-transform:uppercase;}
.sidebar .row{display:flex;align-items:center;gap:7px;padding:5px 8px;border-radius:var(--r-sm);font-size:var(--fs-body);color:var(--text2);cursor:pointer;user-select:none;text-decoration:none;}
/* The deck's CREATE and Workspace rows are buttons (text-align:left); its list rows are divs. */
.sidebar .new-story .row,.sidebar .side-bottom .row{text-align:left;}
.sidebar .row:hover{background:var(--hover);}
.sidebar button.row{appearance:none;width:100%;height:auto;border:0;background:none;font-family:inherit;}
.sidebar button.row:hover{background:var(--hover);}
.sidebar .row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.sidebar .row.page{padding-left:26px;}
.sidebar .row.active{background:var(--accent-bg);color:var(--accent-text);font-weight:500;}
.sidebar .row .ic{width:16px;text-align:center;flex-shrink:0;}
.sidebar .row .ttl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sidebar .new-story{border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:10px;}
.sidebar .side-bottom{margin-top:auto;border-top:1px solid var(--border);padding-top:10px;}
.sidebar .badge{font-size:var(--fs-micro);background:var(--accent-bg);color:var(--accent-text);padding:1px 6px;border-radius:var(--r-pill);font-weight:600;margin-left:auto;}
.sidebar .prod-switch{display:flex;gap:2px;background:var(--sunken);border-radius:var(--r-sm);padding:2px;margin:0 4px 8px;flex-shrink:0;}
.sidebar .prod-switch a{flex:1;text-align:center;padding:4px 8px;border-radius:var(--r-xs);color:var(--text2);text-decoration:none;font-size:var(--fs-small);}
.sidebar .prod-switch a:hover{color:var(--text);}
.sidebar .prod-switch a[aria-current="page"]{background:var(--panel);color:var(--text);font-weight:600;}
.sidebar .prod-switch a:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;}
.sidebar .tree-empty{padding:10px 12px;font-size:var(--fs-small);color:var(--text3);line-height:1.5;}
.sidebar .linkish{display:block;margin-top:6px;padding:0;border:none;background:none;color:var(--accent);font-family:inherit;font-size:var(--fs-small);cursor:pointer;text-align:left;height:auto;min-width:0;}
.sidebar .linkish:hover{text-decoration:underline;}
.main > .topbar,.main > .topbar *{box-sizing:border-box;margin:0;padding:0;}
.main > .topbar{display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:nowrap;font-size:1rem;line-height:normal;}
.main > .topbar > *{flex-shrink:0;}
.main > .topbar .crumb{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-body);color:var(--text3);}
.main > .topbar .crumb b{color:var(--text);font-weight:600;font-size:var(--fs-lead);}
.main > .topbar .crumb a{color:inherit;text-decoration:none;}
.main > .topbar .crumb a:hover{text-decoration:underline;}
.main > .topbar #btn-nav{display:none;align-items:center;justify-content:center;gap:5px;font-family:inherit;font-size:var(--fs-lead);height:30px;padding:2px 8px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text2);cursor:pointer;}
.main > .topbar #btn-nav:hover{background:var(--hover);}
.nav-scrim{position:fixed;inset:0;background:rgba(20,19,16,.35);z-index:340;display:none;box-sizing:border-box;}
@media (max-width:760px){
  .sidebar{position:fixed;top:0;left:0;bottom:0;height:auto;align-self:auto;width:min(300px, 86vw);z-index:350;transform:translateX(-100%);transition:transform .18s ease;box-shadow:var(--shadow-float);}
  .app.nav-open .sidebar{transform:none;}
  .app.nav-open .nav-scrim{display:block;}
  .main > .topbar{padding:8px 10px;gap:6px;position:sticky;top:0;z-index:30;}
  .main > .topbar #btn-nav{display:inline-flex;}
}
@media (prefers-reduced-motion: reduce){ .sidebar{transition:none;} }

/* Controls. */
.btn{font:inherit;font-size:var(--fs-body);height:30px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--border2);background:var(--panel);color:var(--text);cursor:pointer;white-space:nowrap;}
.btn:hover{background:var(--hover);}
.btn:disabled{opacity:.45;cursor:default;background:var(--panel);}
.btn:focus-visible,.col:focus-visible,.h:focus-visible,.chip:focus-visible,.dv-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500;}
.btn.primary:hover{background:var(--accent-hover);}
.btn.ghost{border-color:transparent;background:transparent;color:var(--text2);padding:0 8px;}
.btn.ghost:hover{background:var(--hover);}
.btn.danger{color:var(--danger);}
.btn.danger:hover{background:var(--danger-bg);}
input[type=search],input[type=text],textarea{font:inherit;font-size:var(--fs-body);color:var(--text);background:var(--panel);border:1px solid var(--border2);border-radius:var(--r-sm);padding:5px 9px;box-sizing:border-box;}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);}

/* Severity: said in words, coloured by weight. */
.sev{display:inline-block;font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:1px 7px;border-radius:var(--r-pill);border:1px solid var(--border2);color:var(--text2);background:var(--panel);white-space:nowrap;}
.sev.high{color:var(--danger);background:var(--danger-bg);border-color:var(--danger-border);}
.sev.medium{color:var(--text);background:var(--sunken);border-color:var(--border2);}
.sev.low{color:var(--text3);}
.sev.ok{color:var(--green);background:var(--green-bg);border-color:transparent;}

/* Type badges (a column's type, in text: #, Abc, Date, Time, T/F). */
.ty{display:inline-block;min-width:22px;text-align:center;font:600 var(--fs-micro)/16px var(--mono);color:var(--text2);background:var(--sunken);border-radius:var(--r-xs);padding:0 4px;flex-shrink:0;}
.ty-number{color:var(--green);}
.ty-text{color:var(--accent-text);}

/* ---------------- the portal ---------------- */
.dp{max-width:1080px;margin:0 auto;padding:36px 18px 60px;}
.dp-intake-h{margin:22px 0 2px;}
.dp-lead{color:var(--text2);font-size:var(--fs-lead);margin:2px 0 14px;}
.dp-drop{border:1.5px dashed var(--border2);border-radius:var(--r-md);background:var(--panel);padding:28px 18px;text-align:center;transition:border-color .12s,background .12s;}
.dp-drop.over{border-color:var(--accent);background:var(--accent-bg);}
.dp-drop-title{font-size:var(--fs-lead);font-weight:600;margin:0 0 12px;}
.dp-drop-sub{margin:0;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.dp-drop-limits{color:var(--text3);font-size:var(--fs-small);margin:14px 0 0;}
.dp-drop-sample{color:var(--text3);font-size:var(--fs-small);margin:6px 0 0;}
.dp-draft{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:8px 12px;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-sm);color:var(--text2);}
.dp-draft span{flex:1 1 240px;min-width:0;overflow-wrap:anywhere;}
.dp-progress{max-width:420px;margin:0 auto;}
.dp-progress-name{font-weight:600;margin:0 0 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dp-progress-note{color:var(--text2);font-size:var(--fs-small);margin:8px 0 0;}
.dp-bar{height:6px;background:var(--sunken);border-radius:var(--r-pill);overflow:hidden;position:relative;}
.dp-bar-fill{height:100%;width:0;background:var(--accent);border-radius:var(--r-pill);transition:width .2s;}
.dp-bar.busy .dp-bar-fill{position:absolute;width:30%;animation:dp-slide 1.2s ease-in-out infinite;}
@keyframes dp-slide{0%{left:-30%;}100%{left:100%;}}
@media (prefers-reduced-motion:reduce){.dp-bar.busy .dp-bar-fill{animation:none;left:0;width:100%;opacity:.5;}}
.dp-error{color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:var(--r-sm);padding:8px 12px;margin:14px auto 0;max-width:640px;text-align:left;}
.dp-paste{margin-top:14px;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);padding:14px;}
.dp-paste label{display:block;color:var(--text2);margin-bottom:8px;}
.dp-paste textarea{width:100%;font-family:var(--mono);font-size:var(--fs-small);resize:vertical;}
.dp-paste-actions{display:flex;gap:8px;margin-top:10px;}
.dp-list{margin-top:34px;}
.dp-empty,.dp-status{color:var(--text3);}
/* The table scrolls in its own box, and the box holds everything in it — a hidden
   header label included (absolute, it measured against the page and widened it). */
.dp-table-wrap{position:relative;overflow-x:auto;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);}
.dp-table{width:100%;border-collapse:collapse;}
.dp-table th{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.04em;color:var(--text3);text-align:left;font-weight:600;padding:9px 12px;border-bottom:1px solid var(--hairline);white-space:nowrap;}
.dp-table td{padding:9px 12px;border-bottom:1px solid var(--hairline);vertical-align:middle;}
.dp-table tr:last-child td{border-bottom:none;}
.dp-table .num{text-align:right;font-variant-numeric:tabular-nums;}
.dp-table .name a{font-weight:600;text-decoration:none;}
.dp-table .name a:hover{text-decoration:underline;}
.dp-table .src{color:var(--text2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dp-table .when{color:var(--text3);white-space:nowrap;}
.dp-table .checks .sev{margin-right:2px;}

/* ---------------- a dataset ---------------- */
.dv{padding:14px 18px 24px;}
.dv-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.dv-titlebox{display:flex;align-items:center;gap:6px;min-width:0;}
.dv-titlebox h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dv-renamebox{display:flex;gap:6px;align-items:center;}
.dv-renamebox input{width:320px;max-width:60vw;}
.dv-actions{margin-left:auto;display:flex;align-items:center;gap:8px;}
.dv-confirm{display:flex;align-items:center;gap:8px;color:var(--text2);}
.dv-meta{color:var(--text2);font-size:var(--fs-small);margin:4px 0 12px;}
.dv .dp-error{margin:0 0 12px;max-width:none;}
.dv-checks{background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);padding:12px 14px;margin-top:12px;}
.dv-checks-sum{margin:0;color:var(--text2);}
.dv-findings{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;}
.finding{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.finding .detail{flex:1 1 320px;min-width:0;}
.finding .chips{display:flex;gap:4px;flex-wrap:wrap;}
.btn.dv-more{margin-top:6px;padding:0 6px;color:var(--accent-text);}
.chip{font:inherit;font-size:var(--fs-small);border:1px solid var(--border2);background:var(--plane);color:var(--text);border-radius:var(--r-pill);padding:0 8px;height:22px;cursor:pointer;}
.chip:hover{background:var(--hover);}

.dv-body{display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:12px;align-items:start;}
.dv-cols,.dv-gridbox,.dv-profile{background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);}
.dv-cols{padding:12px 8px;position:sticky;top:12px;max-height:calc(100vh - 40px);overflow:auto;box-sizing:border-box;}
.dv-cols h2{padding:0 6px;}
.dv-cols input{width:calc(100% - 12px);margin:0 6px 8px;}
.dv-collist{list-style:none;margin:0;padding:0;}
.col{display:flex;align-items:center;gap:7px;width:100%;border:none;background:none;font:inherit;color:var(--text);padding:5px 6px;border-radius:var(--r-sm);cursor:pointer;text-align:left;}
.col:hover{background:var(--hover);}
.dv-collist li.sel .col{background:var(--accent-bg);}
.col .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.col .fill{color:var(--text3);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;}

.dv-gridbox{min-width:0;overflow:hidden;}
.dv-gridbar{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--hairline);}
.dv-gridbar input{width:240px;max-width:40vw;}
.dv-count{color:var(--text2);font-size:var(--fs-small);font-variant-numeric:tabular-nums;white-space:nowrap;}
.dv-pager{margin-left:auto;display:flex;gap:4px;}
.dv-pager .btn{width:30px;padding:0;}
.dv-scroll{overflow:auto;max-height:calc(100vh - 230px);min-height:240px;}
.dv-grid{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;min-width:100%;}
.dv-grid.loading tbody{opacity:.45;}
.dv-grid th,.dv-grid td{border-bottom:1px solid var(--hairline);padding:0;text-align:left;}
.dv-grid thead th{position:sticky;top:0;background:var(--plane);z-index:2;border-bottom:1px solid var(--border2);}
.dv-grid .rn{position:sticky;left:0;background:var(--plane);color:var(--text3);font-weight:400;font-size:var(--fs-small);text-align:right;padding:4px 8px;z-index:1;border-right:1px solid var(--hairline);}
.dv-grid thead .rn{z-index:3;}
.h{display:flex;align-items:center;gap:6px;border:none;background:none;font:inherit;font-weight:600;color:var(--text);padding:7px 10px;cursor:pointer;white-space:nowrap;max-width:280px;width:100%;}
.h:hover{background:var(--hover);}
.h .nm{overflow:hidden;text-overflow:ellipsis;}
.h .so{color:var(--accent-text);font-size:var(--fs-micro);min-width:9px;}
.dv-grid th.num .h{justify-content:flex-end;}
.dv-grid td span{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:4px 10px;}
.dv-grid td.num{text-align:right;}
.dv-grid td.null span{color:var(--text3);}
.dv-grid tbody tr:hover td{background:var(--hover);}
.dv-grid .sel{background:var(--accent-bg);}
.dv-grid thead th.sel{background:var(--accent-bg);}

.dv-profile{width:280px;padding:12px 14px;position:sticky;top:12px;max-height:calc(100vh - 40px);overflow:auto;box-sizing:border-box;}
.dv-prof-head{display:flex;align-items:flex-start;gap:6px;}
.dv-prof-head h2{flex:1;min-width:0;font-size:var(--fs-lead);text-transform:none;letter-spacing:0;color:var(--text);overflow-wrap:anywhere;}
.stats{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:8px 0 12px;}
.stats dt{color:var(--text3);}
.stats dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;}
.readas{color:var(--text2);font-size:var(--fs-small);margin:0 0 10px;}
.hist{width:100%;height:auto;display:block;margin:4px 0 12px;}
.hist .bar{fill:var(--accent);}
.hist .bar:hover{fill:var(--accent-hover);}
.hist .ax{fill:var(--text3);font-size:var(--fs-micro);font-family:var(--font);}
.top{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:5px;}
.top li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;}
.top .tv{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.top .tc{color:var(--text2);font-variant-numeric:tabular-nums;}
.top .track{grid-column:1 / -1;height:4px;background:var(--sunken);border-radius:var(--r-pill);overflow:hidden;}
.top .topbar{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);}
.more{color:var(--text3);font-size:var(--fs-small);margin:8px 0 0;}
.pfind{list-style:none;margin:12px 0 0;padding:10px 0 0;border-top:1px solid var(--hairline);display:grid;gap:8px;font-size:var(--fs-small);}

/* A data page's three columns need ~980px of CONTENT; the sidebar (ONE SHELL) takes 236px of
   the window above the phone drawer, so they stack below 980 + 236. */
@media (max-width:1216px){
  .dv-body{grid-template-columns:minmax(0,1fr);}
  .dv-cols,.dv-profile{position:static;max-height:none;width:auto;}
  .dv-collist{display:flex;flex-wrap:wrap;gap:2px;}
  .dv-collist .col{width:auto;}
  .dv-profile{order:3;}
}
@media (max-width:560px){
  .finding{display:block;}
  .finding .sev{margin-right:6px;}
  .finding .chips{margin-top:4px;}
  .dh{gap:10px;padding:10px 12px;}
  .dp{padding:24px 16px 48px;}
  .dv{padding:12px 16px 20px;}
  .dv-gridbar{flex-wrap:wrap;}
  .dv-gridbar input{width:100%;max-width:none;}
  .dv-scroll{max-height:70vh;}
}

/* ---------------- dashboards on the portal ---------------- */
.dp-boards{margin-top:34px;}
.dp-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;}
.dp-card{display:block;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);padding:14px;text-decoration:none;color:var(--text);transition:border-color .12s,box-shadow .12s;}
.dp-card:hover{border-color:var(--border2);box-shadow:var(--shadow-sm);}
.dp-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.dp-card-title{font-weight:600;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dp-card-meta{color:var(--text3);font-size:var(--fs-small);margin:0;}
.dp-card-live{color:var(--green);font-size:var(--fs-micro);font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
/* A card's ⋯ menu (2026-10-07): Rename… and Delete…, beside the link, never inside it. */
.dp-cards li{position:relative;}
.dp-cards .dp-card{padding-right:40px;}
.dp-more{position:absolute;top:8px;right:8px;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--r-sm);background:transparent;color:var(--text2);font:inherit;font-size:16px;line-height:1;cursor:pointer;}
.dp-more:hover,.dp-more[aria-expanded="true"]{background:var(--hover);border-color:var(--hairline);}
.dp-more:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.dp-menu{position:absolute;top:40px;right:8px;z-index:20;min-width:140px;background:var(--panel);border:1px solid var(--border2);border-radius:var(--r-md);box-shadow:var(--shadow-float);padding:4px;display:flex;flex-direction:column;}
.dp-menu button{font:inherit;text-align:left;border:0;background:transparent;color:var(--text);padding:7px 10px;border-radius:var(--r-sm);cursor:pointer;}
.dp-menu button:hover,.dp-menu button:focus-visible{background:var(--hover);outline:none;}
.dp-menu button.danger{color:var(--danger);}
.dp-table td.act{text-align:right;white-space:nowrap;width:1%;}
.dp-table td.act .btn{height:26px;font-size:var(--fs-small);}
.dp-manage-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px;}
.dp-sheet .dp-manage-actions .btn.primary{margin-top:0;}
.dp-sheet .dp-manage-actions .btn.primary.danger{background:var(--danger);border-color:var(--danger);color:#fff;}
.dv-used{font-size:var(--fs-small);color:var(--text2);margin:-6px 0 12px;}
/* Replacing data: what happened, in words (phase 4). */
.dv-replace{border:1px solid var(--hairline);background:var(--panel);border-radius:var(--r-md);padding:10px 12px;margin:0 0 12px;}
.dv-replace.bad{border-color:var(--danger);}
.dv-replace-head{font-size:var(--fs-body);}
.dv-replace-head span{color:var(--text2);}
.dv-replace .dp-bar{margin-top:8px;}
.dv-replace-list{margin:6px 0 0;padding-left:18px;font-size:var(--fs-small);color:var(--text2);}
.dv-replace-list:empty{display:none;}
.dv-replace-list li{margin:2px 0;}
.dv-version{font-size:var(--fs-small);color:var(--text2);margin:-6px 0 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;}
/* Look first (phase 4): the file in the browser, the question, and the sign-up sheet. */
.dp-look{margin-top:18px;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--r-md);padding:16px;}
.dp-look h2{font-size:var(--fs-title);margin:0;overflow-wrap:anywhere;text-transform:none;letter-spacing:0;color:var(--text);}
.dp-look-meta{color:var(--text2);font-size:var(--fs-small);margin:4px 0 12px;}
.dp-look-grid{max-height:340px;overflow:auto;}
.dp-look-grid th{white-space:nowrap;}
.dp-look-grid td{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dp-ask-lbl{display:block;font-weight:600;margin:16px 0 6px;}
.dp-ask-lbl span{font-weight:400;color:var(--text3);font-size:var(--fs-small);margin-left:4px;}
#dp-ask{width:100%;box-sizing:border-box;font:inherit;border:1px solid var(--border2);border-radius:var(--r-sm);background:var(--panel);color:var(--text);padding:8px;resize:vertical;}
#dp-ask:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;}
.dp-look-ai{color:var(--text3);font-size:var(--fs-small);margin:6px 0 0;}
.dp-look .dp-error{margin:10px 0 0;max-width:none;}
.dp-look-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.dp-look-note{color:var(--text3);font-size:var(--fs-small);margin:10px 0 0;}
.dp-sheet{border:1px solid var(--border2);border-radius:var(--r-lg);padding:22px;width:min(420px,92vw);box-sizing:border-box;box-shadow:var(--shadow-float);color:var(--text);background:var(--panel);}
.dp-sheet h2{font-size:var(--fs-title);margin:0 0 6px;text-transform:none;letter-spacing:0;color:var(--text);}
.dp-sheet-sub{color:var(--text2);margin:0 0 16px;}
.dp-sheet form{display:grid;gap:6px;}
.dp-sheet label{font-size:var(--fs-small);font-weight:600;margin-top:6px;}
.dp-sheet input{font:inherit;height:36px;border:1px solid var(--border2);border-radius:var(--r-sm);padding:0 10px;background:var(--panel);color:var(--text);}
.dp-sheet input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px;}
.dp-sheet form .btn.primary{margin-top:10px;height:38px;}
.dp-sheet .dp-error{margin:6px 0 0;}
.dp-gbtn{display:flex;justify-content:center;align-items:center;height:38px;text-decoration:none;box-sizing:border-box;}
.dp-or{text-align:center;color:var(--text3);font-size:var(--fs-small);margin:10px 0 4px;}
.dp-sheet-alt,.dp-sheet-terms{font-size:var(--fs-small);color:var(--text2);margin:12px 0 0;}
.dp-sheet-actions{display:flex;justify-content:flex-end;margin-top:10px;}
.dv-fix{height:26px;font-size:var(--fs-small);margin-left:4px;}
