.sm-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:28px 0 20px}.sm-heading h2{margin:0 0 8px;font-size:28px;text-transform:none;letter-spacing:-.5px}.sm-heading p{margin:0;color:var(--muted)}
.sm-actions,.sm-bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.sm-heading button,.sm-actions button,.sm-bulk button,.sm-pager button{padding:9px 13px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;transition:background .16s,transform .16s}.sm-heading button:hover,.sm-actions button:hover,.sm-bulk button:hover,.sm-pager button:hover{background:var(--line)}.sm-actions button:active{transform:translateY(1px)}
.sm-formats{margin:0 0 18px}.sm-formats button[aria-selected=true]{background:var(--ink);color:var(--bg)}.sm-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sm-filters>label:has(input[type=search]){grid-column:1/-1}.sm-filters label,.sm-editor label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--muted)}.sm-filters input,.sm-filters select,.sm-editor input,.sm-editor select,.sm-editor textarea{width:100%;box-sizing:border-box;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:11px;font:inherit;font-size:14px;min-width:0}.sm-filters :focus-visible,.sm-editor :focus-visible,.sm-list :focus-visible,.sm-bulk :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sm-status{padding:14px 0;color:var(--muted);font-size:12px;min-height:20px}.sm-bulk{border-block:1px solid var(--line);padding:10px 0;font-size:12px}.sm-bulk label{display:flex;align-items:center;gap:8px;margin-right:12px}.sm-bulk input,.sm-select input{width:17px;height:17px;accent-color:var(--accent)}button:disabled{opacity:.45;cursor:default}
.sm-row{display:grid;grid-template-columns:34px 1fr;border-bottom:1px solid var(--line);padding:17px 0;gap:8px}.sm-select{padding-top:4px}.sm-row details{min-width:0}.sm-row summary{cursor:pointer;display:flex;flex-direction:column;gap:7px;list-style:none;padding-right:24px;position:relative}.sm-row summary:after{content:'+';position:absolute;right:4px;top:0;color:var(--muted)}.sm-row details[open]>summary:after{content:'−'}.sm-row-title{font-size:17px;line-height:1.4;font-weight:600;max-width:900px}.sm-row-meta,.sm-row-state{font-size:12px;line-height:1.5;color:var(--muted)}.sm-row-state{font-size:11px}.sm-body{max-width:900px;padding:20px 0 8px}.sm-copy{white-space:pre-wrap;font-size:17px;line-height:1.7;max-width:68ch;margin:20px 0;overflow-wrap:anywhere}.sm-proof,.sm-help{font-size:12px;color:var(--muted);line-height:1.6;max-width:900px}.sm-handoff{border-top:1px solid var(--line);padding-top:16px}.sm-empty{padding:36px 0;color:var(--muted)}.sm-empty h3{color:var(--ink)}.sm-pager{display:flex;align-items:center;justify-content:space-between;padding:18px 0;font-size:12px}.sm-error{color:#bb4929}.sm-editor{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:12px;width:min(850px,calc(100vw - 40px));max-height:90dvh;padding:28px}.sm-editor::backdrop{background:rgba(0,0,0,.55)}.sm-editor .sm-heading{margin-top:0}.sm-field-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.sm-field-head label{margin:0}.sm-field-head button{min-height:36px;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--muted);font:inherit;font-size:12px;cursor:pointer}.sm-field-head button:hover{background:var(--line);color:var(--ink)}.sm-editor form{display:grid;gap:16px}.sm-editor p{margin:0;color:var(--muted);font-size:13px}.sm-editor textarea{line-height:1.6;resize:vertical}.sm-edit-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.sm-legacy{margin:28px 0;border-top:1px solid var(--line);padding-top:18px}.sm-legacy>summary{cursor:pointer;color:var(--muted)}
@media(max-width:850px){.sm-heading{align-items:flex-start;flex-direction:column}.sm-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.sm-edit-meta{grid-template-columns:1fr}.sm-editor{padding:18px}.sm-row-title{font-size:16px}.sm-copy{font-size:16px}.sm-bulk{gap:10px}}

.sm-bulk select{padding:7px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:5px}
.sm-feedback{display:grid;gap:10px;margin:18px 0;padding-top:14px;border-top:1px solid var(--line)}.sm-feedback label{display:grid;gap:7px;font-size:13px;color:var(--muted)}.sm-feedback select,.sm-feedback input,.sm-feedback button{box-sizing:border-box;max-width:100%;min-width:0;padding:11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);font:inherit;font-size:14px}.sm-feedback button{cursor:pointer;justify-self:start}.sm-feedback p{font-size:13px;color:var(--muted)}
/* Filters, 2026-10-06: a quiet reset that only shows (with a count) when a filter is on, and the
   search box mobile-app.js lifts out of the grid keeps the filter look on desktop too. */
.sm-filters .sm-clear,#reel-inbox .reel-clear{grid-column:1/-1;justify-self:start;min-height:44px;padding:8px 2px;border:0;background:none;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.sm-filters .sm-clear:hover,#reel-inbox .reel-clear:hover{color:var(--ink)}.sm-clear[hidden],.reel-clear[hidden]{display:none}
.mobile-script-search{font-size:12px;color:var(--muted)}.mobile-script-search input{width:100%;box-sizing:border-box;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:11px;font:inherit;font-size:14px}
/* Readiness, 2026-10-14: one plain chip per script. [data-tone] out-specifies the Prompter's .pt-pill. */
.sm-ready[data-tone]{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5;white-space:nowrap;color:var(--green);background:color-mix(in srgb,var(--green) 18%,transparent)}
.sm-ready[data-tone=fix]{color:var(--red);background:color-mix(in srgb,var(--red) 16%,transparent)}.sm-ready[data-tone=check]{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,transparent)}
.sm-ready-note{margin:4px 0 12px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--ink);font-size:15px;line-height:1.45}.sm-ready-note[data-tone=check]{background:color-mix(in srgb,var(--accent) 12%,transparent)}.sm-ready-note p{margin:0}
.sm-ready-note summary{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.sm-ready-note details p{color:var(--muted);font-size:13px;overflow-wrap:anywhere}
/* Reader: script first, everything else in Details, actions in a bar pinned to the sheet's bottom. */
dialog.script-reader{padding-bottom:0}.script-reader>header>button{flex:none}.script-reader .sm-body>.sm-copy{max-height:none;overflow:visible;margin-top:4px}
.sm-details{border-top:1px solid var(--line)}.sm-details>summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;font-size:15px;font-weight:600;list-style:none;cursor:pointer}.sm-details>summary::-webkit-details-marker{display:none}.sm-details>summary:after{content:'+';font-size:18px;color:var(--accent)}.sm-details[open]>summary:after{content:'−'}
/* Notes on a script (notes.js): the badge beside the readiness chip, chips above the text, a note button after Edit. */
.sm-row-state .nt-ind{margin-left:8px;vertical-align:middle}.sm-body>.nt-chips{margin:4px 0 14px}.sm-bar>.sm-note{flex:0 0 48px;padding:0}.sm-note .nt-ico{width:20px;height:20px}
.sm-bar{display:flex;gap:8px;margin-top:12px}.script-reader .sm-bar{position:sticky;bottom:0;z-index:3;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}
.sm-bar>button,.sm-more>summary{display:flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;min-height:48px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.sm-bar>.sm-primary{flex-grow:1.4;background:var(--accent);border-color:var(--accent);color:var(--bg)}.sm-more{position:relative;flex:1 1 0;min-width:0;display:flex}.sm-more>summary{list-style:none}.sm-more>summary::-webkit-details-marker{display:none}.sm-more[open]>summary{border-color:var(--accent);color:var(--accent)}
.sm-more-menu{position:absolute;right:0;bottom:calc(100% + 8px);z-index:4;display:grid;gap:2px;width:min(260px,calc(100vw - 32px));padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 12px 32px rgba(0,0,0,.3)}
.sm-more-menu button{width:100%;min-height:44px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:15px;text-align:left;cursor:pointer}.sm-more-menu button:hover{background:var(--line)}.sm-more-menu .sm-danger{color:var(--red)}.sm-more-menu [data-script-carousel-controls]{display:grid;gap:2px;font-size:13px;color:var(--muted)}
.sm-tools{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;margin:4px 0}.sm-tools .sm-lane{min-height:48px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:16px}
.sm-tool{min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.sm-tool[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}
.sm-panel{margin:8px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.sm-panel:not(.open){display:none}.sm-panel>.sm-actions+.sm-bulk{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:767px){
 .tab .sm-heading{display:flex;flex-direction:row;align-items:center;justify-content:space-between;margin:2px 0 6px}.tab .sm-formats{display:none!important}.tab .sm-status{padding:4px 0 8px}
 /* Search stays in reach under the app bar (56px), and takes its place when the bar hides on the way down. */
 .tab .mobile-script-search{position:sticky;top:56px;z-index:20;max-width:none;margin:0 -16px;padding:6px 16px;gap:0;font-size:0;background:var(--bg);transition:top .26s}html.nav-hidden .tab .mobile-script-search{top:0}
 /* Clear the fixed tab bar (6px padding + 52px buttons + 1px border) so Next is never under it. */
 .tab .sm-pager{bottom:calc(59px + env(safe-area-inset-bottom));padding:6px 0}
}
@media(prefers-reduced-motion:reduce){.tab .mobile-script-search{transition:none}}
/* Four-hook framework (2026-10-15): the hooks under a script, and the per-hook results form. */
.sm-hooks{margin:12px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.sm-hooks h4{margin:0 0 8px;font-size:16px}
.sm-hooks ol{margin:0;padding-left:20px}
.sm-hooks li{margin:0 0 14px}
.sm-hooks li p{margin:2px 0;line-height:1.45}
.sm-hook-headline{margin:0 0 10px}
.sm-hook-bridge{color:var(--muted);font-style:italic}
.sm-hook-result{color:var(--muted);font-size:14px}
.sm-hook-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.sm-hook-actions button{min-height:48px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.sm-hook-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:14px 0}
.sm-hook-fields label{display:grid;gap:4px;font-size:15px}
.sm-hook-fields input,.sm-hook-fields select{box-sizing:border-box;width:100%;min-height:44px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit}
