.concepts-page{--concept-green:#173b2a;--concept-ink:#18251c;--concept-muted:#69736c;--concept-line:#dde3de;--concept-soft:#f5f6f3;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:14px;color:var(--concept-ink);min-width:0}.concepts-header{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:4px 0 0}.concepts-header h1{margin:3px 0 4px;font-size:clamp(30px,4vw,48px);line-height:1;letter-spacing:-.05em}.concepts-header p{margin:0;color:var(--concept-muted)}.concepts-eyebrow{color:#4f785e;font-size:10px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.concept-primary,.concept-secondary,.concept-ship{min-height:40px;border:1px solid transparent;border-radius:10px;padding:8px 13px;font:inherit;font-weight:800;cursor:pointer}.concept-primary,.concept-ship{background:var(--concept-green);color:#fff}.concept-secondary{border-color:#d3d9d4;background:#fff;color:#334139}.concept-primary:disabled,.concept-secondary:disabled{opacity:.48;cursor:not-allowed}.concept-workspace{min-width:0;height:calc(100vh - 150px);min-height:640px;display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px;overflow:hidden}.concept-projects,.concept-main{min-width:0;min-height:0;border:1px solid var(--concept-line);border-radius:15px;background:#fff;overflow:hidden}.concept-projects{display:flex;flex-direction:column;gap:4px;background:#f1f3ef;padding:10px;overflow-y:auto}.concept-projects>header{display:flex;justify-content:space-between;align-items:center;padding:7px;color:#667168;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.concept-project-link{display:grid;gap:3px;width:100%;border:0;border-radius:9px;background:transparent;padding:11px 10px;color:#536058;font:inherit;text-align:left;cursor:pointer}.concept-project-link span{overflow:hidden;color:#26332b;font-size:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.concept-project-link small{font-size:10px}.concept-project-link.active{background:var(--concept-green);color:#d7e7dc}.concept-project-link.active span{color:#fff}.concept-project-empty,.concept-loading,.concept-zero{padding:28px;color:var(--concept-muted)}.concept-main{display:flex;flex-direction:column}.concept-project-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #e6eae7;padding:13px 17px}.concept-project-header span{color:#657168;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.concept-project-header h2{margin:3px 0 0;font-size:19px;letter-spacing:-.025em}.concept-project-actions{display:flex;gap:8px}.concept-surface-tabs{flex:0 0 auto;display:flex;gap:4px;border-bottom:1px solid #e6eae7;padding:8px 17px;background:#fafbfa}.concept-surface-tabs button{border:0;border-radius:8px;background:transparent;padding:7px 13px;color:#68736b;font-weight:850;cursor:pointer}.concept-surface-tabs button.active{background:#e7eee9;color:var(--concept-green)}.concept-surface-tabs button:disabled{opacity:.4;cursor:not-allowed}.concept-chat{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden;background:var(--concept-soft)}.concept-context{flex:0 0 auto;border-bottom:1px solid #e3e7e3;background:rgba(255,255,255,.84);padding:10px max(20px,calc((100% - 850px)/2))}.concept-context header{display:flex;align-items:center;gap:6px;margin-bottom:7px;color:#6c766f;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.concept-context header b{display:grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:#eef1ee}.concept-context>div{display:flex;gap:6px;overflow-x:auto}.concept-context>div>span{flex:0 0 auto;max-width:270px;overflow:hidden;border:1px solid #dfe4df;border-radius:999px;background:#fff;padding:6px 9px;color:#445149;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.concept-context p{margin:0;color:#7a847d;font-size:12px}.concept-history{flex:1;min-height:180px;overflow-y:auto;padding:24px max(24px,calc((100% - 850px)/2)) 20px;scrollbar-gutter:stable}.concept-history>h3{margin:0 0 18px;color:#778079;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.concept-message{display:grid;gap:7px;max-width:78%;margin:0 0 22px}.concept-message.user{margin-left:auto;border-radius:18px 18px 4px 18px;background:#e8eee9;padding:13px 15px}.concept-message.assistant{margin-right:auto}.concept-message header{display:flex;justify-content:space-between;gap:14px}.concept-message strong{font-size:13px}.concept-message time,.concept-message small{color:#8a938c;font-size:10px}.concept-message p{margin:0;font-size:16px;line-height:1.58}.concept-message-empty{max-width:650px;margin:12vh auto 0;text-align:center}.concept-message-empty strong{font-size:25px;letter-spacing:-.03em}.concept-message-empty p{color:var(--concept-muted);font-size:15px}.concept-signals{flex:0 0 auto;width:min(900px,calc(100% - 32px));margin:0 auto 8px;border:1px solid #dfe5e0;border-radius:13px;background:#fff;padding:10px 12px}.concept-signals>header{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:8px}.concept-signals>header span,.concept-signals article>span{color:#66806e;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.concept-signals h3{margin:2px 0 0;font-size:13px}.concept-signals>header small{color:#8a938c}.concept-signals>div{display:flex;gap:8px;overflow-x:auto}.concept-signals article{flex:0 0 250px;border:1px solid #e3e7e4;border-radius:10px;background:#fafbfa;padding:8px}.concept-signals article p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:4px 0 8px;font-size:11px;line-height:1.4}.concept-signals article button{border:0;background:transparent;padding:3px 6px 3px 0;color:#376149;font-size:10px;font-weight:850;cursor:pointer}.concept-chat-dock{flex:0 0 auto;background:linear-gradient(180deg,rgba(245,246,243,0),#f5f6f3 14%);padding:10px 16px 14px}.concept-chat-composer{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:end;width:min(850px,100%);min-height:90px;margin:0 auto;border:1px solid #d8ded9;border-radius:22px;background:#fff;padding:12px 12px 11px 17px;box-shadow:0 12px 32px rgba(24,37,28,.09)}.concept-chat-composer textarea{min-height:64px;max-height:200px;resize:vertical;border:0;outline:0;background:transparent;color:#1f2c24;font-size:18px;line-height:1.45}.concept-chat-composer>button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:999px;background:var(--concept-green);color:#fff;font-size:21px;font-weight:900;cursor:pointer}.concept-selector-dock{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;width:min(900px,100%);margin:9px auto 0;border:1px solid #e1e5e1;border-radius:13px;background:#fff;padding:7px}.concept-selector{position:relative;display:grid;min-width:0;gap:2px;border:0;border-radius:9px;background:#f4f5f3;padding:8px 25px 8px 9px;color:#2d3931;text-align:left;cursor:pointer}.concept-selector span{color:#78817a;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.concept-selector b{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.concept-selector i{position:absolute;right:8px;top:50%;color:#8b938d;font-style:normal;transform:translateY(-50%)}.concept-board{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden;background:#eef0ed}.concept-board-toolbar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dce1dc;background:#fff;padding:9px 12px}.concept-board-toolbar>div{display:flex;align-items:center;gap:7px}.concept-board-view button,.concept-board-view select,.concept-board-footer button{border:1px solid #d7ddd8;border-radius:8px;background:#fff;padding:6px 9px;color:#506057;font:inherit;font-size:11px;font-weight:800}.concept-board-view button.active{background:var(--concept-green);color:#fff}.concept-save-state{color:#6f7b73;font-size:10px;font-weight:850}.concept-save-state.dirty{color:#a45b12}.concept-board-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;flex:1;height:0;min-height:0;overflow:hidden}.concept-board-scroll{height:100%;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-gutter:stable;background-color:#e9ebe8;background-image:radial-gradient(#cbd1cc 1px,transparent 1px);background-size:18px 18px}.concept-board-canvas{zoom:var(--concept-zoom);min-width:max(784px,calc(var(--path-count) * 250px));width:max-content;min-height:100%;padding:24px 16px 72px}.concept-path-grid{display:grid;grid-template-columns:repeat(var(--path-count),240px);gap:16px;align-items:start}.concept-path-grid.separate{align-items:start}.concept-path-column{display:grid;justify-items:center;gap:14px;min-width:0}.concept-scene-node{position:relative;width:225px;border:1px solid #d7ddd8;border-radius:15px;background:#fff;padding:9px;box-shadow:0 9px 24px rgba(23,59,42,.08);cursor:pointer}.concept-scene-node.selected{outline:3px solid rgba(23,59,42,.23);border-color:var(--concept-green)}.concept-scene-node>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;color:#5f6d64;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.concept-scene-node>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:9px 0 4px;font-size:11px;line-height:1.45}.concept-scene-node>small{display:block;color:#808a83;font-size:9px;line-height:1.4}.concept-scene-node>button{margin-top:8px;border:0;background:transparent;padding:0;color:#a74235;font-size:9px;font-weight:850}.concept-phone{width:150px;height:270px;margin:auto;border:7px solid #131815;border-radius:25px;background:#131815;box-shadow:0 5px 12px rgba(0,0,0,.16)}.concept-phone-screen{position:relative;display:flex;height:100%;overflow:hidden;flex-direction:column;justify-content:center;border-radius:19px;background:linear-gradient(150deg,#637268 0%,#bec7c0 43%,#45564b 100%);padding:18px 12px;color:#fff;text-shadow:0 1px 5px rgba(0,0,0,.55)}.concept-phone-screen:before{content:"";position:absolute;top:7px;left:50%;width:48px;height:9px;border-radius:999px;background:#111;transform:translateX(-50%)}.concept-phone-screen span{display:block;position:relative;z-index:1;width:100%;font-weight:900;line-height:1.02;overflow-wrap:break-word;word-break:normal;hyphens:none}.concept-phone-screen span.at-top{margin-bottom:auto}.concept-phone-screen span.at-bottom{margin-top:auto}.concept-phone-screen em{align-self:center;color:rgba(255,255,255,.75);font-size:10px}.concept-add-bridge,.concept-remove-path{width:210px;border:1px dashed #aeb8b0;border-radius:9px;background:rgba(255,255,255,.7);padding:8px;color:#536158;font-size:10px;font-weight:850;cursor:pointer}.concept-remove-path{border-color:#dbc8c4;color:#934c40}.concept-converge{display:grid;place-items:center;width:100%;min-height:76px;color:#5f6c64;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.concept-shared-scenes{display:grid;justify-items:center;gap:18px}.concept-shared-scenes .concept-scene-node:before,.concept-path-column>.concept-scene-node:not(:first-child):before{content:"↓";position:absolute;top:-19px;left:50%;color:#718078;transform:translateX(-50%)}.concept-scene-inspector{min-width:0;overflow-y:auto;border-left:1px solid #dce1dc;background:#fff;padding:13px}.concept-scene-inspector>header,.concept-overlay-editor>header{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:12px}.concept-scene-inspector>header span,.concept-overlay-editor header span{color:#77817a;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.concept-scene-inspector h3,.concept-overlay-editor h4{margin:2px 0 0;font-size:15px}.concept-scene-inspector>header>b{border-radius:999px;background:#edf1ee;padding:4px 7px;color:#56655c;font-size:9px}.concept-scene-inspector>label,.concept-scene-inspector fieldset label{display:grid;gap:5px;margin-bottom:11px;color:#5e6962;font-size:10px;font-weight:850}.concept-scene-inspector textarea,.concept-scene-inspector input,.concept-scene-inspector select{width:100%;border:1px solid #d9dfda;border-radius:8px;background:#fff;padding:8px;color:#25332a;font:inherit;font-size:12px}.concept-scene-inspector label>small{color:#8a928c;font-size:9px;font-weight:500;line-height:1.45}.concept-scene-inspector fieldset{display:grid;gap:8px;margin:0 0 12px;border:1px solid #e0e5e1;border-radius:10px}.concept-scene-inspector legend{color:#68756c;font-size:9px;font-weight:900;text-transform:uppercase}.concept-overlay-editor{border-top:1px solid #e4e8e5;padding-top:12px}.concept-overlay-editor header button{border:0;background:#eef2ef;padding:5px 8px;color:#31533e;font-size:10px;font-weight:850}.concept-overlay-row{display:grid;grid-template-columns:minmax(0,1fr) 55px 64px 70px 25px;gap:5px;align-items:end;margin-bottom:7px}.concept-overlay-row label{margin:0!important;font-size:8px!important}.concept-overlay-row button{height:32px;border:0;background:transparent;color:#a34539;font-size:17px}.concept-overlay-editor>p{color:#818a84;font-size:10px}.concept-scene-structure{display:flex;flex-wrap:wrap;gap:6px;border-top:1px solid #e4e8e5;padding-top:12px}.concept-scene-structure button{font-size:9px;padding:6px 8px}.concept-inspector-signals{margin-top:12px;border-top:1px solid #e4e8e5;padding-top:10px}.concept-inspector-signals summary{color:#526057;font-size:10px;font-weight:850;cursor:pointer}.concept-inspector-signals button{display:grid;width:100%;gap:3px;margin-top:6px;border:1px solid #e0e5e1;border-radius:8px;background:#fafbfa;padding:7px;text-align:left}.concept-inspector-signals button b{color:#54705d;font-size:8px;text-transform:uppercase}.concept-inspector-signals button span{font-size:9px;line-height:1.35}.concept-board-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #dce1dc;background:#fff;padding:7px 12px}.concept-board-footer>div{display:flex;align-items:center;gap:7px}.concept-board-footer>span{color:#77817a;font-size:10px}.concept-plan-backdrop,.concept-modal-backdrop{position:fixed;inset:0;z-index:60;display:flex;justify-content:flex-end;background:rgba(18,27,21,.28);backdrop-filter:blur(3px)}.concept-plan{display:flex;width:min(560px,100vw);height:100%;flex-direction:column;overflow-y:auto;background:#fff;padding:17px;box-shadow:-20px 0 50px rgba(15,29,20,.18)}.concept-plan>header,.concept-modal>header{display:flex;align-items:start;justify-content:space-between;gap:16px;border-bottom:1px solid #e4e8e5;padding-bottom:12px}.concept-plan>header span,.concept-plan section>span,.concept-plan-section-head span,.concept-modal>header span{color:#6c786f;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.concept-plan h2,.concept-modal h2{margin:3px 0 0;font-size:23px;letter-spacing:-.035em}.concept-plan>header button,.concept-modal>header button{border:0;background:transparent;color:#627067;font-size:25px;cursor:pointer}.concept-plan>section{display:grid;gap:5px;border-bottom:1px solid #e5e9e6;padding:17px 2px}.concept-plan>section p{margin:0 0 8px;font-size:13px;line-height:1.5}.concept-plan>section h3{margin:0 0 9px;font-size:17px}.concept-plan-section-head{display:flex;justify-content:space-between;gap:12px}.concept-topology{display:grid;grid-template-columns:1fr 1fr;gap:8px}.concept-topology button{display:grid;gap:5px;border:1px solid #dce2dd;border-radius:11px;background:#f8f9f7;padding:12px;color:#2f3c34;text-align:left}.concept-topology button.active{border-color:#557562;background:#ebf1ed}.concept-topology button span{color:#6f7972;font-size:10px;line-height:1.4}.concept-brief-projection>p{border-radius:9px;background:#f6f7f5;padding:10px}.concept-brief-projection>p strong{display:block;margin-bottom:5px}.concept-brief-projection ol{display:grid;gap:7px;margin:0;padding:0;list-style:none}.concept-brief-projection li{display:grid;gap:3px;border:1px solid #e1e6e2;border-radius:8px;padding:8px}.concept-brief-projection li span{font-size:11px}.concept-plan>footer{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:15px}.concept-modal-backdrop{align-items:center;justify-content:center;padding:18px}.concept-modal{width:min(680px,100%);max-height:92vh;overflow:auto;border:1px solid #dfe4e0;border-radius:16px;background:#fff;padding:17px;box-shadow:0 30px 80px rgba(18,31,22,.22)}.concept-modal form{display:grid;grid-template-columns:1fr 1fr;gap:13px;padding-top:15px}.concept-modal label{display:grid;gap:6px;color:#58655c;font-size:11px;font-weight:800}.concept-modal input,.concept-modal textarea,.concept-modal select{width:100%;border:1px solid #d8ded9;border-radius:9px;background:#fff;padding:9px;color:#26332b}.concept-modal .wide,.concept-modal fieldset,.concept-modal footer{grid-column:1/-1}.concept-modal fieldset{display:flex;flex-wrap:wrap;gap:10px;border:1px solid #dfe4e0;border-radius:10px}.concept-modal fieldset label{display:flex;align-items:center}.concept-modal fieldset input{width:auto}.concept-modal footer{display:flex;justify-content:flex-end;gap:8px}.concept-modal p{color:#68746c;font-size:12px;line-height:1.5}.concept-alert{border:1px solid #e0c4be;border-radius:10px;background:#fff0ec;padding:10px;color:#8e3e32}.concept-alert button{border:0;background:transparent;color:inherit;font-weight:900}.concept-zero{display:grid;place-items:center;align-content:center;height:100%;text-align:center}.concept-zero>span{font-size:38px}.concept-zero h2{margin:8px 0 4px}.concept-zero p{max-width:480px}.concept-inspection{border-radius:9px;background:#f2f5f2;padding:10px}.concept-scene-evidence{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 12px;border-radius:9px;background:#f2f5f2;padding:8px}.concept-scene-evidence b{width:100%;font-size:9px}.concept-scene-evidence span{border-radius:999px;background:#fff;padding:3px 6px;color:#5f6c64;font-size:8px}
@media (max-width:1180px){.concept-selector-dock{grid-template-columns:repeat(3,minmax(0,1fr))}.concept-board-layout{grid-template-columns:minmax(0,1fr) 290px}.concept-overlay-row{grid-template-columns:minmax(0,1fr) 50px 60px}.concept-overlay-row select:nth-of-type(2){grid-column:1/2}.concept-overlay-row button{grid-column:3}}
@media (max-width:820px){.concepts-header{align-items:start}.concept-workspace{height:auto;min-height:0;grid-template-columns:1fr;overflow:visible}.concept-projects{display:flex;min-height:82px;flex-direction:row;overflow-x:auto}.concept-projects>header{flex:0 0 auto}.concept-project-link{flex:0 0 190px}.concept-main{height:calc(100svh - 170px);min-height:640px}.concept-project-header{align-items:start}.concept-project-actions{display:grid}.concept-chat-composer{min-height:90px}.concept-selector-dock{grid-template-columns:repeat(2,minmax(0,1fr))}.concept-message{max-width:94%}.concept-signals{width:calc(100% - 20px)}.concept-board-layout{grid-template-columns:1fr;grid-template-rows:minmax(440px,1fr) auto;overflow-y:auto}.concept-board-scroll{max-width:100%;min-height:440px}.concept-scene-inspector{max-height:520px;border-top:1px solid #dce1dc;border-left:0}.concept-board-toolbar{align-items:start}.concept-board-toolbar,.concept-board-toolbar>div{flex-wrap:wrap}.concept-board-footer>span{display:none}.concept-plan{width:100%}}
@media (max-width:520px){.concepts-header{display:grid}.concepts-header>.concept-primary{width:100%}.concept-main{height:calc(100svh - 155px)}.concept-project-header{display:grid;padding:10px 12px}.concept-project-actions{grid-template-columns:1fr 1fr}.concept-surface-tabs{padding:6px 10px}.concept-context{padding:8px 10px}.concept-history{padding:17px 14px}.concept-message p{font-size:15px}.concept-chat-dock{padding:8px}.concept-chat-composer{grid-template-columns:minmax(0,1fr) 38px;border-radius:17px;padding:10px 9px 9px 13px}.concept-chat-composer textarea{font-size:17px}.concept-selector-dock{gap:5px;margin-top:7px;padding:5px}.concept-selector{padding:7px 22px 7px 8px}.concept-board-toolbar .concept-primary{width:100%}.concept-board-canvas{padding:24px 28px 70px}.concept-board-footer{flex-wrap:wrap}.concept-modal-backdrop{align-items:end;padding:0}.concept-modal{max-height:94vh;border-radius:18px 18px 0 0}.concept-modal form{grid-template-columns:1fr}.concept-modal .wide,.concept-modal footer,.concept-modal fieldset{grid-column:auto}.concept-topology{grid-template-columns:1fr}}

/* Self-contained: this used to borrow .concept-plan from the Concepts module,
   which is a 560px side panel — so the setup sat at half the board's width and
   every tall field was forced onto its own row. */
.scripts-setup{width:100%;box-sizing:border-box;border:1px solid var(--concept-line);border-radius:14px;background:#fff;padding:14px 18px 18px;margin-bottom:14px}
.scripts-setup summary{cursor:pointer;font-weight:800;color:#173b2a;font-size:13px}
.scripts-setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px 18px;padding-top:16px}
.scripts-setup-group{grid-column:1/-1;margin:8px 0 -2px;padding-bottom:7px;border-bottom:1px solid #edf0ec;color:#173b2a;font-size:10.5px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.scripts-setup-group:first-child{margin-top:0}
.scripts-setup-grid label{display:grid;gap:6px;color:#58655c;font-size:11px;font-weight:800}
.scripts-setup-grid .wide{grid-column:1/-1}
.scripts-setup-grid input,.scripts-setup-grid textarea,.scripts-setup-grid select{box-sizing:border-box;width:100%;border:1px solid #dfe4e0;border-radius:9px;background:#fcfdfc;padding:10px 11px;color:#26332b;font:inherit;font-size:13px;font-weight:500;transition:border-color .12s,box-shadow .12s,background-color .12s}
.scripts-setup-grid input:hover,.scripts-setup-grid textarea:hover,.scripts-setup-grid select:hover{border-color:#c8d1ca}
.scripts-setup-grid input:focus,.scripts-setup-grid textarea:focus,.scripts-setup-grid select:focus{outline:none;border-color:#5b76fe;background:#fff;box-shadow:0 0 0 3px rgba(91,118,254,.13)}
.scripts-setup-grid input::placeholder,.scripts-setup-grid textarea::placeholder{color:#adb6af;font-weight:400}
/* Setup fields hold prose, and a field you cannot read back is worse than no
   field. Grow to the content where the browser supports it, and never sit
   shorter than two lines. */
.scripts-setup-grid textarea{resize:vertical;min-height:56px;line-height:1.45;field-sizing:content;max-height:340px}
.scripts-setup-grid select{appearance:none;-webkit-appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2369736c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:11px}
.scripts-setup-angles{display:grid;gap:8px}
.scripts-setup-angles b{font-size:11px;color:#58655c}
.scripts-setup-angle{display:grid;grid-template-columns:1fr 1fr 36px;gap:8px}
.scripts-setup-angle button{box-sizing:border-box;border:1px solid #dfe4e0;border-radius:9px;background:#fcfdfc;color:#9aa49d;cursor:pointer;font-size:15px;line-height:1;transition:color .12s,border-color .12s}
.scripts-setup-angle button:hover{color:#8d3939;border-color:#e3c9c9}
.scripts-setup-angles>.concept-secondary{justify-self:start;padding:7px 13px;font-size:12px;font-weight:800;border-radius:9px}
@media (max-width:820px){.scripts-setup-grid{grid-template-columns:1fr}.scripts-setup-angle{grid-template-columns:1fr 1fr 36px}}

/* Script Boards v2: phone-card hooks, bridges, hold */
.sb-main{overflow-y:auto}
.sb-scroll{padding:16px 18px 60px;display:flex;flex-direction:column;gap:16px}
.sb-hooks{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.sb-column{display:flex;flex-direction:column;gap:8px;width:236px}
.sb-card-title{display:flex;justify-content:space-between;align-items:center;border-top:3px solid #8a5ad1;border-radius:6px 6px 0 0;background:#fff;box-shadow:0 1px 4px rgba(20,30,24,.1);padding:8px 10px}
.sb-card-title b{font-size:11.5px;letter-spacing:.02em}
.sb-bridge-title{margin-top:10px;border-top-color:#5b76fe}
.sb-remove{border:0;background:transparent;color:#9aa49d;font-size:15px;cursor:pointer;line-height:1}
.sb-remove:hover{color:#8d3939}
.sb-visuals{background:#fff;box-shadow:0 1px 4px rgba(20,30,24,.08);border-radius:0 0 6px 6px;border-top:1px solid #f1f3f1;padding:9px 10px 10px}
.sb-phone{position:relative;width:100%;aspect-ratio:9/16;background:#fff;border-radius:4px;box-shadow:0 2px 10px rgba(20,30,24,.13);display:flex;align-items:center;justify-content:center;padding:14px}
.sb-phone-lines{display:flex;flex-direction:column;gap:6px;width:100%}
.sb-line{width:100%;border:0;background:transparent;text-align:center;font-family:'Nunito',ui-rounded,system-ui,sans-serif;font-weight:700;line-height:1.22;color:#18251c;outline:none;padding:0}
.sb-line:focus{background:#f6f8ff;border-radius:4px;box-shadow:0 0 0 1px #c9d4ff}
.sb-line::placeholder{color:#c2c9c3;font-weight:500}
.sb-line-tools{position:absolute;right:6px;bottom:6px;display:flex;align-items:center;gap:6px;background:#18251c;color:#fff;border-radius:999px;padding:4px 8px;font-size:11px}
.sb-line-tools button{border:0;background:transparent;color:#fff;font-weight:900;font-size:12px;cursor:pointer;padding:1px 5px;border-radius:6px;line-height:1.35;transition:background-color .12s,color .12s}
.sb-line-tools button:hover{background:rgba(255,255,255,.16)}
.sb-line-tools button.is-active{background:#fff;color:#18251c}
.sb-line-tools [data-bold-toggle]{font-family:Georgia,'Times New Roman',serif;font-size:13px}
.sb-tool-sep{width:1px;align-self:stretch;margin:1px 1px;background:rgba(255,255,255,.24)}
.sb-line-tools b{min-width:20px;text-align:center;font-variant-numeric:tabular-nums;font-weight:800;color:#cdd5ce}
.sb-add-bridge,.sb-add-hook{border:1px dashed #b9c3bb;border-radius:8px;background:transparent;color:#4f785e;font:inherit;font-size:12px;font-weight:800;padding:9px;cursor:pointer}
.sb-add-hook{width:236px;align-self:stretch;min-height:120px}
.sb-add-bridge:hover,.sb-add-hook:hover{border-color:#557562;background:#eef3ef}
.sb-converge{display:flex;align-items:center;gap:12px;color:#8a5ad1;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.sb-converge::before,.sb-converge::after{content:'';flex:1;border-top:2px dashed #c9b3ec}
.sb-hold{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:stretch}
.sb-hold-copy{background:#fff;border-radius:6px;box-shadow:0 2px 10px rgba(20,30,24,.1);overflow:hidden}
.sb-hold-copy .sb-card-title{box-shadow:none;border-radius:0}
.sb-hold-text{display:block;width:100%;min-height:320px;border:0;outline:none;resize:vertical;padding:14px 16px;font-family:Georgia,'Times New Roman',serif;font-size:14.5px;line-height:1.65;color:#18251c}
.sb-hold-visuals{display:flex;align-items:flex-start}
.sb-hold-visuals .sb-visuals{flex:1;border-radius:6px;box-shadow:0 2px 10px rgba(20,30,24,.1);padding:11px 12px 12px}
/* Open, the note grows with its editor; collapsed, it shrinks to its summary
   instead of leaving a tall empty box beside the copy card. */
.sb-hold-visuals .sb-visuals[open]{display:flex;flex-direction:column}
.sb-hold-visuals .sb-visuals[open] .sb-rich-mount{flex:1}
.sb-hold-visuals .sb-visuals[open] .ql-container{flex:1;display:flex}
.sb-hold-visuals .sb-visuals[open] .ql-editor{flex:1;min-height:240px}
@media (max-width:900px){.sb-hold{grid-template-columns:1fr}.sb-column,.sb-add-hook{width:100%}.sb-phone{max-width:280px;margin:0 auto}}

/* Board editing v2.1: contenteditable cards, selection sizing */
.sb-card{width:100%;min-height:100%;outline:none;font-family:'Nunito',ui-rounded,'SF Pro Rounded','Segoe UI',system-ui,-apple-system,sans-serif;font-weight:800;font-size:26px;line-height:1.22;letter-spacing:-.01em;text-align:center;color:#18251c;display:flex;flex-direction:column;justify-content:center;gap:6px;caret-color:#5b76fe}
.sb-card div{min-height:1em}
.sb-card:focus{box-shadow:inset 0 0 0 2px #dbe3ff;border-radius:4px}
.sb-card:empty::before{content:'Write here…';color:#c2c9c3;font-weight:500}
.sb-phone .sb-line-tools{opacity:0;transition:opacity .12s}
.sb-phone:hover .sb-line-tools,.sb-phone:focus-within .sb-line-tools{opacity:1}
.scripts-setup{border-left:4px solid #5b76fe}

/* Quill cards + board header controls */
.sb-card-mount{width:100%;height:100%;display:flex}
.sb-card-mount .ql-container{border:0;font-family:'Nunito',ui-rounded,'SF Pro Rounded','Segoe UI',system-ui,sans-serif;width:100%;display:flex}
.sb-card-mount .ql-editor{width:100%;padding:10px 8px;display:flex;flex-direction:column;text-align:center;font-weight:800;font-size:26px;line-height:1.22;letter-spacing:-.01em;color:#18251c;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d3dad4 transparent}
.sb-card-mount .ql-editor p{margin:0}
.sb-card-mount .ql-editor strong,.sb-card-mount .ql-editor b{font-weight:900}
.sb-card-mount .ql-editor > :first-child{margin-top:auto}
.sb-card-mount .ql-editor > :last-child{margin-bottom:auto}
.sb-card-mount .ql-editor::-webkit-scrollbar{width:6px}
.sb-card-mount .ql-editor::-webkit-scrollbar-thumb{background:#d3dad4;border-radius:3px}
.sb-card-mount .ql-editor.ql-blank::before{color:#c2c9c3;font-style:normal;font-weight:600;left:0;right:0;text-align:center}
.sb-title{border:0;background:transparent;font:inherit;font-size:19px;font-weight:800;letter-spacing:-.02em;color:inherit;width:100%;min-width:220px;padding:2px 4px;border-radius:6px}
.sb-title:hover{background:#f2f4f1}
.sb-title:focus{outline:2px solid #c9d4ff;background:#fff}
.sb-status{border:1px solid #d3d9d4;border-radius:9px;background:#fff;min-height:38px;padding:7px 10px;font:inherit;font-weight:700;color:#334139}
.sb-delete{color:#8d3939;border-color:#e4cbc7}
.sb-delete:hover{background:#fff0f0}

/* Shareable Google Doc brief link renders as a button beside the export actions */
a.sb-doc-link{display:inline-flex;align-items:center;text-decoration:none;box-sizing:border-box;color:#173b2a;border-color:#9fc0ab;background:#eef5f0}
.sb-production-links{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border-bottom:1px solid #e6eae7;background:#f6faf7;padding:8px 17px;font-size:12px}
.sb-production-links span{color:#5b7a66;font-weight:900;font-size:9px;letter-spacing:.08em;text-transform:uppercase}
.sb-production-links a{color:#173b2a;font-weight:800}
.sb-phone::before,.sb-phone::after{content:'';position:absolute;left:0;right:0;border-top:1px dashed #e3e8e3;pointer-events:none}
.sb-phone::before{top:13%}
.sb-phone::after{top:82%}

/* Rich editors: the Hold and every Visuals note. Toolbar buttons carry our own
   labels — Quill only needs the ql-* class to bind its handler — so no theme
   stylesheet is loaded and nothing here fights the phone-card styling. */
.sb-rich-tools{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:5px 7px;background:#fbfcfb;border:1px solid #e6eae6;border-bottom:0;border-radius:8px 8px 0 0}
.sb-rich-tools button{min-width:24px;height:23px;border:0;border-radius:6px;background:transparent;color:#58655c;font:inherit;font-size:12px;font-weight:800;line-height:1;cursor:pointer;padding:0 5px;transition:background-color .12s,color .12s}
.sb-rich-tools button:hover{background:#e8ece8;color:#18251c}
.sb-rich-tools button.ql-active{background:#18251c;color:#fff}
.sb-rich-tools .ql-italic{font-style:italic}
.sb-rich-tools .ql-underline{text-decoration:underline}
.sb-rich-tools .ql-strike{text-decoration:line-through}
.sb-rich-sep{width:1px;height:15px;margin:0 3px;background:#dde3de}
.sb-rich-mount{border:1px solid #e6eae6;border-radius:0 0 8px 8px;background:#fbfcfb}
.sb-rich-mount .ql-container{border:0;font-family:inherit}
.sb-rich-mount .ql-editor{padding:9px 11px;line-height:1.5;color:#26332b}
.sb-rich-mount .ql-editor.ql-blank::before{color:#adb6af;font-style:normal;left:11px;right:11px}
/* Spacing comes from blank lines and nothing else, exactly like the phone cards:
   consecutive lines sit tight, and a blank line is a deliberate break you can
   see. Same rule in the exported brief, so the two cannot drift. */
.sb-rich-mount .ql-editor p{margin:0}
.sb-rich-mount .ql-editor ol,.sb-rich-mount .ql-editor ul{margin:0}
.sb-rich-mount .ql-editor blockquote{margin:0;padding-left:11px;border-left:3px solid #dde3de;color:#58655c}
.sb-visuals .sb-rich-tools{margin-top:7px}
.sb-visuals-mount .ql-editor{min-height:62px;font-size:12px;line-height:1.45}
.sb-hold-mount{border-radius:0;border-width:1px 0 0}
.sb-hold-mount .ql-editor{min-height:320px;padding:14px 16px;font-family:Georgia,'Times New Roman',serif;font-size:14.5px;line-height:1.65;color:#18251c}
.sb-hold-copy .sb-rich-tools{border-radius:0;border-left:0;border-right:0}

/* Shared bridges: one bridge belongs to a set of hooks. Sole-owner bridges stay
   inline under their hook; shared ones are drawn once in their own row. */
.sb-bridge-row{display:grid;gap:7px;padding-top:6px}
.sb-bridge-row .sb-add-bridge{width:100%}
.sb-bridge-row .sb-bridge-pick{padding-top:0}
.sb-bridge-pick{display:flex;align-items:center;gap:7px;padding:6px 2px 0}
.sb-bridge-pick>span{font-size:9.5px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#69736c}
.sb-bridge-pick select{flex:1;min-width:0;box-sizing:border-box;appearance:none;-webkit-appearance:none;border:1px solid #dfe4e0;border-radius:8px;background:#fcfdfc;padding:6px 26px 6px 9px;color:#26332b;font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2369736c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:10px}
.sb-bridge-pick select:hover{border-color:#c8d1ca}
.sb-bridge-pick select:focus{outline:none;border-color:#5b76fe;background-color:#fff;box-shadow:0 0 0 3px rgba(91,118,254,.13)}
.sb-shared-bridges{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;padding-top:4px}
.sb-shared-bridge{position:relative}
.sb-shared-bridge .sb-bridge-title{border-top-color:#5b76fe}
@media (max-width:900px){.sb-shared-bridge{width:100%}}

/* One-click sharing, and visuals folded away until they are wanted. */
.sb-bridge-actions{display:flex;align-items:center;gap:6px}
.sb-share-all{border:1px solid #c9d4ff;border-radius:999px;background:#f2f5ff;color:#3f56c9;font:inherit;font-size:10px;font-weight:900;letter-spacing:.02em;padding:3px 9px;cursor:pointer;white-space:nowrap;transition:background-color .12s,border-color .12s}
.sb-share-all:hover{background:#5b76fe;border-color:#5b76fe;color:#fff}
.sb-visuals summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9.5px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#69736c}
.sb-visuals summary::-webkit-details-marker{display:none}
.sb-visuals summary::after{content:'▾';font-size:9px;color:#aab3ab;transition:transform .12s}
.sb-visuals[open] summary::after{transform:rotate(180deg)}
.sb-visuals summary i{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:none;color:#aeb6b0;margin-left:auto}
.sb-visuals.is-filled summary{color:#4f785e}

/* On a wide desktop the setup panel ran one tall field per row, which made it
   far taller than it needed to be. Pair them up instead: four columns, tall
   fields spanning two, so the same content reads in about half the height.
   Angles keep the full width — they are their own two-column grid. */
/* Keyed to the panel's own width, not the window's: the board sits beside a
   sidebar, so a viewport breakpoint fires at the wrong moment. Tall fields pair
   up as soon as there is room, instead of each taking a whole row and turning
   the setup into a long vertical run. */
.scripts-setup{container-type:inline-size}
@container (min-width:660px){
  .scripts-setup-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .scripts-setup-grid .wide{grid-column:span 2}
  .scripts-setup-grid .scripts-setup-angles,.scripts-setup-grid .scripts-setup-links{grid-column:1/-1}
}
@container (min-width:1080px){
  .scripts-setup-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .scripts-setup-grid>label{grid-column:span 2}
  .scripts-setup-grid .wide{grid-column:span 3}
  .scripts-setup-grid .scripts-setup-angles,.scripts-setup-grid .scripts-setup-links{grid-column:1/-1}
}

/* One visuals note that covers every hook, above the row it applies to. Full
   width because it is not about any single card. */
.sb-every-hook{display:block}
.sb-every-hook .sb-visuals{border-radius:8px;border-top:0;box-shadow:0 1px 4px rgba(20,30,24,.08)}
.sb-every-hook .sb-visuals summary{color:#3f56c9}
.sb-every-hook .sb-visuals.is-filled summary{color:#3f56c9}
.sb-every-hook .sb-visuals-mount .ql-editor{min-height:52px}

/* The editor brief: the note at the top of the video. Same panel as a visuals
   note, full width, leading the board the way it leads the exported brief. */
.sb-editor-brief{display:block}
.sb-editor-brief .sb-visuals{border-radius:8px;border-top:0;border-left:4px solid #5b76fe;box-shadow:0 1px 4px rgba(20,30,24,.08)}
.sb-editor-brief .sb-visuals summary,.sb-editor-brief .sb-visuals.is-filled summary{color:#3f56c9}
.sb-editor-brief .sb-visuals-mount .ql-editor{min-height:62px}

/* Reference links in Project Setup: label on the left, the link itself wider. */
.scripts-setup-links{display:grid;gap:8px}
.scripts-setup-links b{font-size:11px;color:#58655c}
.scripts-setup-link{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 36px;gap:8px}
.scripts-setup-link button{box-sizing:border-box;border:1px solid #dfe4e0;border-radius:9px;background:#fcfdfc;color:#9aa49d;cursor:pointer;font-size:15px;line-height:1;transition:color .12s,border-color .12s}
.scripts-setup-link button:hover{color:#8d3939;border-color:#e3c9c9}
.scripts-setup-links>.concept-secondary{justify-self:start;padding:7px 13px;font-size:12px;font-weight:800;border-radius:9px}
@media (max-width:820px){.scripts-setup-link{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px}}

/* Board search. Filtering happens in place, so the field keeps focus as you type. */
.sb-board-search{box-sizing:border-box;width:100%;margin:0 0 8px;border:1px solid #dfe4e0;border-radius:9px;background:#fcfdfc;padding:7px 10px;color:#26332b;font:inherit;font-size:12px;transition:border-color .12s,box-shadow .12s}
.sb-board-search::placeholder{color:#adb6af}
.sb-board-search:hover{border-color:#c8d1ca}
.sb-board-search:focus{outline:none;border-color:#5b76fe;background:#fff;box-shadow:0 0 0 3px rgba(91,118,254,.13)}
.sb-board-search::-webkit-search-cancel-button{cursor:pointer}
.concept-projects [data-board-no-match]{font-size:12px}
