.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--neutral-900);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-brand{padding:16px 16px 14px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand .brand-logo{display:block;max-width:100%;height:32px;width:auto;object-fit:contain;filter:brightness(0) invert(1)}.sidebar-brand span{color:#60a5fa}.sidebar-nav{flex:1;padding:12px 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:var(--neutral-400);text-decoration:none;font-size:14px;font-weight:500;margin-bottom:2px;transition:all .15s}.nav-item:hover{background:#ffffff14;color:#fff;text-decoration:none}.nav-item.active{background:var(--primary);color:#fff}.sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.1);font-size:13px;color:var(--neutral-400)}.main-content{flex:1;margin-left:var(--sidebar-width);min-height:100vh}.page-header{background:#fff;border-bottom:1px solid var(--neutral-200);padding:16px 32px;display:flex;align-items:center;justify-content:space-between}.page-header h1{font-size:22px;font-weight:600;color:var(--neutral-900)}.page-body{padding:24px 32px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.stat-card .label{font-size:13px;color:var(--neutral-500);margin-bottom:4px}.stat-card .value{font-size:28px;font-weight:700;color:var(--neutral-900)}@media(max-width:768px){.sidebar{transform:translate(-100%)}.main-content{margin-left:0}.page-body{padding:16px}}.toast-container{position:fixed;top:16px;right:16px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 16px;border-radius:var(--radius);font-size:14px;font-weight:500;box-shadow:var(--shadow-md);animation:slideIn .2s ease;min-width:280px}.toast-info{background:#fff;color:var(--neutral-800);border:1px solid var(--neutral-200)}.toast-success{background:#dcfce7;color:var(--success)}.toast-error{background:#fee2e2;color:var(--error)}.toast-warning{background:#fef3c7;color:var(--warning)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:9000}.confirm-dialog{background:#fff;border-radius:12px;padding:24px;max-width:420px;width:90%;box-shadow:var(--shadow-md)}.confirm-dialog h3{font-size:18px;margin-bottom:8px}.confirm-dialog p{color:var(--neutral-600);font-size:14px;margin-bottom:20px}.confirm-actions{display:flex;gap:8px;justify-content:flex-end}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--neutral-900) 0%,#1e3a5f 100%)}.auth-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:420px;box-shadow:var(--shadow-md)}.auth-card .brand-auth{display:flex;align-items:center;gap:12px;margin-bottom:20px}.auth-card .brand-auth-name{font-size:22px;font-weight:700;color:var(--neutral-900);letter-spacing:-.3px}.auth-card h1{font-size:24px;font-weight:700;margin-bottom:4px;color:var(--neutral-900)}.auth-card .subtitle{color:var(--neutral-500);margin-bottom:28px;font-size:14px}.auth-card .btn-primary{width:100%;padding:12px;margin-top:8px}.auth-footer{text-align:center;margin-top:20px;font-size:14px;color:var(--neutral-500)}.auth-error{background:#fee2e2;color:var(--error);padding:10px 12px;border-radius:var(--radius);font-size:13px;margin-bottom:16px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.project-card{background:#fff;border:1px solid var(--neutral-200);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;cursor:pointer;transition:box-shadow .15s,border-color .15s,transform .15s;display:flex;flex-direction:column}.project-card:hover{border-color:var(--neutral-300);box-shadow:var(--shadow-md);transform:translateY(-1px)}.project-card--starred{border-color:#fbbf24}.project-card__preview{aspect-ratio:4 / 3;background:var(--neutral-100);overflow:hidden;position:relative}.project-card__preview .thumbImageWrap{width:100%;height:100%}.project-card__preview img,.project-card__image{width:100%;height:100%;object-fit:cover;display:block}.project-card__body{padding:14px 16px 12px;display:flex;flex-direction:column;gap:6px;flex:1}.project-card__title-row{min-height:24px}.project-card__name{font-size:15px;font-weight:600;color:var(--neutral-900);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card__name-input{font-size:15px;font-weight:600;padding:4px 8px;width:100%}.project-card__meta{font-size:12px;color:var(--neutral-500);margin:0}.project-card__actions{display:flex;align-items:center;gap:4px;margin-top:auto;padding-top:4px}.project-card__action{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:transparent;color:var(--neutral-500);font-size:15px;line-height:1;transition:background .15s,color .15s}.project-card__action:hover{background:var(--neutral-100);color:var(--neutral-800)}.project-card__action svg{display:block}.project-card__star{color:var(--neutral-400)}.project-card__star.is-active{color:#f59e0b}.project-card__action--danger:hover{background:#fef2f2;color:var(--error)}.project-card--skeleton{pointer-events:none;cursor:default}.project-card--skeleton:hover{transform:none;box-shadow:var(--shadow)}@media(max-width:640px){.project-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}}:root{--bg: #050b14;--bg2: #0a1525;--bg3: #0f1f35;--panel: rgba(10, 22, 40, .94);--panel-border: rgba(56, 132, 255, .18);--text: #e8f0ff;--muted: rgba(180, 200, 230, .65);--accent: #2563eb;--accent2: #0ea5e9;--accent-soft: rgba(37, 99, 235, .2);--accent-glow: rgba(14, 165, 233, .15);--success: #10b981;--danger: #f87171;--shadow: 0 20px 60px rgba(0, 0, 0, .45);--radius: 14px;--radius-sm: 10px}*{box-sizing:border-box}html,body{height:100%}body.invite-editor{margin:0;font-family:Segoe UI,ui-sans-serif,system-ui,-apple-system,Roboto,Arial,sans-serif;background:radial-gradient(1000px 700px at 10% -5%,rgba(37,99,235,.28),transparent 55%),radial-gradient(800px 600px at 95% 10%,rgba(14,165,233,.14),transparent 50%),linear-gradient(165deg,#050b14,#071222 45%,#050b14);color:var(--text)}body.invite-editor input,body.invite-editor select,body.invite-editor textarea,body.invite-editor button{font-family:inherit}body.invite-editor input,body.invite-editor select,body.invite-editor textarea{background:#050f1ed9;color:var(--text);border-color:var(--panel-border)}.appShell{min-height:100vh;height:100vh;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto 220px}.appShellLoading{place-items:center;height:100vh}.editorTopStrip{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;border-bottom:1px solid var(--panel-border);background:#050b14bf;flex-wrap:wrap}.editorTopSep{width:1px;align-self:stretch;min-height:48px;background:var(--panel-border);flex-shrink:0}.editorCanvasArea{min-height:0;overflow:hidden;padding:10px 12px;display:flex;flex-direction:column}.savePill{font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid var(--panel-border);color:var(--muted);background:#2563eb0f}.savePill-saved{color:#a7f3d0;border-color:#10b98159;background:#10b9811a}.savePill-pending{color:#fde68a;border-color:#fbbf2459;background:#fbbf2414}.savePill-saving{color:#bfdbfe;border-color:#3884ff73;background:var(--accent-soft)}.savePill-error{color:#fecaca;border-color:#f8717173;background:#f871711a}.uploadPanelInline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.uploadPanelInline .assetRowInline{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:#050f1e66}.sheetSelectInline{width:auto;min-width:100px;max-width:140px}.sheetCountInline{font-size:11px;white-space:nowrap}.mappingInline{flex:1;min-width:280px}.mappingInlineEmpty{flex:1;min-width:200px;display:flex;align-items:center;padding:8px}.regionFormInline{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.regionFormInline .compactInput{width:auto;min-width:88px;max-width:160px}.regionFormInline .compactInputNum{width:56px;min-width:56px}.regionFormInline .compactInputAlign{width:72px;min-width:72px}.canvasEditorFull{height:100%;min-height:0}.canvasWrapFull{flex:1;min-height:0;height:auto}.canvasStageHostFull{height:100%;padding:8px}.canvasStageFrame{flex-shrink:0}.loadingCard{display:flex;align-items:center;gap:12px;padding:18px 22px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--panel-border);box-shadow:var(--shadow)}.topBar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--panel-border);background:#050b14e0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:relative;flex-wrap:wrap}.topBarWithProgress{padding-bottom:42px}.brandBlock{display:grid;gap:8px}.brand{font-weight:700;font-size:1.05rem;letter-spacing:.02em;background:linear-gradient(90deg,#93c5fd,#38bdf8);-webkit-background-clip:text;background-clip:text;color:transparent}.stepRow{display:flex;gap:8px;flex-wrap:wrap}.stepPill{font-size:11px;padding:4px 10px;border-radius:999px;border:1px solid var(--panel-border);color:var(--muted);background:#2563eb0f}.stepPill.done{color:#bfdbfe;border-color:#2563eb8c;background:var(--accent-soft)}.topProgress{position:absolute;left:0;right:0;bottom:0;padding:8px 20px 10px;border-top:1px solid var(--panel-border);background:#050b14eb}.topProgressRow{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}.topProgressTrack{height:7px;border-radius:999px;overflow:hidden;background:#2563eb1f}.topProgressFill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent2));transition:width .14s ease-out}.container{display:grid;grid-template-columns:260px minmax(0,1fr) 300px;gap:12px;padding:12px;overflow:hidden;min-height:0}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:12px;overflow:auto;box-shadow:var(--shadow);min-height:0;display:grid;grid-template-rows:auto 1fr;align-content:start}.panelMain{min-width:0}.panel h3{margin:0 0 10px;font-size:10px;font-weight:700;color:#7dd3fc;text-transform:uppercase;letter-spacing:.14em}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--panel-border);background:#2563eb14;color:var(--text);padding:9px 14px;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:13px;transition:background .15s,border-color .15s,transform .1s}.btn:hover:not(:disabled){background:#2563eb2e;border-color:#3884ff73}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btnPrimary{border-color:#2563eba6;background:linear-gradient(180deg,#2563eb73,#1d4ed847)}.btnPrimary:hover:not(:disabled){border-color:#3884ffd9;background:linear-gradient(180deg,#2563eb94,#1d4ed861)}.btnDanger{border-color:#f8717173;background:#f871711a}.field{display:grid;gap:6px;margin-bottom:12px}.field label{font-size:12px;color:var(--muted);font-weight:600}.field input[type=text],.field input[type=number],.field select{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:#050f1ee6;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:#3884ffa6;box-shadow:0 0 0 3px #2563eb33}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted);font-size:12px}.fieldError{color:#fecaca;font-size:12px;margin-top:8px}.uploadPanelCompact{display:grid;gap:8px;align-content:start}.assetRow{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:#050f1e66}.assetThumb{width:44px;height:44px;border-radius:8px;overflow:hidden;border:1px solid var(--panel-border);background:#00000059;display:grid;place-items:center}.assetThumb img,.assetThumb .authImageWrap{width:100%;height:100%;object-fit:cover}.assetThumbEmpty,.assetThumbExcel{font-size:11px;font-weight:700;color:var(--muted)}.assetMeta{min-width:0}.assetTitle{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#dbeafe}.assetSub{font-size:11px;margin-top:2px}.assetDot{width:7px;height:7px;border-radius:50%;background:#94a3b873;flex-shrink:0}.assetDot.on{background:var(--success);box-shadow:0 0 8px #10b9818c}.assetSheetRow{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;padding:0 4px}.assetSheetRow select{padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:#050f1ee6;color:var(--text);font-size:12px}.btnSm{padding:6px 10px;font-size:12px;white-space:nowrap}.btnBlock{width:100%;margin-top:4px}label.btn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center}label.btn.isDisabled{opacity:.45;cursor:not-allowed;pointer-events:none}.mappingCompact{display:grid;gap:10px;align-content:start}.regionTabs{display:flex;gap:6px;flex-wrap:wrap}.regionTab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--panel-border);background:#2563eb0f;color:var(--muted);padding:5px 10px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.regionTab.active{color:#dbeafe;border-color:#3884ffa6;background:var(--accent-soft)}.regionForm{display:grid;gap:8px}.compactRow{display:flex;gap:6px;align-items:center}.compactGrid3{display:grid;grid-template-columns:1fr 64px 72px;gap:6px}.compactInput{width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:#050f1ee6;color:var(--text);font-size:12px;outline:none}.compactInput:focus{border-color:#3884ffa6;box-shadow:0 0 0 2px #2563eb33}.colorSwatch{width:36px;height:32px;padding:0;border-radius:8px;border:1px solid var(--panel-border);background:transparent;cursor:pointer;flex-shrink:0}.toggleBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:32px;height:32px;border-radius:8px;border:1px solid var(--panel-border);background:#2563eb14;color:var(--muted);font-weight:700;font-size:13px;cursor:pointer}.toggleBtn.italic{font-style:italic}.toggleBtn.on{color:#dbeafe;border-color:#3884ffa6;background:var(--accent-soft)}.iconBtn{min-width:32px;padding:0;font-size:18px;line-height:1}.compactHint{margin-left:auto;font-size:11px}.uploadPanel{display:grid;gap:12px;align-content:start}.uploadCard,.metaCard{border:1px solid var(--panel-border);border-radius:var(--radius-sm);padding:12px;background:#050f1e8c}.uploadCardHead{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}.uploadIcon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);font-size:16px}.uploadCardTitle{font-weight:700;font-size:14px;color:#dbeafe}.statusBadge{margin-left:auto;font-size:11px;font-weight:700;padding:4px 8px;border-radius:999px;white-space:nowrap}.statusOk{color:#a7f3d0;background:#10b9811f;border:1px solid rgba(16,185,129,.35)}.fileDropzone{display:block;cursor:pointer}.fileDropzone.isDisabled{opacity:.5;cursor:not-allowed}.fileDropzone input{display:none}.fileDropzoneInner{display:grid;gap:4px;padding:14px;border-radius:var(--radius-sm);border:1px dashed rgba(56,132,255,.4);background:#2563eb14;text-align:center;transition:border-color .15s,background .15s;color:var(--text)}.fileDropzone:hover .fileDropzoneInner{border-color:#3884ffbf;background:#2563eb24}.bgPreviewThumb{margin-bottom:10px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--panel-border);background:#00000059;max-height:120px}.bgPreviewThumb img{width:100%;height:120px;object-fit:contain;display:block}.chipRow{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:11px;padding:4px 8px;border-radius:999px;background:#2563eb1f;border:1px solid var(--panel-border);color:#bfdbfe}.chipMuted{color:var(--muted)}.canvasEditor{height:100%;min-height:0;display:flex;flex-direction:column;gap:8px}.canvasToolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.canvasToolbarMeta{margin-left:auto}.canvasWrap{position:relative;flex:1;min-height:0;border-radius:var(--radius-sm);border:1px solid var(--panel-border);background:linear-gradient(45deg,rgba(37,99,235,.04) 25%,transparent 25%),linear-gradient(-45deg,rgba(37,99,235,.04) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(37,99,235,.04) 75%),linear-gradient(-45deg,transparent 75%,rgba(37,99,235,.04) 75%);background-size:20px 20px;background-color:#050f1ea6;overflow:hidden}.canvasStageHost{height:100%;display:grid;place-items:center;padding:12px;position:relative}.canvasEmpty{height:100%;display:grid;place-content:center;justify-items:center;gap:8px;padding:24px;text-align:center;color:#dbeafe}.canvasEmptyIcon{font-size:36px;opacity:.85}.canvasOverlay{position:absolute;top:12px;right:12px;bottom:12px;left:12px;display:grid;place-content:center;justify-items:center;gap:10px;background:#050b148c;border-radius:var(--radius-sm);z-index:2;color:var(--muted);font-size:13px}.canvasOverlayError{color:#fecaca}.canvasHint{font-size:11px;color:var(--muted);margin-top:8px;text-align:center}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(56,132,255,.15);border-top-color:var(--accent2);animation:spin .8s linear infinite}.spinnerSm{width:18px;height:18px;border-width:2px}@keyframes spin{to{transform:rotate(360deg)}}.previewBar{padding:12px 14px;border-top:1px solid var(--panel-border);background:#050b14e0;color:var(--text)}.previewGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;padding:14px;overflow:auto;height:100%;background:#050b1480}.thumb{border:1px solid var(--panel-border);border-radius:var(--radius-sm);overflow:hidden;background:#050f1ebf;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.thumb:hover{transform:translateY(-2px);border-color:#3884ff8c;box-shadow:0 8px 24px #00000059}.thumb img{width:100%;height:130px;object-fit:contain;display:block;background:#00000059}.thumbPlaceholder{width:100%;height:130px;background:#2563eb0f;display:grid;place-items:center}.thumbLoading,.thumbError{min-height:80px}.thumbMeta{padding:8px 10px;display:grid;gap:2px}.thumbMeta strong{font-size:13px;color:#dbeafe}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#020812c7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px;z-index:50}.modalCard{width:min(1100px,100%);height:min(720px,100%);background:var(--panel);border:1px solid var(--panel-border);border-radius:calc(var(--radius) + 2px);overflow:hidden;display:grid;grid-template-rows:auto 1fr;box-shadow:var(--shadow)}.modalHeader{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--panel-border)}.modalBody{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;padding:12px;overflow:hidden}.modalPreview{border:1px solid var(--panel-border);border-radius:var(--radius-sm);overflow:hidden;background:#050f1ea6;padding:10px;display:grid;grid-template-rows:1fr auto}.modalPreview img{width:100%;height:100%;object-fit:contain;border-radius:var(--radius-sm);background:#00000059}.modalFields{overflow:auto;padding-right:6px}.regionCard{border:1px solid var(--panel-border);border-radius:12px;padding:10px;background:#050f1e73}.modalSection{margin-bottom:16px;border-bottom:1px solid var(--panel-border);padding-bottom:12px}.modalSectionTop{margin-top:18px;border-top:1px solid var(--panel-border);border-bottom:none;padding-top:12px;padding-bottom:0;margin-bottom:12px}@media(max-width:1100px){.canvaToolbarInner,.canvaFormatRow{flex-wrap:wrap}}.canvaShell{height:100vh;min-height:100vh;display:grid;grid-template-rows:52px auto minmax(0,1fr) auto;overflow:hidden;background:#121a28}.canvaShellPreviewOpen{grid-template-rows:52px auto minmax(0,1fr) minmax(220px,32vh)}.canvaShellLoading{place-items:center;display:grid}.canvaHeader{display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:#0b1220;border-bottom:1px solid rgba(255,255,255,.08);position:relative;z-index:5}.canvaHeaderProgress{padding-bottom:28px}.canvaHeaderLeft,.canvaHeaderRight{display:flex;align-items:center;gap:10px}.canvaBrandMark{width:28px;height:28px;border-radius:6px;object-fit:cover}.canvaBrand{font-weight:700;font-size:15px;color:#f0f4ff}.canvaProjectId{font-size:12px;color:var(--muted);padding:2px 8px;border-radius:6px;background:#ffffff0d}.canvaIconBtn,.canvaHeaderBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#e8f0ff;border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer}.canvaIconBtn{width:36px;height:36px;padding:0;display:grid;place-items:center}.canvaHeaderBtnPrimary{background:linear-gradient(180deg,#6366f1,#4f46e5);border-color:#818cf899;color:#fff}.canvaHeaderBtnSm{padding:5px 10px;font-size:12px}.canvaToolbar{background:#151f30;border-bottom:1px solid rgba(255,255,255,.08);overflow-x:auto;overflow-y:hidden}.canvaToolbarInner{display:flex;align-items:center;gap:0;min-height:52px;padding:0 12px;min-width:max-content}.canvaToolbarGroup{display:flex;align-items:center;gap:8px;padding:6px 10px;flex-shrink:0}.canvaToolbarGrow{flex:1;min-width:0;overflow-x:auto}.canvaToolbarLabel{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#b4c8e673;white-space:nowrap}.canvaToolbarDivider{width:1px;height:32px;background:#ffffff1a;flex-shrink:0}.canvaToolbarDividerInline{height:28px}.canvaToolbarActions{margin-left:auto}.canvaChipRow,.canvaFormatRow{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.canvaChip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#e8f0ff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.canvaChipReady{border-color:#10b98173;background:#10b9811a}.canvaChipIcon{font-size:14px;line-height:1}.canvaChipImg{width:22px;height:22px;border-radius:4px;object-fit:cover}.canvaSelect,.canvaInput{height:34px;padding:0 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#00000040;color:#e8f0ff;font-size:12px;outline:none}.canvaSelect:focus,.canvaInput:focus{border-color:#8b5cf6a6;box-shadow:0 0 0 2px #8b5cf633}.canvaSelect{max-width:140px}.canvaSelectWide{max-width:180px}.canvaSelectAlign{max-width:88px}.canvaInputName{width:110px}.canvaInputNum{width:56px}.canvaColor{width:34px;height:34px;padding:2px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:transparent;cursor:pointer}.canvaMeta{font-size:11px;color:var(--muted);white-space:nowrap}.canvaMetaError{color:#fecaca}.canvaRegionTabs{display:flex;gap:4px;flex-shrink:0}.canvaRegionTab{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:34px;padding:0 12px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:12px;font-weight:600;cursor:pointer;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvaRegionTab.active{color:#f5f3ff;background:#8b5cf638;border-color:#a78bfa73}.canvaToolBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:34px;padding:0 12px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#e8f0ff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.canvaToolBtnPrimary{background:#8b5cf640;border-color:#a78bfa80;color:#f5f3ff}.canvaToolBtnToggle{min-width:34px;padding:0}.canvaToolBtnToggle.italic{font-style:italic}.canvaToolBtnToggle.on{background:#8b5cf659;border-color:#a78bfaa6;color:#fff}.canvaToolBtnDanger{min-width:34px;padding:0;color:#fecaca;border-color:#f8717159}.canvaWorkspace{min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(139,92,246,.06),transparent 55%),#1a2332}.canvaCanvas{position:relative;width:100%;height:100%;min-height:0;overflow:hidden}.canvaCanvasCenter{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:auto;padding:32px}.canvaPage{flex-shrink:0;transform-origin:center center;box-shadow:0 12px 40px #00000073,0 0 0 1px #ffffff0f;border-radius:2px;overflow:hidden;background:#fff}.canvaCanvasEmpty{width:100%;height:100%;display:grid;place-items:center}.canvaCanvasEmptyCard{display:grid;gap:8px;justify-items:center;text-align:center;padding:28px 36px;border-radius:12px;background:#00000040;border:1px dashed rgba(255,255,255,.15)}.canvaCanvasEmptyIcon{font-size:40px}.canvaCanvasOverlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:10px;background:#0a0f198c;color:var(--muted);font-size:13px}.canvaCanvasOverlayError{color:#fecaca}.canvaZoomBar{position:absolute;right:16px;bottom:16px;z-index:4;display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:10px;background:#0b1220eb;border:1px solid rgba(255,255,255,.1);font-size:12px;color:#dbeafe}.canvaZoomBtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:28px;height:28px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:#e8f0ff;cursor:pointer;font-weight:700}.canvaFilmstrip{background:#0b1220;border-top:1px solid rgba(255,255,255,.08);min-height:0;display:flex;flex-direction:column;overflow:hidden}.canvaFilmstrip.open{min-height:0}.canvaFilmstripHead{height:36px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;flex-shrink:0}.canvaFilmstripToggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#dbeafe;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px}.canvaPreviewPanel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.canvaPreviewNav{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.canvaPreviewGrid{flex:1;min-height:120px;display:flex;flex-direction:row;gap:10px;padding:10px 12px;overflow-x:auto;overflow-y:hidden;align-items:stretch;background:#00000026}.canvaPreviewGrid .thumb{flex:0 0 148px;width:148px;display:flex;flex-direction:column;min-height:130px}.thumbImageWrap{flex-shrink:0;width:100%;height:100px;min-height:100px;overflow:hidden;background:#0006;display:flex;align-items:center;justify-content:center}.thumbImageWrap img{width:100%;height:100%;object-fit:contain;display:block}.canvaPreviewGrid .thumbMeta{flex:1;min-height:0;overflow:hidden}.canvaPreviewGrid .thumbMeta strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.modalPreviewOverride{display:flex;flex-direction:column;gap:8px;min-height:280px}.overrideUnifiedPreview{position:relative;flex:1;min-height:280px;display:grid;place-items:center;background:#00000059;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none}.overrideUnifiedPreview--edit{cursor:default}.overrideUnifiedPreviewImage{width:100%;height:100%;display:grid;place-items:center;padding:8px}.overrideUnifiedPreviewImage .thumbImageWrap{width:100%;height:100%;max-height:420px}.overrideUnifiedPreviewImage img{max-width:100%;max-height:420px;object-fit:contain;display:block}.overrideCanvasWrap{position:relative;width:100%;height:100%;min-height:280px;display:grid;place-items:center;overflow:hidden}.overrideCanvasHint{position:absolute;bottom:6px;left:8px;right:8px;font-size:10px;color:var(--muted);pointer-events:none;z-index:2}.overrideCanvasEmpty{display:grid;place-items:center;min-height:120px;color:var(--muted);font-size:13px}.overridePreviewThumb{max-height:100px;overflow:hidden;border-radius:var(--radius-sm);border:1px solid var(--panel-border)}.overridePreviewThumb .thumbImageWrap{height:90px;min-height:90px}.overrideBoxGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.overrideBoxGrid>.muted{grid-column:1 / -1;font-size:11px}.canvaPreviewEmpty{padding:16px;color:var(--muted);font-size:13px}:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #eff6ff;--neutral-50: #f8fafc;--neutral-100: #f1f5f9;--neutral-200: #e2e8f0;--neutral-300: #cbd5e1;--neutral-400: #94a3b8;--neutral-500: #64748b;--neutral-600: #475569;--neutral-700: #334155;--neutral-800: #1e293b;--neutral-900: #0f172a;--success: #16a34a;--warning: #d97706;--error: #dc2626;--sidebar-width: 240px;--header-height: 56px;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--neutral-50);color:var(--neutral-800);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;border-radius:var(--radius);font-size:14px;font-weight:500;transition:all .15s}input,select,textarea{font-family:inherit;font-size:14px;border:1px solid var(--neutral-300);border-radius:var(--radius);padding:8px 12px;background:#fff;color:var(--neutral-800);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-weight:500}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:#fff;color:var(--neutral-700);border:1px solid var(--neutral-300)}.btn-secondary:hover{background:var(--neutral-50)}.btn-danger{background:var(--error);color:#fff}.btn-sm{padding:4px 10px;font-size:13px}.btn-lg{padding:12px 24px;font-size:15px}.card{background:#fff;border-radius:var(--radius);border:1px solid var(--neutral-200);box-shadow:var(--shadow)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500}.badge-success{background:#dcfce7;color:var(--success)}.badge-warning{background:#fef3c7;color:var(--warning)}.badge-error{background:#fee2e2;color:var(--error)}.badge-info{background:var(--primary-light);color:var(--primary)}.skeleton{background:linear-gradient(90deg,var(--neutral-200) 25%,var(--neutral-100) 50%,var(--neutral-200) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{text-align:center;padding:48px 24px;color:var(--neutral-500)}.empty-state h3{color:var(--neutral-700);margin-bottom:8px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--neutral-600);margin-bottom:4px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--neutral-200)}th{font-weight:600;color:var(--neutral-600);background:var(--neutral-50)}.progress-bar{height:8px;background:var(--neutral-200);border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--primary);border-radius:999px;transition:width .3s}
