/* Shared 977 design patterns. Kept separate from the original eight screens. */
:root{--kit-brand:linear-gradient(110deg,#E6198A,#F2365A);--kit-focus:#8c3de4;--kit-surface:#fff;--kit-soft:#f8faff}
.kit-stack{display:grid;gap:16px}.kit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.kit-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kit-grid.sidebar-layout{grid-template-columns:minmax(0,1fr) 300px}.kit-card{padding:20px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.kit-card h2,.kit-card h3{margin:0 0 12px;font-size:15px;letter-spacing:-.02em}.kit-card>p{color:var(--muted);margin:0 0 14px}.kit-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.kit-section-title h2{margin:0;font-size:16px}.kit-muted{color:var(--muted)}.kit-tiny{font-size:11px}.kit-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em}.kit-divider{border:0;border-top:1px solid var(--line);margin:18px 0}.kit-inline{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.kit-between{display:flex;justify-content:space-between;align-items:center;gap:12px}.kit-back{display:inline-flex;gap:6px;align-items:center;color:var(--berry);font-size:12px;font-weight:750;margin-bottom:12px}.kit-entity{display:flex;align-items:center;gap:16px}.kit-entity img{width:68px;aspect-ratio:9/16;object-fit:cover;border-radius:7px}.kit-entity h1{font-size:25px;margin:3px 0}.kit-entity .kit-inline{margin-top:8px}.kit-poster{width:100%;max-width:180px;aspect-ratio:9/16;object-fit:cover;border-radius:9px;background:#edf1f6}.kit-empty-art{display:grid;place-items:center;background:#f1f4f8;border:1px dashed #cbd5e3;border-radius:9px;color:#8391a6;aspect-ratio:9/16}.kit-avatar{display:grid;place-items:center;width:52px;height:52px;flex:none;border-radius:16px;background:#fce9f4;color:#a32068;font-size:18px;font-weight:800}
.form-field{display:grid;gap:6px;min-width:0;margin:0 0 15px}.form-field>label,.form-field>.form-label{font-size:12px;font-weight:750;color:#34445f}.form-field .required{color:var(--pink);margin-left:3px}:where(.form-field input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-field select,.form-field textarea,.kit-control){display:block;width:100%;min-height:40px;border:1px solid #d8e1ee;border-radius:8px;background:#fff;color:var(--ink);padding:9px 11px;font:inherit;outline:0}.form-field textarea{min-height:104px;resize:vertical}.form-help{color:#8290a4;font-size:11px}.form-error{color:#b32d4b;font-size:11px;font-weight:650}.form-error-list{margin:0;padding-left:16px;color:#b32d4b;font-size:11px}.form-field .errorlist{margin:0;padding-left:16px;color:#b32d4b;font-size:11px}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 0;background:#fff}.form-actions.sticky{position:sticky;bottom:0;z-index:2;margin:0 -20px -20px;padding:13px 20px;border-top:1px solid var(--line);box-shadow:0 -9px 25px #21324a0b}.form-section{margin:0 0 22px;padding:0;border:0}.form-section legend{font-size:14px;font-weight:800;margin-bottom:10px}.form-choice{display:flex;gap:8px;align-items:flex-start;color:#45546c;font-size:12px}.form-choice input{accent-color:var(--pink);margin-top:2px}.form-choice.switch input{appearance:none;width:32px;height:18px;margin:0;background:#c8d2df;border-radius:20px;position:relative;flex:none}.form-choice.switch input:before{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .2s}.form-choice.switch input:checked{background:var(--pink)}.form-choice.switch input:checked:before{transform:translateX(14px)}.kit-token-input{display:flex;gap:5px;flex-wrap:wrap;border:1px solid #d8e1ee;border-radius:8px;padding:5px;min-height:40px}.kit-token{display:inline-flex;align-items:center;gap:5px;background:#fff0f8;color:#a72168;border-radius:6px;padding:4px 7px;font-size:11px;font-weight:700}.kit-token button{border:0;background:none;color:inherit;padding:0}.kit-token-input input{border:0!important;box-shadow:none!important;min-width:90px;flex:1;min-height:26px!important}.kit-upload{border:1px dashed #b9c5d5;background:#fafcff;border-radius:10px;padding:20px;text-align:center}.kit-upload.dragging{border-color:var(--pink);background:#fff3f9}.kit-upload input{max-width:100%}.kit-upload small{display:block;color:var(--muted);margin-top:5px}.kit-preview-image{display:flex;align-items:center;gap:15px}.kit-preview-image img{width:74px;aspect-ratio:9/16;object-fit:cover;border-radius:6px}.kit-criteria{display:grid;grid-template-columns:minmax(0,1fr) 155px;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}.kit-password-rules{margin:8px 0;padding-left:18px;color:#75849a;font-size:11px}
.button.danger{border-color:#f3c7d1;background:#fff3f5;color:#b83350}.button.danger:hover{background:#ffe9ee}.button.icon-only{width:38px;padding:0}.button.full{width:100%}.button[disabled]{opacity:.48;cursor:not-allowed}.button.loading:before{content:"";width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:kit-spin .75s linear infinite}@keyframes kit-spin{to{transform:rotate(360deg)}}.callout.info{background:#eff5ff;border-color:#dbe8fa;color:#365f98}.callout.warning{background:#fff8ea;border-color:#f3e5c4;color:#8e6019}.callout.error{background:#fff0f3;border-color:#f6d8e0;color:#a72949}.callout.success{background:#edf9f4;border-color:#d5eee3;color:#157a61}.kit-filter-chip{border:1px solid #d9e0eb;background:#fff;color:#627187;border-radius:20px;padding:6px 10px;font-size:11px;font-weight:750}.kit-filter-chip.active{border-color:#e7accb;background:#fff1f8;color:#ad1768}.kit-segmented{display:inline-flex;padding:3px;border:1px solid #d9e0eb;border-radius:9px;background:#f7f9fc}.kit-segmented button{border:0;background:transparent;padding:6px 10px;border-radius:6px;color:#728096;font-size:11px;font-weight:750}.kit-segmented button.active{background:#fff;color:var(--berry);box-shadow:0 1px 5px #21324a15}.kit-overflow{position:relative}.kit-overflow summary{list-style:none;cursor:pointer}.kit-overflow summary::-webkit-details-marker{display:none}.kit-overflow[open] .kit-menu{position:absolute;right:0;top:35px;z-index:4;min-width:148px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:5px;box-shadow:0 12px 30px #1b2c481c}.kit-menu>*{display:block;width:100%;padding:7px 9px;border:0;background:none;color:#41516a;text-align:left;font-size:11px}.kit-menu>*:hover{background:#f7f9fc}.kit-row-actions{display:flex;gap:5px}.kit-row-actions button{border:1px solid var(--line);background:#fff;border-radius:6px;width:27px;height:27px;color:#64748a}.kit-code{display:inline-block;padding:3px 5px;border-radius:4px;background:#f3f5f9;color:#53617a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.kit-sort{border:0;background:none;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:0}.kit-flag{background:#fff2ec;color:#b45324;border-radius:5px;padding:3px 6px;font-size:10px;font-weight:750}
.kit-modal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:#18243a99}.kit-modal[hidden]{display:none}.kit-modal-box{width:min(510px,100%);max-height:calc(100vh - 40px);overflow:auto;background:#fff;border-radius:14px;box-shadow:0 22px 70px #0c173b57}.kit-modal-head,.kit-modal-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:17px 20px;border-bottom:1px solid var(--line)}.kit-modal-head h2{font-size:17px;margin:0}.kit-modal-body{padding:20px}.kit-modal-foot{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end}.kit-video-frame{width:min(300px,100%);aspect-ratio:9/16;margin:auto;border-radius:11px;background:#15213a;display:grid;place-items:center;color:#fff}
.kit-timeline{list-style:none;margin:0;padding:0 0 0 8px}.kit-timeline li{position:relative;border-left:1px solid #dce4ee;padding:0 0 18px 19px}.kit-timeline li:last-child{border:0;padding-bottom:0}.kit-timeline li:before{content:"";position:absolute;top:1px;left:-5px;width:9px;height:9px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 3px #ffebf6}.kit-timeline b{display:block;color:#35445a;font-size:12px}.kit-timeline small{display:block;color:#91a0b2;margin-top:2px}.kit-workflow{display:flex;flex-wrap:wrap;gap:9px;align-items:center;padding:12px;background:#f9fbff;border:1px solid var(--line);border-radius:10px}.kit-workflow .kit-status{margin-right:auto}.kit-diff{display:grid;grid-template-columns:125px minmax(0,1fr) 22px minmax(0,1fr);gap:11px;padding:11px 0;border-bottom:1px solid var(--line);font-size:12px}.kit-diff>span:first-child{color:#7e8da1}.kit-diff .old{color:#78869b}.kit-diff .new{font-weight:700;color:#2e415b}.kit-feed-day{font-size:11px;color:#8c9aab;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin:15px 0 7px}.kit-feed details{border:1px solid var(--line);border-radius:9px;margin-bottom:7px;background:#fff}.kit-feed summary{cursor:pointer;list-style:none;padding:11px 13px;display:flex;align-items:center;gap:9px}.kit-feed summary::-webkit-details-marker{display:none}.kit-feed summary small{margin-left:auto;color:#94a0b2}.kit-feed details>div{padding:0 13px 12px 39px;color:#607087;font-size:11px}.kit-board{display:grid;grid-template-columns:repeat(5,minmax(165px,1fr));gap:10px;overflow-x:auto}.kit-board-col{background:#f4f7fb;border:1px solid #e3eaf3;border-radius:11px;padding:10px;min-height:230px}.kit-board-col h3{display:flex;justify-content:space-between;margin:0 0 10px;font-size:12px}.kit-board-item{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;box-shadow:0 2px 8px #21324a0b}.kit-board-item strong{display:block;margin:4px 0;font-size:12px}.kit-board-item small{color:var(--muted)}.kit-board-item[draggable=true]{cursor:grab}.kit-board-col.over{outline:2px dashed var(--pink);outline-offset:-5px}.kit-board-item select{width:100%;margin-top:8px;font-size:11px;border:1px solid var(--line);border-radius:6px;padding:5px}.kit-chart{position:relative;height:170px;background:repeating-linear-gradient(to top,transparent 0,transparent 40px,#e9eef6 41px,#e9eef6 42px);border-bottom:1px solid #d8e1ee}.kit-chart svg{width:100%;height:100%;overflow:visible}.kit-chart polyline{fill:none;stroke:#e6198a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.kit-chart polygon{fill:#e6198a17}.kit-chart circle{fill:#fff;stroke:#e6198a;stroke-width:2}.kit-chart circle:hover{r:6}.kit-chart-axis{display:flex;justify-content:space-between;color:#9aa6b6;font-size:10px;margin-top:7px}.kit-device{width:216px;border:7px solid #24314b;border-radius:30px;background:#fff;padding:11px;margin:auto;box-shadow:0 10px 30px #25385422}.kit-device-notch{width:70px;height:9px;border-radius:0 0 8px 8px;background:#24314b;margin:-11px auto 9px}.kit-device img{width:100%;height:185px;object-fit:cover;border-radius:6px}.kit-device .mini-rail{display:flex;gap:5px;margin-top:9px}.kit-device .mini-rail span{width:34px;height:49px;background:linear-gradient(140deg,#f8c7dc,#b45585);border-radius:4px}.kit-notification{max-width:300px;border:1px solid #dce3ec;border-radius:18px;background:#f7f9fc;padding:12px;box-shadow:0 9px 20px #21324a18}.kit-notification.android{border-radius:10px}.kit-notification strong{display:block;font-size:12px}.kit-notification p{margin:4px 0;color:#526078;font-size:11px}.kit-readiness{list-style:none;margin:0;padding:0}.kit-readiness li{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}.kit-readiness li:last-child{border:0}.kit-readiness .ok{color:#168369}.kit-readiness .bad{color:#b83350}.kit-readiness a{margin-left:auto;color:var(--berry);font-weight:700}.kit-reviewer{border-left:3px solid var(--pink);background:#fff7fb;border-radius:0 9px 9px 0;padding:12px 14px}.kit-reviewer p{margin:4px 0 7px}.kit-reviewer small{color:#8a6981}.kit-upload-row{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.kit-upload-row .progress{width:100%}.kit-progress{height:8px;background:#eaf0f6;border-radius:9px;overflow:hidden}.kit-progress span{display:block;height:100%;background:var(--kit-brand);border-radius:9px}.kit-progress.failed span{background:#d44260}
.kit-auth{min-height:100vh;display:grid;grid-template-columns:minmax(300px,43%) 1fr;background:#fff}.kit-auth-brand{padding:clamp(32px,6vw,80px);color:#fff;background:linear-gradient(150deg,#ad1468 0%,#e6198a 54%,#f2365a 100%);display:flex;flex-direction:column;justify-content:space-between}.kit-auth-brand h1{font-size:clamp(32px,4vw,58px);line-height:1.05;letter-spacing:-.05em}.kit-auth-form{display:grid;place-items:center;padding:30px}.kit-auth-form>div{width:min(430px,100%)}.kit-auth .brand-mark{background:#fff;color:#d72077}.kit-error{max-width:560px;margin:10vh auto;text-align:center}.kit-error strong{font-size:72px;line-height:1;color:var(--pink)}.kit-portal .workspace-dot{background:var(--kit-brand)}.kit-portal .brand-text span{color:#a32770}.kit-portal .topbar{border-bottom-color:#ecdce6}
@media(max-width:980px){.kit-grid.sidebar-layout{grid-template-columns:1fr}.kit-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.kit-board{grid-template-columns:repeat(5,190px)}}@media(max-width:660px){.kit-grid,.kit-grid.three,.form-row{grid-template-columns:1fr}.kit-auth{grid-template-columns:1fr}.kit-auth-brand{min-height:170px;padding:28px}.kit-auth-brand h1{font-size:28px}.kit-diff{grid-template-columns:1fr 1fr}.kit-diff>span:first-child{grid-column:1/-1}.kit-diff>span:nth-child(3){display:none}.kit-upload-row{grid-template-columns:1fr 85px}.kit-upload-row>:nth-child(2){display:none}.kit-entity{align-items:flex-start}.kit-entity img{width:48px}}
.form-field{align-content:start}:where(.form-field input:not([type=checkbox]):not([type=radio]):not([type=file])){height:40px}.kit-diff img{display:block;width:76px;height:110px;object-fit:cover;border-radius:6px}
/* Responsive navigation and release controls. */
.kit-release-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center}.kit-release-input input{width:100%;min-width:0}.kit-release-input .zone{white-space:nowrap;color:#63738b;font-size:11px;font-weight:700}.kit-auth-brand .brand-text span{color:#ffffffc7}.sidebar-bottom form .nav-link{display:flex;gap:10px;align-items:center}.sidebar-bottom form .nav-link svg{width:17px;height:17px;flex:none}.kit-portal .sidebar-bottom form .nav-link{margin-top:8px}.kit-metric.success{background:#effaf5;border-color:#ceebdd}.kit-metric.error{background:#fff1f3;border-color:#f1d5dc}.kit-timeline p{font-size:11px;color:#5e6b80;margin:5px 0 0}.kit-diff-head{display:grid;grid-template-columns:125px minmax(0,1fr) 22px minmax(0,1fr);gap:11px;border-bottom:1px solid var(--line);padding:8px 0;color:#8391a5;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.kit-feed-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:8px 0}.kit-feed-meta span{display:block;color:#8c9aae}.kit-feed-meta b{color:#38485f}.kit-tooltip-wrap{position:relative;display:inline-flex}.kit-tooltip{position:absolute;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%);max-width:230px;min-width:150px;padding:7px 9px;border-radius:7px;background:#24314a;color:#fff;font-size:10px;line-height:1.4;box-shadow:0 7px 18px #15213a30;z-index:7;display:none}.kit-tooltip-wrap:hover .kit-tooltip,.kit-tooltip-wrap:focus-within .kit-tooltip{display:block}.kit-tooltip:after{content:"";position:absolute;top:100%;left:calc(50% - 5px);border:5px solid transparent;border-top-color:#24314a}.kit-action-list{display:flex;gap:6px;flex-wrap:wrap}.kit-section-muted{background:#f9fbfe;border:1px solid var(--line);border-radius:9px;padding:12px}
@media(max-width:1200px) and (min-width:621px){.sidebar-bottom{display:block;padding:10px 8px}.sidebar-bottom .workspace,.sidebar-bottom .sidebar-note{display:none}.sidebar-bottom form .nav-link{width:42px!important;justify-content:center;padding:0;margin:auto}.sidebar-bottom form .nav-link span{display:none}}
@media(max-width:620px){.sidebar.nav-open .sidebar-bottom{display:block}.sidebar:not(.nav-open) .sidebar-bottom{display:none}.sidebar.nav-open .sidebar-bottom form .nav-link{padding:0 12px}.kit-diff-head{grid-template-columns:1fr 1fr}.kit-diff-head span:first-child{grid-column:1/-1}.kit-diff-head span:nth-child(3){display:none}.kit-release-input{grid-template-columns:1fr}.kit-release-input .zone{margin-top:-3px}}

/* Official 977 artwork. The supplied SVG includes its own gradient tile. */
.brand-mark.official-logo{width:36px;height:41px;background:none;box-shadow:none;border-radius:0;flex:none}.brand-mark.official-logo img{display:block;width:36px;height:41px;object-fit:contain}.workspace-dot.official-workspace-logo{background:none;border-radius:0}.official-workspace-logo img{display:block;width:26px;height:30px;object-fit:contain}.kit-auth .brand-mark.official-logo{width:52px;height:52px;padding:5px;border-radius:12px;background:#fff}.kit-auth .brand-mark.official-logo img{width:42px;height:42px}

/* ---- Field states -------------------------------------------------------
   The base control rule above is wrapped in :where(), so it has no
   specificity of its own and every rule below wins on every input type. */
.form-field input[type=file]{display:block;width:100%;padding:8px;border:1px solid #d8e1ee;border-radius:8px;background:#fff;font:inherit}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.form-field input[type=file]:focus-visible,.kit-control:focus{border-color:var(--pink);box-shadow:0 0 0 3px #e6198a20}
.form-field :is(input,select,textarea):is(:disabled,[readonly]),
.kit-readonly .form-field :is(input,select,textarea){background:#edf1f6;border-color:#cbd4df;color:#657286;cursor:not-allowed;opacity:1}
.form-field.has-error :is(input:not([type=checkbox]):not([type=radio]),select,textarea),
.form-field :is(input,select,textarea)[aria-invalid=true],
.form-field .invalid{border-color:#d4415f;background:#fff9fa}
.form-field.has-error :is(input,select,textarea):focus,
.form-field :is(input,select,textarea)[aria-invalid=true]:focus{border-color:#d4415f;box-shadow:0 0 0 3px #d4415f24}
.form-field :is(input[type=checkbox],input[type=radio])[aria-invalid=true]{outline:2px solid #d4415f;outline-offset:1px}
.form-field.has-error>label{color:#a72949}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- One status mapping --------------------------------------------------
   Every chip (.status or .kit-status) takes its colour from one tone, chosen
   by data-status or by a tone class. Add a new status here and nowhere else. */
:root{--tone-muted-bg:#edf1f5;--tone-muted-fg:#627185;--tone-pink-bg:#fff0f7;--tone-pink-fg:#af1d70;--tone-gold-bg:#fff6e7;--tone-gold-fg:#986118;--tone-green-bg:#eaf8f3;--tone-green-fg:#13805f;--tone-red-bg:#fff0f2;--tone-red-fg:#b83350;--tone-blue-bg:#edf2fb;--tone-blue-fg:#4164a3}
:is(.status,.kit-status){--tone-bg:var(--tone-muted-bg);--tone-fg:var(--tone-muted-fg);display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:4px 7px;background:var(--tone-bg);color:var(--tone-fg);font-size:10px;font-weight:760;line-height:1.1;white-space:nowrap}
:is(.status,.kit-status)::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
:is(.status,.kit-status):is(.muted,.gray,[data-status=draft],[data-status=archived],[data-status=inactive],[data-status=cancelled],[data-status=hidden],[data-status=withdrawn]){--tone-bg:var(--tone-muted-bg);--tone-fg:var(--tone-muted-fg)}
:is(.status,.kit-status):is(.pink,[data-status=in_review],[data-status=changes_requested],[data-status=awaiting],[data-status=pending],[data-status=revision_pending]){--tone-bg:var(--tone-pink-bg);--tone-fg:var(--tone-pink-fg)}
:is(.status,.kit-status):is(.gold,[data-status=scheduled],[data-status=processing],[data-status=uploading],[data-status=uploaded],[data-status=validating],[data-status=verifying],[data-status=queued],[data-status=waiting],[data-status=in_progress],[data-status=suspended]){--tone-bg:var(--tone-gold-bg);--tone-fg:var(--tone-gold-fg)}
:is(.status,.kit-status):is(.green,[data-status=approved],[data-status=published],[data-status=ready],[data-status=qc_ready],[data-status=active],[data-status=released],[data-status=live],[data-status=visible],[data-status=completed],[data-status=sent]){--tone-bg:var(--tone-green-bg);--tone-fg:var(--tone-green-fg)}
:is(.status,.kit-status):is(.red,[data-status=failed],[data-status=quarantined],[data-status=banned],[data-status=taken_down],[data-status=release_missed],[data-status=declined],[data-status=rejected],[data-status=error]){--tone-bg:var(--tone-red-bg);--tone-fg:var(--tone-red-fg)}
:is(.status,.kit-status).blue{--tone-bg:var(--tone-blue-bg);--tone-fg:var(--tone-blue-fg)}
.kit-status[role=button]{border:1px solid transparent;cursor:pointer}.kit-status[role=button]:hover{border-color:currentColor}

/* Reviewer messages: changes requested is a warning, an approval is a success. */
.kit-reviewer.success{border-left-color:#13805f;background:#f1faf6}.kit-reviewer.success small{color:#4f8a76}

/* Table sort arrows and horizontal scroll hint. */
.kit-sort:after{content:"";display:inline-block;width:9px;height:9px;margin-left:5px;vertical-align:-1px;background:#adb8c6;-webkit-mask:var(--ic-sort) center/contain no-repeat;mask:var(--ic-sort) center/contain no-repeat}
.kit-sort.asc:after,.kit-sort.desc:after{background:var(--berry)}
.kit-sort.asc:after{-webkit-mask-image:var(--ic-sort-up);mask-image:var(--ic-sort-up)}
.kit-sort.desc:after{-webkit-mask-image:var(--ic-sort-down);mask-image:var(--ic-sort-down)}
:root{--ic-sort:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 9 5-5 5 5M7 15l5 5 5-5'/%3E%3C/svg%3E");--ic-sort-up:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 15 6-6 6 6'/%3E%3C/svg%3E");--ic-sort-down:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.table-wrap{background:linear-gradient(to right,#fff,#fff) left/24px 100% no-repeat local,linear-gradient(to left,#fff,#fff) right/24px 100% no-repeat local,linear-gradient(to right,#e3e9f2,transparent) left/10px 100% no-repeat scroll,linear-gradient(to left,#e3e9f2,transparent) right/10px 100% no-repeat scroll}

/* Small helpers used by partials and scripts. */
.kit-error-text{display:block;color:#b32d4b;font-size:11px;font-weight:650}
.kit-upload-row[data-state=failed] strong{color:#b32d4b}
.kit-readiness .ok svg,.kit-readiness .bad svg{width:17px;height:17px}
.kit-entity .kit-back svg,.kit-back svg{width:14px;height:14px}
.callout>svg.icon{margin-top:2px}

/* Pickers: typeahead and multi-select. */
.kit-typeahead,.kit-picker{position:relative}
.kit-results{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:6;margin:0;padding:4px;list-style:none;max-height:240px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 30px #1b2c481c}
.kit-option{padding:7px 9px;border-radius:6px;cursor:pointer;font-size:12px;color:#41516a}
.kit-option[aria-selected=true]{background:#fff1f8;color:var(--berry)}
.kit-option-status{padding:7px 9px;color:var(--muted);font-size:12px}
.kit-typeahead.has-value input{padding-right:38px;background:#fafbfe}
.kit-typeahead-clear{position:absolute;right:6px;top:6px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:#64748a;cursor:pointer}
.kit-typeahead-clear:hover{background:#f1f4f8}
.kit-picker-native{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.kit-token-input:focus-within{border-color:var(--pink);box-shadow:0 0 0 3px #e6198a20}
.kit-token-input.is-disabled{background:#edf1f6;border-color:#cbd4df}
.kit-token button{display:grid;place-items:center;cursor:pointer}
.kit-token button svg{width:12px;height:12px}
.kit-picker-input{border:0;outline:0;background:transparent;font:inherit;min-width:110px;flex:1;min-height:26px}

/* Gallery and shared states. */
.kit-upload.disabled{opacity:.6;background:#f2f5f9;border-color:#cbd4df;cursor:not-allowed}
.kit-empty{text-align:center;padding:24px 12px;display:grid;gap:8px;justify-items:center}.kit-empty p{margin:0}
.kit-skeleton{height:14px;margin:10px 0;border-radius:6px;background:linear-gradient(90deg,#eef2f7,#f7f9fc,#eef2f7);background-size:200% 100%;animation:kit-shimmer 1.2s linear infinite}.kit-skeleton.short{width:55%}@keyframes kit-shimmer{to{background-position:-200% 0}}
.kit-sticky-end{position:sticky;right:0;background:#fff}
.kit-sort{cursor:pointer}
@media(prefers-reduced-motion:reduce){.kit-skeleton{animation:none}}

/* Table footers and bulk bars (shared by every list page). */
.inline-note{color:#8c6d37;background:#fff8e8;padding:8px 16px;font-size:11px;border-top:1px solid #f4e7c8}.pager{display:flex;gap:7px}.table-foot .button{min-height:29px;font-size:11px;padding:0 9px}
.bulk-toolbar{padding:9px 15px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;color:#8795a8;font-size:11px}.bulk-toolbar>div{display:flex;gap:6px}.bulk-toolbar .button{min-height:30px;padding:0 10px}.bulk-toolbar button:disabled{opacity:.4;cursor:default}
.thumb-empty{display:grid;place-items:center;color:#9aa6b8;font-size:18px}
.pager{display:flex;gap:7px}.table-foot .button{min-height:29px;font-size:11px;padding:0 9px}
.callout strong{display:block}

.kit-upload label{display:block;margin-bottom:8px;cursor:pointer}
.kit-upload input[type=file]{display:block;margin:0 auto}
.kit-upload-row .kit-inline{justify-content:flex-end;flex-wrap:nowrap}
.kit-live-results{min-height:40px;transition:opacity .15s}.kit-live-results.is-loading{opacity:.5}.kit-list{margin:0;padding-left:18px}

/* Episode video upload feedback. */
.kit-video-upload{display:grid;gap:12px;margin-top:12px}.kit-video-upload video{max-width:240px;max-height:160px;border-radius:8px;background:#15213a}

/* Contain visually hidden text inside a scrolling table, so it cannot make the whole page scroll sideways. */
.table-wrap{position:relative}
/* An open row menu in a sticky actions column must sit above the rows below it. */
.kit-sticky-end:has(details[open]){z-index:6}
