:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f6f7;--panel:#fff;--panel-2:#eef3f1;--ink:#17201b;--muted:#65736d;--line:#d9e0dd;--accent:#0f766e;--accent-strong:#0b5f59;--warm:#a54832;--gold:#b7791f;--green:#2f855a;--bluegray:#475569;--shadow:0 18px 50px #1c26221f;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{background:linear-gradient(135deg, #0f766e1f, transparent 42%), var(--bg);background-position:50%;background-size:cover;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);width:min(420px,100%);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border-radius:8px;gap:16px;padding:22px;display:grid}.login-panel.compact{text-align:center;justify-items:center;width:min(300px,100%)}.login-brand{align-items:center;gap:12px;margin-bottom:4px;display:flex}.login-brand span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800;display:block}.login-brand h1{margin:0;font-size:30px;line-height:1.05}.compact-notice{margin:0}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f5faf7;background:#18241f;flex-direction:column;gap:22px;height:100vh;padding:20px 16px;display:flex;position:sticky;top:0;overflow:auto}.brand{align-items:center;gap:12px;min-height:48px;display:flex}.brand-mark{color:#18241f;background:#f6c65b;border-radius:8px;place-items:center;width:42px;height:42px;font-size:22px;font-weight:800;display:grid}.brand strong,.brand span{display:block}.brand span{color:#bdc9c4;margin-top:2px;font-size:12px}.nav-stack,.side-section{gap:8px;display:grid}.nav-stack button,.side-pill{color:#dce6e1;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;min-height:38px;padding:0 10px;display:flex}.nav-stack button:hover,.side-pill:hover,.nav-stack button.active,.side-pill.selected{color:#fff;background:#ffffff1a;border-color:#ffffff1c}.side-label{color:#aebbb5;text-transform:uppercase;letter-spacing:0;align-items:center;gap:8px;margin-bottom:2px;font-size:12px;font-weight:700;display:flex}.side-pill{justify-content:flex-start;width:100%}.workspace{min-width:0;padding:18px 22px 32px}.topbar{grid-template-columns:minmax(260px,1fr) auto;align-items:center;gap:14px;min-height:56px;margin-bottom:16px;display:grid}.search-wrap{border:1px solid var(--line);background:var(--panel);border-radius:8px;align-items:center;gap:10px;height:46px;padding:0 14px;display:flex;box-shadow:0 1px 2px #1e293b0a}.search-wrap svg{color:var(--muted);flex:none}.search-wrap input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;min-width:0}.topbar-actions,.panel-actions,.filters{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.user-menu{border:1px solid var(--line);background:var(--panel);border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:2px 3px 2px 10px;display:flex}.user-menu>svg{color:var(--accent);flex:none}.user-menu div{gap:1px;min-width:0;display:grid}.user-menu strong,.user-menu span{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.user-menu strong{font-size:12px}.user-menu span{color:var(--muted);text-transform:capitalize;font-size:11px}.user-menu .icon-button{width:32px;height:32px}.icon-button,.ghost-button,.primary-button{border:1px solid var(--line);white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:8px;height:38px;padding:0 12px;text-decoration:none;display:inline-flex}.icon-button{width:38px;color:var(--ink);background:var(--panel);padding:0}.ghost-button{color:var(--ink);background:var(--panel)}.ghost-button:hover,.icon-button:hover{background:#f9fbfa;border-color:#bdc8c3}.primary-button{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:700}.primary-button:hover{background:var(--accent-strong)}.ghost-button.danger{color:#8a3324;background:#fff7f5;border-color:#e6c2ba}.ghost-button.danger:hover{background:#fff0ec;border-color:#d99b8d}.primary-button:disabled,.ghost-button:disabled{opacity:.55;cursor:not-allowed}.full{width:100%}.summary-strip{grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin-bottom:14px;display:grid}.stat-item{border:1px solid var(--line);background:var(--panel);border-radius:8px;grid-template-columns:auto 1fr;align-content:center;gap:4px 9px;min-height:72px;padding:12px;display:grid}.stat-item svg{color:var(--accent);grid-row:span 2}.stat-item span{color:var(--muted);font-size:12px}.stat-item strong{font-size:18px}.filter-bar{grid-template-columns:minmax(190px,1fr) auto;align-items:end;gap:14px;margin:12px 0;display:grid}.filter-bar h1,.migration-head h1,.portal-layout h1{margin:0;font-size:28px;line-height:1.1}.filter-bar span{color:var(--muted);margin-top:4px;display:block}.filters label{background:var(--panel);border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;height:38px;padding:0 10px;display:flex}.filters select,.panel-section select,.tool-panel select{background:0 0;border:0;outline:0;min-width:114px}.asset-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.asset-list{gap:10px;display:grid}.bulk-action-bar{border:1px solid var(--line);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.bulk-action-bar strong,.bulk-action-bar span{display:block}.bulk-action-bar span{color:var(--muted);font-size:12px}.asset-tile{border:1px solid var(--line);background:var(--panel);color:var(--ink);text-align:left;border-radius:8px;min-width:0;padding:0;display:grid;overflow:hidden}.asset-tile:hover,.asset-tile.selected{border-color:var(--accent);box-shadow:0 0 0 1px #0f766e33}.asset-list .asset-tile{grid-template-columns:170px minmax(0,1fr);min-height:126px}.thumb{aspect-ratio:4/3;color:var(--bluegray);background:#dfe7e4;place-items:center;display:grid;position:relative;overflow:hidden}.asset-select{z-index:2;background:#ffffffeb;border:1px solid #17201b2e;border-radius:8px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:8px;left:8px;box-shadow:0 8px 18px #17201b24}.asset-select input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.asset-list .thumb{aspect-ratio:auto;min-height:126px}.thumb img{object-fit:cover;width:100%;height:100%;display:block}.status{color:#fff;background:var(--bluegray);border-radius:999px;align-items:center;height:23px;padding:0 8px;font-size:11px;font-weight:800;display:inline-flex}.thumb .status{position:absolute;bottom:8px;left:8px}.status.approved,.status.completed{background:var(--green)}.status.review,.status.running,.status.ready_for_mapping{background:var(--gold)}.status.draft,.status.queued,.status.needs_credentials{background:var(--bluegray)}.status.expired,.status.failed,.status.trashed{background:var(--warm)}.asset-body{gap:9px;min-width:0;padding:12px;display:grid}.asset-body strong,.asset-body span,.asset-body p{overflow-wrap:anywhere}.asset-body strong{display:block}.asset-body>div>span,.asset-body p{color:var(--muted);font-size:12px}.asset-body p{margin:0}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{color:#2d4b43;overflow-wrap:anywhere;background:#edf3f1;border-radius:999px;align-items:center;max-width:100%;min-height:24px;padding:0 8px;font-size:12px;display:inline-flex}.face-summary{border:1px solid var(--line);background:#f9fbfa;border-radius:8px;gap:8px;padding:10px;display:grid}.face-summary>div:first-child{justify-content:space-between;align-items:center;gap:10px;display:flex}.face-summary strong{font-size:13px}.face-summary span{color:var(--muted);font-size:12px}.notice{border:1px solid var(--line);color:#594a2d;background:#fffdf7;border-radius:8px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;display:flex}.notice.error{color:#7f2d1f;background:#fff7f5}.trash-notice{color:#7f2d1f;background:#fff7f5;margin:0 16px 12px}.notice button{background:0 0;border:0;margin-left:auto}.detail-panel{background:var(--panel);border-left:1px solid var(--line);width:min(470px,100vw);height:100vh;box-shadow:var(--shadow);z-index:10;flex-direction:column;display:flex;position:fixed;top:0;right:0;overflow:auto}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:66px;padding:14px 16px;display:flex}.panel-head span{color:var(--muted);text-transform:uppercase;letter-spacing:0;font-size:12px;font-weight:800;display:block}.panel-head strong{overflow-wrap:anywhere;margin-top:2px;display:block}.preview-frame{background:#dfe7e4;place-items:center;height:285px;display:grid}.preview-frame img{object-fit:cover;width:100%;height:100%}.file-preview{color:var(--bluegray)}.panel-actions,.panel-section{border-bottom:1px solid var(--line);padding:14px 16px}.panel-section{gap:12px;display:grid}.panel-section.compact h2,.tool-panel h2{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}label{color:#34413b;gap:6px;font-size:13px;font-weight:700;display:grid}input,textarea,select{border:1px solid var(--line);width:100%;min-height:38px;color:var(--ink);background:#fff;border-radius:8px;padding:8px 10px}textarea{resize:vertical;min-height:78px}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}fieldset{border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:12px;display:grid}legend{color:var(--muted);padding:0 4px;font-size:12px;font-weight:800}.check-row{align-items:center;gap:8px;min-width:0;font-weight:600;display:flex}.check-row input{flex:none;width:16px;min-height:16px}.share-field{width:calc(100% - 32px);margin:0 16px 12px;font-size:12px}.version-row{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;min-height:34px;padding:0 10px;display:flex}.version-row span{overflow-wrap:anywhere}.file-input{text-align:center;background:#f9fbfa;border:1px dashed #afbbb5;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:12px;display:flex}.file-input input,.dropzone input{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:absolute}.sticky-save{border-top:1px solid var(--line);background:#fffffff0;margin-top:auto;padding:14px 16px;position:sticky;bottom:0}.modal-backdrop{z-index:20;background:#141d195c;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.upload-modal{background:var(--panel);width:min(720px,100%);max-height:calc(100vh - 36px);box-shadow:var(--shadow);border-radius:8px;gap:14px;padding-bottom:16px;display:grid;overflow:auto}.upload-modal>:not(.panel-head){margin-left:16px;margin-right:16px}.dropzone{text-align:center;min-height:168px;color:var(--muted);background:#f9fbfa;border:1px dashed #aebbb5;border-radius:8px;place-items:center;gap:7px;padding:18px;display:grid}.dropzone strong{color:var(--ink)}.dropzone span{overflow-wrap:anywhere;max-width:100%;font-size:12px}.upload-progress{border:1px solid var(--line);background:#f6faf8;border-radius:8px;gap:8px;padding:12px;display:grid}.upload-progress div{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.upload-progress strong{overflow-wrap:anywhere;text-align:right;min-width:0}.upload-progress span{color:var(--muted);font-size:12px}.upload-progress progress{width:100%;height:10px;accent-color:var(--accent)}.toggle-grid,.tool-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.toggle-card{border:1px solid var(--line);background:#fff;border-radius:8px;align-items:center;gap:10px;min-height:54px;padding:0 12px;display:flex}.toggle-card input{width:18px;min-height:18px}.migration-layout,.portal-layout,.team-layout,.api-layout{gap:14px;display:grid}.migration-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.tool-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:14px;padding:16px;display:grid}.file-input.tall{min-height:120px}.job-list{gap:9px;display:grid}.job-row{border:1px solid var(--line);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:10px;display:grid}.job-row strong{overflow-wrap:anywhere}.job-row small{color:var(--muted)}.compact-empty{min-height:160px}.team-list{gap:9px;display:grid}.credential-banner{background:#f3fbf8;border:1px solid #97c9bd;border-radius:8px;grid-template-columns:minmax(170px,1fr) minmax(190px,1fr) minmax(190px,1fr) auto;align-items:end;gap:10px;padding:12px;display:grid}.credential-banner>div:first-child{align-self:center}.credential-banner span{color:var(--accent);text-transform:uppercase;font-size:12px;font-weight:800;display:block}.credential-banner strong{margin-top:2px;display:block}.copy-field{grid-template-columns:minmax(0,1fr) auto;gap:6px;display:grid}.copy-field .icon-button{height:38px}.docs-list{gap:10px;display:grid}.doc-row{min-width:0}.doc-row .copy-field{grid-template-columns:minmax(0,1fr) auto auto}.api-key-banner{grid-template-columns:minmax(150px,.7fr) minmax(250px,1fr) minmax(300px,1.25fr) auto}.team-row,.key-row{border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:10px;min-height:64px;padding:10px;display:grid}.team-row strong,.team-row span,.key-row strong,.key-row span{display:block}.team-row strong,.team-row span:not(.status):not(.source-pill),.key-row strong,.key-row span:not(.status):not(.source-pill){overflow-wrap:anywhere}.team-row>div:first-child span,.key-row>div:first-child span{color:var(--muted);margin-top:2px;font-size:12px}.source-pill{color:#2d4b43;background:#edf3f1;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-size:11px;font-weight:800;display:inline-flex}.row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.row-actions .ghost-button{height:34px}.login-background-preview{border:1px solid var(--line);background-color:#edf3f1;background-position:50%;background-size:cover;border-radius:8px;align-items:flex-end;min-height:180px;display:flex;overflow:hidden}.login-background-preview span{color:#fff;overflow-wrap:anywhere;background:#141d19b8;width:100%;padding:10px 12px;font-size:12px;font-weight:800}.portal-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.portal-tile{border:1px solid var(--line);background:var(--panel);min-height:168px;color:var(--ink);text-align:left;border-radius:8px;align-content:start;gap:8px;padding:16px;display:grid}.portal-tile:hover{border-color:var(--accent)}.portal-tile svg{color:var(--accent)}.portal-tile span{color:var(--muted);overflow-wrap:anywhere}.portal-tile em{color:var(--warm);font-style:normal;font-weight:800}.empty-state,.loading-state,.empty-inline{min-height:240px;color:var(--muted);background:#ffffff7a;border:1px dashed #b8c3be;border-radius:8px;align-content:center;place-items:center;gap:8px;display:grid}.empty-state strong{color:var(--ink)}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1180px){.summary-strip{grid-template-columns:repeat(3,minmax(120px,1fr))}.filter-bar{grid-template-columns:1fr}}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr;height:auto;display:grid;position:static}.topbar{grid-template-columns:1fr}.summary-strip,.tool-grid,.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.workspace{padding:14px}.summary-strip,.toggle-grid,.two-col,fieldset,.tool-grid,.report-grid,.asset-list .asset-tile{grid-template-columns:1fr}.filters label,.filters .ghost-button{width:100%}.migration-head{flex-direction:column;align-items:stretch}.job-row{grid-template-columns:1fr}.credential-banner{grid-template-columns:1fr;align-items:stretch}.doc-row .copy-field{grid-template-columns:minmax(0,1fr) auto auto}.team-row,.key-row{grid-template-columns:1fr;align-items:stretch}.row-actions{justify-content:stretch}.row-actions .ghost-button{flex:1}}
