:root{color-scheme:dark;--edge-gap:24px;--bg:#0b0b0e;--panel:#121216;--border:#2a2931;--txt:#f4f2f7;--soft:#aaa7b5;--violet:#aa8aff;--mono:ui-monospace,"DejaVu Sans Mono",monospace;font:16px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--txt);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-height:100svh;display:flex;flex-direction:column}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.52}button,input,select{outline-offset:4px}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--violet)}[hidden]{display:none!important}.symbols{position:absolute;width:0;height:0;overflow:hidden}svg:not(.symbols){width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex:none}.shell{width:min(1176px,calc(100% - 96px));margin-inline:auto}.edge-frame{width:calc(100% - 2 * var(--edge-gap));margin-inline:auto}.bar{border-bottom:1px solid #27252b;height:76px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;font-size:19px;letter-spacing:-.8px;font-weight:600}.brand b{font-weight:760}.brand img{border-radius:50%}.server,.identity{font:11px/1.5 var(--mono);color:#aaa7b1;display:flex;align-items:center;gap:9px}.server i{width:6px;height:6px;background:#a2e0ac;border-radius:50%;box-shadow:0 0 8px #8ee29545}
.login-layout{flex:1;display:grid;grid-template-columns:1.18fr 1fr;gap:clamp(60px,8vw,150px);align-items:center;padding-block:48px}.poster{isolation:isolate;position:relative;overflow:hidden;height:clamp(475px,68vh,680px);border-radius:23px;border:1px solid #3c334b;background:radial-gradient(ellipse at 72% 73%,#3417588a,transparent 54%),radial-gradient(ellipse at 15% 0%,#292035a6,transparent 53%),#121019}.poster:before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#ada1d00b 1px,transparent 1px),linear-gradient(90deg,#ada1d00b 1px,transparent 1px);background-size:32px 32px}.poster:after{content:"";position:absolute;pointer-events:none;inset:18px;border:1px solid #e8d5ff0b;border-radius:11px}.poster-type{position:absolute;z-index:1;left:8%;top:7.2%;line-height:1}.wordmark{display:block;font-size:clamp(22px,2.4vw,36px);font-weight:500;letter-spacing:-.07em}.poster strong{display:block;font-size:clamp(85px,9.5vw,150px);letter-spacing:-.09em;line-height:.97;font-weight:760}.poster strong span{color:#a489ff}.poster canvas{width:100%;height:77%;position:absolute;bottom:6%;left:0}.poster-bottom{position:absolute;inset:auto 8% 6%;display:flex;align-items:center;justify-content:space-between;font:11px var(--mono);letter-spacing:.12em;color:#c8bedc}.version{color:#b9a0e0;letter-spacing:.01em;white-space:nowrap}.auth{width:100%;max-width:384px;justify-self:start;padding-block:5px}.icon-tile{width:44px;height:44px;background:#211a30;border:1px solid #473650;border-radius:13px;color:#c4a3ff;display:grid;place-items:center}.icon-tile svg{width:22px;height:22px}h1,h2,p{margin:0}h1{font-size:clamp(37px,3.7vw,55px);font-weight:650;line-height:1.08;letter-spacing:-.06em}.auth h1{margin:0 0 12px}.intro,.hint,.dialog-actions+p{color:var(--soft)}.intro{font-size:15px;line-height:1.6}.small-break{display:none}form#signin{margin-top:29px}label{font-size:14px;font-weight:540}label[for=course]{display:block;margin-bottom:8px}.field,select,.range input{display:flex;align-items:center;background:#151519;border:1px solid #333139;border-radius:9px;min-height:49px}.field{padding:0 14px;gap:12px;color:#928d9e}.field:focus-within{border-color:var(--violet);box-shadow:0 0 0 2px #a47af51c}.field input{border:0;background:transparent;outline:none;color:var(--txt);width:100%;min-width:0;height:48px;font-size:14px}.field input:focus-visible{outline:none}.field input::placeholder{color:#797681}.field svg{width:18px;height:18px}#signin .field+.field{margin-top:14px}.primary,.secondary,.text-button{display:flex;align-items:center;justify-content:center;gap:10px;border-radius:9px;font-size:14px;font-weight:630;min-height:48px;transition:background .15s,filter .15s}.primary,.secondary{width:100%}.primary{background:#a58af6;border:1px solid #bfa8ff;color:#141019}.primary:hover:enabled{background:#b49aff}.primary svg,.secondary svg{width:17px;height:17px}.secondary,.text-button{background:#141417;border:1px solid #35333c;color:#e7e3ee}.secondary:hover:enabled,.text-button:hover:enabled{background:#222127}#enter{margin-top:25px}.or{display:flex;align-items:center;gap:14px;font-size:12px;color:#88838f;margin:15px 0}.or:before,.or:after{content:"";height:1px;flex:1;background:#2a272f}.error{background:#341e26;border:1px solid #653441;color:#ffbfcb;padding:10px 13px;border-radius:8px;font-size:14px;margin-top:14px}footer.edge-frame{border-top:1px solid #27252b;display:flex;justify-content:space-between;align-items:center;min-height:56px;font:11px var(--mono);color:#918b99}
.workspace{flex:1;padding-block:44px 68px}.work-head,.section-head{display:flex;align-items:center;gap:12px}.work-head{justify-content:space-between;margin-bottom:30px}.identity{margin-bottom:8px;color:#bca4e8}.text-button{min-height:37px;padding:0 15px}.board{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(285px,1fr);gap:22px;align-items:start}.panel{background:var(--panel);border:1px solid var(--border);padding:clamp(18px,2.1vw,30px);border-radius:17px}.section-head{margin-bottom:24px}.compact{width:34px;height:34px;border-radius:9px}.compact svg{width:18px;height:18px}h2{font-size:21px;line-height:1.2;letter-spacing:-.045em;font-weight:620}select{width:100%;padding:0 11px;font-size:14px}.search{margin-top:12px}.catalog #blocks{margin-top:18px}.block{border:1px solid #322f39;border-radius:10px;margin-top:9px;background:#161519}.block.selected{border-color:#6f558f;background:#1b1721}.block-head{display:flex;align-items:center;padding:12px;gap:12px}.block-head>input,.card input{width:18px;height:18px;accent-color:var(--violet);flex:none;cursor:pointer}.expander{flex:1;background:none;border:0;text-align:left;padding:3px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px;font-weight:560}.expander small{display:block;color:var(--soft);font-weight:400;font-size:12px;margin-top:3px}.expander[aria-expanded=true] svg{transform:rotate(180deg)}.expander svg{width:16px;height:16px;color:var(--soft)}.cards{border-top:1px solid var(--border);padding:7px 12px}.card{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:14px;cursor:pointer}.card+.card{border-top:1px solid #28252e}.card span{overflow-wrap:anywhere}.card small{color:var(--soft);display:block;font-weight:400}.settings{position:sticky;top:20px}.timing{display:flex;align-items:center;justify-content:space-between;gap:10px}.timing input,.autostart-switch{appearance:none;flex:none;width:35px;height:21px;border-radius:18px;background:#3c3842;position:relative;cursor:pointer}.timing input:before,.autostart-switch:before{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#dcd7e5}.timing input:checked,.autostart-switch:checked{background:#8765d7}.timing input:checked:before,.autostart-switch:checked:before{left:17px;background:white}.range{display:flex;gap:12px;margin-top:14px}.range label{flex:1;min-width:0;color:var(--soft);font-size:12px}.range input{width:100%;margin-top:5px;padding:0 10px}.hint{font-size:13px;line-height:1.5;margin-top:9px}.selection-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;flex:none;margin-top:14px}.summary{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--soft);font-size:13px}.summary span{display:flex;gap:6px;align-items:baseline}.summary b{color:var(--txt);font-family:var(--mono)}hr{border:0;border-top:1px solid var(--border);margin:21px 0}#launch{margin-top:21px}#job{margin-top:16px;border-top:1px solid var(--border);padding-top:13px;font-size:14px;color:#d9c8f4;overflow-wrap:anywhere}.work-head+.error{margin:0 0 14px}.empty{padding:15px 0;color:var(--soft);font-size:14px}dialog{color:var(--txt);background:#1b1820;border:1px solid #4d415c;border-radius:16px;max-width:min(440px,90vw);padding:26px}dialog::backdrop{background:#000a}dialog p{color:var(--soft);font-size:15px;margin:15px 0 23px}.dialog-actions{display:flex;gap:12px}
@media(min-width:1550px){.shell{width:min(1250px,calc(100% - 100px))}}
@media(max-width:900px){.shell{width:calc(100% - 48px)}.login-layout{gap:36px;grid-template-columns:1fr 1fr}.board{gap:14px;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr)}}
@media(max-width:680px){:root{--edge-gap:18px}.shell{width:calc(100% - 36px)}.bar{height:61px}.brand{font-size:17px;gap:8px}.brand img{width:28px;height:28px}.server{font-size:10px;gap:6px}.login-layout{display:flex;flex-direction:column;gap:25px;justify-content:center;padding:20px 0 32px}.poster{width:100%;max-width:450px;height:150px;border-radius:15px}.poster canvas{width:58%;height:155%;bottom:-26%;left:43%}.poster-type{top:17%;left:6%}.wordmark{font-size:19px}.poster strong{font-size:57px}.poster-bottom{left:6%;bottom:12%;font-size:8px}.poster:after{inset:8px}.auth{max-width:450px;padding:0 3px}.auth h1{font-size:34px;margin:0 0 7px}.intro{font-size:14px}form#signin{margin-top:20px}.or{margin:12px 0}.workspace{padding:26px 0 42px}.board{display:flex;flex-direction:column}.panel{width:100%}.settings{position:static}.work-head{margin-bottom:20px}footer.edge-frame{min-height:45px}}

.lan-demo{margin-top:24px}

.card.submitted{color:var(--soft);cursor:default}.card.submitted input,.block-head>input.submitted{accent-color:#89858f;cursor:default}

/* Keep the course menu in the same visual style as its surrounding panel. */
select option{background:#18161e;color:var(--txt)}
@supports (appearance:base-select){
  #course,#course::picker(select){appearance:base-select}
  #course{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 15px;cursor:pointer;transition:border-color .15s,background .15s}
  #course:hover:enabled{background:#1b1822;border-color:#5b4c70}
  #course:open{background:#1b1723;border-color:var(--violet);box-shadow:0 0 0 3px #a58af614}
  #course:disabled{cursor:default;opacity:.6}
  #course::picker-icon{color:#a69ab9;transition:rotate .15s}
  #course:open::picker-icon{rotate:180deg;color:#c3aaff}
  #course::picker(select){margin-block:8px;padding:6px;border:1px solid #4b3c60;border-radius:12px;background:#19161f;color:var(--txt);box-shadow:0 14px 38px #0009;max-height:290px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#51425f #19161f}
  #course option{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:7px;background:transparent;cursor:pointer;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
  #course option:hover,#course option:focus{background:#2b2238;outline:none}
  #course option:checked{background:#30233f;color:#e3d3ff;font-weight:600}
  #course option::checkmark{content:'✓';color:#b598ff;font-weight:700}
}

.workspace{height:calc(100svh - 132px);flex:none;display:flex;flex-direction:column;min-height:0;padding-block:32px 28px}
.work-head,.workspace>.error{flex-shrink:0}
.board{flex:1;min-height:0}
.catalog{height:100%;min-height:0;display:flex;flex-direction:column}
.catalog>.section-head,.catalog>label,.catalog>select,.catalog>.search{flex-shrink:0}
.catalog #blocks{flex:1;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#51465e transparent;padding:3px 8px 5px 3px;margin-inline:-3px -8px;scroll-padding-block:5px}
.catalog #blocks>.block:first-child{margin-top:0}
.settings{max-height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#51465e transparent}
@media(max-width:680px){
  .workspace{height:auto;flex:1;padding-block:26px 32px}
  .board{flex:none}
  .catalog{height:75svh;min-height:360px}
  .settings{max-height:none;overflow:visible}
}
@media(min-width:681px) and (max-height:620px){
  .workspace{height:auto;min-height:488px}
  .board{height:340px;flex:none}
}

.bulk-picker{position:relative;flex-shrink:0;max-width:100%;z-index:2}
.selection-status{display:flex;align-items:center;gap:14px;flex:1 0 max-content;min-width:0;max-width:100%}
.selection-status .summary{min-width:0}
.bulk-bar{display:flex;border:1px solid #44364f;border-radius:8px;background:#211a2a;overflow:hidden}
.bulk-bar button{border:0;background:transparent;font-size:12px;font-weight:560;color:#d9c5f5;min-height:34px;padding:6px 12px}
.bulk-bar button:hover:enabled{background:#30233e}
.bulk-bar button:focus-visible{outline-offset:-3px}
.bulk-bar #type-toggle{display:grid;place-items:center;padding-inline:10px;border-left:1px solid #44364f}
#type-toggle svg{width:15px;height:15px;transition:rotate .15s}
#type-toggle[aria-expanded=true] svg{rotate:180deg}
.type-menu{position:absolute;inset:calc(100% + 7px) auto auto 0;width:350px;max-width:calc(100vw - 90px);max-height:min(340px,45svh);overflow-y:auto;overscroll-behavior:contain;border:1px solid #4b3c60;border-radius:11px;background:#19161f;box-shadow:0 14px 38px #0009;padding:7px;scrollbar-width:thin;scrollbar-color:#51425f transparent}
.type-menu>p{font-size:11px;color:var(--soft);padding:6px 9px 9px}
.type-option{display:flex;align-items:center;gap:10px;padding:9px;border-radius:6px;font-size:13px;font-weight:450;line-height:1.4;cursor:pointer}
.type-option:hover{background:#2b2238}
.type-option input{width:16px;height:16px;margin:0;accent-color:var(--violet);flex-shrink:0;cursor:pointer}
.type-option span{flex:1;min-width:0}
.type-option small{color:var(--soft);font:11px var(--mono)}

.catalog{container-type:inline-size}
.catalog-head{justify-content:space-between;gap:20px;margin-bottom:0}
.catalog-heading{display:flex;align-items:center;gap:12px;flex-shrink:0}
.course-field{flex:1;min-width:0;max-width:260px}
.course-field label{font-size:11px;color:var(--soft);margin-bottom:5px}
.course-field #course{min-height:40px;padding:8px 12px;font-size:13px}
.catalog>.catalog-head{flex-shrink:0}
.catalog>.search{margin-top:18px}
@container(max-width:440px){
  .catalog-head{flex-wrap:wrap;gap:16px}
  .course-field{flex-basis:100%;max-width:none}
}

.side-panels{height:100%;min-height:0;display:flex;flex-direction:column;gap:18px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#51465e transparent}
.side-panels>.settings{position:static;max-height:none;flex-shrink:0;overflow:visible}
.autostart{flex:1;min-height:170px}
.autostart .section-head{margin-bottom:18px}
@media(max-width:680px){.side-panels{width:100%;height:auto;overflow:visible}.autostart{min-height:170px}}

.autostart .section-head h2{flex:1}.autostart-switch{margin-left:auto}

#autostart-controls{margin-top:14px}
#autostart-types{border:1px solid #38313f;border-radius:8px;background:#17141c}
#autostart-types summary{display:flex;align-items:center;gap:8px;list-style:none;padding:10px 12px;cursor:pointer;font-size:13px}
#autostart-types summary::-webkit-details-marker{display:none}
#autostart-types summary>span{flex:1}
#autostart-types summary small{font-size:11px;color:var(--soft);white-space:nowrap}
#autostart-types summary svg{width:14px;height:14px;color:var(--soft)}
#autostart-types[open] summary{border-bottom:1px solid #38313f}
#autostart-types[open] summary svg{rotate:180deg}
.autostart-type-list{max-height:180px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#51465e transparent;padding:5px}
.autostart .section-head{margin-bottom:10px}
.autostart #autostart-status{margin-top:0}
#autostart-controls{margin-top:10px}
#autostart-types{position:relative}
#autostart-types[open] summary{border-bottom:0}
.autostart-type-list{position:absolute;bottom:calc(100% + 6px);left:-1px;right:-1px;z-index:4;max-height:180px;background:#19161f;border:1px solid #4b3c60;border-radius:9px;box-shadow:0 10px 30px #0009}

.autostart-select-all{position:sticky;top:-5px;z-index:1;background:#19161f;border-bottom:1px solid #38313f;border-radius:0;font-weight:600}

#profile{position:relative;z-index:5}
#profile summary{width:42px;height:42px;display:grid;place-items:center;list-style:none;border:1px solid #483c55;border-radius:50%;background:#201a29;color:#d8c5f1;cursor:pointer}
#profile summary::-webkit-details-marker{display:none}
#profile[open] summary,#profile summary:hover{background:#30243d;border-color:#8667a7}
.profile-menu{position:absolute;top:calc(100% + 8px);right:0;width:min(300px,calc(100vw - 36px));padding:18px;border:1px solid #483c55;border-radius:14px;background:#19161f;box-shadow:0 12px 32px #0009}
.profile-menu dl{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:13px;margin:18px 0}
.profile-menu dt{color:var(--soft)}.profile-menu dd{margin:0;text-align:right}
.profile-menu button{width:100%;margin-top:8px}
#activation-form>.field{margin:6px 0 18px}
@media(max-width:680px){.work-head{flex-wrap:wrap}}

#login,#code{text-transform:uppercase}
#login::placeholder,#code::placeholder{text-transform:none}

.account-strip{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.balance-indicator,#plan-indicator{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:3px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel);font-size:13px;color:var(--soft)}
.balance-indicator b{font-family:var(--mono);color:var(--txt)}
.balance-indicator:hover,#plan-indicator:hover{border-color:#8667a7;filter:brightness(1.15)}
#plan-indicator{font-family:var(--mono)}
#plan-indicator[data-plan=unlimited]{color:#ddcaff;background:#291f35;border-color:#51405f}

.shop-dialog{width:420px;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px);padding:24px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#51465e transparent}
.shop-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.shop-header h2{font-size:25px}
#activation-cancel{display:grid;place-items:center;width:30px;height:30px;flex:none;padding:0;border:1px solid #44394e;border-radius:8px;background:#211b29;color:var(--soft);font-size:24px;line-height:1}
#activation-cancel:hover:enabled{background:#342740;color:var(--txt)}
.shop-products{display:flex;flex-direction:column;gap:12px}
.shop-product{padding:17px;border:1px solid #403648;border-radius:12px;background:#18151d}
.unlimited-product{border-color:#735697;background:linear-gradient(125deg,#2c203c,#1d1825)}
.product-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.product-top h3{margin:0;font-size:20px;letter-spacing:-.03em;font-weight:620}
.product-period{color:#b6a8c8;font-size:12px;white-space:nowrap}
.shop-product p{font-size:13px;color:var(--soft);line-height:1.5;margin:8px 0 15px}
.shop-product button{min-height:40px}
.shop-token{margin-top:20px;padding-top:17px;border-top:1px solid #3a303f}
.shop-token label{display:block;margin-bottom:8px}
#activation-form .shop-token>.field{margin:0 0 10px}
#private-password-fields .field{margin-bottom:12px}
#private-password-fields .hint{margin-bottom:16px}
#protection-cancel{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid #44394e;border-radius:8px;background:#211b29;color:var(--soft);font-size:24px}
#protection label{display:block;margin-bottom:8px}
#protection .hint,#privacy-offer .hint{margin:16px 0;line-height:1.6;font-size:14px}
#protection .error{margin-bottom:12px}
.shop-token #activation-error{margin:0 0 12px}
#purchase-status{margin:12px 0 0;font-size:12px}
#activation-context{margin:0 0 16px}

.work-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px}
.work-title{display:contents}
.work-head .identity{grid-column:1;grid-row:1;margin-bottom:0;min-width:0;overflow-wrap:anywhere;font-family:inherit;font-size:16px;font-weight:500;line-height:1.4}
.work-head h1{grid-column:1;grid-row:2}
.work-head .account-strip{grid-column:2;grid-row:1 / 3;align-self:center}
@media(max-width:680px){
  .work-head{gap:10px 12px}
  .work-head .identity{font-size:14px}
  .work-head .account-strip{grid-row:1}
  .work-head h1{grid-column:1 / -1}
  .account-strip{gap:6px}
  .balance-indicator,#plan-indicator{font-size:11px;padding-inline:7px;min-height:28px}
  #profile summary{width:36px;height:36px}
}

#refresh-blocks{margin-left:auto;min-height:34px;font-size:12px;padding:5px 10px}

#refresh-blocks{width:34px;padding:6px;flex-shrink:0}#refresh-blocks svg{width:18px;height:18px}

.range input{color:#fff}

#confirm-text{white-space:pre-line}
footer.edge-frame{min-height:72px;gap:16px;padding-block:12px}
.vv-product{display:inline-flex;align-items:center;gap:9px;padding:6px 12px 6px 7px;border:1px solid #37313f;border-radius:999px;background:#141218;color:#d9d2e3;white-space:nowrap;font-size:11px;letter-spacing:.01em}
.vv-product img{display:block;width:26px;height:26px;border-radius:50%;object-fit:contain}
#pause-run{background:#3b2028;border-color:#864451;color:#ffd9df}
#pause-run:hover:enabled{background:#512b35;border-color:#b76171}
.paused-run-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
#cancel-run{background:#3b2028;border-color:#864451;color:#ffd9df}
#cancel-run:hover:enabled{background:#512b35;border-color:#b76171}
.admin-workspace{padding-block:42px;flex:1}
.admin-heading,.admin-users-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.admin-heading .identity{margin-bottom:10px}.admin-heading h1{font-size:40px}
.admin-tools{display:flex;align-items:end;gap:10px}.admin-tools label{font-size:12px;color:var(--soft)}
.admin-tools select{min-height:40px;margin-top:6px}.admin-tools button{width:auto;padding-inline:15px;min-height:40px}
.admin-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0 20px}
.admin-metric{padding:20px;border:1px solid #34313b;border-radius:13px;background:#121116}
.admin-metric span{display:block;color:var(--soft);font-size:12px}.admin-metric strong{display:block;font-size:30px;margin-top:8px}
.admin-load,.admin-users{margin-bottom:20px}.admin-load .hint{margin-top:12px;font-size:13px;line-height:1.6}
.admin-ai{margin-bottom:20px}.admin-ai .hint{font-size:13px;line-height:1.6}.admin-ai-summary{margin:16px 0}.admin-ai-summary strong{font-size:24px;overflow-wrap:anywhere}
.admin-chart{display:flex;align-items:end;gap:3px;height:136px;overflow-x:auto;border-bottom:1px solid #3e354b;padding-top:20px}
.admin-bar{flex:1;min-width:4px;background:#a58af6;border-radius:3px 3px 0 0;opacity:.8;outline-offset:2px}.admin-bar:hover,.admin-bar:focus{opacity:1;background:#c4afff}
.admin-filters{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:12px;margin:20px 0}
.admin-table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}
.admin-table th{color:var(--soft);font-weight:500;font-size:12px;white-space:nowrap}.admin-table td,.admin-table th{padding:13px 12px;border-bottom:1px solid #302b37;vertical-align:top}
.admin-table td:first-child,.admin-table th:first-child{padding-left:0}.admin-table td strong,.admin-table td small{display:block}
.admin-table small{color:var(--soft);font-size:11px;line-height:1.6;margin-top:4px;max-width:260px;overflow-wrap:anywhere}
.admin-table button{min-height:34px;padding:5px 12px;font-size:12px}.admin-state{white-space:nowrap}.admin-state.running{color:#b4e4bc}.admin-state.paused,.admin-state.waiting{color:#e5c58f}
.admin-user-dialog{width:900px;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px);overflow:auto}
.admin-user-dialog .shop-header button{width:auto;padding:5px 12px;min-height:36px}.admin-user-dialog .hint{font-size:13px;line-height:1.6;margin:15px 0}
.admin-user-dialog h3{font-size:18px;margin:24px 0 12px}.admin-grant-form{display:grid;grid-template-columns:1fr 120px 120px;align-items:end;gap:12px;margin:22px 0}
.admin-secrets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.admin-secrets>div{padding:13px;border:1px solid #3d3448;border-radius:10px;background:#141218}.admin-secrets dt{font-size:12px;color:var(--soft)}.admin-secrets dd{margin:8px 0 0;font-size:14px;overflow-wrap:anywhere}
.admin-grant-form label{font-size:12px;color:var(--soft)}.admin-grant-form select,.admin-grant-form input{margin-top:7px;width:100%;min-height:45px;background:#151519;border:1px solid #3e3649;border-radius:9px;padding:10px;color:var(--txt)}
.admin-history-nav{display:flex;justify-content:end;gap:10px;margin-top:18px}.admin-history-nav button{width:auto;padding:5px 16px;min-height:38px}
@media(max-width:680px){.admin-workspace{padding-block:25px}.admin-heading h1{font-size:32px}.admin-tools{width:100%;flex-wrap:wrap}.admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-metric{padding:15px}.admin-filters{grid-template-columns:1fr}.admin-grant-form{grid-template-columns:1fr 95px}.admin-grant-form button{grid-column:1 / -1}.admin-user-dialog{padding:20px}.admin-users-heading{gap:8px}}
.notification{position:fixed;inset:auto 20px 20px auto;margin:0;z-index:1000;max-width:calc(100vw - 40px);padding:16px 20px;border:1px solid #547160;border-radius:12px;background:#19291f;color:#d9f5e1;font-size:14px;line-height:1.5;box-shadow:0 12px 40px #0006}

#subscription-success{width:380px;text-align:center;padding:30px}
.subscription-success-mark{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 20px;border:1px solid #735697;border-radius:50%;background:#30213f;color:#d5bcff;font-size:28px}
#subscription-success-text{line-height:1.6}

/* Let the available viewport height determine the workspace, including the footer. */
body{height:100vh;height:100dvh;min-height:0;overflow:hidden}
header,footer.edge-frame{flex-shrink:0}
.workspace{height:auto;min-height:0;flex:1 1 0}
.board{height:auto;flex:1;min-height:0}
.workspace-nav{display:none}
.login-layout{min-height:0;padding-block:clamp(16px,4vh,48px);overflow-y:auto}
.poster{height:100%;min-height:0;max-height:680px}
.admin-workspace{min-height:0;overflow-y:auto}
.profile-menu{max-height:calc(100dvh - 150px);overflow-y:auto}
dialog{max-height:calc(100dvh - 32px);overflow-y:auto}
@media(max-height:740px){
  .workspace{padding-block:16px}
  .work-head{margin-bottom:16px}
  .work-head h1{font-size:34px}
  .bar{height:60px}
  footer.edge-frame{min-height:52px;padding-block:8px}
  .panel{padding:16px}
  .section-head{margin-bottom:18px}
}
@media(max-width:680px){
  .workspace{height:auto;flex:1 1 0;padding-block:16px}
  .work-head{margin-bottom:14px}
  .workspace-nav{display:flex;gap:4px;padding:4px;margin-bottom:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);flex-shrink:0}
  .workspace-nav button{flex:1;border:0;border-radius:6px;background:transparent;color:var(--soft);min-height:36px;font-size:13px;font-weight:550}
  .workspace-nav button[aria-pressed=true]{background:#30243e;color:#e4d4ff}
  .board{display:flex;height:auto;flex:1;min-height:0}
  .catalog{height:100%;min-height:0;width:100%}
  .side-panels{height:100%;min-height:0;overflow-y:auto;flex:1}
  .workspace[data-view=settings] .catalog{display:none}
  .workspace:not([data-view=settings]) .side-panels{display:none}
  .login-layout{gap:18px;padding-block:18px}
  .poster{height:clamp(90px,16vh,150px);min-height:90px;max-height:150px;flex-shrink:0}
  .auth{flex-shrink:0}
}
@media(max-height:550px){.catalog{overflow-y:auto}.catalog #blocks{min-height:80px}}

@media(max-width:680px){
  .side-panels{gap:12px}
  .side-panels>.autostart{min-height:160px;overflow-y:auto}
}
@media(max-width:680px) and (max-height:740px){
  .login-layout{gap:12px;padding-block:12px}
}

/* On phones the whole task panel scrolls, leaving the app navigation fixed. */
@media(max-width:680px){
  .workspace{padding-bottom:8px}
  .catalog{overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#51465e transparent;scroll-padding-block:16px;-webkit-overflow-scrolling:touch}
  .catalog #blocks{flex:0 0 auto;min-height:0;overflow:visible}
  .workspace:not([hidden])~footer.edge-frame{min-height:44px;padding-block:6px}
  .workspace:not([hidden])~footer .vv-product{padding:3px 8px 3px 5px}
  .workspace:not([hidden])~footer .vv-product img{width:22px;height:22px}
}
