:root{--space-page-x:16px;--space-page-y:12px;--space-card:16px;--space-field-gap:12px;--space-section:10px;--control-min-height:40px;--nav-item-min-height:44px;--font-page-title:22px;--font-panel-title:16px;--font-section-title:15px;--font-body:14px;--font-label:14px;--font-hint:12px;--font-nav:14px;--font-tab:13px;--color-text-primary:#172033;--color-text-secondary:#334155;--color-text-muted:#64748b;--color-text-label:#4b5563;--color-bg-page:#eef2f6;--color-bg-grid:#cbd5e138;--color-bg-surface:#fff;--color-bg-subtle:#f8fafc;--color-bg-muted:#f1f5f9;--color-border:#e2e8f0;--color-border-input:#cbd5e1;--color-border-strong:#ccd5e1;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-soft:#2563eb1f;--color-link:#2563eb;--color-link-hover:#1d4ed8;--color-border-subtle:#edf1f7;--color-border-soft:#e2e8f0;--color-text-soft:#475569;--shadow-card:0 1px 2px #0f172a0f;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-1:0 1px 2px #0f172a0f;--shadow-2:0 4px 16px #0f172a14;--shadow-3:0 12px 32px #0f172a2e;--z-sticky:100;--z-fab:900;--z-modal:1000;--z-toast:2000;--color-danger:#b91c1c;--color-warning:#f59e0b;--color-success:#15803d;--color-info-soft:#dbeafe}*{box-sizing:border-box}body{max-width:100%;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-size:var(--font-body);color:var(--color-text-primary);background:linear-gradient(90deg, var(--color-bg-grid) 1px, transparent 1px), linear-gradient(var(--color-bg-grid) 1px, transparent 1px), var(--color-bg-page);background-size:32px 32px;margin:0;overflow-x:clip}html{max-width:100%;overflow-x:clip}body.modal-open{overflow:hidden}button,input,select{font:inherit}button{min-height:var(--control-min-height);color:#fff;background:var(--color-primary);cursor:pointer;font-size:var(--font-body);border:0;border-radius:6px;padding:0 16px}button:hover{background:var(--color-primary-hover)}button:disabled{cursor:not-allowed;background:#9ca3af}button.secondary{border:1px solid var(--color-border-strong);background:var(--color-bg-surface)}button.link-like,.link-like{min-height:auto;color:var(--color-primary);cursor:pointer;font-size:inherit;font-weight:600;line-height:inherit;box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;text-decoration:none}button.link-like:hover,.link-like:hover{color:var(--color-primary-hover);background:0 0;text-decoration:underline}button.link-like:focus-visible,.link-like:focus-visible{outline-offset:2px;background:0 0;outline:2px solid #2563eb59}button.link-like:active,.link-like:active{color:#1e40af;background:0 0}input:not([type=checkbox]):not([type=radio]),select{width:100%;min-height:var(--control-min-height);border:1px solid var(--color-border-input);background:var(--color-bg-surface);font-size:var(--font-body);color:var(--color-text-primary);border-radius:6px;padding:8px 10px}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:16px;accent-color:var(--color-primary);flex-shrink:0;margin:0;padding:0}label{color:var(--color-text-label);font-size:var(--font-label);gap:6px;display:grid}html.mobile-simulated-landscape-root{height:100%;overflow:hidden!important}html:has(.mobile-simulated-landscape){height:100%;overflow:hidden!important}html.mobile-simulated-landscape-root body{height:100%;overflow:hidden!important}html:has(.mobile-simulated-landscape) body{height:100%;overflow:hidden!important}@keyframes palette-highlight-pulse{0%,to{box-shadow:0 0 0 3px #2563eb2e}50%{box-shadow:0 0 0 6px #2563eb47}}html.is-mobile-layout .color-card-manage.is-dragging-floating{gap:2px;padding:18px 4px 4px}html.is-mobile-layout .color-card-manage.is-dragging-floating .color-card-actions,html.is-mobile-layout .color-card-manage.is-dragging-floating .color-card-name,html.is-mobile-layout .color-card-manage.is-dragging-floating .color-card-info code{display:none}html.is-mobile-layout .color-card-manage.is-dragging-floating .color-swatch{border-radius:6px;width:100%;height:40px}html.is-mobile-layout .color-card-manage.is-dragging-floating .color-card-info{text-align:center}html.is-mobile-layout .color-card-manage.is-dragging-floating .color-card-info strong{word-break:break-all;font-size:10px;line-height:1.2}button.settings-subtab{color:var(--color-text-soft);background:0 0;border:1px solid #0000}button.settings-subtab:hover:not(.active){background:var(--color-bg-subtle);color:var(--color-text-secondary)}button.settings-subtab.active{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#93c5fd}button.settings-action-toggle,.settings-action-toggle{white-space:nowrap;flex-shrink:0;min-height:40px;padding:0 14px;font-size:13px}button.loading{opacity:.85;cursor:wait}@keyframes assembly-sync-flash{0%,to{opacity:1}50%{opacity:.5;transform:scale(1.04)}}html.is-mobile-layout #mobileBottomNav:not(.hidden){display:grid}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:2px solid #2563eb73}#app{max-width:100%;overflow-x:clip}button.secondary,button.tab,button.nav-item{color:#2b3a55;background:0 0}.tab.active,.nav-item.active{color:#fff;background:var(--color-primary)}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--color-border);background:var(--color-bg-surface);flex-direction:column;align-self:start;gap:14px;min-height:100dvh;max-height:100dvh;padding:18px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid var(--color-border-subtle);gap:6px;padding-bottom:14px;display:grid}.sidebar-brand strong{font-size:20px}.sidebar-brand span{color:var(--color-text-muted);word-break:break-word;font-size:13px}.nav-menu{gap:8px;display:grid}.nav-item{text-align:left;width:100%;min-height:var(--nav-item-min-height);font-size:var(--font-nav);justify-content:flex-start}.sidebar .secondary{margin-top:auto}.workspace-layout{grid-template-columns:minmax(300px,36%) minmax(0,64%);align-items:start;gap:14px}@media (width>=901px){.workspace-generate-panel{align-self:start;position:sticky;top:12px}}.workspace-intro{grid-column:1/-1;margin-bottom:10px}.workspace-intro-bar{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.workspace-intro-current{color:var(--color-text-secondary);white-space:nowrap;flex:none;font-size:13px;font-weight:700}.workspace-intro-actions{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.app-shell.editor-focus{grid-template-columns:1fr;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden}html:has(.app-shell.editor-focus:not(.hidden)){height:100%;overflow:hidden}html:has(.app-shell.editor-focus:not(.hidden)) body{height:100%;overflow:hidden}html:has(.app-shell.editor-focus:not(.hidden)) #app{height:100%;overflow:hidden}.app-shell.editor-focus .sidebar{display:none}.app-shell.editor-focus .content{background:var(--color-bg-surface);flex-direction:column;flex:1;height:100%;min-height:0;display:flex;overflow:hidden;padding:0!important}.app-shell.editor-focus .topbar,.app-shell.editor-focus #onboardingBanner{display:none}.app-shell.editor-focus .mobile-bottom-nav{display:none!important}.app-shell.tablet-layout{grid-template-columns:168px minmax(0,1fr);min-height:100dvh;display:grid}.app-shell.tablet-layout .sidebar{gap:12px;padding:14px 10px;display:flex}.app-shell.tablet-layout .sidebar-brand,.app-shell.tablet-layout .sidebar-logout{display:grid}.app-shell.tablet-layout .sidebar-brand strong{font-size:16px;line-height:1.25}.app-shell.tablet-layout .sidebar-brand span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.app-shell.tablet-layout .nav-item{min-height:38px;padding:0 8px;font-size:12px}.app-shell.tablet-layout .sidebar-logout{min-height:36px;font-size:12px}.app-shell.tablet-layout .content{order:unset;padding:12px 14px}.app-shell.tablet-layout .topbar{margin-bottom:10px}.app-shell.tablet-layout .topbar h2{font-size:20px}.app-shell.tablet-layout .mobile-bottom-nav{display:none!important}.app-shell.tablet-layout .project-layout.project-desktop{grid-template-columns:minmax(200px,248px) minmax(0,1fr);align-items:start;gap:10px}.app-shell.tablet-layout .workspace-layout{grid-template-columns:minmax(200px,30%) minmax(0,70%);align-items:start;gap:10px}.app-shell.tablet-layout .workspace-library-head{flex-direction:column;align-items:stretch;gap:6px}.app-shell.tablet-layout .workspace-library-title{flex-wrap:nowrap;width:100%;min-width:0}.app-shell.tablet-layout .workspace-library-title h3{white-space:nowrap;writing-mode:horizontal-tb;font-size:14px}.app-shell.tablet-layout .workspace-library-actions{width:100%}.app-shell.tablet-layout .workspace-library-actions button{min-height:32px;padding:4px 6px;font-size:12px}.app-shell.tablet-layout .workspace-library-filters{flex-flow:row;align-items:center;gap:4px;min-width:0;display:flex}.app-shell.tablet-layout .workspace-library-filters>input{flex:1 1 0;width:auto;min-width:0;min-height:34px;font-size:13px}.app-shell.tablet-layout .workspace-library-filter-toolbar{flex-wrap:nowrap;flex:none;align-items:center;gap:4px;width:auto;display:flex}.app-shell.tablet-layout .workspace-library-filter-toolbar select{flex:none;min-width:0;max-width:104px;min-height:34px;padding:4px 6px;font-size:12px}.app-shell.tablet-layout .workspace-library-filter-toggle,.app-shell.tablet-layout button.workspace-library-filter-toggle{flex:none;min-width:0;min-height:34px;padding:0 6px;font-size:12px}.app-shell.tablet-layout .workspace-file-scroll{max-height:min(360px,38vh)}.app-shell.tablet-layout .preview-toolbar{flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;display:flex}.app-shell.tablet-layout .preview-toolbar-title{display:none}.app-shell.tablet-layout .preview-toolbar-main,.app-shell.tablet-layout .preview-options{display:contents}.app-shell.tablet-layout .preview-options .check-label{min-height:28px;font-size:12px}.app-shell.tablet-layout .preview-grid-step-label{white-space:nowrap;font-size:12px}.app-shell.tablet-layout .preview-actions{flex:none;gap:6px;width:auto;margin-left:auto;display:inline-flex}.app-shell.tablet-layout .preview-actions button{white-space:nowrap;flex:0 auto;min-width:0;min-height:34px;font-size:12px}.app-shell.tablet-layout .preview-rotation-toolbar{flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 10px;display:flex}.app-shell.tablet-layout .preview-rotation-title span{display:none}.app-shell.tablet-layout .image-rotation-buttons{flex:100%;grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell.tablet-layout #patternPreview{max-height:min(360px,40vh)}.app-shell.tablet-layout #patternSummary.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px}.app-shell.tablet-layout .pattern-legend-fold{border:1px solid var(--color-border-subtle);background:#fbfdff;border-radius:8px}.app-shell.tablet-layout .pattern-legend-fold-title{cursor:pointer;padding:8px 10px;font-size:13px;font-weight:700;list-style:none}.app-shell.tablet-layout .pattern-legend-fold-title::-webkit-details-marker{display:none}.app-shell.tablet-layout .workspace-pattern-legend,.app-shell.tablet-layout .project-detail-legend{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:6px;max-height:160px;padding:0 8px 8px;overflow-y:auto}.app-shell.tablet-layout .workspace-pattern-legend .color-item,.app-shell.tablet-layout .project-detail-legend .color-item{grid-template-columns:24px minmax(0,1fr);padding:5px 6px;font-size:11px}.app-shell.tablet-layout .workspace-pattern-legend .color-swatch,.app-shell.tablet-layout .project-detail-legend .color-swatch{width:24px;height:24px}.app-shell.tablet-layout .project-list-filters{grid-template-columns:1fr;gap:8px}.app-shell.tablet-layout .project-search{width:100%;min-height:38px;font-size:14px}.app-shell.tablet-layout .project-sort-label{width:100%;min-width:0}.app-shell.tablet-layout .project-sort-label select{width:100%;min-width:0;max-width:none;min-height:38px;font-size:14px}.app-shell.tablet-layout .project-list-batch{flex-wrap:nowrap}.app-shell.tablet-layout .project-recycle-batch{flex-wrap:wrap}.app-shell.tablet-layout .project-layout:not(.project-mobile-detail) .project-detail-drawer{display:flex}.app-shell.tablet-layout .project-detail-back{display:none}.app-shell.tablet-layout .project-detail-legend{max-height:none;overflow:visible}.app-shell.tablet-layout .settings-layout{grid-template-columns:1fr;gap:14px}.app-shell.tablet-layout .color-card-manage{gap:6px;padding:8px;overflow:hidden}.app-shell.tablet-layout .color-card-manage.color-card-reorderable{padding-top:24px}.app-shell.tablet-layout .color-card-main{width:100%;min-width:0}.app-shell.tablet-layout .color-card-manage .color-swatch{box-sizing:border-box;width:100%;max-width:100%;height:40px}.app-shell.tablet-layout .color-card-info strong{font-size:12px}.app-shell.tablet-layout .color-card-name,.app-shell.tablet-layout .color-card-info code{font-size:10px}.app-shell.tablet-layout .color-card-actions{grid-template-columns:1fr 1fr;gap:4px;margin-top:0;display:grid}.app-shell.tablet-layout .color-card-action{min-width:0;min-height:40px;padding:2px 4px;font-size:11px}.settings-avatar-preview,.sidebar-user-avatar{color:#fff;background:linear-gradient(145deg, var(--color-primary,#3b82f6), var(--color-primary-hover,var(--color-primary)));border-radius:50%;flex:none;place-items:center;width:72px;height:72px;font-size:28px;font-weight:700;display:grid;overflow:hidden}.sidebar-user-avatar{width:28px;height:28px;font-size:12px}.sidebar-user{align-items:center;gap:8px;min-width:0;display:inline-flex}.sidebar-user #currentUserText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}html.is-mobile-layout .app-shell:not(.tablet-layout):not(.hidden){flex-direction:column;min-height:100dvh;display:flex}html.is-mobile-layout .app-shell:not(.tablet-layout) .sidebar{display:none}.nav-item,.mobile-bottom-icon{position:relative}.check-label{min-height:auto;font-size:var(--font-body);color:var(--color-text-secondary);align-items:center;gap:8px;margin:0;display:flex}.check-label input[type=checkbox],.check-label input[type=radio]{width:16px;height:16px;min-height:16px}.hidden{display:none!important}.editor-view.is-layout-pending,.assembly-view.is-layout-pending{opacity:0!important;pointer-events:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.media-frame{background:var(--color-bg-subtle);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.media-frame img{object-fit:cover;width:100%;height:100%;display:block}.media-frame img.image-load-failed{display:none}.media-frame .media-fallback{color:#94a3b8;text-align:center;padding:8px;font-size:12px;line-height:1.4;display:none}.media-frame.is-empty .media-fallback,.media-frame.has-error .media-fallback,.media-frame.is-error .media-fallback{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.topbar-main{flex:auto;gap:4px;min-width:0;display:grid}.topbar-title-row{align-items:baseline;gap:12px;min-width:0;display:flex}.topbar-help-link{color:var(--color-primary);flex:none;font-size:13px;font-weight:500;line-height:1.2;text-decoration:none}.topbar-help-link:hover{text-decoration:underline}.mobile-my-menu-toggle,.mobile-bottom-nav,.mobile-workspace-steps,.mobile-my-sheet{display:none}.mobile-bottom-nav{z-index:220;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffffa;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #0f172a14}.mobile-bottom-nav.has-admin{grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;padding-left:4px;padding-right:4px}.mobile-bottom-nav.has-admin .mobile-bottom-label{font-size:10px}.mobile-bottom-nav.has-admin .mobile-bottom-item{min-width:0;padding:4px 0}.mobile-bottom-item{min-height:52px;color:var(--color-text-secondary);touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;font-size:12px;line-height:1.2;display:flex}.mobile-bottom-icon{flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;line-height:0;display:flex}.mobile-bottom-icon svg{width:22px;height:22px}.mobile-bottom-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;line-height:1.1;overflow:hidden}.mobile-bottom-item.active{color:var(--color-primary);background:var(--color-primary-soft)}.mobile-bottom-admin:not(.hidden){color:#7c3aed}.mobile-bottom-admin.active{color:#6d28d9;background:#f5f3ff}.mobile-workspace-steps{gap:8px;margin:8px 0 12px}.mobile-step-tab{border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:42px;color:var(--color-text-secondary);border-radius:10px;font-size:13px}.mobile-step-tab.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-hover)}.mobile-my-sheet{z-index:320;position:fixed;inset:0}.mobile-my-sheet-backdrop{background:#0f172a73;position:absolute;inset:0}.mobile-my-sheet-card{left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom,0px));border:1px solid var(--color-border);background:var(--color-bg-surface);-webkit-overflow-scrolling:touch;border-radius:14px;gap:10px;max-height:min(72vh,520px);padding:14px;display:grid;position:absolute;overflow-y:auto}.mobile-my-sheet-groups{gap:8px;display:grid}.mobile-my-sheet-group-label{color:#94a3b8;letter-spacing:.04em;text-transform:uppercase;margin:4px 0 0;padding:0 2px;font-size:11px;font-weight:600}.mobile-my-sheet-group-label:first-child{margin-top:0}.mobile-my-sheet-head{border-bottom:1px solid var(--color-border-subtle);gap:4px;padding-bottom:10px;display:grid}.mobile-my-sheet-head strong{color:#0f172a;font-size:16px}.mobile-my-sheet-role{color:var(--color-text-muted);font-size:13px}.mobile-my-action{min-height:46px}.mobile-my-action-danger{color:#b91c1c}.eyebrow{color:var(--color-text-muted);text-transform:uppercase;margin:0 0 10px;font-size:13px}.captcha-field{color:var(--color-text-label);gap:6px;font-size:14px;display:grid}html[data-captcha=off] .captcha-field{display:none!important}.captcha-input-wrap{align-items:center;gap:10px;display:flex}.captcha-input-wrap input{flex:1;min-width:0}.captcha-image{border:1px solid var(--color-border-soft);background:var(--color-bg-muted);cursor:pointer;object-fit:cover;border-radius:8px;flex-shrink:0;width:132px;height:44px}.captcha-image:hover{border-color:#94a3b8}.tabs{gap:10px;margin-bottom:24px;display:flex}.form{gap:18px;display:grid}.form-register{gap:14px}.password-field-label{gap:8px;display:grid}.password-input-wrap{display:block;position:relative}.password-input-wrap input{width:100%;padding-right:42px}.password-input-wrap input::-ms-reveal{display:none}.password-input-wrap input::-ms-clear{display:none}.password-eye-btn{width:32px;height:32px;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-eye-btn:hover{color:var(--color-primary);background:var(--color-bg-muted)}.password-eye-btn .eye-icon{fill:none;stroke:currentColor;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px;margin:auto;position:absolute;inset:0}.password-eye-btn .eye-icon.hidden{display:none}.forgot-security-question{background:var(--color-bg-subtle);color:var(--color-text-secondary);border-radius:8px;margin:8px 0;padding:10px 12px;font-size:.92rem}.password-input-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.password-toggle-btn{white-space:nowrap;min-width:64px;min-height:42px;padding:0 12px}.message,.hint{min-height:22px;color:var(--color-text-muted);margin-top:12px;font-size:14px}.message.error{color:#b91c1c}.message.ok{color:#15803d}.status{color:#166534;background:#dcfce7;border-radius:6px;width:fit-content;max-width:100%;padding:8px 12px;font-size:14px;display:inline-flex}.status.error{color:#991b1b;background:#fee2e2}.content{min-width:0;padding:var(--space-page-y) var(--space-page-x)}.topbar{margin-bottom:var(--space-section);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar-notices-btn{white-space:nowrap;border-radius:999px;flex:none;align-self:center;min-height:34px;margin-left:auto;padding:6px 12px;font-weight:600;line-height:1.2;position:relative}.topbar-notices-btn.active{background:var(--color-primary);color:#fff;border-color:#0000}.topbar-notices-btn .community-unread{pointer-events:none;min-width:1.1em;margin-left:0;padding:0 5px;font-size:11px;line-height:1.35;position:absolute;top:-4px;right:-4px}.topbar h2{font-size:var(--font-page-title);color:var(--color-text-primary);margin:0;font-weight:700;line-height:1.25}.view{display:none}.view.active{display:block}.section-grid{gap:18px;display:grid}.workspace-flow-chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.workspace-flow-chip{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);color:#94a3b8;border-radius:999px;align-items:center;gap:5px;padding:4px 10px 4px 6px;font-size:12.5px;line-height:1;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.workspace-flow-chip em{background:var(--color-border-soft);width:18px;height:18px;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-style:normal;font-weight:600;display:inline-flex}.workspace-flow-chip.is-active{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#bfdbfe;font-weight:600}.workspace-flow-chip.is-active em{background:var(--color-primary);color:#fff}.workspace-blank-entry{background:linear-gradient(135deg,#f8fbff 0%,#eef4ff 100%);border:1px solid #c7d7f5;border-radius:10px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;margin-bottom:4px;padding:14px 16px;display:flex}.workspace-blank-entry-copy{gap:4px;min-width:0;display:grid}.workspace-blank-entry-copy strong{color:#1e3a8a;font-size:15px}.workspace-blank-entry-copy .hint{margin:0}.workspace-blank-entry>button{flex-shrink:0}.blank-project-dialog{width:min(520px,100vw - 32px);max-height:calc(100dvh - 24px);overflow-y:auto}.blank-project-size-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blank-project-form .setting-field-hint{margin:0}#blankFillColorWrap select{width:100%}.project-card-badge{color:#3730a3;background:#e0e7ff;border-radius:999px;align-items:center;min-height:20px;padding:0 7px;font-size:11px;font-weight:700;display:inline-flex}.project-card-badge.is-image{background:var(--color-border-soft);color:var(--color-text-soft)}.project-card-badge.is-template{color:#92400e;background:#fef3c7}.project-card-badge.is-community{color:#6d28d9;background:#ede9fe}.project-progress-badge{color:#047857;background:#ecfdf5;border-radius:999px;align-items:center;min-height:20px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.project-progress-badge.is-done{background:#d1fae5}.workspace-flow-status,.generate-flow-status{color:var(--color-text-soft);margin:0;font-size:14px;line-height:1.6}.workspace-flow-status-inline{flex:180px;min-width:0;margin:0;font-size:13px;line-height:1.45}.generate-flow-status{background:var(--color-primary-soft);color:#1e40af;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:12px;padding:10px 12px}.flow-step-badge{background:var(--color-primary);color:#fff;border-radius:999px;flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex}.pattern-actions{justify-items:start;gap:8px;display:grid}.pattern-action-message{width:100%;margin:0}.pattern-action-message.error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:8px 10px}.pattern-post-save-actions{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:14px}.pattern-post-save-title{color:#166534;margin:0 0 10px;font-size:14px;font-weight:600}.pattern-post-save-buttons{flex-wrap:wrap;gap:10px;display:flex}.workspace-upload-panel .compact-head{align-items:flex-start;margin-top:0;margin-bottom:0}.workspace-upload-panel .compact-head h3{margin:0;padding-top:2px}.workspace-upload-panel .compact-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.workspace-upload-panel .compact-toolbar button{white-space:nowrap;min-height:32px;padding:5px 10px;font-size:13px}.workspace-library-section{border-top:1px solid var(--color-border-subtle);flex-direction:column;flex:auto;gap:8px;min-height:0;margin-top:0;padding-top:10px;display:flex;container:workspace-library/inline-size}.workspace-library-head{flex-flow:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.workspace-library-title{flex-wrap:wrap;align-items:baseline;gap:6px;min-width:0;display:flex}.workspace-library-title h3{white-space:nowrap;margin:0}.workspace-library-count{color:var(--color-text-muted);font-size:12px}.workspace-library-actions{flex-wrap:nowrap;flex:auto;justify-content:flex-end;gap:6px;min-width:0;display:flex}.workspace-library-actions button{white-space:nowrap;flex:1 1 0;min-width:0}.workspace-library-filters{flex-flow:row;align-items:center;gap:6px;min-width:0;display:flex}.workspace-library-filters>input{flex:1 1 0;width:auto;min-width:0}.workspace-library-filters input,.workspace-library-filters select{min-height:32px;padding:5px 8px;font-size:13px}@container workspace-library (width<=420px){.workspace-library-filters{flex-flow:row;gap:4px;display:flex}.workspace-library-filters>input{flex:1 1 0;min-width:0;min-height:34px;padding:5px 6px;font-size:13px}.workspace-library-filter-toolbar{flex:none;gap:4px;width:auto;display:flex}.workspace-library-filter-toolbar select{flex:none;min-width:0;max-width:100px;min-height:34px;padding:4px 6px;font-size:12px}.workspace-library-filter-toggle,button.workspace-library-filter-toggle{flex:none;gap:4px;min-width:0;min-height:34px;padding:0 6px;font-size:12px}}.workspace-library-filter-toolbar{flex-wrap:nowrap;flex:none;align-items:center;gap:6px;width:auto;display:flex}.workspace-library-filter-toolbar select{flex:none;width:auto;min-width:88px;max-width:120px}.workspace-library-filter-toggle,button.workspace-library-filter-toggle{border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:32px;color:var(--color-text-soft);white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.workspace-library-filter-toggle:hover:not(:disabled),button.workspace-library-filter-toggle:hover:not(:disabled){background:var(--color-bg-subtle);border-color:var(--color-border-input);color:var(--color-text-secondary)}.workspace-library-filter-toggle[aria-pressed=true],button.workspace-library-filter-toggle[aria-pressed=true]{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#93c5fd}.workspace-library-filter-toggle:disabled,button.workspace-library-filter-toggle:disabled{opacity:.55;cursor:not-allowed;background:var(--color-bg-subtle)}.workspace-library-filter-toggle-check{border:1px solid var(--color-border-input);background:var(--color-bg-surface);border-radius:3px;flex-shrink:0;width:14px;height:14px}.workspace-library-filter-toggle[aria-pressed=true] .workspace-library-filter-toggle-check{border-color:var(--color-primary);background:var(--color-primary);box-shadow:inset 0 0 0 2px #fff}.workspace-library-selected-badge{background:var(--color-primary);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;line-height:18px}.workspace-library-selected-only{border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:32px;color:var(--color-text-soft);white-space:nowrap;border-radius:6px;padding:0 8px;font-size:12px}.workspace-library-filter-hint{margin:0}.workspace-library-empty{text-align:center;color:var(--color-text-muted);grid-column:1/-1;padding:16px 10px;font-size:13px}.workspace-file-scroll{border:1px solid var(--color-border-subtle);background:#fbfdff;border-radius:8px;min-height:160px;max-height:min(520px,62vh);padding:8px;overflow-y:auto}.workspace-file-scroll .file-library{margin-top:0}.settings-section-title{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;margin:14px 0 8px;font-size:12px;font-weight:700}.settings-section-title:first-child{margin-top:0}.settings-section-title-inset{text-transform:none;letter-spacing:normal;color:var(--color-text-soft);margin:0 0 10px;font-size:13px}.panel{padding:var(--space-card)}.panel h3{margin:0 0 14px}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.panel-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar{grid-template-columns:minmax(0,1fr) auto}.file-input{display:none}.file-name{border:1px solid var(--color-border-input);background:var(--color-bg-surface);min-width:0;min-height:38px;color:var(--color-text-soft);overflow-wrap:anywhere;white-space:normal;border-radius:6px;padding:8px 12px;line-height:1.35;display:block;overflow:hidden}.compact-head{margin-top:18px}.compact-toolbar{grid-template-columns:repeat(3,auto)}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.bead-size-inline{color:var(--color-text-muted);align-items:center;gap:8px;margin:-4px 0 14px;font-size:13px;display:flex}.bead-size-inline label{color:inherit;font-size:inherit;flex:none;display:block}.bead-size-select{border-radius:6px;width:auto;min-width:148px;min-height:32px;padding:5px 28px 5px 10px;font-size:13px}#uploadInfo{gap:5px;min-width:0;display:grid}#uploadInfo strong{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#uploadInfo span{color:var(--color-text-soft);font-size:13px}.file-library{grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:8px;display:grid}.file-card{border:1px solid var(--color-border);background:var(--color-bg-surface);cursor:pointer;border-radius:8px;gap:6px;padding:8px;transition:border-color .15s,box-shadow .15s;display:grid;position:relative}.file-card:hover{border-color:#93c5fd}.file-card-head{justify-content:space-between;align-items:center;gap:6px;min-height:22px;display:flex}.file-current-badge{border:1px solid var(--color-primary-hover);color:#fff;background:var(--color-primary);border-radius:999px;flex-shrink:0;align-items:center;width:fit-content;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.2;display:none;box-shadow:0 1px 2px #0f172a1f}.file-card.active{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb24}.file-card.active .file-current-badge{display:inline-flex}.file-check{width:fit-content;min-height:auto;color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:inline-flex}.file-check input{width:auto;min-height:auto}.file-card-thumb{aspect-ratio:1;border:1px solid var(--color-border-subtle);border-radius:6px;width:100%}.file-card-thumb img{object-fit:contain}.file-card strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-card span:not(.file-current-badge){color:var(--color-text-muted);font-size:12px}.file-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.file-actions button{min-height:30px;padding:0 8px;font-size:12px}#adminActionMessage{min-height:0;margin:0}.pattern-result{gap:14px;min-width:0;max-width:100%;margin-top:16px;display:grid}.preview-toolbar{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;grid-template-columns:minmax(72px,auto) minmax(0,1fr);align-items:start;gap:12px;min-width:0;max-width:100%;padding:10px 12px;display:grid}.preview-toolbar-title{gap:2px;padding-top:4px;display:grid}.preview-toolbar-title strong{color:#0f172a;font-size:16px}.preview-toolbar-title span{color:var(--color-text-muted);font-size:12px}.preview-toolbar-main{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.preview-options{flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0;display:flex}.preview-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.preview-actions button{white-space:nowrap;border-radius:8px;min-height:34px}.pattern-result canvas{object-fit:contain;border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px;width:100%;max-width:100%;height:auto;max-height:520px;display:block}.pattern-preview-canvas-wrap{width:100%;min-width:0;max-width:100%;overflow:hidden}#patternSummary,.summary-grid{border:1px solid var(--color-border-subtle);color:var(--color-text-secondary);background:#fbfdff;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;display:grid}.summary-metric{background:var(--color-bg-surface);border:1px solid #e8eef5;border-radius:8px;gap:2px;padding:8px 10px;display:grid}.summary-metric-label{letter-spacing:.02em;text-transform:uppercase;color:#94a3b8;font-size:11px;font-weight:600}.summary-metric strong{color:#0f172a;font-size:14px;font-weight:600;line-height:1.35}.summary-metric.is-saved{background:#f0fdf4;border-color:#bbf7d0}.summary-metric.is-saved strong{color:#166534}.summary-metric.is-draft{background:#fffbeb;border-color:#fde68a}.summary-metric.is-draft strong{color:#92400e}.project-recycle-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.project-recycle-batch{box-shadow:none;background:0 0;border:none;border-radius:0;flex-direction:column;align-items:stretch;gap:6px;margin:0 0 8px;padding:0 2px;display:flex;position:static}.project-recycle-batch-left{align-items:center;gap:8px;width:100%;min-width:0;margin:0;padding:0;display:flex}.project-recycle-batch-left .project-batch-select-all{color:var(--color-text-secondary);font-weight:500}.project-batch-count{color:var(--color-text-muted);white-space:nowrap;font-size:12px;font-weight:500;line-height:1.5}.project-recycle-batch-actions{flex-wrap:wrap;align-items:center;gap:6px;width:100%;display:flex}.project-recycle-batch-all{border:0;width:auto;margin:0;padding:0}.project-recycle-batch .project-batch-restore,.project-recycle-batch .project-batch-delete,.project-recycle-batch .project-batch-clear{background:var(--color-bg-surface);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex:1;min-width:0;min-height:28px;padding:0 10px;font-size:12px;font-weight:500;overflow:hidden}.project-recycle-batch .project-batch-restore:not(:disabled){background:var(--color-bg-surface);color:var(--color-primary);box-shadow:none;border:1px solid #bfdbfe}.project-recycle-batch .project-batch-restore:not(:disabled):hover{background:var(--color-primary-soft);border-color:#93c5fd}.project-recycle-batch .project-batch-delete:not(:disabled){background:var(--color-bg-surface);color:#dc2626;border:1px solid #fecaca}.project-recycle-batch .project-batch-delete:not(:disabled):hover{background:#fef2f2;border-color:#fca5a5}.project-recycle-batch .project-batch-clear:not(:disabled){border:1px solid var(--color-border-soft);background:var(--color-bg-surface);color:var(--color-text-muted)}.project-recycle-batch .project-batch-clear:not(:disabled):hover{border-color:var(--color-border-input);background:var(--color-bg-subtle);color:var(--color-text-soft)}.project-recycle-batch .project-batch-restore:disabled,.project-recycle-batch .project-batch-delete:disabled,.project-recycle-batch .project-batch-clear:disabled{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);color:#b0bcc9;box-shadow:none;cursor:not-allowed}.project-recycle-hint{color:var(--color-text-muted);margin:0 0 10px;font-size:13px;line-height:1.5}.project-recycle-meta{color:#94a3b8;flex-wrap:wrap;gap:6px 10px;font-size:11px;line-height:1.4;display:flex}.project-recycle-actions .danger-btn{background:#fff5f5}.project-recycle-actions .danger-btn:hover{color:#b91c1c;background:#fee2e2;border-color:#fecaca}.project-detail-preview,.project-detail-side{min-width:0}.current-source-thumb{border:1px solid var(--color-border-subtle);border-radius:6px;flex:0 0 40px;width:40px;height:40px}.project-detail-media{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px;width:100%;min-height:240px}.project-detail-media canvas,.project-detail-media img{object-fit:contain;width:100%;max-width:100%;height:100%;display:block}.source-preview .media-frame{aspect-ratio:1;border:1px solid var(--color-border-subtle);border-radius:8px;width:100%}.source-preview figcaption{color:var(--color-text-muted);text-align:center;margin-top:6px;font-size:13px}.project-detail-preview-hint{margin:8px 0 0}.project-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.source-preview{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:12px;display:grid}.source-preview img{aspect-ratio:1;object-fit:contain;border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;width:100%}.color-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.color-item,.list-row{border:1px solid var(--color-border-subtle);background:#fbfdff;border-radius:8px;gap:6px;padding:10px;display:grid}.color-item{grid-template-columns:36px minmax(0,1fr);align-items:center}.color-swatch{border:1px solid var(--color-border-input);border-radius:6px;width:36px;height:36px}.inline-form{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.empty-state p{color:var(--color-text-muted);line-height:1.8}.toolbar-group{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:3px;display:inline-flex}.toolbar-group-status{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:8px;flex-shrink:0;align-items:center;gap:8px;margin-left:auto;padding:3px;display:inline-flex}.toolbar-group-view button{min-width:38px;padding:0 10px}.toolbar-history-hint{min-width:36px;color:var(--color-text-muted);font-variant-numeric:tabular-nums;text-align:center;-webkit-user-select:none;user-select:none;padding:0 6px;font-size:11px;line-height:34px}.toolbar-group:has(#editorUndoButton) button{min-width:96px;padding:0 8px}.compare-slider-root{z-index:0;pointer-events:none;position:absolute;inset:0}.compare-slider-root.hidden{display:none}.compare-slider-image{object-fit:contain;object-position:center;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;background:#0f172a;width:100%;height:100%}.compare-slider-on>.compare-slider-root .compare-slider-image{clip-path:inset(0 0 0 var(--compare-pos,50%))}.compare-slider-image.is-empty{visibility:hidden}.compare-slider-reveal{top:0;bottom:0;right:0;left:var(--compare-pos,50%);z-index:4;pointer-events:auto;cursor:ew-resize;touch-action:none;position:absolute}.compare-slider-handle{z-index:5;pointer-events:auto;cursor:ew-resize;touch-action:none;place-items:center;width:44px;margin-left:-22px;display:grid;position:absolute;top:0;bottom:0}.compare-slider-handle:before{content:"";background:#ffffffeb;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #0f172a59}.compare-slider-grip{z-index:1;border:2px solid var(--color-primary);background:#fff;border-radius:50%;width:36px;height:36px;position:relative;box-shadow:0 2px 8px #0f172a40}.compare-slider-labels{pointer-events:none;white-space:nowrap;gap:48px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.compare-slider-labels em{color:#fff;background:#0f172a9e;border-radius:999px;padding:2px 8px;font-size:11px;font-style:normal;font-weight:700}.button-link{color:#fff;background:var(--color-primary);border-radius:6px;justify-content:center;align-items:center;min-height:38px;padding:0 16px;text-decoration:none;display:inline-flex}#shareCanvas{pointer-events:none;background:0 0;border-radius:4px;width:100%;max-width:none;height:100%;display:block;position:absolute;inset:0;transform:none}.toast-container{z-index:2000;gap:10px;max-width:min(360px,100vw - 32px);display:grid;position:fixed;top:20px;right:20px}.toast{color:#fff;opacity:0;background:#334155;border-radius:8px;padding:12px 16px;transition:opacity .2s,transform .2s;transform:translateY(-8px);box-shadow:0 12px 30px #0f172a2e}.toast.show{opacity:1;transform:translateY(0)}.toast-ok{background:#15803d}.toast-error{background:#b91c1c}.toast-info{background:var(--color-primary)}.confirm-modal{z-index:2147483000;overscroll-behavior:contain;place-items:center;display:grid;position:fixed;inset:0}.confirm-modal.hidden{display:none}.confirm-modal-backdrop{background:#0f172a73;position:absolute;inset:0}.confirm-modal-card{overscroll-behavior:contain;border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px;width:min(420px,100vw - 32px);max-height:calc(100dvh - 24px);padding:24px;position:relative;overflow-y:auto;box-shadow:0 24px 60px #0f172a2e}.confirm-modal-card h3{margin:0 0 10px}.confirm-modal-card p{color:var(--color-text-secondary);margin:0 0 18px;line-height:1.6}.confirm-modal-actions{justify-content:flex-end;gap:10px;display:flex}.confirm-modal-input{margin-bottom:12px}.confirm-modal-textarea{resize:vertical;min-height:120px;font-family:inherit;line-height:1.5}.confirm-modal-card .message{margin:0 0 12px}.onboarding-banner{background:var(--color-primary-soft);color:#1e3a8a;border:1px solid #bfdbfe;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:14px 16px;display:flex}.onboarding-banner span{color:var(--color-text-soft);margin-top:4px;font-size:14px;display:block}.current-source-hint{background:var(--color-primary-soft);color:#1e40af;border:1px solid #bfdbfe;border-radius:8px;flex-flow:wrap;align-items:center;gap:8px;min-width:0;max-width:100%;margin-bottom:10px;padding:8px 10px;font-size:13px;display:flex;overflow:hidden}.current-source-hint .flow-step-badge{flex:none;width:auto;min-width:24px;height:22px;padding:0 8px;font-size:11px}.current-source-hint .current-source-thumb{flex:0 0 40px;width:40px;height:40px}.current-source-hint .current-source-meta{flex-wrap:wrap;flex:120px;align-items:baseline;gap:2px 6px;min-width:0;display:flex;overflow:hidden}.current-source-hint .current-source-name{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.current-source-hint .current-source-size{opacity:.9;flex:none}.advanced-settings{border:1px solid var(--color-border-subtle);background:#fbfdff;border-radius:8px;margin-bottom:8px;padding:8px 10px}.advanced-settings summary{cursor:pointer;color:var(--color-text-soft);font-size:14px;font-weight:600;list-style:none}.advanced-settings summary::-webkit-details-marker{display:none}.advanced-settings summary:before{content:"▸";color:#94a3b8;margin-right:6px;transition:transform .15s;display:inline-block}.advanced-settings[open] summary:before{transform:rotate(90deg)}.advanced-settings-intro{margin:0 0 8px;font-size:12px}.advanced-settings[open] summary{margin-bottom:6px}.advanced-settings-groups{gap:8px;display:grid}.advanced-settings-group{background:var(--color-bg-surface);border:1px solid #e8eef5;border-radius:6px;padding:8px 10px}.advanced-settings-group-title{color:var(--color-text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:700}.advanced-settings-grid{gap:8px!important;margin-bottom:0!important}.advanced-settings-grid .setting-field{gap:4px;display:grid}.advanced-settings-grid .setting-field-span{grid-column:1/-1}.setting-field-label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.setting-field-hint{color:#94a3b8;font-size:11px;line-height:1.4}.pattern-summary-panel{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:8px;margin:4px 0 8px;padding:10px 12px}.pattern-summary-layout{align-items:flex-start;gap:10px;display:flex}.pattern-summary-meta{flex:1;gap:4px;min-width:0;display:grid}.pattern-summary-meta>strong{color:#1e293b;font-size:14px}.pattern-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;display:grid}.pattern-summary-stats>div{gap:2px;display:grid}.pattern-summary-stats span{color:var(--color-text-muted);font-size:11px}.pattern-summary-stats strong{color:#1e293b;font-size:14px;font-weight:600}.pattern-summary-extra{color:#94a3b8;margin:0;font-size:11px}.pattern-ratio-preview{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:10px;align-items:center;gap:14px;margin:10px 0 12px;padding:12px 14px;display:flex}.pattern-ratio-shape{border:2px solid var(--color-primary);background:linear-gradient(135deg, #dbeafe 0%, var(--color-primary-soft) 100%);border-radius:6px;flex:none;width:96px;height:96px;box-shadow:inset 0 0 0 1px #ffffffa6}.pattern-ratio-shape.is-warning{background:linear-gradient(135deg,#fde68a 0%,#fffbeb 100%);border-color:#f59e0b}.pattern-ratio-shape.is-extreme{background:linear-gradient(135deg,#fecaca 0%,#fef2f2 100%);border-color:#ef4444}.pattern-ratio-meta{gap:6px;min-width:0;display:grid}.pattern-ratio-meta strong{color:#1e293b;font-size:15px}.pattern-ratio-size{color:var(--color-text-muted);font-size:13px}.pattern-ratio-warning{margin:0;font-size:13px;line-height:1.5}.pattern-ratio-warning.warn{color:#b45309}.pattern-ratio-warning.danger{color:#b91c1c}.preview-rotation-toolbar{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:10px;grid-template-columns:minmax(0,auto) minmax(0,1fr);justify-content:stretch;align-items:center;gap:12px;min-width:0;max-width:100%;padding:12px 16px;display:grid}.preview-rotation-title{gap:2px;display:grid}.preview-rotation-title strong{color:#0f172a;font-size:14px}.preview-rotation-title span{color:var(--color-text-muted);font-size:12px}.image-rotation-buttons{border:1px solid var(--color-border-input);background:var(--color-bg-surface);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;min-width:0;display:grid;overflow:hidden}.rotation-option{border:0;border-right:1px solid var(--color-border);background:var(--color-bg-surface);min-width:0;min-height:34px;color:var(--color-text-secondary);white-space:normal;border-radius:0;padding:7px 6px;font-size:13px;font-weight:700;line-height:1.25}.rotation-option:last-child{border-right:0}.rotation-option:hover{background:var(--color-primary-soft);border-color:#93c5fd}.rotation-option:active{transform:translateY(1px)}.rotation-option.secondary{background:var(--color-bg-subtle);color:var(--color-text-soft)}.rotation-option.secondary:hover{background:#eef2f7}.rotation-option.active{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:0 0 0 3px #2563eb24}.generate-estimate-panel{background:#f8fbff;border:1px solid #dbeafe;border-radius:10px;margin:0 0 12px;padding:12px 14px}.generate-estimate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;display:grid}.generate-estimate-grid>div{gap:4px;display:grid}.generate-estimate-grid span{color:var(--color-text-muted);font-size:12px}.generate-estimate-grid strong{color:#1e293b;font-size:15px}.generate-estimate-extra{margin:10px 0 0}.generate-estimate{margin:0 0 12px}.pattern-actions{flex-wrap:wrap;gap:10px;display:flex}.pattern-actions button:first-child{flex:1;min-width:140px}.focus-highlight{border-radius:12px;box-shadow:0 0 0 2px #2563eb3d}.project-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width>=901px){.project-layout.project-desktop .project-list-panel{align-self:start;max-height:calc(100dvh - 24px);position:sticky;top:12px;overflow:hidden}}.project-sort-label{margin:0;font-size:0;display:block}.project-sort-label select{border:1px solid var(--color-border);background:var(--color-bg-surface);color:#0f172a;border-radius:8px;min-width:118px;min-height:38px;padding:6px 28px 6px 10px;font-size:13px}@container project-list (width<=999px){.project-list-filters{grid-template-columns:1fr}.project-search{width:100%}.project-sort-label{width:100%;min-width:0}.project-sort-label select{width:100%;min-width:0;max-width:none}}.project-detail-topbar{z-index:2;background:linear-gradient(#fff 85%,#fff0);gap:10px;margin-bottom:8px;padding:8px 0 0;display:grid;position:sticky;top:0}#projectDetailMessage:not(:empty){margin-top:0;margin-bottom:8px}.project-detail-back{text-align:center;box-sizing:border-box;justify-content:center;align-items:center;width:fit-content;line-height:1.25;display:none}.project-detail-title-row,.project-detail-inline-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.project-detail-inline-actions button{text-align:center;justify-content:center;align-items:center;min-height:38px;line-height:1.25;display:inline-flex}.project-detail-name-input{flex:1;min-width:160px}.project-detail-hero{gap:8px;margin-bottom:16px;display:grid}.project-detail-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-detail-primary-btn{min-height:44px;font-size:15px;font-weight:700}.project-detail-edit-btn{text-align:center;justify-content:center;align-items:center;min-height:44px;line-height:1.25;display:inline-flex}.project-detail-secondary-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.project-detail-secondary-actions button{text-align:center;white-space:normal;justify-content:center;align-items:center;min-height:40px;padding:8px 6px;font-size:13px;line-height:1.2;display:inline-flex}.project-detail-preview-toolbar{flex-wrap:wrap;align-items:center;margin-bottom:10px;display:flex}.project-detail-legend-section{margin-top:18px}.project-detail-legend-section h3{margin:0 0 12px}.project-reference-panel{border:1px solid var(--color-border-subtle);background:#fbfdff;border-radius:8px;margin-top:4px;padding:10px 12px}.project-reference-panel summary{cursor:pointer;color:var(--color-text-soft);font-size:13px;font-weight:600}.media-frame.source-media.is-missing-source{background:#fff7ed;border:1px dashed #fdba74;place-items:center;min-height:96px;display:grid}.media-frame.source-media.is-missing-source img{display:none}.media-frame.source-media.is-missing-source .media-fallback{color:#9a3412;text-align:center;padding:12px;font-size:13px;display:block}.project-list-panel{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;gap:0;min-height:0;padding:12px;display:flex;overflow:hidden;container:project-list/inline-size}.project-list-header{flex-shrink:0;gap:8px;margin-bottom:6px;display:grid}.project-list-scroll{scrollbar-width:thin;scrollbar-color:#94a3b859 transparent;flex-direction:column;flex:1;gap:4px;min-height:0;display:flex;overflow:hidden auto}.project-list-scroll::-webkit-scrollbar{width:4px}.project-list-scroll::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:999px}.project-list-scroll::-webkit-scrollbar-track{background:0 0}.project-list-batch{z-index:2;background:var(--color-bg-surface);border-bottom:1px solid var(--color-bg-muted);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:0 0 4px;display:flex;position:sticky;top:0}.project-list-controls,.project-list-viewport,.project-list-listhead,.project-list-stack{display:none}.project-batch-select-all{min-height:24px;color:var(--color-text-soft);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin:0;padding:0;font-size:13px;font-weight:500;display:inline-flex}.project-batch-select-all input{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary);flex-shrink:0;margin:0}.project-batch-select-all:has(input:disabled){opacity:.45;cursor:not-allowed}.project-batch-delete{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);color:#94a3b8;cursor:pointer;border-radius:6px;min-height:28px;padding:0 10px;font-size:12px;font-weight:500}.project-batch-delete:not(:disabled){color:#dc2626;background:var(--color-bg-surface);border-color:#fecaca}.project-batch-delete:not(:disabled):hover{background:#fef2f2}.project-batch-delete:disabled{background:var(--color-bg-subtle);color:#b0bcc9;cursor:not-allowed;border-color:#e8eef5}.project-list-message{border-radius:6px;min-height:0;margin:0;padding:4px 8px;font-size:12px}.project-list-message:empty,.project-list-scroll>.message:empty,#recycleListMessage:empty,#projectDetailMessage:empty{min-height:0;margin:0;padding:0;display:none}.project-list-toolbar{justify-content:space-between;align-items:center;gap:10px;display:flex}.project-toolbar-btn{min-height:34px;padding:0 12px;font-size:13px}.project-list-filters{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.project-list-create-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.project-create-primary,.project-create-secondary{min-height:38px;font-size:13px;font-weight:600}.project-list-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.project-count-badge{background:var(--color-border-soft);min-width:36px;min-height:24px;color:var(--color-text-secondary);border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.project-list-header h3{margin:0;font-size:16px}.project-search{width:100%;min-height:38px}.project-empty-state{text-align:center;min-height:160px;color:var(--color-text-muted);border:1px dashed var(--color-border);background:var(--color-bg-subtle);border-radius:10px;place-content:center;gap:6px;padding:20px 12px;display:grid}.project-empty-state strong{color:var(--color-text-secondary);font-size:15px}.project-empty-state p{margin:0;font-size:13px}.project-empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}.project-detail-drawer{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;align-self:start;min-width:0;display:flex;overflow:visible}.project-detail-content{padding-right:2px;overflow:visible}.project-detail-placeholder{border:1px dashed var(--color-border-input);background:var(--color-bg-subtle);min-height:320px;color:var(--color-text-muted);text-align:center;border-radius:8px;flex:1;place-content:center;gap:8px;padding:32px;display:grid}.project-detail-placeholder strong{color:var(--color-text-secondary);font-size:18px}.project-detail-content.hidden{display:none}.project-detail-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.project-detail-header h3{margin:0}.project-detail-actions-bar,.project-detail-header,.project-detail-actions{display:none}.project-detail-side{align-content:start;gap:12px;display:grid}.project-detail-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.project-detail-legend{max-height:280px;overflow-y:auto}.project-status-badge{color:#4338ca;background:#eef2ff;border-radius:999px;width:fit-content;padding:2px 8px;font-size:12px;display:inline-flex}.local-preview-info{color:#92400e;gap:6px;min-width:0;font-size:14px;display:grid;overflow:hidden}.local-preview-info strong{overflow-wrap:anywhere;white-space:normal;min-width:0;display:block}.button-like{border:1px solid var(--color-border-input);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:8px 14px;font-size:14px;display:inline-flex}.hex-input-row{grid-template-columns:36px minmax(0,1fr);align-items:center;gap:8px;display:grid}.hex-preview-swatch{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;width:36px;height:36px}.field-hint{min-height:18px;color:var(--color-text-muted);margin-top:4px;font-size:12px;line-height:1.4;display:block}.field-hint.error{color:#b91c1c}.field-hint.ok{color:#047857}.color-detail-preview{grid-template-columns:72px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:12px;display:grid}.color-detail-swatch{border:1px solid var(--color-border);border-radius:12px;width:72px;height:72px}.color-detail-meta{color:var(--color-text-secondary);gap:6px;font-size:14px;display:grid}.color-detail-hex-field{gap:6px;margin-bottom:4px;display:grid}.color-detail-hex-label{color:var(--color-text-muted);font-size:13px}.color-detail-hex-copy{border:1px solid var(--color-border);background:var(--color-bg-subtle);color:#0f172a;width:100%;min-height:40px;font:inherit;letter-spacing:.02em;border-radius:10px;padding:0 12px;font-size:16px}.color-detail-hex-copy:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.color-card-manage{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;gap:8px;padding:10px;transition:border-color .12s,box-shadow .12s,transform .12s;display:grid;position:relative}.color-card-manage.color-card-reorderable{padding-top:28px}.color-drag-handle{color:#94a3b8;cursor:grab;touch-action:none;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:20px;padding:0;font-size:14px;line-height:1;display:inline-flex;position:absolute;top:4px;left:50%;transform:translate(-50%)}.color-drag-handle:hover,.color-drag-handle:focus-visible{color:var(--color-text-soft);background:var(--color-bg-muted)}.color-card-manage.is-dragging{opacity:1;border-color:#3b82f6;transform:scale(1.02);box-shadow:0 8px 22px #2563eb38}.color-card-manage.is-dragging-floating{z-index:1200;pointer-events:none;will-change:left, top;box-sizing:border-box;margin:0;position:fixed;overflow:hidden}.color-card-placeholder{background:linear-gradient(135deg,#dbeafed9,#eff6ffeb);border:1px dashed #93c5fd;border-radius:10px;justify-self:stretch;min-height:0}.palette-color-grid-manage.is-pointer-dragging .color-card-placeholder{min-height:52px}.color-card-manage.is-drag-over{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb2e}.color-card-manage:hover{border-color:var(--color-border-input);box-shadow:0 4px 14px #0f172a0f}.color-card-manage button{min-height:unset;line-height:1.3}.color-card-main{width:100%;color:var(--color-text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:0;gap:6px;padding:0;display:grid}.color-card-main:hover,.color-card-main:focus,.color-card-main:active{color:var(--color-text-primary);background:0 0}.color-card-main:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:8px}.color-card-manage .color-swatch{border:1px solid #0f172a14;border-radius:8px;width:100%;height:36px}.color-card-info{gap:1px;min-width:0;display:grid}.color-card-info strong{font-size:13px;font-weight:600}.color-card-name{color:var(--color-text-secondary);font-size:12px;font-weight:500}.color-card-info code{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.color-card-actions{gap:6px;margin-top:2px;display:flex}.color-card-action{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);min-height:30px;color:var(--color-text-secondary);cursor:pointer;border-radius:6px;flex:1;padding:4px 6px;font-size:12px}.color-card-action:hover,.color-card-action:focus,.color-card-action:active{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#bfdbfe}.color-card-action.danger{color:#b91c1c;background:var(--color-bg-surface)}.color-card-action.danger:hover,.color-card-action.danger:focus,.color-card-action.danger:active{color:#991b1b;background:#fef2f2;border-color:#fecaca}.color-edit-preview{align-items:center;gap:12px;display:flex}.color-edit-preview-swatch{border:1px solid #0f172a1a;border-radius:10px;width:56px;height:56px}.edit-color-message{min-height:36px;margin:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pattern-legend-fold{margin:0}.pattern-legend-fold-title{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none}.pattern-legend-fold-title::-webkit-details-marker{display:none}.project-detail-legend-section .pattern-legend-fold-title{color:#0f172a;margin:0 0 10px;font-size:15px;font-weight:700}.project-detail-legend-section .pattern-legend-fold-title:before{content:"▸ ";color:var(--color-text-muted);font-weight:400}.project-detail-legend-section .pattern-legend-fold[open] .pattern-legend-fold-title:before{content:"▾ "}#patternResult .pattern-legend-fold{margin-top:8px}#patternResult .pattern-legend-fold-title{color:var(--color-text-secondary);margin:0;padding:8px 0;font-size:14px;font-weight:700}#patternResult .pattern-legend-fold-title:before{content:"▸ ";color:var(--color-text-muted);font-weight:400}#patternResult .pattern-legend-fold[open] .pattern-legend-fold-title:before{content:"▾ "}.settings-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;display:grid}.settings-subnav{border:1px solid var(--color-border);background:var(--color-bg-surface);-webkit-overflow-scrolling:touch;scrollbar-width:thin;border-radius:10px;flex-wrap:nowrap;grid-column:1/-1;gap:8px;padding:6px;display:flex;overflow-x:auto}.settings-subtab{white-space:nowrap;min-height:40px;color:var(--color-text-soft);background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;padding:0 14px}.settings-subtab.active{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#93c5fd}.settings-logout-action{color:#b91c1c;background:#fff7f7;border-color:#fecaca;min-height:42px}.settings-card{height:100%}.settings-info-grid,.settings-stats-grid,.settings-limits-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.settings-panel.active{grid-column:1/-1}.settings-info-grid>div,.settings-stats-grid>div,.settings-limits-grid>div{border:1px solid var(--color-border-subtle);background:var(--color-bg-subtle);border-radius:8px;gap:4px;padding:12px;display:grid}.settings-info-grid span,.settings-stats-grid span,.settings-limits-grid span{color:var(--color-text-muted);font-size:12px}.settings-subsection{border-top:1px solid var(--color-border-subtle);margin-top:20px;padding-top:18px}.settings-subsection h4{color:var(--color-text-secondary);margin:0 0 12px;font-size:14px;font-weight:600}.settings-form-inline{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.settings-profile-nickname{border-bottom:1px solid var(--color-border-subtle);margin-bottom:18px;padding-bottom:18px}.settings-account-top{grid-template-columns:minmax(0,1.45fr) minmax(260px,.85fr);align-items:start;gap:18px;display:grid}.settings-avatar-card{border:1px solid var(--color-border-subtle,#e8eef5);background:var(--color-bg-subtle,#f8fbff);border-radius:12px;align-items:center;gap:14px;margin-bottom:18px;padding:14px;display:flex}.settings-avatar-logout{white-space:nowrap;flex-shrink:0;align-self:center;min-height:36px;margin-left:auto}.settings-avatar-actions{align-content:center;gap:4px;min-width:0;display:grid}.settings-avatar-actions strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:600;line-height:1.3;overflow:hidden}button.settings-avatar-upload-link,.settings-avatar-upload-link{width:fit-content;min-height:auto;box-shadow:none;color:var(--color-primary,#2563eb);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:center;margin:0;padding:0;font-size:13px;font-weight:500;line-height:1.4;display:inline-flex}button.settings-avatar-upload-link:hover,.settings-avatar-upload-link:hover{color:var(--color-primary-hover,#1d4ed8);background:0 0;text-decoration:underline}button.settings-avatar-upload-link:focus-visible,.settings-avatar-upload-link:focus-visible,button.settings-avatar-upload-link:active,.settings-avatar-upload-link:active{background:0 0}.settings-profile-link{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin:14px 0 16px;display:grid}.settings-profile-link label{margin:0}.settings-profile-link-actions{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.settings-limits-details,.settings-pref-advanced{border:1px solid var(--color-border-subtle,#e8eef5);background:var(--color-bg-panel,#fff);border-radius:10px;margin-top:10px;padding:0 12px 10px}.settings-limits-details>summary,.settings-pref-advanced>summary{cursor:pointer;color:var(--color-text-primary,var(--color-text-primary));padding:12px 0 8px;font-weight:600;list-style:none}.settings-limits-details>summary::-webkit-details-marker{display:none}.settings-pref-advanced>summary::-webkit-details-marker{display:none}.settings-algo-summary{color:var(--color-text-muted,var(--color-text-muted));margin-left:6px;font-size:13px;font-weight:500}.settings-avatar-crop-card{max-width:min(420px,92vw)}.settings-avatar-crop-body{justify-items:center;gap:8px;margin:8px 0 12px;display:grid}.settings-avatar-crop-body canvas{border:1px solid var(--color-border-subtle,#e2e8f0);touch-action:none;cursor:grab;background:#111827;border-radius:12px;width:min(256px,72vw);height:auto}.settings-account-primary>h3,.settings-account-aside>h3{margin:0 0 14px}.settings-account-aside{background:linear-gradient(#f8fbff 0%,#fff 100%);border:1px solid #e8eef5;border-radius:12px;gap:12px;padding:16px;display:grid}.settings-info-grid-compact,.settings-stats-grid-compact,.settings-limits-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.settings-account-aside .settings-inline-heading{margin:4px 0 0}.settings-account-bottom{border-top:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:18px;margin-top:20px;padding-top:18px;display:grid}.settings-account-bottom .settings-subsection{border-top:0;margin-top:0;padding-top:0}.settings-profile-nickname button[type=submit]{white-space:nowrap;min-height:38px;padding:0 16px}.settings-account-forms{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px;display:grid}.settings-action-card{background:var(--color-bg-subtle);border:1px solid #e8eef5;border-radius:10px;align-content:start;gap:0;min-height:100%;padding:16px;transition:border-color .15s,box-shadow .15s;display:grid}.settings-action-card.is-open{border-color:#bfdbfe;box-shadow:0 0 0 3px #2563eb14}.settings-action-card-summary{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-action-card-summary .settings-action-card-head{flex:1;min-width:0}.settings-action-card-head h4{color:var(--color-text-secondary);margin:0;font-size:14px;font-weight:600}.settings-action-card-head .hint{color:var(--color-text-muted);margin:4px 0 0;font-size:12px;line-height:1.45}.settings-security-modal{z-index:1000;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.settings-security-modal.hidden{display:none}.settings-security-modal-backdrop{z-index:0;background:#0f172a73;position:absolute;inset:0}.settings-security-modal-card{z-index:1;border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:16px;width:min(440px,100vw - 32px);max-height:calc(100vh - 32px);padding:24px;position:relative;overflow:auto;box-shadow:0 24px 60px #0f172a2e}.settings-security-modal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.settings-security-modal-head h3{color:#0f172a;margin:0;font-size:18px}.settings-security-modal-subtitle{color:var(--color-text-muted);margin:6px 0 0;font-size:13px;line-height:1.5}.settings-security-modal-close{flex-shrink:0;min-height:34px;padding:0 12px;font-size:13px}.settings-security-modal .settings-compact-form{gap:14px}.settings-compact-form{border:0;gap:12px;margin:0;padding:0;display:grid}.settings-compact-form>button[type=submit]{justify-self:start;margin-top:2px}.settings-compact-form .settings-form-actions>button[type=submit]{margin-top:0}.settings-form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.settings-form-message{min-height:0;margin:0;font-size:13px;line-height:1.45}.settings-form-message:empty{display:none}.settings-form-message:not(:empty){border-radius:6px;margin-top:2px;padding:8px 10px}.settings-form-message.error{color:#b91c1c;background:#fef2f2}.settings-form-message.ok{color:#15803d;background:#f0fdf4}.settings-profile-nickname .settings-form-message{grid-column:1/-1}.settings-security-mode-wrap{gap:6px;display:grid}.settings-security-mode-label{color:var(--color-text-label);font-size:14px}.settings-segmented{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;display:grid}.settings-segmented-item{cursor:pointer;margin:0;position:relative}.settings-segmented-item input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.settings-segmented-item span{min-height:34px;color:var(--color-text-muted);border-radius:6px;justify-content:center;align-items:center;padding:0 10px;font-size:13px;transition:background .15s,color .15s;display:flex}.settings-segmented-item:has(input:checked) span{color:var(--color-primary-hover);background:var(--color-primary-soft);font-weight:600}.settings-security-detail{gap:0;display:grid}.settings-profile-actions{margin-top:16px;padding-top:16px}.settings-profile-danger{border-top:0;margin-top:0;padding-top:0}.settings-profile-danger h4{margin:0 0 6px}.settings-profile-danger .hint{margin:0 0 10px}.settings-compact-form input.input-error,.settings-profile-nickname input.input-error,.settings-compact-form select.input-error{border-color:#dc2626;box-shadow:0 0 0 3px #dc26261f}.settings-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.pattern-limits-hint{margin:0;font-size:13px;line-height:1.5}.pattern-limits-hint.error{color:#b91c1c}.danger-btn{color:#b91c1c;background:#fff7f7;border-color:#fecaca}#paletteAdminMessage{white-space:pre-line}.settings-panel{max-width:none}.settings-form{border-bottom:1px solid var(--color-border-subtle);margin-bottom:24px;padding-bottom:24px}.settings-form:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.settings-section-desc{color:var(--color-text-muted);margin:-4px 0 18px;font-size:13px;line-height:1.5}.settings-inline-heading{border-top:1px solid var(--color-border-subtle);color:#1e293b;margin:22px 0 12px;padding-top:18px;font-size:15px;font-weight:600}.settings-preference-form{border-bottom:0;gap:0;margin-bottom:0;padding-bottom:0;display:grid}#settingsPreferencePanel{container:settings-preference/inline-size}.settings-pref-columns{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;display:grid}.settings-pref-columns .settings-pref-group{min-width:0;height:auto;margin-top:0}.settings-pref-columns .settings-pref-group-algo,.settings-pref-columns .settings-pref-group-behavior{grid-column:1/-1;height:auto}.settings-pref-algo-grid{gap:var(--space-field-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.settings-pref-group .check-label{min-height:32px}.settings-form-footer{flex-wrap:wrap;align-items:center;gap:10px;width:100%;margin-top:16px;display:flex}.settings-form-footer>button{flex:none;min-width:120px}.settings-shares-summary{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:16px;display:grid}.settings-shares-summary-item{background:var(--color-bg-subtle);border:1px solid #e8eef5;border-radius:10px;gap:4px;padding:12px 14px;display:grid}.settings-shares-summary-item span{color:var(--color-text-muted);font-size:12px}.settings-shares-summary-item strong{color:#0f172a;font-size:20px;line-height:1.2}.settings-shares-summary-item.is-active strong{color:#15803d}.settings-shares-summary-item.is-closed strong{color:var(--color-text-muted)}.settings-shares-summary-item.is-expired strong{color:#b45309}.settings-pref-group{gap:var(--space-field-gap);padding:var(--space-card);border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:10px;align-content:start;display:grid}.settings-pref-group h4{font-size:var(--font-tab);color:var(--color-text-secondary);letter-spacing:.02em;margin:0 0 2px;font-weight:600}.settings-pref-group label{min-width:0;margin:0}.settings-pref-group .field-hint{font-size:var(--font-hint);color:var(--color-text-muted);margin-top:4px;line-height:1.45}.panel h3{font-size:var(--font-panel-title)}.settings-subtab{font-size:var(--font-tab)}.hint,.field-hint,.settings-section-desc{font-size:var(--font-hint);color:var(--color-text-muted)}.settings-preference-form>button[type=submit]{justify-self:start;margin-top:16px}@container settings-preference (width<=720px){.settings-pref-columns,.settings-pref-algo-grid,.palette-scope-switch{grid-template-columns:1fr}}@container settings-preference (width<=520px){.settings-form-footer{flex-direction:column;align-items:stretch}.settings-form-footer>button{width:100%;min-width:0}}.source-preview figure{gap:6px;margin:0;display:grid}.source-preview figcaption{color:var(--color-text-muted);text-align:center;font-size:12px}.tool-icon{margin-right:4px}.project-progress-metric{grid-column:1/-1}.project-progress-bar-wrap{gap:6px;margin-top:8px;display:grid}.project-progress-bar{background:var(--color-border-soft);border-radius:999px;height:8px;overflow:hidden}.project-progress-bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--color-primary), #38bdf8);height:100%;transition:width .3s}.project-progress-label{color:var(--color-text-muted);font-size:12px}.project-share-badge{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;justify-self:start;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.settings-stat-link{cursor:pointer;transition:background .15s,border-color .15s}.settings-stat-link:hover,.settings-stat-link:focus-visible{background:var(--color-bg-subtle);outline:none}.my-shares-head{margin-bottom:0}.my-shares-head h3{margin-bottom:6px}.my-shares-head .settings-section-desc{margin:0}#mySharesMessage:empty{min-height:0;margin:0;padding:0;display:none}#mySharesMessage:not(:empty){min-height:0;margin-top:8px;margin-bottom:0}.my-shares-empty{text-align:center;border:1px dashed var(--color-border-input);color:var(--color-text-muted);border-radius:12px;padding:28px 16px}.my-shares-empty strong{color:#0f172a;margin-bottom:8px;font-size:16px;display:block}.my-shares-cards{gap:10px;margin-top:10px;display:grid}.my-share-card{border:1px solid var(--color-border-subtle,#e2e8f0);background:var(--color-bg-panel,#fff);border-radius:12px;gap:10px;padding:12px;display:grid}.my-share-card.is-inactive{opacity:.78}.my-share-card-head{align-items:flex-start;gap:10px;display:flex}.my-share-card-check{margin-top:2px}.my-share-card-title{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.my-share-card-title strong{word-break:break-word;flex:auto;min-width:0}.my-share-card-meta{color:var(--color-text-muted,var(--color-text-muted));gap:4px;font-size:13px;display:grid}.my-share-link-id{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.my-share-card-actions{flex-wrap:wrap;gap:8px;display:flex}.my-share-card-actions button{min-height:34px;padding:0 10px;font-size:13px}.workspace-templates-panel{margin:12px 0}.workspace-templates-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.danger-btn{color:#b91c1c;border-color:#fecaca}.list-pager{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;font-size:13px;display:flex}.list-pager-actions{align-items:center;gap:8px;display:flex}.linkish{color:var(--color-link,#2f6f5e);cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.linkish:hover{color:var(--color-link-hover,var(--color-primary-hover));background:0 0;text-decoration:underline}.linkish:focus-visible{outline-offset:2px;background:0 0;outline:2px solid #2563eb59}.linkish:active{color:#1e40af;background:0 0}.nav-unread-badge{color:#fff;text-align:center;pointer-events:none;background:#ef4444;border-radius:999px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:4px;right:8px}.mobile-bottom-icon .nav-unread-badge{top:-4px;right:-10px}.nav-unread-badge.hidden{display:none}.assembly-view{--assembly-bg:#020617;--assembly-bg-elevated:#0b1220;--assembly-surface:#0f172a;--assembly-surface-2:#1e293b;--assembly-text:#f8fafc;--assembly-text-muted:#94a3b8;--assembly-text-soft:#cbd5e1;--assembly-accent:#38bdf8;--assembly-accent-soft:#e0f2fe;--assembly-accent-mid:#7dd3fc;--assembly-border:#94a3b873;--assembly-panel:#0f172ae0;--assembly-panel-strong:#0f172ad1;--assembly-mark:#e2e8f0c7;--assembly-grid-line:#e2e8f0;--assembly-danger:#fecaca;--assembly-success:#86efac;--assembly-warning:#fcd34d}.auth-screen{grid-template-columns:minmax(0,580px) minmax(420px,480px);align-items:center;gap:52px;width:min(1160px,100% - 96px);min-height:100vh;margin:0 auto;padding:56px 0;display:grid}.auth-brand{border:1px solid var(--color-border-soft);text-align:left;background:linear-gradient(#f8fafce0,#f8fafce0),linear-gradient(90deg,#94a3b829 1px,#0000 1px) 0 0/24px 24px,linear-gradient(#94a3b829 1px,#0000 1px) 0 0/24px 24px;border-radius:8px;flex-direction:column;justify-content:center;min-height:520px;padding:54px;display:flex;position:relative;overflow:hidden}.auth-brand h1{max-width:560px;margin:0 0 14px;font-size:42px;line-height:1.15}.auth-brand p{color:#4b5563;max-width:520px;line-height:1.7}.auth-brand .status{margin-top:18px;display:inline-flex}.auth-brand:after{content:"";border:1px solid var(--color-border);background:radial-gradient(circle at 12px 12px, var(--color-primary) 0 7px, transparent 8px), radial-gradient(circle at 36px 12px, #f97316 0 7px, transparent 8px), radial-gradient(circle at 60px 12px, #16a34a 0 7px, transparent 8px), radial-gradient(circle at 84px 12px, #facc15 0 7px, transparent 8px), radial-gradient(circle at 108px 12px, #ef4444 0 7px, transparent 8px), radial-gradient(circle at 132px 12px, #fff 0 7px, transparent 8px), radial-gradient(circle at 12px 36px, #fff 0 7px, transparent 8px), radial-gradient(circle at 36px 36px, #0f172a 0 7px, transparent 8px), radial-gradient(circle at 60px 36px, var(--color-primary) 0 7px, transparent 8px), radial-gradient(circle at 84px 36px, #facc15 0 7px, transparent 8px), radial-gradient(circle at 108px 36px, #16a34a 0 7px, transparent 8px), radial-gradient(circle at 132px 36px, #ef4444 0 7px, transparent 8px), repeating-linear-gradient(90deg, #f8fafc 0 23px, var(--color-border-soft) 23px 24px), repeating-linear-gradient(0deg, transparent 0 23px, var(--color-border-soft) 23px 24px);background-color:#fff;background-repeat:repeat;background-size:144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,144px 48px,24px 24px,24px 24px;border-radius:8px;width:240px;height:168px;margin-top:34px;box-shadow:0 14px 30px #141f341a}.auth-card,.panel{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px}.auth-card{align-self:center;width:100%;min-height:360px;padding:38px;box-shadow:0 18px 42px #141f341a}.auth-panel-title{color:#0f172a;margin:0 0 18px;font-size:22px;line-height:1.2}.auth-wizard-head{margin-bottom:4px}.auth-wizard-head .auth-panel-title{margin-bottom:6px}.auth-panel-subtitle{color:var(--color-text-muted);margin:0 0 20px;font-size:14px;line-height:1.5}.auth-form-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin-top:4px;display:flex}.auth-register-hint{color:var(--color-text-muted);margin:0;font-size:14px}.auth-field-block{color:#4b5563;gap:6px;font-size:14px;display:grid}.auth-primary-btn,button.auth-primary-btn{background:var(--color-primary);color:#fff;border:none;border-radius:8px;width:100%;min-height:44px;font-weight:600}.auth-primary-btn:hover:not(:disabled),button.auth-primary-btn:hover:not(:disabled){background:var(--color-primary-hover)}.auth-primary-btn-inline{width:auto}.auth-wizard-steps{align-items:center;gap:8px;margin:12px 0 18px;display:flex}.auth-wizard-step{color:#94a3b8;white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:flex}.auth-wizard-step.is-active,.auth-wizard-step.is-complete{color:var(--color-primary-hover)}.auth-wizard-step-dot{background:var(--color-bg-surface);border:1px solid #cbd5e1;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:600;display:inline-flex}.auth-wizard-step.is-active .auth-wizard-step-dot,.auth-wizard-step.is-complete .auth-wizard-step-dot{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.auth-wizard-step-track{background:var(--color-border-soft);border-radius:1px;flex:1;min-width:24px;height:2px}.auth-wizard-step-track-fill{background:var(--color-primary);border-radius:1px;width:50%;height:100%;display:block}.auth-step-card{gap:14px;display:grid}.auth-step-hint{color:var(--color-text-muted);margin:0;font-size:13px;line-height:1.5}.auth-field-label{color:var(--color-text-secondary);margin:0;font-size:14px;font-weight:600}.register-security-section{gap:12px;display:grid}.register-security-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.register-security-card{cursor:pointer;margin:0;position:relative}.register-security-card input{opacity:0;pointer-events:none;position:absolute}.register-security-card-inner{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:10px;align-items:flex-start;gap:10px;padding:12px;transition:border-color .15s,background .15s;display:flex}.register-security-card input:checked+.register-security-card-inner{background:var(--color-primary-soft);border-color:#93c5fd}.register-security-card-icon{background:var(--color-bg-subtle);border-radius:8px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.register-security-card-icon svg{fill:none;stroke:#64748b;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.register-security-card-text{gap:2px;min-width:0;display:grid}.register-security-card-text strong{color:#0f172a;font-size:13px}.register-security-card-text small{color:var(--color-text-muted);font-size:12px;line-height:1.4}.register-security-detail{gap:12px;display:grid}.auth-btn-row{background:0 0;border:0;grid-template-columns:1fr 1fr;gap:10px;margin:0;padding:0;display:grid}.auth-switch-row{border-top:1px solid var(--color-border-soft);text-align:center;color:var(--color-text-muted);margin:16px 0 0;padding-top:16px;font-size:14px}.auth-switch-row .link-like{font-weight:600}.register-panel-head{margin-bottom:4px}.register-back-btn{min-height:auto;margin-bottom:8px;padding:0;font-size:13px}.register-step-indicator{color:#94a3b8;margin:-10px 0 16px;font-size:13px}.register-step-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.auth-register-benefits{background:var(--color-bg-subtle);border:1px solid var(--color-border-subtle);color:var(--color-text-soft);border-radius:8px;margin:0;padding:12px 14px;font-size:13px;line-height:1.55}.register-security-mode{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:8px;gap:10px;margin:0;padding:14px;display:grid}.register-security-mode legend{color:var(--color-text-secondary);padding:0 4px;font-size:14px;font-weight:600}.register-mode-option{color:var(--color-text-soft);cursor:pointer;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.register-mode-option input{width:auto;min-height:auto;margin:0}.register-security-field{margin:0 0 0 24px}.auth-card input:focus,.auth-card select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.auth-card input{min-height:42px}.auth-card button[type=submit]{min-height:44px}.register-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px;display:grid}.register-step-actions{background:var(--color-bg-subtle);border:1px solid var(--color-border-subtle);color:var(--color-text-soft);border-radius:8px;margin:-4px 0 0;padding:12px 14px;font-size:13px;line-height:1.55}.auth-legal-check{color:var(--color-text-muted);align-items:flex-start;gap:8px;margin:0;font-size:13px;line-height:1.5;display:flex}.auth-legal-check input[type=checkbox]{flex-shrink:0;width:16px;min-width:16px;height:16px;min-height:16px;margin:2px 0 0;padding:0}.auth-legal-check>span{flex:1;min-width:0}.auth-legal-check a{color:var(--color-primary);text-decoration:none}.auth-legal-check a:hover{text-decoration:underline}.auth-legal-dialog{border:1px solid var(--color-border);border-radius:10px;width:min(480px,100vw - 32px);max-height:calc(100dvh - 32px);padding:0}.auth-legal-dialog::backdrop{background:#0f172a73}.auth-legal-dialog-body{overscroll-behavior:contain;gap:12px;padding:22px;display:grid;overflow-y:auto}.auth-legal-dialog-body h3{margin:0;font-size:18px}.auth-legal-dialog-body p{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.6}.auth-legal-dialog-close{justify-self:start;margin-top:4px}.workspace-upload-panel,.workspace-generate-panel{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.workspace-upload-panel .upload-action-row{grid-template-columns:1fr 1fr;align-items:stretch;gap:8px;display:grid}.workspace-upload-panel .upload-action-row:not(:has(#aiImageEntry:not(.hidden))){grid-template-columns:1fr}.workspace-upload-panel .upload-form-compact{grid-template-columns:1fr;gap:0;margin:0}.workspace-upload-panel .upload-form-compact button{width:100%;min-height:34px}.workspace-upload-panel>.upload-drop-zone>.file-name,.workspace-upload-panel .upload-form-compact .file-name{min-height:0;color:var(--color-text-muted);text-align:center;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;margin-top:6px;padding:0;font-size:12px;line-height:1.35;display:block;overflow:hidden}.workspace-upload-panel .upload-drop-zone{padding:8px 10px}.workspace-upload-panel .upload-hint{text-align:center;margin:4px 0 0;font-size:11px}.upload-sample-row{border-top:1px dashed var(--color-border-soft);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;padding-top:10px;display:flex}.upload-sample-btn{min-height:32px;padding:4px 12px;font-size:12px}.upload-sample-hint{color:var(--color-text-muted);margin:0;font-size:12px}.workspace-upload-panel .upload-sample-row{border:none;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:0}.workspace-upload-panel .upload-sample-btn{width:100%;min-height:34px}.workspace-upload-panel .upload-sample-hint{display:none}.workspace-upload-panel .upload-message:empty{min-height:0;margin:0;display:none}.workspace-upload-panel .upload-message:not(:empty){border-radius:6px;min-height:0;margin-top:6px;padding:6px 8px;font-size:12px}.workspace-upload-panel .upload-message.ok{background:#f0fdf4}.workspace-upload-panel .upload-message.error{background:#fef2f2}.workspace-generate-panel .settings-section{margin-bottom:0}.panel.workspace-generate-panel,.panel.workspace-upload-panel{padding:16px}.panel.workspace-generate-panel>h3,.panel.workspace-upload-panel>h3{margin-bottom:10px}.workspace-generate-panel .settings-grid{gap:8px;margin-bottom:8px}.workspace-generate-panel .settings-section-title{margin:8px 0 4px}.workspace-generate-panel label{gap:4px;font-size:13px}.workspace-generate-panel input,.workspace-generate-panel select{min-height:34px;padding:6px 8px;font-size:13px}.workspace-generate-panel .settings-inline-hint{margin:-4px 0 8px}.workspace-generate-panel .settings-inline-hint:empty{display:none}.workspace-generate-panel .pattern-actions{gap:6px;margin-top:8px}.workspace-generate-panel .pattern-actions button:first-child{min-height:36px}.workspace-generate-panel .settings-project{grid-template-columns:1fr}.workspace-generate-panel .settings-size{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-generate-panel .settings-palette,.workspace-generate-panel .settings-colors{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-generate-panel .settings-size>label:first-child{min-width:0}.workspace-generate-panel .settings-colors+.settings-inline-hint{margin-top:-2px}.workspace-generate-panel .pattern-result canvas{max-height:min(700px,72vh)}.admin-create-user-form{border:1px solid var(--border,#d7dde5);background:var(--panel-soft,#00000005);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px;padding:14px;display:grid}.admin-create-user-form label{gap:6px;font-size:13px;display:grid}.admin-create-user-actions{align-items:end;gap:8px;display:flex}.admin-table-input{width:100%;min-width:0;margin-top:4px}.toolbar,.upload-form{align-items:center;gap:12px;display:grid}.upload-form{grid-template-columns:auto minmax(0,1fr) auto}.upload-result{background:var(--color-primary-soft);border:1px solid #bfdbfe;border-radius:8px;grid-template-columns:132px minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:16px;padding:12px;display:grid}.upload-result img{object-fit:cover;background:var(--color-bg-surface);border:1px solid #dbeafe;border-radius:8px;width:132px;height:100px}.admin-list,.admin-shell{gap:10px;display:grid}.admin-tabs{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:10px;gap:8px;padding:8px 10px;display:grid}.admin-tab-group{gap:4px;display:grid}.admin-tab-group-title{color:var(--color-text-muted);letter-spacing:.02em;font-size:11px;font-weight:700;line-height:1.2}.admin-tab-group-items{flex-wrap:wrap;align-items:stretch;gap:6px;display:flex}.admin-tab{min-height:32px;color:var(--color-text-secondary);border:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:var(--font-tab);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-weight:600;line-height:1.2;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.admin-tab:hover{border-color:var(--color-border-strong);background:var(--color-bg-muted);color:var(--color-text-primary)}.admin-tab.active{color:#fff;border-color:var(--color-primary);background:var(--color-primary);box-shadow:0 1px 2px #2563eb40}.admin-tab.active:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.admin-tab-icon{opacity:.9;flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;line-height:0;display:inline-flex}.admin-tab-icon svg{width:15px;height:15px}.admin-tab-label{min-width:0}.admin-panel{display:none}.admin-panel.active{display:block}.admin-filter-bar{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;grid-template-columns:minmax(220px,1fr) minmax(150px,220px);align-items:center;gap:8px;padding:8px;display:grid}.admin-filter-bar:has(>input:only-child){grid-template-columns:minmax(220px,1fr)}.admin-list-toolbar{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:12px;padding:10px 12px;display:flex}.admin-list-toolbar .admin-filter-bar{background:0 0;border:0;border-radius:0;flex:360px;grid-template-columns:minmax(140px,1fr) minmax(120px,150px) minmax(110px,130px);gap:8px;margin:0;padding:0;display:grid}.admin-list-toolbar .admin-filter-bar:has(>input:only-child){grid-template-columns:minmax(160px,1fr)}.admin-list-toolbar .admin-filter-select{min-height:34px;padding:6px 8px;font-size:13px}.admin-list-toolbar .admin-filter-keyword{min-height:34px;padding:6px 10px;font-size:13px}.admin-bulk-bar{background:0 0;border:0;flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:10px;margin:0;padding:0;display:flex}.admin-bulk-check,.admin-row-check{width:auto;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;margin:0;font-size:13px;display:inline-flex}.admin-bulk-check input[type=checkbox],.admin-row-check input[type=checkbox]{width:15px;min-width:15px;max-width:15px;height:15px;min-height:0;accent-color:var(--color-primary);cursor:pointer;flex:0 0 15px;margin:0;padding:0}.admin-bulk-count{color:#94a3b8;white-space:nowrap;min-width:52px;font-size:12px}.admin-bulk-delete-btn{min-height:32px;padding:0 12px;font-size:13px}.admin-row-check-disabled{flex-shrink:0;width:15px;height:15px;display:inline-block}.admin-filter-keyword,.admin-filter-select{width:100%}.admin-pager{color:var(--color-text-muted);justify-content:space-between;align-items:center;gap:12px;padding:8px 2px 0;font-size:13px;display:flex}.admin-pager>div{align-items:center;gap:8px;display:flex}.admin-pager button{min-height:32px;padding:0 10px}.admin-table-scroll{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;margin-bottom:4px;overflow-x:auto;box-shadow:0 1px 2px #0f172a0a}table.admin-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:920px}table.admin-table tr{display:table-row}table.admin-table th,table.admin-table td{display:table-cell}.admin-table th,.admin-table td{vertical-align:middle;text-align:left;border-bottom:1px solid #f1f5f9;padding:6px 8px;overflow:hidden}.admin-table th.admin-table-cell.check,.admin-table td.admin-table-cell.check{text-align:center;padding-left:8px;padding-right:8px}.admin-table th.admin-table-cell.actions,.admin-table td.admin-table-cell.actions{text-align:right;padding-right:12px}.admin-table thead th{background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border-soft);color:var(--color-text-muted);white-space:nowrap;font-size:12px;font-weight:600}.admin-table tbody tr:hover{background:var(--color-bg-muted)}.admin-table tbody tr:nth-child(2n){background:#fafbfc}.admin-table tbody tr:nth-child(2n):hover{background:var(--color-bg-muted)}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr.is-inactive{background:#fafbfc}.admin-table tbody tr.is-pending{background:0 0}.admin-table-cell{min-width:0;color:var(--color-text-soft);font-size:13px;line-height:1.4}.admin-table-head .admin-table-cell span{color:var(--color-text-muted);white-space:nowrap;font-size:12px;font-weight:600}.admin-table-cell.user,.admin-table-cell.size,.admin-table-cell.type,.admin-table-cell.file,.admin-table-cell.date,.admin-table-cell.stats,.admin-table-cell.role,.admin-table-cell.perm{white-space:nowrap;text-overflow:ellipsis}.admin-table-cell.status{white-space:nowrap;color:var(--color-text-muted);background:0 0!important}.admin-table-cell.status .admin-status-badge{text-overflow:ellipsis;max-width:100%;overflow:hidden}.admin-table-cell.main strong{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;display:block;overflow:hidden}.admin-table-cell.main span{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12px;display:block;overflow:hidden}.admin-table-cell.token{white-space:nowrap}.admin-table-token{color:var(--color-text-muted);text-overflow:ellipsis;vertical-align:middle;max-width:calc(100% - 36px);font-family:Consolas,Courier New,monospace;font-size:11px;display:inline-block;overflow:hidden}.admin-table-ellipsis{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.admin-table-hint{color:#94a3b8;white-space:nowrap;font-size:12px}.admin-table-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:100%;display:inline-flex}.admin-table-actions button{min-height:32px;padding:0 8px;font-size:12px}.admin-table-actions button:not(.secondary):not(.admin-danger-btn){color:#2b3a55;background:var(--color-bg-surface);border:1px solid #ccd5e1}.admin-table-actions button:not(.secondary):not(.admin-danger-btn):hover{background:var(--color-bg-subtle)}.admin-table-select{width:100%;min-height:34px;padding:4px 8px;font-size:12px}.admin-table-thumb .admin-visual-thumb,.admin-table-thumb .media-frame.admin-visual-thumb{border-radius:6px;width:32px;height:32px}.admin-table-empty{text-align:center;color:#94a3b8;border-bottom:0;padding:36px 16px;font-size:13px}.admin-card-list{flex-direction:column;gap:10px;margin-bottom:4px;display:flex}.admin-card{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;padding:12px;box-shadow:0 1px 2px #0f172a0a}.admin-card.is-inactive{opacity:.7}.admin-card-main{align-items:flex-start;gap:12px;display:flex}.admin-card .admin-table-thumb{flex:none}.admin-card .admin-table-thumb .media-frame.admin-visual-thumb{border-radius:8px;width:52px;height:52px}.admin-card-body{flex:1;min-width:0}.admin-card-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.admin-card-title strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.admin-card-meta{color:var(--color-text-muted);flex-wrap:wrap;gap:2px 10px;margin-top:4px;font-size:12px;display:flex}.admin-card-desc{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;overflow:hidden}.admin-card-actions{gap:8px;margin-top:10px;display:flex}.admin-card-actions button{flex:1;min-height:40px}.admin-row:not(tr){border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.admin-row>div{gap:5px;min-width:0;display:grid}.admin-row span{color:var(--color-text-muted);overflow-wrap:anywhere;font-size:13px}.admin-row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.admin-meta-grid{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.admin-pill{min-height:22px;color:var(--color-text-soft);background:var(--color-bg-muted);border-radius:999px;align-items:center;padding:0 8px;font-size:12px;line-height:1.5;display:inline-flex}.admin-pill.strong{color:var(--color-primary-hover);background:#dbeafe}.admin-config-value{width:100%}.admin-detail{background:var(--color-primary-soft);border:1px solid #bfdbfe;border-radius:8px;gap:8px;margin-bottom:12px;padding:12px;display:grid}.workspace-generate-panel .pattern-result{gap:10px;margin-top:10px}.preview-grid-step-label,.editor-grid-step-label{color:var(--color-text-soft);align-items:center;gap:6px;font-size:13px;display:inline-flex}.preview-grid-step-label select,.editor-grid-step-label select{border:1px solid var(--color-border);background:var(--color-bg-surface);color:#0f172a;border-radius:8px;min-width:92px;min-height:32px;padding:4px 28px 4px 10px}#projectView.view.active{display:block}#projectView .project-grid{grid-template-columns:minmax(0,1fr);align-content:start;gap:6px;width:100%;min-width:0;display:grid}#projectView .project-card{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-bg-surface);cursor:pointer;border-radius:8px;grid-template-columns:52px minmax(0,1fr) 18px;align-items:center;gap:10px;width:100%;max-width:100%;padding:8px;transition:border-color .15s,box-shadow .15s,background .15s;display:grid}#projectView .project-card.project-recycle-card{cursor:default;grid-template-columns:20px 48px minmax(0,1fr);grid-template-areas:"check thumb body""actions actions actions";align-items:start;padding:10px}#projectView .project-card.project-recycle-card .project-recycle-check{grid-area:check;min-height:48px}#projectView .project-card.project-recycle-card .project-card-thumb-wrap{grid-area:thumb}#projectView .project-card.project-recycle-card .project-recycle-body{grid-area:body}#projectView .project-card.project-recycle-card:hover{background:#fafbfd;border-color:#cbd5e1;box-shadow:0 4px 14px #141f340f}#projectView .project-recycle-body{gap:5px;min-width:0}#projectView .project-card.project-recycle-card .project-recycle-actions{flex-direction:row;grid-area:actions;justify-content:stretch;gap:6px;width:100%;padding-top:0;display:flex}#projectView .project-card.project-recycle-card .project-recycle-actions button{white-space:nowrap;flex:1;min-width:0;min-height:32px;padding:0 10px;font-size:13px}.project-view-tabs{background:var(--color-bg-muted);border:1px solid var(--color-border-soft);box-sizing:border-box;border-radius:10px;flex-shrink:0;gap:4px;width:100%;margin-bottom:14px;padding:4px;display:flex}button.project-view-tab,.project-view-tab{min-height:36px;color:var(--color-text-soft);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:8px 12px;font-size:14px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}button.project-view-tab:hover:not(.active),.project-view-tab:hover:not(.active){color:#1e293b;background:#e8eef5}button.project-view-tab.active,.project-view-tab.active{background:var(--color-primary);color:#fff;box-shadow:0 1px 3px #2563eb47}button.project-view-tab.active:hover,.project-view-tab.active:hover{background:var(--color-primary-hover);color:#fff}#projectView .project-list-panel>#projectActivePanel,#projectView .project-list-panel>#projectRecyclePanel{flex-direction:column;flex:1;min-height:0;display:flex}#projectView .project-list-panel>#projectActivePanel.hidden,#projectView .project-list-panel>#projectRecyclePanel.hidden{display:none}#projectView .project-recycle-grid{scrollbar-width:thin;flex:1;grid-template-columns:repeat(auto-fill,minmax(min(460px,100%),1fr));gap:8px;min-height:0;padding-right:4px;overflow:hidden auto}#projectView .project-card-thumb-wrap{width:52px}#projectView .project-card-thumb{aspect-ratio:1;border:1px solid var(--color-border-subtle);border-radius:8px;width:52px;height:52px}#projectView .project-card-body{gap:4px;min-width:0;padding-right:0;display:grid}#projectView .project-card-title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}#projectView .project-card-metrics{flex-wrap:wrap;align-items:center;gap:6px;display:flex}#projectView .project-card-metric{color:var(--color-text-muted);font-size:12px}#projectView .project-card-updated{color:#94a3b8;font-size:11px}#projectView .project-detail-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}.upload-preview-frame{aspect-ratio:4/3;border:1px solid var(--color-border-subtle);border-radius:8px;width:100%;max-width:320px}.view.editor-view.active,.view.editor-view:not(.hidden){flex-direction:column;display:flex!important}.editor-view{background:0 0;flex-direction:column;flex:1;gap:0;height:100%;min-height:0;display:none;overflow:hidden;padding:0!important}.editor-view:not(.hidden),.editor-view.active{display:flex}.app-shell.editor-focus .editor-view:not(.hidden){background:var(--color-bg-surface);flex:1;height:100%;min-height:0}.editor-view.mobile-simulated-landscape{background:var(--color-bg-surface);flex-direction:column;z-index:10000!important;width:100%!important;max-width:none!important;height:100%!important;margin:0!important;padding:0!important;display:flex!important;position:fixed!important;inset:0!important;overflow:hidden!important}.editor-view.mobile-simulated-landscape .editor-main{transform-origin:50%;box-sizing:border-box;background:inherit;width:100dvh;max-width:100dvh;height:100dvw;max-height:100dvw;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);flex-direction:column;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)rotate(90deg)}.editor-view.mobile-simulated-landscape .editor-body{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:72px minmax(0,1fr) minmax(220px,30%);min-height:0;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-body:has(.editor-panel.collapsed){grid-template-columns:72px minmax(0,1fr) 44px}.editor-view.mobile-simulated-landscape.editor-panel-open .editor-body{grid-template-columns:72px minmax(0,1fr) minmax(220px,30%)}.editor-view.mobile-simulated-landscape.editor-panel-open .editor-body:has(.editor-panel.collapsed){grid-template-columns:72px minmax(0,1fr) 44px}.editor-view.mobile-simulated-landscape .editor-tools,.editor-view.mobile-simulated-landscape .editor-canvas-wrap,.editor-view.mobile-simulated-landscape .editor-panel{grid-row:1;min-width:0;min-height:0}.editor-view.mobile-simulated-landscape .editor-canvas-wrap{touch-action:none;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-canvas{touch-action:none}.editor-view.mobile-simulated-landscape .editor-toolbar{flex-direction:row;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;padding:6px 10px;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-toolbar-groups{-webkit-overflow-scrolling:touch;touch-action:pan-x manipulation;overscroll-behavior:contain;scrollbar-width:none;flex-wrap:nowrap;flex:auto;align-items:center;gap:6px;width:auto;min-width:0;max-width:100%;display:flex;overflow:auto hidden}.editor-view.mobile-simulated-landscape .editor-toolbar-groups::-webkit-scrollbar{display:none}.editor-view.mobile-simulated-landscape .editor-toolbar-groups>.toolbar-group,.editor-view.mobile-simulated-landscape .editor-toolbar-groups>.toolbar-group:first-child,.editor-view.mobile-simulated-landscape .editor-toolbar-groups>.toolbar-group-view{order:unset;flex:none;gap:4px;width:auto;min-width:0;display:inline-flex}.editor-view.mobile-simulated-landscape .editor-toolbar-groups>.toolbar-group:has(#editorSaveButton){order:unset;flex:none;gap:4px;width:auto;min-width:0;display:inline-flex}.editor-view.mobile-simulated-landscape .editor-toolbar>.toolbar-group-status{flex:none;margin-left:0;display:inline-flex}.editor-view.mobile-simulated-landscape .editor-toolbar button,.editor-view.mobile-simulated-landscape .editor-panel button,.editor-view.mobile-simulated-landscape .palette-color,.editor-view.mobile-simulated-landscape .legend-item{touch-action:none;pointer-events:auto}.editor-view.mobile-simulated-landscape .editor-toolbar button{min-height:34px;padding:0 10px;font-size:13px}.editor-view.mobile-simulated-landscape .editor-tools{border-bottom:0;border-right:1px solid var(--color-border);touch-action:none;flex-direction:column;gap:4px;max-height:none;padding:4px 2px;display:flex;overflow:hidden auto}.editor-view.mobile-simulated-landscape .editor-tool-button{touch-action:manipulation;pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:100%;min-height:36px;padding:2px 1px}.editor-view.mobile-simulated-landscape .editor-tool-button .tool-label{text-align:center;font-size:10px;line-height:1.15;display:block}.editor-view.mobile-simulated-landscape .editor-tool-button[data-tool=replace]{flex-direction:column;grid-column:auto;min-height:36px}.editor-view.mobile-simulated-landscape .editor-panel{border-top:0;border-left:1px solid var(--color-border);touch-action:none;flex-direction:column;align-self:stretch;width:auto;height:100%;min-height:0;display:flex;overflow:hidden;max-height:100%!important}.editor-view.mobile-simulated-landscape .editor-panel:not(.collapsed) .editor-panel-body{-webkit-overflow-scrolling:touch;touch-action:none;overscroll-behavior:contain;flex-direction:column;flex:1 1 0;gap:10px;min-height:0;padding:10px;display:flex;overflow:hidden auto}.editor-view.mobile-simulated-landscape .editor-color-panel{flex:none;gap:8px;min-height:0;max-height:none;display:grid;overflow:visible}.editor-view.mobile-simulated-landscape .editor-color-panel h4{margin:0;font-size:12px}.editor-view.mobile-simulated-landscape .editor-current-color{grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.editor-view.mobile-simulated-landscape .editor-current-color .color-swatch{box-sizing:border-box;flex-shrink:0;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;max-height:20px;display:block}.editor-view.mobile-simulated-landscape .editor-current-color>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;line-height:1.3;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-palette-search{min-height:28px;padding:4px 8px;font-size:12px}.editor-view.mobile-simulated-landscape .editor-recent-colors-list{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;display:grid}.editor-view.mobile-simulated-landscape .editor-recent-colors-list .palette-color{min-width:0;min-height:unset;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;height:auto;padding:4px 2px;font-size:10px;line-height:1.15;display:flex;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-recent-colors-list .palette-color .color-swatch{box-sizing:border-box;flex-shrink:0;width:18px;min-width:18px;height:18px;min-height:18px;display:block}.editor-view.mobile-simulated-landscape .editor-palette-list{-webkit-overflow-scrolling:touch;touch-action:none;overscroll-behavior:contain;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;max-height:200px;overflow:hidden auto}.editor-view.mobile-simulated-landscape .editor-panel-block-legend{flex:none;gap:8px;min-height:0;display:grid;overflow:visible}.editor-view.mobile-simulated-landscape .editor-panel-block-legend h4{flex-shrink:0;margin:0;font-size:12px}.editor-view.mobile-simulated-landscape .editor-legend-list{-webkit-overflow-scrolling:touch;touch-action:none;overscroll-behavior:contain;max-height:200px;overflow:hidden auto}.editor-view.mobile-simulated-landscape .editor-legend-list .legend-item{min-width:0;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-legend-list .legend-item span:last-child{overflow-wrap:anywhere;word-break:break-word;min-width:0;font-size:11px;line-height:1.35}.editor-view.mobile-simulated-landscape .editor-legend-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.editor-view.mobile-simulated-landscape .editor-legend-actions .secondary{white-space:normal;overflow-wrap:anywhere;min-width:0;padding:6px 4px;font-size:11px;line-height:1.25}.editor-view.mobile-simulated-landscape .editor-panel-block-meta{display:grid}.editor-view.mobile-simulated-landscape .editor-panel-block:has(#editorShowGrid){flex:none;gap:4px}.editor-view.mobile-simulated-landscape .editor-panel-block:has(#editorShowGrid) h4{margin:0;font-size:12px}.editor-view.mobile-simulated-landscape .editor-panel-block:has(#editorShowGrid) .check-label{font-size:11px}.editor-view.mobile-simulated-landscape .editor-panel.collapsed{width:44px;min-width:44px;max-width:44px}.editor-view.mobile-simulated-landscape .editor-panel.collapsed .editor-panel-body{display:none!important}.editor-view.mobile-simulated-landscape .editor-panel-head{flex-shrink:0;padding:6px 8px}.editor-view.mobile-simulated-landscape .editor-panel.collapsed .editor-panel-head{flex-direction:column;align-items:stretch;gap:6px;padding:8px 4px}.editor-view.mobile-simulated-landscape .editor-panel.collapsed .editor-panel-head h3{display:none}.editor-view.mobile-simulated-landscape .editor-panel.collapsed .editor-panel-toggle{width:100%;padding:0 4px;font-size:11px}.editor-view.mobile-simulated-landscape .editor-palette-list .palette-color{min-width:0;min-height:unset;flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;height:auto;padding:4px 2px;font-size:10px;line-height:1.15;display:flex;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-palette-list .palette-color-text{text-align:center;text-overflow:ellipsis;white-space:nowrap;word-break:normal;min-width:0;max-width:100%;display:block;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-palette-list .palette-color-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.15;display:block;overflow:hidden}.editor-view.mobile-simulated-landscape .editor-palette-list .palette-color-text small{display:none}.editor-view.mobile-simulated-landscape .editor-palette-list .palette-color .color-swatch{box-sizing:border-box;flex-shrink:0;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;display:block}.assembly-view.mobile-simulated-landscape{background:var(--assembly-bg);flex-direction:column;z-index:10000!important;width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;padding:0!important;display:flex!important;position:fixed!important;inset:0!important;overflow:hidden!important}.assembly-view.mobile-simulated-landscape .assembly-workspace{transform-origin:50%;box-sizing:border-box;background:var(--assembly-bg);width:100dvh;max-width:100dvh;height:100dvw;max-height:100dvw;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);flex-direction:column;display:flex;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)rotate(90deg)}.assembly-view.mobile-simulated-landscape .assembly-stage{flex:1;min-height:0}.assembly-view.mobile-simulated-landscape .assembly-topbar,.assembly-view.mobile-simulated-landscape .assembly-dock{flex-shrink:0}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer{transition:none!important}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer:not(.is-open) .assembly-legend-list{display:none!important}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open{touch-action:none;pointer-events:auto;width:100%;max-height:min(42dvw,168px);box-shadow:none;background:#0f172afa;border-top:1px solid #94a3b82e;border-bottom:1px solid #94a3b81f;border-radius:0;flex-direction:column;flex-shrink:0;margin:0;padding:6px 8px 8px;display:flex;position:relative;overflow:hidden;transform:none}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-hint{display:none}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-list{overscroll-behavior-x:contain;touch-action:none;-webkit-overflow-scrolling:touch;flex:auto;grid-template-rows:repeat(2,50px);grid-auto-columns:112px;grid-auto-flow:column;gap:6px;width:100%;min-height:0;max-height:140px;padding:0 2px 2px;overflow:auto hidden;grid-template-columns:none!important;display:grid!important}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-item{box-sizing:border-box;flex:unset;text-align:left;touch-action:none;align-items:center;gap:6px;width:100%;min-width:0;max-width:112px;height:100%;min-height:0;padding:5px 6px;overflow:hidden;grid-template-columns:32px minmax(0,1fr)!important;display:grid!important}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-swatch-wrap{flex-shrink:0;width:32px;max-width:none;height:32px;max-height:none;margin:0}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-badge{font-size:11px}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-text{text-align:left;gap:1px;min-width:0;font-size:10px;line-height:1.25}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;display:block;overflow:hidden}.assembly-view.mobile-simulated-landscape .assembly-workspace .assembly-legend-drawer.is-open .assembly-legend-text span{text-overflow:ellipsis;white-space:nowrap;color:var(--assembly-text-muted);font-size:9px;display:block;overflow:hidden}.assembly-view:not(.is-mobile-layout) .assembly-landscape-btn,.assembly-view:not(.is-mobile-layout) .mobile-landscape-btn,.editor-view:not(.is-mobile-layout) .editor-landscape-tool,.editor-view:not(.is-mobile-layout) .mobile-landscape-btn,.editor-view.is-tablet-layout .editor-landscape-tool,.editor-view.is-tablet-layout .mobile-landscape-btn{display:none!important}.editor-view.is-mobile-layout:not(.is-tablet-layout) .toolbar-group-view .editor-landscape-tool:not(.hidden){white-space:nowrap;justify-content:center;align-items:center;min-width:52px;padding:0 8px;display:inline-flex!important}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open{z-index:10001;left:calc(6px + env(safe-area-inset-left,0px));right:calc(6px + env(safe-area-inset-right,0px));touch-action:pan-x;pointer-events:auto;background:#0f172afa;border-top:1px solid #94a3b838;border-bottom:1px solid #94a3b81f;border-radius:12px 12px 0 0;flex-direction:column;width:auto;min-height:0;max-height:none;margin:0;padding:8px 10px 10px;transition:none;display:flex;position:fixed;top:auto;overflow:hidden;transform:none;box-shadow:0 -10px 36px #02061780}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout):not(.mobile-simulated-landscape) .assembly-legend-drawer.is-legend-panel.is-open{bottom:calc(var(--assembly-dock-h,52px) + 6px + env(safe-area-inset-bottom,0px))}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-hint{display:none}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-list{overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;flex:auto;gap:6px;min-height:0;max-height:180px;padding:0 2px 2px;overflow:hidden auto;grid-template-columns:repeat(auto-fill,112px)!important;display:grid!important}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-item{flex:unset;text-align:left;touch-action:pan-y;align-items:center;gap:6px;width:100%;min-width:0;min-height:44px;padding:5px 6px;grid-template-columns:32px minmax(0,1fr)!important;display:grid!important}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-swatch-wrap{flex-shrink:0;width:32px;max-width:none;height:32px;max-height:none;margin:0}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-badge{font-size:11px}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-text{text-align:left;gap:1px;min-width:0;font-size:10px;line-height:1.25}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;display:block;overflow:hidden}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout) .assembly-legend-drawer.is-legend-panel.is-open .assembly-legend-text span{text-overflow:ellipsis;white-space:nowrap;color:var(--assembly-text-muted);font-size:9px;display:block;overflow:hidden}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-topbar{padding:calc(4px + env(safe-area-inset-top,0px)) 8px 4px;flex-wrap:nowrap;align-items:center;gap:6px}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-topbar-center{flex-direction:row;align-items:center;gap:4px;min-width:0}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-top-title{font-size:12px}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-progress-text{white-space:nowrap;font-size:10px}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-topbar-actions{flex-wrap:nowrap;flex-shrink:0;gap:4px;width:auto}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-topbar-chip-btn{text-align:center;white-space:nowrap;justify-content:center;align-items:center;min-height:32px;padding:0 8px;font-size:11px;line-height:1.2;display:inline-flex}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-landscape-btn:not(.hidden),.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .mobile-landscape-btn:not(.hidden){text-align:center;justify-content:center;align-items:center;display:inline-flex!important}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-dock-row-primary{scrollbar-width:thin;flex-wrap:nowrap;align-items:center;gap:6px;overflow:auto hidden;display:flex!important}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-dock-modes{flex-shrink:0;gap:4px;display:inline-flex}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-dock-more-group{display:contents}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-dock-extras{flex-wrap:nowrap;flex:auto;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:inline-flex}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-dock-actions{flex-shrink:0;gap:6px;display:inline-flex}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-mode-btn,.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-dock-action{white-space:nowrap;flex-shrink:0;width:auto;min-height:36px;padding:0 8px;font-size:11px}.assembly-view.is-mobile-layout:is(.landscape-mode-on,.is-landscape-layout,.mobile-simulated-landscape) .assembly-dock-extras .assembly-display-select{flex-direction:row;flex:none;gap:4px;font-size:11px}.editor-mobile-hint{color:#92400e;background:#fffbeb;border-bottom:1px solid #fde68a;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;font-size:13px;line-height:1.5;display:flex}.editor-toolbar{background:var(--color-bg-surface);border-bottom:1px solid #cbd5e1;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 12px;display:flex}.editor-main{background:var(--color-bg-surface);flex-direction:column;flex:auto;height:100%;min-height:0;margin:0;padding:0;display:flex;overflow:hidden}.editor-main>.editor-toolbar{flex-shrink:0}.editor-discard-draft-btn{white-space:nowrap;flex:none}.editor-toolbar-groups{scrollbar-width:thin;flex-wrap:nowrap;flex:0 auto;align-items:center;gap:8px;min-width:0;display:flex;overflow-x:auto}.editor-live-context{background:var(--color-bg-surface);border:1px solid var(--color-border-soft);min-height:28px;color:var(--color-text-soft);white-space:nowrap;border-radius:6px;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.editor-live-context:empty{display:none}.editor-live-context.is-select{color:var(--color-primary-hover);background:var(--color-primary-soft);border-color:#bfdbfe}.editor-toolbar button{white-space:nowrap;border-radius:6px;min-height:34px;padding:0 12px;font-size:13px}.editor-toolbar-save{min-width:104px;font-weight:600;box-shadow:0 1px 2px #2563eb2e}.editor-live-status{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:6px;min-height:34px;padding:0 4px;display:inline-flex}.editor-live-status .status-chip{background:var(--color-bg-surface);border:1px solid var(--color-border-soft);min-height:28px;color:var(--color-text-soft);border-radius:6px;justify-content:center;align-items:center;padding:0 10px;font-size:12px;display:inline-flex}.editor-live-status .status-chip-save{min-width:52px}.editor-live-status .status-chip-tool{min-width:48px}.editor-live-status .status-chip-coord{justify-content:flex-end;gap:6px;min-width:118px;padding:0 10px}.editor-live-status .status-chip-label{color:var(--color-text-muted);font-size:12px;font-weight:500}.editor-live-status .status-chip-value{color:#0f172a;text-align:right;letter-spacing:.02em;min-width:64px;font-size:14px;font-weight:600}.editor-live-status .status-chip-value.is-empty{color:#94a3b8;font-weight:500}.editor-live-status.dirty .status-chip-save{color:#92400e;background:#fffbeb;border-color:#fbbf24}.editor-body{background:var(--color-bg-subtle);flex:auto;grid-template-columns:88px minmax(0,1fr) 320px;min-height:0;margin:0;padding:0;display:grid;overflow:hidden}.editor-body:has(.editor-panel.collapsed){grid-template-columns:88px minmax(0,1fr) 48px}.editor-tools{border-right:1px solid var(--color-border);background:var(--color-bg-subtle);flex-direction:column;flex-shrink:0;gap:6px;padding:0 6px 6px;display:flex;overflow:hidden}.editor-tool-button{width:100%;min-height:54px;color:var(--color-text-secondary);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 4px 6px;font-size:12px;display:flex;position:relative}.editor-tool-button .tool-icon{font-size:17px;line-height:1}.editor-tool-button .tool-label{white-space:nowrap;line-height:1.2}.editor-tool-button .tool-shortcut{border:1px solid var(--color-border);background:var(--color-bg-subtle);min-width:18px;height:18px;color:var(--color-text-muted);border-radius:4px;justify-content:center;align-items:center;padding:0 4px;font-family:inherit;font-size:10px;line-height:1;display:inline-flex;position:absolute;top:4px;right:4px}.editor-tool-button.active{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.editor-tool-button.active .tool-shortcut{color:#fff;background:#ffffff2e;border-color:#ffffff59}.editor-key-hint{color:inherit;opacity:.9;vertical-align:middle;align-items:center;gap:2px;margin-left:6px;font-family:inherit;font-size:9px;font-weight:500;line-height:1.2;display:inline-flex}.editor-key-hint kbd{min-width:14px;color:inherit;font:inherit;text-align:center;background:#ffffff29;border:1px solid #ffffff59;border-radius:4px;padding:1px 4px}.editor-key-hint span{color:currentColor;opacity:.72}button.secondary .editor-key-hint kbd{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-muted)}.editor-toolbar-save .editor-key-hint kbd{color:#fff;background:#ffffff29;border-color:#ffffff59}.editor-selection-bar{z-index:12;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;background:#fffffff5;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:4px;max-width:calc(100% - 16px);padding:4px;display:inline-flex;position:absolute;box-shadow:0 8px 24px #0f172a24}.editor-selection-bar.hidden{display:none}.editor-selection-bar-modes,.editor-selection-bar-nudge{align-items:center;gap:4px;display:inline-flex}.editor-selection-bar-divider{background:var(--color-border-soft);flex-shrink:0;width:1px;height:22px}.editor-selection-bar-btn{border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:30px;color:var(--color-text-secondary);white-space:nowrap;border-radius:7px;padding:0 10px;font-size:12px;font-weight:600}.editor-selection-bar-btn.icon{min-width:30px;padding:0;font-size:14px;line-height:1}.editor-selection-bar-btn.active{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.editor-selection-bar-btn.danger{color:#b91c1c;background:#fff1f2;border-color:#fecaca}.editor-canvas-wrap{touch-action:none;background:#cbd5e1;height:100%;min-height:0;margin:0;padding:0;position:relative;overflow:hidden}.editor-canvas-wrap.is-mirrored{box-shadow:inset 0 0 0 2px #0d94886b}.editor-compare-toggle.active{color:#92400e;background:#fffbeb;border-color:#f59e0b}.editor-palette-list .palette-color.is-highlight,.editor-recent-colors-list .palette-color.is-highlight{border-color:#f59e0b;box-shadow:0 0 0 2px #f59e0b59}.editor-canvas-wrap.compare-slider-on>.editor-canvas,.share-page-canvas-wrap.compare-slider-on>#shareCanvas{z-index:1;clip-path:inset(0 calc(100% - var(--compare-pos,50%)) 0 0);position:relative}.editor-canvas-wrap.compare-slider-on>.compare-slider-root,.share-page-canvas-wrap.compare-slider-on>.compare-slider-root{z-index:2}.editor-compare-toggle{width:100%;min-height:36px;margin-top:8px}.editor-cleanup-hint,.editor-legend-hint{margin:0 0 8px}.editor-cleanup-row{grid-template-columns:1fr auto;align-items:end;gap:8px;margin-bottom:8px;display:grid}.editor-cleanup-field{color:var(--color-text-secondary,#475569);gap:4px;font-size:12px;display:grid}.editor-cleanup-field input{width:100%;min-height:36px}.assembly-dock-extras .assembly-mode-btn.active{border-color:var(--assembly-accent);color:var(--assembly-accent-soft);background:#38bdf82e}.assembly-canvas-wrap.assembly-touch-locked{cursor:not-allowed}.assembly-canvas-wrap.assembly-touch-locked.mark-mode,.assembly-workspace.mark-mode .assembly-canvas-wrap.assembly-touch-locked{cursor:crosshair}.export-physical-scale-label{margin-top:8px}.share-compare-toggle{min-height:30px;padding:0 10px;font-size:12px}.share-compare-toggle.active{color:#92400e;background:#fffbeb;border-color:#f59e0b}.share-legend-hint{color:var(--color-text-muted);margin:0 0 8px;font-size:12px}.share-legend-grid .share-legend-item{cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%}.share-legend-grid .share-legend-item:hover{background:var(--color-bg-muted)}.share-legend-grid .share-legend-item.active{background:#fffbeb;border-color:#f59e0b}.editor-mobile-zoom-fab{display:none}.editor-mobile-zoom-label{color:#0f172a;font-variant-numeric:tabular-nums;text-align:center;-webkit-user-select:none;user-select:none;min-width:42px;padding:0 4px;font-size:12px;font-weight:700;line-height:34px}.editor-mobile-zoom-fab button{min-width:36px;min-height:34px;padding:0 8px}.editor-canvas{cursor:crosshair;width:100%;height:100%;min-height:0;display:block}.editor-canvas.tool-move{cursor:grab}.editor-canvas.tool-select{cursor:crosshair}.editor-canvas.tool-select.is-dragging-selection{cursor:grabbing}.editor-canvas.tool-eyedropper{cursor:cell}.editor-panel{border-left:1px solid var(--color-border);background:var(--color-bg-surface);flex-direction:column;gap:0;min-height:0;display:flex;overflow:hidden}.editor-panel-head{border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex}.editor-panel-head h3{color:var(--color-text-secondary);margin:0;font-size:15px}.editor-panel-toggle{min-height:32px;padding:0 10px;font-size:12px}.editor-panel-body{background:var(--color-bg-muted,#f1f5f9);flex-direction:column;gap:10px;min-height:0;padding:10px;display:flex;overflow:auto}.editor-panel.collapsed{width:48px;min-width:48px}.editor-panel.collapsed .editor-panel-head h3,.editor-panel.collapsed .editor-panel-body{display:none}.editor-panel.collapsed .editor-panel-head{flex-direction:column;padding:12px 8px}.editor-panel-block{border:1px solid var(--color-border-subtle,#e2e8f0);background:var(--color-bg-surface,#fff);box-shadow:var(--shadow-card,0 1px 2px #0f172a0f);border-radius:12px;gap:8px;padding:12px;display:grid;position:relative}.editor-panel-block h4{letter-spacing:.02em;color:var(--color-text,#0f172a);margin:0;font-size:13px;font-weight:650}.block-title{align-items:center;gap:6px;display:flex}.block-help{width:16px;height:16px;color:var(--color-text-secondary,#64748b);opacity:.55;cursor:help;background:0 0;border:0;justify-content:center;align-items:center;margin-left:auto;padding:0;display:inline-flex}.block-help svg{width:14px;height:14px;display:block}.block-help:hover,.block-help:focus-visible,.block-help:active{opacity:1;color:var(--color-primary,#2563eb);background:0 0}.editor-info{color:var(--color-text-secondary);gap:4px;font-size:13px;display:grid}.editor-current-color{grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;display:grid}.editor-current-color-highlight .color-swatch.is-active{outline:2px solid var(--color-primary);box-shadow:0 0 0 3px #2563eb59}.editor-palette-search-label{display:block}.editor-palette-search{border:1px solid var(--color-border);border-radius:6px;width:100%;min-height:36px;padding:0 10px;font-size:13px}.editor-recent-colors{gap:6px;display:grid}.editor-recent-label{color:var(--color-text-muted);font-size:12px}.editor-recent-colors-list{flex-wrap:wrap;gap:6px;display:flex}.editor-recent-colors-list .palette-color{border:1px solid var(--color-border);width:auto;min-width:52px;height:auto;min-height:38px;color:var(--color-text-secondary);background:#fbfdff;border-radius:6px;grid-template-columns:1fr;justify-items:center;gap:4px;padding:6px;font-size:11px;display:grid}.editor-recent-colors-list .palette-color:hover{background:var(--color-bg-muted);color:var(--color-text-secondary)}.editor-recent-colors-list .palette-color.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 2px #2563eb2e}.editor-recent-colors-list .palette-color .color-swatch{width:28px;height:28px}.editor-palette-empty{color:#94a3b8;text-align:center;margin:0;padding:12px 8px;font-size:13px}.editor-palette-list{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));grid-auto-rows:min-content;align-items:start;gap:8px;max-height:220px;display:grid;overflow:auto}.editor-palette-list .palette-color{min-height:unset;border:1px solid var(--color-border);width:100%;height:auto;color:var(--color-text-secondary);background:#fbfdff;border-radius:6px;justify-items:center;gap:4px;padding:6px 4px;font-size:11px;line-height:1.25;display:grid}.editor-palette-list .palette-color:hover{background:var(--color-bg-muted);color:var(--color-text-secondary)}.editor-palette-list .palette-color.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 2px #2563eb2e}.editor-palette-list .palette-color .color-swatch{flex-shrink:0;width:28px;height:28px}.editor-palette-list .palette-color-text{text-align:center;word-break:break-all;gap:1px;width:100%;display:grid}.editor-legend-list{grid-auto-rows:min-content;gap:8px;max-height:260px;display:grid;overflow:auto}.editor-legend-list .legend-item{min-height:unset;border:1px solid var(--color-border-subtle);text-align:left;width:100%;height:auto;color:var(--color-text-secondary);background:#fbfdff;border-radius:8px;grid-template-columns:36px minmax(0,1fr);align-items:start;gap:8px;padding:8px;line-height:1.45;display:grid}.editor-legend-list .legend-item:hover{background:var(--color-bg-muted);color:var(--color-text-secondary)}.editor-legend-list .legend-item span:last-child{word-break:break-word;min-width:0;font-size:12px}.editor-legend-list .legend-item .color-swatch{flex-shrink:0;width:36px;height:36px}.editor-legend-list .legend-item.active{background:#fffbeb;border-color:#f59e0b}.share-modal{z-index:1000;place-items:center;display:grid;position:fixed;inset:0}.share-modal.hidden{display:none}.share-modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a85;position:absolute;inset:0}.share-modal-card{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px;width:min(620px,100vw - 32px);max-height:calc(100vh - 32px);padding:0;position:relative;overflow:auto;box-shadow:0 24px 60px #0f172a2e}.share-modal-head{background:var(--color-bg-subtle);border-bottom:1px solid #e5ebf3;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex}.share-modal-head h3{color:#0f172a;margin:2px 0 0;font-size:18px;line-height:1.3}.share-modal-eyebrow{color:var(--color-text-muted);margin:0;font-size:12px;font-weight:700}.share-form{gap:14px;padding:16px 20px 20px;display:grid}.share-option-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.share-toggle-card{border:1px solid var(--color-border);background:var(--color-bg-surface);cursor:pointer;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:8px 10px;transition:border-color .15s,background .15s;display:flex}.share-toggle-card:hover{background:var(--color-bg-subtle);border-color:#b7c4d6}.share-toggle-card:has(input:checked){background:#f3faf5;border-color:#93c5a4}.share-toggle-card input{flex:none;margin:0}.share-toggle-card span{min-width:0;display:block}.share-toggle-card strong{color:#0f172a;white-space:nowrap;font-size:13px;font-weight:600;line-height:1.2}.share-form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.share-field{color:var(--color-text-secondary);gap:6px;font-size:13px;display:grid}.share-field input{width:100%}.share-toggle-card small,.share-field-hint{color:var(--color-text-muted);font-size:12px;line-height:1.5}.share-password-panel{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;gap:10px;padding:12px;display:grid}.share-password-panel-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.share-password-panel-head strong{color:#0f172a;font-size:14px}.share-password-state{white-space:nowrap;border-radius:999px;align-items:center;min-height:26px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.share-password-state.is-locked{color:#9f1239;background:#fff1f2;border:1px solid #fecdd3}.share-password-state.is-open{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.share-password-field{gap:6px}.share-clear-password{color:#991b1b;background:#fff7f7;border:1px dashed #fca5a5;border-radius:8px;min-height:36px;padding:8px 10px}.share-field-hint{margin:-2px 0 0}.share-field-hint.warning{color:#b45309}.share-result{background:linear-gradient(#f7faff 0%,#f3f6fb 100%);border:1px solid #d7e3f4;border-radius:10px;gap:10px;margin:14px 20px 0;padding:14px;display:grid}.share-result-layout{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;display:grid}.share-result-main{gap:10px;min-width:0;display:grid}.share-result-link-label{color:#334155;gap:6px;font-size:13px;font-weight:600;display:grid}.share-result-link-label input{background:#fff;width:100%;font-size:13px;font-weight:400}.share-result-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.share-result-actions button,.share-result-actions .button-link{min-height:34px}.share-result-hint{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.45}.share-result-qr{color:var(--color-text-muted);justify-items:center;gap:6px;font-size:12px;display:grid}.share-result-qr img{-webkit-touch-callout:default;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e5ebf3;border-radius:8px;width:124px;height:124px;display:block;box-shadow:0 1px 2px #0f172a0a}.share-modal-card>.message{margin:12px 20px 0}.share-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding-top:4px;display:flex}.share-page{min-height:100vh;padding:20px 24px 32px}.share-page-card{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:8px;width:min(1180px,100%);margin:0 auto;padding:16px 20px 20px}.share-password-card{width:min(460px,100%);margin-top:min(12vh,88px);padding:22px}.share-password-head{margin-bottom:18px}.share-password-form{gap:12px;display:grid}.share-password-form label{color:var(--color-text-secondary);gap:6px;font-size:13px;font-weight:600;display:grid}.share-password-form input{border:1px solid #cbd5e1;border-radius:8px;width:100%;min-height:44px;padding:0 12px;font-size:14px}.share-password-form button{width:100%;min-height:44px;font-weight:700}.share-page-head{gap:6px;margin-bottom:8px;display:grid}.share-page-head-bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.share-page-head-line{align-items:center;gap:8px;min-width:0;margin:0;display:flex}.share-page-eyebrow{color:var(--color-text-muted);letter-spacing:.04em;flex-shrink:0;margin:0;font-size:12px}.share-page-eyebrow:after{content:"?";color:#cbd5e1;margin-left:8px}.share-page-meta-inline{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.share-page-head-main{justify-content:space-between;align-items:center;gap:12px;display:flex}.share-page-title{min-width:0;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:auto;margin:0;font-size:clamp(16px,2vw,20px);font-weight:700;line-height:1.3;overflow:hidden}.share-page-head-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.share-page-preview{gap:6px;display:grid}.share-page-viewbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 14px;display:flex}.share-page-viewbar-toggles{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.share-zoom-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.share-zoom-controls .share-compare-toggle{margin-right:4px}.share-zoom-btn{min-height:30px;padding:0 10px;font-size:12px}.share-zoom-label{font-variant-numeric:tabular-nums;min-width:3.2em;color:var(--color-text-muted);text-align:center;font-size:12px}.share-view-hint{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.4}.share-check-compact{gap:4px;font-size:13px}.share-download-button{flex-shrink:0;min-height:32px;padding:0 12px;font-size:13px}.share-page-promo{color:var(--color-text-muted);text-align:right;white-space:nowrap;margin:0;font-size:13px;line-height:1.5}.share-page-promo strong{color:var(--color-text-secondary);font-weight:600}.share-page-body{gap:14px;display:grid}.share-page-canvas-wrap{border:1px solid var(--color-border);background:var(--color-bg-muted);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;height:min(68vh,720px);min-height:280px;position:relative;overflow:hidden}.share-loading-card{justify-items:start;gap:10px;padding:28px 24px;display:grid}.share-loading-spinner{border:2px solid var(--color-border);border-top-color:var(--color-link);border-radius:50%;width:28px;height:28px;margin-top:4px;animation:.8s linear infinite share-spin}@keyframes share-spin{to{transform:rotate(360deg)}}.share-canvas-loading{z-index:2;background:color-mix(in srgb, var(--color-bg-muted) 88%, transparent);color:var(--color-text-secondary);pointer-events:none;place-content:center;justify-items:center;gap:10px;font-size:14px;display:grid;position:absolute;inset:0}.share-canvas-loading.is-error{pointer-events:auto;color:var(--color-danger,#b91c1c)}.share-canvas-loading p{margin:0}.share-page-canvas-wrap:focus-visible{outline-offset:2px;outline:2px solid #93c5fd}.share-page-canvas-wrap.is-panning{cursor:grabbing}.share-page-canvas-wrap.is-interacting>#shareCanvas,.share-page-canvas-wrap.is-panning>#shareCanvas{will-change:transform}.share-page-promo a{color:var(--color-link);font-weight:600;text-decoration:none}.share-page-promo a:hover{text-decoration:underline}.share-page-promo-static{text-align:left;margin-top:12px}.share-page-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.share-summary-item{border:1px solid var(--color-border-subtle);text-align:center;background:#fbfdff;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.share-summary-label{color:var(--color-text-muted);font-size:12px}.share-summary-item strong{color:var(--color-text-primary);font-size:15px}.share-page-legend-section{gap:12px;display:grid}.share-legend-title{color:var(--color-text-secondary);margin:0;font-size:16px}.share-legend-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.share-legend-item{border:1px solid var(--color-border-subtle);cursor:pointer;text-align:left;font:inherit;color:inherit;background:#fbfdff;border-radius:8px;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:8px;width:100%;padding:8px 10px;display:grid}.share-legend-item:hover{background:var(--color-bg-muted)}.share-legend-item.active{background:#fffbeb;border-color:#f59e0b}.share-legend-grid.has-highlight .share-legend-item:not(.active){opacity:.45;filter:saturate(.6)}.share-legend-swatch{border:1px solid #cbd5e1;border-radius:6px;width:32px;height:32px}.share-legend-text{min-width:0;color:var(--color-text-muted);gap:2px;font-size:12px;line-height:1.4;display:grid}.share-legend-text strong{color:var(--color-text-primary);font-size:13px}.export-modal{z-index:1000;place-items:center;display:grid;position:fixed;inset:0}.export-modal.hidden{display:none}.export-modal-backdrop{z-index:0;background:#0f172a73;position:absolute;inset:0}.export-modal-card{z-index:1;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:16px;width:min(640px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px 18px;position:relative;overflow:auto;box-shadow:0 24px 60px #0f172a2e}.export-modal-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.export-modal-subtitle{color:var(--color-text-muted);margin:4px 0 0;font-size:12px;line-height:1.4}.export-preview-panel{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:10px;gap:6px;margin-bottom:10px;padding:10px 12px;display:grid}.export-preview-row{grid-template-columns:44px minmax(0,1fr);align-items:start;gap:8px;font-size:13px;display:grid}.export-preview-row-contents{align-items:center}.export-preview-label{color:var(--color-text-muted)}.export-preview-value{color:#0f172a;word-break:break-all}.export-preview-tags{flex-wrap:wrap;gap:6px;display:flex}.export-preview-tag{background:var(--color-primary-soft);color:var(--color-primary-hover);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;line-height:1.6;display:inline-flex}.export-settings{background:var(--color-bg-surface);border:1px solid #e5ebf3;border-radius:10px;margin-bottom:8px;padding:12px}.export-settings-title{color:#0f172a;margin:0 0 8px;font-size:14px;font-weight:700}.export-form-section{gap:4px;margin-bottom:8px;display:grid}.export-form-section-inline{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px}.export-form-section-inline #exportFileNameHint{order:3;grid-column:1/-1;margin:0}.export-form-section-inline>.export-field:first-of-type{order:1}.export-form-section-inline>.export-field:last-of-type{order:2}.export-option-block{border:1px solid var(--color-border-subtle);background:var(--color-bg-subtle);border-radius:10px;gap:8px;margin-bottom:8px;padding:10px;display:grid}.export-option-block.hidden{display:none}.export-option-block-title{color:var(--color-text-secondary);margin:0;font-size:13px;font-weight:700}.export-option-block>.export-field-row,.export-option-block>.export-checkbox-group,.export-option-block>.export-field,.export-option-block>.check-label{margin:0}.export-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.export-primary-btn{text-align:left;border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:72px;color:var(--color-text-primary);border-radius:12px;align-items:start;gap:4px;padding:14px 16px;display:grid}.export-primary-btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary);color:#fff}.export-primary-btn-pdf{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}.export-primary-title{font-size:15px;font-weight:700;line-height:1.3}.export-primary-desc{color:var(--color-text-muted);font-size:12px;line-height:1.5}.export-primary-btn:hover:not(:disabled) .export-primary-desc{color:#ffffffe0}.export-primary-btn-pdf .export-primary-desc{color:var(--color-text-muted)}.export-advanced{background:var(--color-bg-surface);border:1px solid #e5ebf3;border-radius:12px;margin-bottom:12px}.export-advanced>summary{cursor:pointer;color:var(--color-text-secondary);padding:12px 16px;font-size:14px;font-weight:600;list-style:none}.export-advanced>summary::-webkit-details-marker{display:none}.export-advanced>summary:before{content:"??";color:var(--color-text-muted)}.export-advanced[open]>summary:before{content:"??"}.export-advanced .export-form{border-top:1px solid var(--color-border-subtle);padding:0 16px 16px}.export-advanced .export-actions{margin-top:12px;padding-top:12px}.export-form>label{gap:4px;margin-bottom:8px;display:grid}.export-pdf-options,.export-png-options{background:var(--color-bg-subtle);border:1px solid #e5ebf3;border-radius:10px;margin:8px 0;padding:10px}.export-pdf-options h4,.export-png-options h4{color:var(--color-text-secondary);margin:0 0 8px;font-size:14px}.export-pdf-settings{gap:8px;display:grid}.export-field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.export-field{gap:4px;margin:0;display:grid}.export-field-label{color:#4b5563;font-size:13px}.export-format-desc{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.4}.export-option-note{color:#94a3b8;background:0 0;border:none;margin:0;padding:0;font-size:12px;line-height:1.45}.export-fit-hint{color:var(--color-text-secondary);background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);border-radius:8px;margin:0;padding:8px 10px;font-size:12px;line-height:1.45}.export-fit-hint.is-ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.export-fit-hint.is-warn{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.export-fit-hint.is-muted{color:#64748b;background:var(--color-bg-surface);border-color:var(--color-border-subtle)}.export-major-grid-field{margin-top:8px}.export-checkbox-group{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:8px;margin:0;padding:8px 10px 10px}.export-checkbox-group legend{color:var(--color-text-muted);padding:0 4px;font-size:12px}.export-checkbox-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;display:grid}.export-form .check-label{min-height:28px;color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.export-form .check-label input{flex-shrink:0;width:auto;min-height:auto;margin:0}.export-form .check-label span{line-height:1.4}.export-actions{border-top:1px solid #e5ebf3;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:10px;padding-top:10px;display:flex}.export-physical-scale-label{padding:2px 0}.export-result{background:var(--color-bg-subtle);border:1px solid #e5ebf3;border-radius:10px;margin-top:12px;padding:12px;line-height:1.7}.upload-drop-zone{background:var(--color-bg-subtle);border:2px dashed #cbd5e1;border-radius:8px;padding:12px;transition:border-color .2s,background .2s}.upload-drop-zone.drag-over{border-color:var(--color-primary);background:var(--color-primary-soft)}.upload-drop-zone-disabled{opacity:.55;pointer-events:none;cursor:not-allowed}.upload-drop-zone-disabled .file-input{pointer-events:none}.upload-hint{margin:8px 0 0}#projectView .project-list-panel{min-width:0;padding:12px}#projectView .project-list-panel h3{margin:0}#projectView .project-check{cursor:pointer;justify-content:center;align-items:center;min-height:auto;margin:0;display:flex}#projectView .project-check input{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary);margin:0}#projectView .project-card:hover{border-color:#93c5fd;box-shadow:0 8px 20px #141f3414}#projectView .project-card-info{display:none}#projectView .project-card.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 2px #2563eb1f}#projectView .project-card:has(.project-select:checked){background:#f8fbff;border-color:#93c5fd}.upload-form-pick{grid-template-columns:1fr;justify-items:start}.upload-form-pick .file-name{justify-self:stretch;width:100%}.upload-pending{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:14px;margin-top:12px;padding:14px;display:grid;overflow:hidden}.upload-pending.hidden{display:none}.upload-pending img{object-fit:cover;background:var(--color-bg-surface);border:1px solid #fde68a;border-radius:6px;width:120px;height:90px}.upload-pending-actions{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.palette-toolbar{grid-template-columns:minmax(140px,220px) minmax(0,1fr)}.palette-browse-bar{background:linear-gradient(#fafbfd 0%,#fff 100%);border:1px solid #e8eef5;border-radius:12px;gap:0;margin-bottom:14px;padding:14px;display:grid;box-shadow:0 1px 2px #0f172a0a}.palette-browse-primary{grid-template-columns:minmax(240px,1.35fr) minmax(180px,1fr) auto;align-items:end;gap:12px;display:grid}.palette-browse-filters{border-top:1px solid var(--color-border-subtle);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin-top:12px;padding-top:12px;display:grid}.palette-main-filters{border-top:1px solid var(--color-border-subtle);margin-top:4px;padding-top:12px}.palette-filter-label{color:var(--color-text-muted);white-space:nowrap;padding-top:7px;font-size:12px;font-weight:600}.palette-field{color:var(--color-text-muted);gap:6px;font-size:12px;font-weight:500;display:grid}.palette-field-grow{min-width:0}.palette-field input,.palette-field select,.palette-search-input{width:100%}.palette-control-shell{position:relative}.palette-control-shell:after{content:"";pointer-events:none;border-bottom:2px solid #64748b;border-right:2px solid #64748b;width:7px;height:7px;position:absolute;top:50%;right:14px;transform:translateY(-70%)rotate(45deg)}.palette-select,.palette-search-input{border:1px solid var(--color-border);background:var(--color-bg-surface);color:#0f172a;border-radius:10px;min-height:40px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.palette-select{appearance:none;cursor:pointer;padding-right:36px}.palette-select:hover,.palette-search-input:hover{border-color:#93c5fd}.palette-select:focus,.palette-search-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.palette-search-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.5-3.5'/%3E%3C/svg%3E");background-position:11px;background-repeat:no-repeat;padding-left:34px}.palette-search-input::-webkit-search-decoration{appearance:none;display:none}.palette-search-input::-webkit-search-cancel-button{appearance:none;display:none}.palette-family-chips{flex-wrap:wrap;gap:6px;min-width:0;display:flex}.palette-family-chips.compact .palette-family-chip{min-height:30px;padding:0 10px 0 8px;font-size:12px}.palette-family-chip{border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:32px;color:var(--color-text-soft);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 8px;font-size:13px;line-height:1;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;display:inline-flex}.palette-family-chip:hover{color:#1e293b;background:#f8fbff;border-color:#93c5fd}.palette-family-chip.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-hover);box-shadow:inset 0 0 0 1px #bfdbfe}.palette-family-dot{border:1px solid #0f172a1a;border-radius:999px;flex-shrink:0;width:10px;height:10px}.palette-family-dot.is-all{background:linear-gradient(135deg,#ef4444 0%,#eab308 35%,#22c55e 55%,#3b82f6 75%,#a855f7 100%)}.palette-family-chip[data-family=red] .palette-family-dot{background:#ef4444}.palette-family-chip[data-family=orange] .palette-family-dot{background:#f97316}.palette-family-chip[data-family=yellow] .palette-family-dot{background:#eab308}.palette-family-chip[data-family=green] .palette-family-dot{background:#22c55e}.palette-family-chip[data-family=cyan] .palette-family-dot{background:#06b6d4}.palette-family-chip[data-family=blue] .palette-family-dot{background:#3b82f6}.palette-family-chip[data-family=purple] .palette-family-dot{background:#a855f7}.palette-family-chip[data-family=pink] .palette-family-dot{background:#ec4899}.palette-family-chip[data-family=brown] .palette-family-dot{background:#a16207}.palette-family-chip[data-family=gray] .palette-family-dot{background:#94a3b8}.palette-family-chip[data-family=white] .palette-family-dot{background:var(--color-bg-surface)}.palette-family-chip[data-family=black] .palette-family-dot{background:#1e293b}.palette-bar-action{white-space:nowrap;border-radius:10px;align-self:end;min-height:40px;padding:0 16px}.palette-bar-action-short{display:none}.palette-filter-drawer{border:0}.palette-filter-drawer>.palette-browse-filters,.palette-filter-drawer>.palette-main-filters{display:grid}.palette-filter-drawer>summary{list-style:none;display:none}.palette-filter-drawer>summary::-webkit-details-marker{display:none}.palette-toolbar-primary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.palette-toolbar-row{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.palette-toolbar-scroll{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;display:flex}.palette-toolbar-more-trigger{display:none}.palette-toolbar-secondary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.palette-colors-scroll{flex:1;min-height:0;overflow:hidden}.palette-tabs{flex-wrap:wrap;gap:8px;display:flex}.palette-tab{background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer;border:1px solid #dbe3ef;border-radius:999px;padding:6px 14px}.palette-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.palette-tab-panel.hidden{display:none}.palette-empty-state{background:var(--color-bg-subtle);color:var(--color-text-soft);border:1px dashed #cbd5e1;border-radius:12px;gap:8px;padding:28px 24px;display:grid}.palette-empty-state strong{color:#0f172a;font-size:16px}.palette-mine-layout{flex-direction:column;gap:14px;min-width:0;max-width:100%;min-height:0;display:flex}.palette-mine-bar{background:linear-gradient(#fafbfd 0%,#fff 100%);border:1px solid #e8eef5;border-radius:12px;grid-template-columns:minmax(240px,1.4fr) minmax(200px,1fr) auto;align-items:end;gap:12px;min-width:0;padding:14px;display:grid;box-shadow:0 1px 2px #0f172a0a}.palette-mine-bar .palette-field-palette,.palette-mine-bar .palette-field-search{min-width:0}.palette-mine-bar-actions{align-items:center;gap:8px;display:flex}.palette-mine-bar-actions button{white-space:nowrap;border-radius:10px;min-height:40px;padding:0 16px}.palette-main{flex-direction:column;flex:1;min-width:0;max-width:100%;min-height:0;display:flex;overflow:hidden}.palette-main-detail{flex-direction:column;flex:1;gap:10px;min-width:0;max-width:100%;min-height:0;display:flex;overflow:hidden}.palette-main-header{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:12px;gap:10px;min-width:0;padding:12px 14px;display:grid}.palette-main-header-top{flex-wrap:wrap;align-items:center;gap:8px 12px;min-width:0;display:flex}.palette-main-meta{white-space:nowrap;flex:none;margin:0}.palette-page-message:empty{display:none}.palette-main-toolbar{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;max-width:100%;display:flex}.palette-danger-btn{color:#b91c1c;border-color:#fecaca}.palette-add-panel{background:#f8fbff;border:1px solid #dbeafe;border-radius:12px;padding:14px}.palette-add-form{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.palette-add-form label{color:var(--color-text-muted);gap:6px;font-size:13px;display:grid}.palette-add-actions{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.palette-color-grid-browse{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.palette-quick-colors{gap:12px;margin-bottom:12px;display:grid}.palette-quick-section h4{color:var(--color-text-muted);margin:0 0 8px;font-size:13px}.palette-quick-list{flex-wrap:wrap;gap:8px;display:flex}.palette-quick-chip{border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:36px;color:var(--color-text-secondary);border-radius:999px;align-items:center;gap:8px;padding:4px 10px 4px 4px;font-size:12px;display:inline-flex}.palette-quick-chip .color-swatch{border-radius:999px;width:24px;height:24px}.palette-color-card{border:1px solid var(--color-border-subtle);background:var(--color-bg-surface);border-radius:10px;gap:8px;padding:10px;display:grid}.palette-color-card.color-card-highlight,.color-card-manage.color-card-highlight{border-color:var(--color-primary);animation:1.2s 2 palette-highlight-pulse;box-shadow:0 0 0 3px #2563eb2e}.palette-color-card-main{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;padding:0;display:grid}.palette-color-card-main:hover,.palette-color-card-main:focus,.palette-color-card-main:active{color:inherit;background:0 0}.palette-color-card-main:focus-visible{outline-offset:2px;border-radius:8px;outline:2px solid #93c5fd}.palette-color-card-actions{flex-wrap:wrap;gap:6px;display:flex}.palette-color-card-actions button{min-height:30px;padding:0 10px;font-size:12px}.palette-color-card-actions .is-favorite{color:#d97706;background:#fffbeb;border-color:#fde68a}.palette-family-select{min-width:132px}.admin-color-form-actions,.admin-paste-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-paste-panel{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:10px;gap:10px;margin-top:12px;padding:12px;display:grid}.admin-paste-panel.hidden{display:none}.admin-paste-panel textarea{border:1px solid var(--color-border);border-radius:8px;width:100%;min-height:110px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.admin-paste-preview{max-height:180px;color:var(--color-text-soft);gap:6px;font-size:12px;display:grid;overflow:auto}.admin-paste-preview .error-line{color:#b91c1c}.palette-color-grid-manage{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;position:relative}.palette-reorder-hint{background:var(--color-bg-subtle);border:1px dashed #cbd5e1;border-radius:8px;margin:0 0 10px;padding:8px 10px}.palette-color-grid-manage.is-pointer-dragging .color-card-manage:not(.is-dragging-floating){transition:transform .18s cubic-bezier(.2,0,.2,1),box-shadow .12s,border-color .12s}.palette-color-grid-manage.is-pointer-dragging .color-card-placeholder{transition:none}.palette-dialog{border:none;border-radius:14px;width:min(480px,100vw - 32px);padding:0;box-shadow:0 20px 50px #0f172a2e}.palette-dialog::backdrop{background:#0f172a73}.palette-dialog-form{gap:12px;padding:20px;display:grid}.palette-dialog-form h4{margin:0}.palette-dialog-form label{color:var(--color-text-muted);gap:6px;font-size:13px;display:grid}.palette-dialog-form textarea{width:100%;min-height:120px;font:inherit;resize:vertical;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45}.palette-dialog-form .admin-paste-preview{max-height:160px;overflow-y:auto}.palette-dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.palette-dialog-form input.input-error{border-color:#dc2626;box-shadow:0 0 0 2px #dc262624}.duplicate-palette-dialog{width:min(680px,100vw - 32px);height:fit-content;max-height:calc(100dvh - 32px);overflow:hidden}.duplicate-palette-dialog[open]{flex-direction:column;display:flex}.duplicate-palette-form{box-sizing:border-box;overscroll-behavior:contain;flex-direction:column;gap:10px;min-height:0;max-height:calc(100dvh - 32px);display:flex;overflow:hidden auto}.duplicate-palette-form>h4,.duplicate-palette-form>.hint,.duplicate-palette-form>label,.duplicate-palette-form>#duplicatePaletteMessage,.duplicate-palette-form>.palette-dialog-actions{flex-shrink:0}.duplicate-palette-form>h4,.duplicate-palette-form>.hint{min-height:0;margin:0}.duplicate-palette-form>.palette-dialog-actions,#duplicatePaletteMessage{margin-top:0}#duplicatePaletteMessage:empty{min-height:0;margin:0;padding:0;display:none}.duplicate-color-fieldset{border:1px solid var(--color-border);border-radius:10px;min-width:0;margin:0;padding:10px 12px 12px}.duplicate-color-fieldset legend{color:var(--color-text-secondary);padding:0 6px;font-weight:700}.duplicate-color-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.duplicate-color-toolbar>div{gap:6px;display:flex}.duplicate-color-toolbar button{min-height:32px;padding:5px 10px}.duplicate-color-list{overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;max-height:min(48vh,100dvh - 380px);padding:2px;display:grid;overflow-y:auto}.duplicate-color-option{border:1px solid var(--color-border-soft);cursor:pointer;border-radius:8px;grid-template-columns:auto 28px minmax(0,1fr);align-items:center;gap:8px;min-width:0;padding:8px;display:grid!important}.duplicate-color-option:has(input:checked){background:var(--color-primary-soft);border-color:#93c5fd}.duplicate-color-option input{width:16px;height:16px;margin:0}.duplicate-color-option .color-swatch{width:28px;height:28px}.duplicate-color-option span:last-child{min-width:0}.duplicate-color-option strong,.duplicate-color-option small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.duplicate-color-option small{color:var(--color-text-muted);margin-top:2px}.duplicate-color-loading{text-align:center;grid-column:1/-1;padding:20px}.palette-page-message{margin-top:0;margin-bottom:10px}.palette-page-message:not(:empty){z-index:20;position:sticky;top:0}.app-shell.tablet-layout #projectView.view.active{display:block}.app-shell.tablet-layout .workspace-generate-panel .pattern-result{gap:8px;margin-top:8px}.app-shell.tablet-layout #projectView .project-list-panel{padding:8px}.app-shell.tablet-layout #projectView .project-detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px}.app-shell.tablet-layout #projectView .project-detail-media{aspect-ratio:1;min-height:min(300px,42vw);max-height:min(440px,52vh)}.app-shell.tablet-layout .palette-mine-bar{gap:10px;padding:10px 12px}.app-shell.tablet-layout .palette-main-detail{min-width:0}.app-shell.tablet-layout .palette-main-header{gap:8px;padding:10px 12px}.app-shell.tablet-layout .palette-main-meta{font-size:12px}.app-shell.tablet-layout .palette-main-toolbar{gap:6px;display:grid}.app-shell.tablet-layout #paletteView .palette-toolbar-row{flex-wrap:nowrap;gap:6px;position:relative}.app-shell.tablet-layout #paletteView .palette-toolbar-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1 1 0;min-width:0;display:block;overflow-x:auto}.app-shell.tablet-layout #paletteView .palette-toolbar-scroll::-webkit-scrollbar{display:none}.app-shell.tablet-layout #paletteView .palette-toolbar-primary{flex-wrap:nowrap;gap:6px;width:max-content;display:flex}.app-shell.tablet-layout #paletteView .palette-toolbar-primary button{white-space:nowrap;flex:none;min-height:32px;padding:0 10px;font-size:12px}.app-shell.tablet-layout #paletteView .palette-toolbar-more-trigger{white-space:nowrap;flex:none;justify-content:center;align-items:center;min-height:32px;padding:0 10px;font-size:12px;display:inline-flex}.app-shell.tablet-layout #paletteView .palette-toolbar-secondary{z-index:30;border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;flex-direction:column;align-items:stretch;gap:6px;min-width:200px;padding:8px;display:none;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0f172a1f}.app-shell.tablet-layout #paletteView .palette-toolbar-row.is-more-open .palette-toolbar-secondary{display:flex}.app-shell.tablet-layout .palette-main-filters{border-top:0;margin-top:0;padding-top:0}.app-shell.tablet-layout .palette-family-chips.compact .palette-family-chip{min-height:28px;padding:0 8px;font-size:11px}.app-shell.tablet-layout .palette-reorder-hint{margin-bottom:6px;padding:6px 8px;font-size:12px}.app-shell.tablet-layout .palette-color-grid-manage{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}.app-shell.tablet-layout .palette-color-grid-manage>.color-card-manage{min-width:0}.app-shell.tablet-layout .palette-add-form{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-avatar-preview img,.sidebar-user-avatar img,.community-card-avatar img{object-fit:cover;width:100%;height:100%;display:block}.settings-avatar-preview.has-image,.sidebar-user-avatar.has-image,.community-card-avatar.has-image{background:0 0}.admin-config-intro{margin:0 0 12px}.admin-config-toolbar{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:14px;padding:12px;display:grid}.admin-config-search{width:100%}.admin-config-toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-config-recent{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;display:flex}.admin-config-recent strong{color:var(--color-text-soft);font-size:12px}.admin-config-recent span{color:var(--color-text-muted);background:var(--color-bg-surface);border:1px solid var(--color-border-soft);border-radius:999px;padding:4px 8px;font-size:12px}.admin-config-toolbar-actions .active{color:var(--color-primary-hover);background:var(--color-primary-soft);border-color:#93c5fd}.admin-config-layout{grid-template-columns:184px minmax(0,1fr);gap:14px;display:grid}.admin-config-sidebar{align-content:start;gap:8px;display:grid;position:sticky;top:12px}.admin-config-group-nav{text-align:left;border:1px solid var(--color-border);background:var(--color-bg-surface);min-height:36px;color:var(--color-text-secondary);border-radius:8px;justify-content:flex-start}.admin-config-group-nav.active{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#93c5fd}.admin-config-main{gap:12px;display:grid}.admin-config-empty{color:var(--color-text-muted);background:var(--color-bg-subtle);text-align:center;border:1px dashed #cbd5e1;border-radius:10px;padding:28px 16px}.admin-config-section{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:10px;gap:10px;padding:16px;display:grid}.admin-config-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.admin-config-section-head h4{margin:0}.admin-config-section-actions{gap:8px;display:flex}.admin-config-row{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(150px,180px);align-items:center;gap:18px;padding:12px;display:grid}.admin-config-row.is-dirty{background:var(--color-primary-soft);border-color:#93c5fd;box-shadow:0 0 0 2px #2563eb14}.admin-config-row.has-error{background:#fff7f7;border-color:#fca5a5;box-shadow:0 0 0 2px #dc262614}.admin-config-row.hidden{display:none}.admin-config-impact{color:var(--color-primary);font-size:12px}.admin-config-copy{gap:5px;min-width:0;display:grid}.admin-config-key{width:fit-content;max-width:100%;color:var(--color-text-muted);overflow-wrap:anywhere;background:#eef2f7;border-radius:5px;padding:2px 6px;font-family:Consolas,monospace;font-size:11px}.admin-config-control{justify-content:flex-end;min-width:0;display:flex}.admin-config-control>input{width:100%;max-width:180px}.admin-config-control .admin-config-toggle{margin-top:0}.admin-config-main .message{grid-column:1/-1}.admin-visual-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.admin-visual-card,.admin-export-card{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:8px;grid-template-columns:72px minmax(0,1fr);gap:12px;padding:10px 12px 10px 34px;transition:border-color .15s,box-shadow .15s;display:grid;position:relative}.admin-account-card:not(tr){border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:8px;grid-template-columns:1fr;gap:12px;padding:10px 12px 10px 34px;transition:border-color .15s,box-shadow .15s;display:grid;position:relative}.admin-visual-card:hover,.admin-account-card:not(tr):hover{border-color:#cbd5e1;box-shadow:0 1px 4px #0f172a0d}.admin-account-card:not(tr){grid-template-columns:1fr;padding-left:34px}.admin-visual-card>.admin-row-check,.admin-account-card>.admin-row-check{position:absolute;top:50%;left:10px;transform:translateY(-50%)}.admin-visual-thumb{border:1px solid var(--color-border-subtle);border-radius:8px;width:72px;height:72px}.admin-visual-thumb img{object-fit:cover}.admin-visual-thumb.placeholder{color:#94a3b8;text-align:center;place-items:center;padding:8px;font-size:12px;display:grid}.admin-visual-body{align-content:start;gap:8px;min-width:0;display:grid}.admin-visual-body strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-visual-meta{color:var(--color-text-muted);font-size:12px}.admin-account-head{justify-content:space-between;align-items:start;gap:12px;display:flex}.admin-account-controls{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:10px;display:grid}.admin-account-controls label{gap:6px;font-size:13px;display:grid}.admin-export-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.admin-row-check input[type=checkbox]:disabled{opacity:.45;cursor:not-allowed}.admin-status-badge{white-space:nowrap;width:auto;max-width:100%;color:var(--color-text-secondary);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:2px 10px 2px 8px;font-size:12px;font-weight:600;line-height:1.2;display:inline-flex}.admin-status-badge:before{content:"";background:#94a3b8;border-radius:50%;flex-shrink:0;width:6px;height:6px}.admin-status-badge.status-admin{color:#1e40af}.admin-status-badge.status-admin:before{background:#3b82f6}.admin-status-badge.status-success,.admin-status-badge.status-done,.admin-status-badge.status-active{color:#15803d}.admin-status-badge.status-success:before,.admin-status-badge.status-done:before,.admin-status-badge.status-active:before{background:#22c55e}.admin-status-badge.status-pending{color:#92400e}.admin-status-badge.status-pending:before{background:#f59e0b}.admin-status-badge.status-processing{color:#1e40af}.admin-status-badge.status-processing:before{background:#3b82f6}.admin-status-badge.status-failed{color:#b91c1c}.admin-status-badge.status-failed:before{background:#ef4444}.admin-status-badge.status-inactive{color:var(--color-text-muted)}.admin-status-badge.status-inactive:before{background:#cbd5e1}.admin-status-badge.status-expired{color:#b45309}.admin-status-badge.status-expired:before{background:#f59e0b}.admin-account-identity{gap:4px;min-width:0;display:grid}.admin-account-email{word-break:break-all;font-size:15px;line-height:1.35}.admin-account-nickname,.admin-account-id{color:var(--color-text-muted);font-size:13px;line-height:1.4}.admin-account-card .admin-account-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-account-card .admin-row-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-danger-btn{color:#b91c1c;border-color:#fecaca}.admin-detail-body h4{margin:0 0 10px}.admin-detail-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.admin-detail-grid>div{background:var(--color-bg-surface);border:1px solid #dbeafe;border-radius:8px;gap:4px;padding:10px;display:grid}.admin-detail-grid span{color:var(--color-text-muted);font-size:12px}.admin-detail-actions{justify-content:flex-end;margin-top:10px;display:flex}.admin-record-list{grid-template-columns:1fr;gap:8px;display:grid}.admin-record-card{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:8px;grid-template-columns:20px 1fr;align-items:center;gap:10px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:grid}.admin-record-card:hover{border-color:#cbd5e1;box-shadow:0 1px 4px #0f172a0d}.admin-share-record:not(tr),.admin-export-record:not(tr){align-items:start}.admin-share-record>.admin-row-check,.admin-export-record>.admin-row-check{align-self:center;margin-top:0}.admin-record-main{grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;display:grid}.admin-record-content{min-width:0}.admin-record-headline{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:6px;display:flex}.admin-record-headline-text{min-width:0}.admin-record-meta{flex-wrap:wrap;gap:6px;display:flex}.admin-token-pill{align-items:center;gap:6px;max-width:100%;display:inline-flex}.admin-token-pill code{color:var(--color-text-soft);background:0 0;font-size:11px}.admin-link-btn{min-height:auto;color:var(--color-primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.admin-link-btn:hover{color:var(--color-primary-hover);background:0 0;text-decoration:underline}.admin-record-card.is-inactive{background:var(--color-bg-subtle);border-color:var(--color-border-soft)}.admin-record-card.is-pending{background:#fffbeb;border-color:#fde68a}.admin-record-body{min-width:0}.admin-record-top{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.admin-record-title{color:#0f172a;font-size:14px;font-weight:600;line-height:1.35;display:block}.admin-record-sub{color:#94a3b8;margin-top:2px;font-size:12px;display:block}.admin-record-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px 16px;display:grid}.admin-record-field span{color:#94a3b8;letter-spacing:.04em;margin-bottom:2px;font-size:11px;display:block}.admin-record-field strong{color:#0f172a;word-break:break-word;font-size:14px;line-height:1.4;display:block}.admin-record-error{color:#b91c1c;background:#fef2f2;border-radius:6px;margin:6px 0 0;padding:6px 8px;font-size:12px}.admin-record-actions{flex-direction:column;gap:6px;display:flex}.admin-record-actions-inline{flex-flow:wrap;justify-content:flex-end;align-items:center;gap:6px}.admin-record-actions button,.admin-record-actions-inline button{width:auto;min-height:30px;padding:0 10px;font-size:13px}.admin-record-hint{color:#94a3b8;white-space:nowrap;font-size:12px;line-height:1.4}.admin-record-thumb .admin-visual-thumb{width:52px;height:52px}.admin-preview-modal{z-index:1200;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.admin-preview-modal.hidden{display:none}.admin-preview-backdrop{background:#0f172a73;position:absolute;inset:0}.admin-preview-dialog{z-index:1;background:var(--color-bg-surface);border-radius:12px;grid-template-rows:auto minmax(0,1fr);width:min(960px,100%);max-height:min(88vh,900px);display:grid;position:relative;overflow:hidden;box-shadow:0 20px 50px #0f172a40}.admin-preview-head{border-bottom:1px solid var(--color-border-soft);background:var(--color-bg-subtle);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.admin-preview-body{background:var(--color-bg-surface);min-height:320px;padding:16px;overflow:auto}.admin-preview-image{background:var(--color-bg-subtle);border-radius:8px;max-width:100%;max-height:calc(88vh - 120px);margin:0 auto;display:block}.admin-preview-iframe{background:var(--color-bg-subtle);border:0;border-radius:8px;width:100%;height:calc(88vh - 120px);min-height:480px;display:block}.admin-palette-layout{grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.admin-palette-sidebar,.admin-palette-main{min-width:0}.admin-palette-sidebar{border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;gap:12px;padding:14px;display:grid}.admin-palette-sidebar h4,.admin-palette-workspace-head h4{margin:0}.admin-palette-list{grid-auto-rows:min-content;align-content:start;gap:8px;max-height:480px;display:grid;overflow:auto}.admin-palette-item{width:100%;min-height:unset;text-align:left;border:1px solid var(--color-border);background:var(--color-bg-surface);height:auto;color:var(--color-text-secondary);cursor:pointer;white-space:normal;border-radius:8px;align-self:start;gap:4px;padding:10px 12px;display:grid}.admin-palette-item:hover{background:var(--color-bg-surface);color:var(--color-text-secondary);border-color:#93c5fd}.admin-palette-item strong{word-break:break-word;font-size:14px;line-height:1.35;display:block}.admin-palette-item span{color:var(--color-text-muted);word-break:break-word;font-size:12px;line-height:1.4;display:block}.admin-palette-item.active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 2px #2563eb1f}.admin-palette-create summary,.admin-palette-section summary{cursor:pointer;color:var(--color-text-secondary);font-weight:600}.admin-palette-create,.admin-palette-section{border:1px solid var(--color-border-subtle);background:var(--color-bg-surface);border-radius:8px;padding:11px 14px}.admin-palette-section[open]{border-color:var(--color-border);box-shadow:0 4px 14px #0f172a0a}.admin-palette-main{gap:12px;display:grid}.admin-palette-empty{background:var(--color-bg-subtle);text-align:center;border:1px dashed #cbd5e1;border-radius:8px;gap:8px;padding:28px 20px;display:grid}.admin-palette-workspace{gap:10px;display:grid}.admin-palette-workspace-head{border-bottom:1px solid var(--color-border-subtle);justify-content:space-between;align-items:baseline;gap:12px;padding:0 2px 8px;display:flex}.admin-palette-workspace-head .hint{text-align:right;margin:0}.admin-form-stack,.admin-color-form,.admin-import-form{gap:10px;margin-top:10px;display:grid}.admin-form-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;gap:10px;display:grid}.admin-form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-checkbox-row{flex-direction:row;align-items:center;gap:8px;display:flex!important}.admin-template-create{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:10px;padding:12px}.admin-form-stack label,.admin-color-form label{color:var(--color-text-soft);gap:6px;font-size:13px;display:grid}.admin-color-form{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));align-items:start;gap:8px 12px}.admin-color-form>label,.hex-input-row,.hex-input-row input{min-width:0}.admin-color-form-actions{grid-column:1/-1;margin-top:2px}.admin-color-form button{justify-self:start}.admin-color-form .field-hint:empty{display:none}.admin-import-form{grid-template-columns:minmax(0,1fr) auto;align-items:center}.admin-import-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-import-hint{margin:8px 0 0}.admin-palette-color-grid{max-height:420px;overflow:auto}.admin-palette-section>.compact-head{flex-direction:row;align-items:center;margin:0 0 10px}.admin-palette-section>.compact-head h4{margin:0}.admin-detail-preview-wrap{grid-template-columns:160px minmax(0,1fr);align-items:start;gap:16px;display:grid}.admin-detail-preview{object-fit:contain;border:1px solid var(--color-border);background:var(--color-bg-subtle);border-radius:8px;width:160px;height:160px}.admin-project-mobile-meta{display:none}.admin-project-inline-detail-row>td{border-bottom:1px solid var(--color-border-soft);vertical-align:top;background:0 0;padding:0 8px 8px}.admin-project-inline-detail{gap:0;margin:0;padding:8px 10px}.admin-project-inline-detail .admin-detail-preview-wrap{grid-template-columns:56px minmax(0,1fr);align-items:start;gap:10px}.admin-project-inline-detail .admin-detail-preview,.admin-project-inline-detail .admin-visual-thumb.placeholder{width:56px;height:56px}.admin-project-inline-detail-main{gap:4px;min-width:0;display:grid}.admin-project-inline-detail-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.admin-project-inline-detail .admin-detail-body h4,.admin-project-inline-detail-head h4{flex:auto;min-width:0;margin:0;font-size:14px;line-height:1.3}.admin-project-inline-detail-head .admin-detail-close{white-space:nowrap;flex:none;height:28px;padding:0 10px;font-size:12px;min-height:28px!important}.admin-project-inline-detail .admin-meta-grid{gap:4px;margin-top:0}.admin-project-inline-detail .admin-detail-actions{display:none}.settings-pref-group label select,.settings-pref-group .palette-pick-select{width:100%;min-width:0}.palette-pref-picker{gap:10px;display:grid}.palette-pref-label{color:var(--color-text-secondary);font-size:13px;font-weight:500}.palette-scope-switch{border:1px solid var(--color-border);background:var(--color-bg-surface);border-radius:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;display:grid}.palette-scope-btn{min-height:36px;color:var(--color-text-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:13px;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.palette-scope-btn:hover{background:var(--color-bg-subtle);color:#1e293b}.palette-scope-btn.active[data-scope=default]{background:var(--color-bg-muted);color:#0f172a;box-shadow:inset 0 0 0 1px var(--color-border-soft);border-color:#cbd5e1}.palette-scope-btn.active[data-scope=system]{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#93c5fd;box-shadow:inset 0 0 0 1px #bfdbfe}.palette-scope-btn.active[data-scope=mine]{color:#15803d;background:#f0fdf4;border-color:#86efac;box-shadow:inset 0 0 0 1px #bbf7d0}.palette-kind-dot{border-radius:999px;flex-shrink:0;width:8px;height:8px}.palette-kind-dot.system{background:var(--color-primary);box-shadow:0 0 0 2px #dbeafe}.palette-kind-dot.mine{background:#16a34a;box-shadow:0 0 0 2px #dcfce7}.palette-pick-wrap{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.palette-pick-wrap.hidden,.palette-kind-badge.hidden{display:none}.palette-pick-select{width:100%}.palette-kind-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.palette-kind-badge.system{color:var(--color-primary-hover);background:var(--color-primary-soft);border:1px solid #bfdbfe}.palette-kind-badge.mine{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0}.palette-kind-badge.compact{min-height:22px;padding:0 7px;font-size:11px}select.palette-grouped-select{border-color:var(--color-border)}.admin-overview-bar{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.admin-stats-panel{background:radial-gradient(circle at 100% 0,#2563eb17,#0000 34%),#fff;border-color:#dbeafe;overflow:hidden}.admin-stats-head{align-items:flex-start;margin-bottom:20px}.admin-stats-head>div{min-width:0}.admin-stats-head h3{margin:3px 0 4px}.admin-stats-head .hint{margin:0}.admin-section-kicker{color:var(--color-primary);letter-spacing:.08em;font-size:12px;font-weight:700;display:block}.admin-status-summary{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.admin-status-chip{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);min-height:34px;color:var(--color-text-soft);border-radius:999px;padding:0 14px;font-size:12px;font-weight:500;transition:border-color .15s,background .15s,color .15s}.admin-status-chip strong{color:#0f172a;margin-left:4px;font-weight:700}.admin-status-chip:hover{background:var(--color-bg-subtle);border-color:#cbd5e1}.admin-status-chip.active{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary-hover);box-shadow:0 0 0 1px #2563eb14}.admin-config-toggle{align-items:center;gap:8px;margin-top:8px;display:inline-flex}.admin-view .admin-shell{background:var(--color-bg-muted);border-radius:8px;padding:8px}.admin-stat-card{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;min-width:0;min-height:96px;padding:14px;position:relative;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.admin-stat-card:before{content:"";background:var(--color-primary);width:100%;height:3px;position:absolute;top:0;left:0}.admin-stat-card:nth-child(2):before{background:#7c3aed}.admin-stat-card:nth-child(3):before{background:#0891b2}.admin-stat-card:nth-child(4):before{background:#ea580c}.admin-stat-card:nth-child(5):before{background:#16a34a}.admin-stat-card:nth-child(6):before{background:var(--color-text-soft)}.admin-stat-card strong{color:#0f172a;overflow-wrap:anywhere;margin-top:12px;font-size:clamp(24px,2vw,30px);line-height:1.1;display:block}.admin-stat-card span{color:var(--color-text-soft);font-size:13px;font-weight:600;display:block}.admin-stat-card small{color:#94a3b8;margin-top:7px;font-size:12px;display:block}.admin-stat-card.is-alert{background:#fff7ed;border-color:#fdba74}.admin-storage-intro{margin:0 0 14px}.admin-storage-days-field{color:var(--color-text-soft);align-items:center;gap:6px;font-size:13px;display:inline-flex}.admin-storage-days-field input{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);color:#0f172a;border-radius:8px;width:78px;min-height:34px;padding:0 8px}.admin-storage-cards{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}.admin-storage-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.admin-storage-action{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:12px;flex-direction:column;justify-content:space-between;gap:14px;min-width:0;padding:16px;display:flex;box-shadow:0 1px 2px #0f172a0a}.admin-storage-action-copy strong{color:#0f172a;font-size:14px;display:block}.admin-storage-action-copy p{color:var(--color-text-muted);margin:6px 0;font-size:12px;line-height:1.6}.admin-storage-action-copy span{color:var(--color-text-soft);font-size:12px;font-weight:600}.admin-storage-action button{align-self:flex-start}.admin-storage-types{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:12px;padding:16px;box-shadow:0 1px 2px #0f172a0a}.admin-storage-types h4{color:#0f172a;margin:0 0 10px;font-size:14px}.admin-storage-type{border-bottom:1px dashed var(--color-border-soft);align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.admin-storage-type:last-child{border-bottom:none}.admin-storage-type-name{min-width:0;color:var(--color-text-secondary);flex:1;font-weight:600}.admin-storage-type-count{color:#94a3b8;font-size:12px}.admin-storage-type strong{color:#0f172a}.admin-storage-orphans>.hint{margin-bottom:10px}.admin-storage-orphan-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.admin-storage-orphan-block{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:12px;min-width:0;padding:16px;box-shadow:0 1px 2px #0f172a0a}.admin-storage-orphan-block h4{color:#0f172a;margin:0 0 10px;font-size:14px}.admin-storage-orphan-block h4 .hint{font-weight:400}:is(.editor-view:fullscreen,.editor-view.is-fullscreen){z-index:800;background:var(--color-bg-page);position:fixed;inset:0}:is(.editor-view:fullscreen .editor-body,.editor-view.is-fullscreen .editor-body){flex:1;min-height:0}.editor-view.mobile-simulated-landscape:is(:fullscreen,.is-fullscreen){z-index:10000!important}.editor-view.mobile-simulated-landscape:is(:fullscreen,.is-fullscreen) .editor-main{width:100dvh!important;max-width:100dvh!important;height:100dvw!important;max-height:100dvw!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)rotate(90deg)!important}.editor-view.is-mobile-layout:is(:fullscreen,.is-fullscreen) .toolbar-group-view .editor-landscape-tool:not(.hidden){justify-content:center;align-items:center;display:inline-flex!important}.share-page-cta{background:linear-gradient(135deg, #dbeafe 0%, #ecfdf5 55%, var(--color-primary-soft) 100%);border:1px solid #93c5fd;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px;display:flex;box-shadow:0 12px 32px #2563eb1f}.share-page-cta-copy{flex:240px;min-width:0}.share-page-cta-eyebrow{letter-spacing:.04em;color:var(--color-primary);margin:0 0 4px;font-size:12px;font-weight:600}.share-page-cta-title{color:#0f172a;margin:0 0 6px;font-size:clamp(18px,2.4vw,22px);line-height:1.3}.share-page-cta-desc{color:var(--color-text-soft);margin:0;font-size:13px;line-height:1.5}.share-page-cta-button{background:var(--color-primary);color:#fff;white-space:nowrap;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:168px;padding:12px 28px;font-size:15px;font-weight:600;text-decoration:none;transition:background .15s,transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 8px 20px #2563eb47}.share-page-cta-button:hover{background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 10px 24px #2563eb57}.share-page-footer{border-top:1px solid var(--color-border-subtle);text-align:center;color:#94a3b8;margin-top:16px;padding-top:14px;font-size:12px}.share-page-footer strong{color:var(--color-text-muted);font-weight:600}.share-page-options{flex-wrap:wrap;gap:14px;margin-bottom:0;display:flex}.view.assembly-view.active,.view.assembly-view:not(.hidden){flex-direction:column;position:relative;display:flex!important}.assembly-view{background:var(--assembly-bg);height:100%;min-height:0;color:var(--assembly-text);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;flex:1;display:none;overflow:hidden;padding:0!important}.assembly-workspace{background:var(--assembly-bg);flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.assembly-workspace.is-chrome-collapsed .assembly-topbar{pointer-events:none;transition:transform .22s;position:absolute;top:0;left:0;right:0;transform:translateY(-100%)}.assembly-workspace.is-chrome-collapsed .assembly-dock{pointer-events:none;transition:transform .22s;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.assembly-workspace.has-legend-open.is-chrome-collapsed .assembly-dock,.assembly-workspace.has-legend-open.is-chrome-collapsed .assembly-legend-drawer.is-open{pointer-events:auto;position:relative;transform:none}.assembly-workspace.is-chrome-collapsed .assembly-stage{flex:1}.assembly-workspace.is-chrome-collapsed.is-chrome-peek .assembly-topbar,.assembly-workspace.is-chrome-collapsed.is-chrome-peek .assembly-dock,.assembly-workspace.has-legend-open.is-chrome-collapsed .assembly-topbar{pointer-events:auto;transform:translateY(0)}.assembly-show-chrome{left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:6;background:var(--assembly-panel);min-height:36px;color:var(--assembly-accent-soft);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #38bdf873;border-radius:999px;padding:0 16px;font-size:13px;position:absolute;transform:translate(-50%);box-shadow:0 8px 24px #02061773}.assembly-show-chrome:hover{background:#1e293bf2;border-color:#7dd3fca6}.assembly-show-chrome.hidden{display:none}.assembly-view *{-webkit-user-select:none;user-select:none}.assembly-view input,.assembly-view textarea{-webkit-user-select:text;user-select:text}.assembly-view button.secondary{color:var(--color-border-soft);background:#0f172ab8;border:1px solid #94a3b847;min-height:32px;padding:0 12px;font-size:12px}.assembly-view button.secondary:hover{border-color:var(--assembly-border);background:#1e293beb}.assembly-view button.secondary:disabled{color:var(--color-text-muted);background:#0f172a73;border-color:#94a3b826}.assembly-view:not(.hidden){display:flex}.app-shell.editor-focus .assembly-view:not(.hidden){flex:1;height:100%;min-height:0}.assembly-topbar{z-index:20;padding:calc(6px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) 6px calc(12px + env(safe-area-inset-left,0px));background:#020617f5;border-bottom:1px solid #94a3b81f;flex-shrink:0;align-items:center;gap:10px;transition:transform .22s,opacity .22s;display:flex;position:relative}.assembly-mobile-hint{top:calc(env(safe-area-inset-top,0px) + 52px);left:calc(8px + env(safe-area-inset-left,0px));right:calc(8px + env(safe-area-inset-right,0px));z-index:29;color:var(--assembly-warning);pointer-events:auto;background:#1e293bf5;border:1px solid #fbbf2459;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:12px;line-height:1.5;display:flex;position:absolute}.assembly-mobile-hint.hidden{display:none}.assembly-mobile-hint .secondary{flex-shrink:0;min-height:36px;padding:0 10px;font-size:12px}.assembly-topbar-center{flex:1;gap:2px;min-width:0;display:grid}.assembly-top-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.assembly-progress-text{color:var(--assembly-text-muted);font-size:12px}.assembly-topbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.assembly-sync-status{color:var(--assembly-success);white-space:nowrap;background:#22c55e26;border-radius:999px;padding:4px 8px;font-size:11px}.assembly-sync-status.is-local{color:var(--assembly-warning);background:#fbbf2426}.assembly-sync-status.is-saving{color:#93c5fd;background:#3b82f626}.assembly-sync-status.is-flash{animation:.6s assembly-sync-flash}.assembly-stage{flex:1;min-height:0;position:relative;overflow:hidden}.assembly-canvas-wrap{touch-action:none;background:var(--assembly-surface);border:none;border-radius:0;width:100%;height:100%;position:relative;overflow:hidden}.assembly-canvas-wrap.pan-mode{cursor:grab}.assembly-canvas-wrap.pan-mode:active{cursor:grabbing}.assembly-canvas-wrap.mark-mode{cursor:crosshair}.assembly-canvas-wrap.lock-mode{cursor:default}.assembly-canvas-wrap.lock-mode.pan-mode{cursor:grab}.assembly-canvas-wrap.lock-mode.pan-mode:active{cursor:grabbing}.assembly-canvas-wrap.lock-pick-row{cursor:row-resize}.assembly-canvas-wrap.lock-pick-col{cursor:col-resize}.assembly-canvas{width:100%;height:100%;display:block}.assembly-lock-bar{display:none}.assembly-dock-lock-row{scrollbar-width:thin;border-top:1px solid #94a3b81f;justify-content:flex-start;align-items:center;width:100%;margin-top:2px;padding-top:6px;display:flex;overflow-x:auto}.assembly-dock-lock-row.hidden{display:none}.assembly-workspace.has-lock-inline .assembly-dock-row-primary{gap:6px}.assembly-view:not(.is-phone-dock) .assembly-workspace:is(.has-mark-inline,.has-lock-inline) .assembly-dock-row-primary{align-content:flex-start;row-gap:6px;overflow:visible;flex-wrap:wrap!important}.assembly-view:not(.is-phone-dock) .assembly-workspace:is(.has-mark-inline,.has-lock-inline) .assembly-dock-mark-inline,.assembly-view:not(.is-phone-dock) .assembly-workspace:is(.has-mark-inline,.has-lock-inline) .assembly-lock-inline{flex:100%;order:10;width:100%}.assembly-view:not(.is-phone-dock) .assembly-workspace:is(.has-mark-inline,.has-lock-inline) .assembly-dock-modes,.assembly-view:not(.is-phone-dock) .assembly-workspace:is(.has-mark-inline,.has-lock-inline) .assembly-dock-extras{flex:auto;min-width:0}.assembly-view:not(.is-phone-dock) .assembly-workspace:is(.has-mark-inline,.has-lock-inline) .assembly-dock-actions{flex:none;margin-left:auto}.assembly-lock-hint{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:11px}.assembly-dock-mark-inline{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.assembly-dock-mark-inline.hidden{display:none}.assembly-mark-tools{flex-shrink:0;gap:4px;display:inline-flex}.assembly-mark-tool-btn{min-height:30px;color:var(--assembly-text-soft);cursor:pointer;white-space:nowrap;background:#0f172ab8;border:1px solid #94a3b847;border-radius:7px;padding:0 10px;font-size:12px}.assembly-mark-tool-btn.is-active{border-color:var(--color-primary);color:#fff;background:#2563eb59;font-weight:600}.assembly-mark-undo-btn,.assembly-mark-redo-btn{min-height:30px;color:var(--assembly-text-soft);cursor:pointer;white-space:nowrap;background:#0f172ab8;border:1px solid #94a3b847;border-radius:7px;flex-shrink:0;padding:0 10px;font-size:12px}.assembly-mark-undo-btn:disabled,.assembly-mark-redo-btn:disabled{opacity:.42;cursor:not-allowed}.assembly-mark-undo-btn:not(:disabled):hover,.assembly-mark-redo-btn:not(:disabled):hover{color:#f1f5f9;border-color:#94a3b880}.assembly-canvas-wrap.mark-mode.mark-tool-brush{cursor:cell}.assembly-canvas-wrap.mark-mode.mark-tool-region{cursor:crosshair}.assembly-region-bar{left:50%;bottom:calc(var(--assembly-dock-h,72px) + 12px);z-index:14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;background:#0f172af0;border:1px solid #38bdf859;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:6px 8px;display:inline-flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 28px #00000073}.assembly-region-bar.hidden{display:none}.assembly-region-summary{color:var(--assembly-text-muted);white-space:nowrap;padding:0 4px;font-size:12px}.assembly-region-btn{min-height:32px;color:var(--color-border-soft);cursor:pointer;white-space:nowrap;background:#1e293bd9;border:1px solid #94a3b84d;border-radius:8px;padding:0 12px;font-size:12px;font-weight:600}.assembly-region-btn.primary{border-color:var(--color-primary);color:#fff;background:#2563eb8c}.assembly-region-btn.secondary{color:var(--assembly-text-muted)}.assembly-region-btn:disabled{opacity:.45;cursor:not-allowed}.assembly-swipe-lock-label{min-height:32px;color:var(--assembly-text-soft);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:#0f172ab8;border:1px solid #94a3b840;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:0 10px;font-size:12px;display:inline-flex}.assembly-swipe-lock-label input{width:16px;height:16px;accent-color:var(--assembly-accent);cursor:pointer;margin:0}.assembly-swipe-lock-status{min-height:28px;color:var(--assembly-accent-mid);white-space:nowrap;background:#38bdf824;border:1px solid #38bdf859;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.assembly-swipe-lock-status.hidden{display:none}.assembly-swipe-lock-swatch{border:1px solid #ffffff59;border-radius:4px;flex-shrink:0;width:14px;height:14px}.assembly-canvas-wrap.swipe-locking{cursor:cell}.assembly-lock-inline{border-left:1px solid #94a3b82e;border-right:1px solid #94a3b82e;flex-shrink:0;align-items:center;gap:8px;min-width:0;margin:0 2px;padding:0 8px;display:inline-flex}.assembly-lock-inline.hidden{display:none}.assembly-lock-axis{flex-shrink:0;gap:4px;display:inline-flex}.assembly-axis-btn{min-height:30px;color:var(--assembly-text-soft);cursor:pointer;white-space:nowrap;background:#0f172ab8;border:1px solid #94a3b847;border-radius:7px;padding:0 8px;font-size:12px}.assembly-axis-btn.is-active{border-color:var(--color-primary);color:#fff;background:#2563eb59;font-weight:600}.assembly-lock-summary{color:var(--assembly-accent-mid);white-space:nowrap;flex-shrink:0;font-size:11px}.assembly-clear-locks{min-height:30px;color:var(--color-border-soft);cursor:pointer;background:#1e293bb8;border:1px solid #94a3b840;border-radius:7px;flex-shrink:0;padding:0 8px;font-size:12px}.assembly-clear-locks.hidden{display:none}.assembly-lock-group{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.assembly-lock-nudge{flex-direction:column;flex-shrink:0;gap:2px;display:inline-flex}.assembly-lock-sep{color:#94a3b847;-webkit-user-select:none;user-select:none;padding:0 2px;font-size:14px;line-height:1}.assembly-lock-tag{color:var(--assembly-text-soft);white-space:nowrap;min-width:14px;font-size:13px;font-weight:600}.assembly-view .assembly-lock-input{background:var(--assembly-panel-strong);width:72px;min-width:72px;max-width:72px;height:32px;min-height:32px;color:var(--assembly-text);font-variant-numeric:tabular-nums;text-align:center;-webkit-user-select:text;user-select:text;appearance:textfield;border:1px solid #94a3b859;border-radius:8px;flex-shrink:0;padding:0 10px;font-size:14px}.assembly-view .assembly-lock-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.assembly-view .assembly-lock-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.assembly-lock-input:focus{border-color:var(--assembly-accent);outline:none;box-shadow:0 0 0 2px #38bdf833}.assembly-lock-input::placeholder{color:var(--color-text-muted);font-size:13px}.assembly-reset-assist.hidden,.assembly-dock-action.hidden{display:none}.assembly-dock-more-group{display:contents}.assembly-dock.is-more-open .assembly-more-toggle{color:#93c5fd;border-color:var(--color-primary);background:#2563eb38}.assembly-dock-row{scrollbar-width:thin;flex-wrap:nowrap;align-items:center;gap:8px;width:100%;min-height:40px;display:flex;overflow:auto hidden}.assembly-dock-row-primary{flex-wrap:nowrap;width:100%}.assembly-dock-extras{flex:1;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:inline-flex}.assembly-dock-actions{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.assembly-dock-action{white-space:nowrap;min-height:32px;padding:0 10px;font-size:12px}.assembly-reset-progress:disabled{opacity:.45;cursor:not-allowed}.assembly-nudge-btn{width:28px;min-width:28px;height:15px;min-height:15px;color:var(--color-border-soft);cursor:pointer;background:#0f172ac7;border:1px solid #94a3b847;border-radius:5px;padding:0;font-size:10px;line-height:1}.assembly-nudge-btn:active{border-color:var(--assembly-accent);background:#38bdf840}.assembly-mode-btn.secondary-fit{opacity:.9;border-style:dashed}.assembly-dock{z-index:20;padding:6px calc(10px + env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) calc(10px + env(safe-area-inset-left,0px));background:#020617f5;border-top:1px solid #94a3b824;border-radius:0;flex-direction:column;flex-shrink:0;margin:0;transition:transform .22s,opacity .22s;display:flex;position:relative}.assembly-display-settings{display:none}.assembly-display-select{color:var(--assembly-text-soft);white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:6px;font-size:12px;display:inline-flex;position:relative}.assembly-display-label{color:var(--assembly-text-muted);font-size:12px}.assembly-major-grid-trigger{color:#e2e8f0;cursor:pointer;background:linear-gradient(#1e293bf2,#0f172aeb);border:1px solid #94a3b852;border-radius:999px;justify-content:center;align-items:center;gap:4px;min-width:4.6em;min-height:30px;padding:0 10px;font-size:12px;line-height:1.2;display:inline-flex;box-shadow:inset 0 1px #ffffff0f}.assembly-major-grid-trigger:after{content:"";border-top:4.5px solid #e2e8f0bf;border-left:3.5px solid #0000;border-right:3.5px solid #0000;width:0;height:0;margin-left:2px}.assembly-major-grid-trigger[aria-expanded=true]:after{border-top:0;border-bottom:4.5px solid #e2e8f0bf}.assembly-major-grid-menu{z-index:12000;-webkit-backdrop-filter:blur(10px);background:#0f172af5;border:1px solid #94a3b838;border-radius:14px;gap:4px;width:5.75rem;padding:6px;display:grid;position:fixed;box-shadow:0 12px 32px #0206178c,inset 0 0 0 1px #ffffff08}.assembly-major-grid-menu.hidden,.assembly-major-grid-menu[hidden]{display:none!important}.assembly-major-grid-menu button{color:#cbd5e1;text-align:center;cursor:pointer;background:0 0;border:0;border-radius:10px;min-height:34px;padding:0 8px;font-size:13px;font-weight:500;transition:background .12s,color .12s}.assembly-major-grid-menu button.is-active,.assembly-major-grid-menu button[aria-selected=true]{color:#fff;background:#2563ebeb;box-shadow:0 4px 12px #2563eb47}.assembly-major-grid-menu button:hover,.assembly-major-grid-menu button:focus-visible{color:#fff;background:#334155e0;outline:none}.assembly-display-select[data-major-grid-picker]>select{clip:rect(0, 0, 0, 0);white-space:nowrap;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.assembly-dock-modes{flex-shrink:0;gap:6px;display:inline-flex}.assembly-mode-btn{min-height:32px;color:var(--assembly-text-soft);cursor:pointer;white-space:nowrap;text-align:center;background:#0f172a99;border:1px solid #94a3b840;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;font-size:12px;line-height:1.2;display:inline-flex}.assembly-mode-btn.assembly-more-toggle{display:none}.assembly-view.is-phone-dock .assembly-mode-btn.assembly-more-toggle{display:inline-flex}.assembly-view:not(.is-phone-dock) .assembly-mode-btn.assembly-more-toggle{display:none}.assembly-view .assembly-mode-btn:hover{background:#1e293bd9;border-color:#94a3b866}.assembly-mode-btn.is-active{border-color:var(--color-primary);color:#fff;background:#2563eb59;font-weight:600}.assembly-canvas-wrap.is-mirrored{box-shadow:inset 0 0 0 2px #0d948873}.assembly-legend-drawer{background:#0f172af5;border-top:1px solid #0000;border-bottom:1px solid #0000;border-radius:0;flex-shrink:0;max-height:0;margin:0;transition:max-height .28s;overflow:hidden}.assembly-legend-drawer.is-open{overscroll-behavior:contain;touch-action:pan-y;border-top-color:#94a3b82e;border-bottom-color:#94a3b81f;max-height:min(36vh,280px);padding:10px 12px;overflow-y:auto}.assembly-legend-hint{color:var(--assembly-text-muted);margin:0 0 8px;font-size:12px;line-height:1.5}.assembly-legend-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px;display:grid}.assembly-legend-item{width:100%;min-height:52px;color:var(--color-border-soft);text-align:left;cursor:pointer;touch-action:manipulation;background:#0f172a80;border:1px solid #94a3b826;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.assembly-legend-item:focus{outline:none}.assembly-legend-item:focus-visible{outline-offset:2px;outline:2px solid #93c5fdd9}.assembly-legend-item.is-done{opacity:.45}.assembly-legend-item:hover{background:#1e293bb8;border-color:#94a3b847}.assembly-legend-item.is-active{border-color:var(--assembly-accent);background:#38bdf81f}.assembly-legend-swatch-wrap{flex-shrink:0;width:40px;height:40px;position:relative}.assembly-legend-swatch{box-sizing:border-box;border:1px solid #94a3b859;border-radius:8px;width:100%;height:100%;display:block}.assembly-legend-badge{color:var(--assembly-surface);text-shadow:0 0 2px #ffffffd9;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:absolute;inset:0}.assembly-legend-text{gap:2px;font-size:12px;display:grid}.assembly-legend-text strong{font-size:13px}.assembly-view:is(:fullscreen,.is-fullscreen){z-index:900;background:var(--assembly-bg);width:100%!important;max-width:none!important;height:100%!important;max-height:none!important;margin:0!important;padding:0!important;position:fixed!important;inset:0!important}.assembly-view.mobile-simulated-landscape:is(:fullscreen,.is-fullscreen){z-index:10000!important}.assembly-view.mobile-simulated-landscape:is(:fullscreen,.is-fullscreen) .assembly-workspace{width:100dvh!important;max-width:100dvh!important;height:100dvw!important;max-height:100dvw!important;position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)rotate(90deg)!important}.assembly-view.is-mobile-layout:is(:fullscreen,.is-fullscreen) .assembly-topbar-actions .assembly-landscape-btn:not(.hidden),.assembly-view.is-mobile-layout:is(:fullscreen,.is-fullscreen) .assembly-topbar-actions .mobile-landscape-btn:not(.hidden){text-align:center;justify-content:center;align-items:center;display:inline-flex!important}.assembly-view:is(:fullscreen,.is-fullscreen) .assembly-topbar-actions .assembly-topbar-chip-btn{text-align:center;justify-content:center;align-items:center;display:inline-flex}:is(.assembly-view:fullscreen:not(.mobile-simulated-landscape) .assembly-workspace,.assembly-view.is-fullscreen:not(.mobile-simulated-landscape) .assembly-workspace){height:100%}:is(.assembly-view:fullscreen .assembly-topbar,.assembly-view.is-fullscreen .assembly-topbar){padding-top:calc(6px + env(safe-area-inset-top,0px))}:is(.assembly-view:fullscreen .assembly-dock,.assembly-view.is-fullscreen .assembly-dock){padding-bottom:calc(5px + env(safe-area-inset-bottom,0px))}.my-shares-list.admin-list{margin-top:10px;display:block}.community-card-avatar.has-image{padding:0}.auth-forgot-row{text-align:right;margin:8px 0 0}.tpl-grid{flex-direction:column;gap:8px;max-height:min(360px,44vh);padding:2px;display:flex;overflow-y:auto}button.tpl-card{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);width:100%;color:var(--color-text-secondary);text-align:left;font:inherit;cursor:pointer;border-radius:12px;flex-shrink:0;align-items:center;gap:12px;padding:10px 12px;font-size:13px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}button.tpl-card:hover{background:var(--color-bg-subtle);border-color:#bfdbfe}button.tpl-card.is-active{border-color:var(--color-primary);background:var(--color-primary-soft);box-shadow:0 0 0 2px #2563eb1f}.tpl-thumb{object-fit:contain;background:var(--color-bg-subtle);box-sizing:border-box;border-radius:8px;flex-shrink:0;width:68px;height:68px;padding:5px}.tpl-body{flex:1;gap:4px;min-width:0;display:grid}.tpl-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.tpl-name{color:#1e293b;font-size:.88rem;font-weight:600}.tpl-size{color:var(--color-text-muted);white-space:nowrap;font-size:.75rem}.tpl-desc{color:var(--color-text-muted);font-size:.78rem;line-height:1.5}.tpl-tag{background:var(--color-bg-muted);color:var(--color-text-soft);border-radius:999px;justify-self:start;padding:2px 8px;font-size:.7rem}html.is-mobile-layout .app-shell:not(.tablet-layout):not(.mobile-palette-layout):not(.editor-focus) .content{min-width:0;min-height:0;padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));flex:1;order:1}.share-page-head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.community-shell{flex-direction:column;gap:8px;padding:0 0 28px;display:flex}#communityMessage{padding:0;min-height:0!important;margin:0!important;display:none!important}#communityMessage.is-visible{padding:2px 4px;display:block!important}.community-toolbar{border:1px solid var(--color-border-strong,#cbd5e1);background:var(--color-bg-surface,#fff);border-radius:14px;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.community-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:4px;min-width:0;display:flex;overflow-x:auto}.community-tabs::-webkit-scrollbar{height:0;display:none}.community-tab,.community-toolbar-actions .secondary,.community-toolbar-actions .project-detail-primary-btn{border-radius:999px}button.community-tab,.community-tab{color:var(--color-text-secondary,#64748b);cursor:pointer;white-space:nowrap;background:0 0;border:none;flex:none;min-height:36px;padding:8px 14px;font-weight:600}button.community-tab:hover:not(.active),.community-tab:hover:not(.active){background:var(--color-bg-muted,#e8eef5);color:var(--color-text-primary,#172033)}button.community-tab.active,.community-tab.active{background:var(--color-primary,var(--color-primary));color:#fff;border-color:#0000}.community-toolbar-actions{flex:none;align-items:center;gap:8px;display:flex}.community-toolbar-actions .secondary,.community-toolbar-actions .project-detail-primary-btn{min-height:36px;padding:8px 14px;font-weight:600}.community-toolbar-actions .secondary.active{background:var(--color-primary,var(--color-primary));color:#fff;border-color:#0000}.community-toolbar-actions .project-detail-primary-btn{white-space:nowrap}.community-unread{background:var(--color-danger,#c45c4a);color:#fff;border-radius:999px;min-width:1.2em;margin-left:4px;padding:0 6px;font-size:12px;display:inline-flex}.community-panel{min-height:0}.community-panel .empty-state{text-align:center;color:var(--color-text-secondary,#64748b);background:var(--color-bg-surface,#fff);border:1px dashed var(--color-border-strong,#cbd5e1);border-radius:14px;padding:28px 16px}.community-empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.community-loading{text-align:center;color:var(--color-text-muted,#64748b);font-size:var(--font-body,14px);padding:36px 16px}.community-back-bar{align-items:center;margin-bottom:14px;display:flex}.community-back-btn{min-height:36px;font-weight:600}.community-section-title{font-size:var(--font-section-title,15px);color:var(--color-text-primary,#172033);margin:0 0 12px;font-weight:700}.community-feed,.community-grid,.community-topics{gap:12px;display:grid}.community-feed{grid-template-columns:1fr;gap:12px;width:100%;margin:0!important;max-width:none!important;margin-inline:0!important}:is(.community-panel:has(>.community-feed)>.community-load-more,.community-panel:has(>.community-feed)>.empty-state){width:100%;max-width:none;margin-inline:0}.community-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}.community-grid>.empty-state,.community-grid>.community-loading,.community-feed>.empty-state,.community-feed>.community-loading{text-align:center;grid-column:1/-1;justify-self:center;width:min(100%,520px)}.community-card{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);min-width:0;box-shadow:var(--shadow-card,0 1px 2px #0f172a0f);border-radius:16px;flex-direction:column;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative;overflow:hidden}.community-feed .community-card{box-shadow:0 1px 2px #0f172a0a,0 10px 28px #0f172a0f}.community-pattern-card{cursor:pointer}.community-pattern-card:hover{border-color:var(--color-border-strong,#cbd5e1);box-shadow:0 4px 16px #0f172a14}.community-card-check{z-index:2;border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);cursor:pointer;border-radius:8px;place-items:center;width:28px;height:28px;margin:0;display:grid;position:absolute;top:10px;right:10px;box-shadow:0 1px 3px #0f172a1f}.community-card-author>.community-card-check{flex:none;position:static}.community-card-check input{cursor:pointer;width:16px;height:16px;accent-color:var(--color-primary,var(--color-primary));margin:0}.community-card.is-selected{border-color:var(--color-primary,var(--color-primary));box-shadow:0 0 0 2px #2563eb2e}.community-batch-bar{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:12px;padding:8px 12px;display:flex}.community-batch-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.community-batch-actions .secondary,.community-batch-actions .project-batch-delete{min-height:28px;padding:0 10px;font-size:12px}.community-grid .community-card-media,.community-pattern-card .community-card-media{aspect-ratio:4/3;background:var(--color-bg-muted,#f1f5f9);flex:none;width:100%;position:relative;overflow:hidden}.community-grid .community-card-media img,.community-pattern-card .community-card-media img{object-fit:cover;object-position:center;width:100%;max-width:none;height:100%;display:block}.community-featured-badge{z-index:1;letter-spacing:.02em;background:var(--color-primary,var(--color-primary));color:#fff;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;top:8px;left:8px}.community-featured-badge.is-inline{vertical-align:middle;margin-right:8px;display:inline-flex;position:static}.community-card-media{position:relative}.community-media-more{z-index:2;color:#fff;pointer-events:none;background:#0f172a9e;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:700;line-height:1.4;position:absolute;bottom:8px;right:8px}.community-feed .community-card-media{aspect-ratio:auto;background:var(--color-bg-muted,#f1f5f9);flex:none;width:100%;max-height:420px;overflow:hidden}.community-feed .community-card-media:not(.is-multi){aspect-ratio:4/3;justify-content:center;align-items:center;min-height:0;max-height:min(420px,52vh);padding:0;display:flex}.community-feed .community-card-media:not(.is-multi) img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:min(420px,52vh);margin:0 auto;display:block}.community-feed .community-card-media.is-multi{grid-template-columns:repeat(2,1fr);gap:2px;max-height:none;display:grid}.community-feed .community-card-media.is-multi.is-triple{grid-template-columns:repeat(3,1fr)}.community-feed .community-card-media.is-multi img{height:160px;max-height:160px}.community-card-placeholder{height:100%;min-height:120px;color:var(--color-text-muted,#8a8378);letter-spacing:.02em;background:linear-gradient(135deg, #2563eb0f, transparent 55%), repeating-linear-gradient(0deg, transparent, transparent 11px, #94a3b82e 11px, #94a3b82e 12px), repeating-linear-gradient(90deg, transparent, transparent 11px, #94a3b82e 11px, #94a3b82e 12px), var(--color-bg-muted,#f1f5f9);place-items:center;gap:4px;font-size:13px;font-weight:600;display:grid}.community-card-body{flex-direction:column;gap:6px;padding:12px 14px 14px;display:flex}.community-pattern-title{color:var(--color-text-primary,#172033);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.community-card-owner{color:var(--color-link,#2f6f5e);align-self:flex-start;font-size:12px}.community-card-stats{color:var(--color-text-secondary,var(--color-text-soft));margin:0;font-size:12px;font-weight:600}.community-card-tags{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.community-chip{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-subtle,#f8fafc);color:var(--color-text-secondary,var(--color-text-soft));cursor:pointer;border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}button.community-chip{font-family:inherit}.community-chip:hover{border-color:var(--color-primary,var(--color-primary));color:var(--color-primary,var(--color-primary));background:var(--color-bg-muted,#eef2ff)}.community-card-meta{justify-content:space-between;align-items:center;gap:10px;display:flex}.community-card-side{flex:none;align-items:center;gap:6px;display:flex}.community-card-author-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.community-card-author-row .community-inline-follow{margin-left:0}.community-card-author{align-items:center;gap:10px;min-width:0;display:flex}.community-card-avatar{color:#fff;background:linear-gradient(145deg, var(--color-primary,#3b82f6), var(--color-primary-hover,var(--color-primary-hover)));border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:15px;font-weight:700;display:grid}.community-card-author-text{flex-direction:column;gap:2px;min-width:0;display:flex}.community-card-author-text .linkish{color:var(--color-text-primary,#172033);text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.community-card-time{color:var(--color-text-muted,#64748b);font-size:12px}.community-card-content{color:var(--color-text-primary,#172033);white-space:pre-wrap;word-break:break-word;margin:0;font-size:15px;line-height:1.55}.community-tag{background:var(--color-bg-muted,#eef5f1);color:var(--color-link,#2f6f5e);border-radius:999px;flex:none;padding:3px 10px;font-size:12px}.community-tag.is-showcase{color:#3730a3;background:#e0e7ff}.community-card-footer{border-top:1px solid var(--color-border,#e8eef5);padding:4px 10px 8px}.community-card-actions{flex-wrap:wrap;gap:4px;display:flex}.community-pattern-card .community-card-actions{margin-top:4px}.community-feed .community-card-actions .secondary{color:var(--color-text-secondary,var(--color-text-soft));background:0 0;border:none;border-radius:10px;padding:8px 10px;font-weight:600}.community-feed .community-card-actions .secondary:hover{background:var(--color-bg-muted,#f1f5f9);color:var(--color-text-primary,#172033)}.community-plaza-filters{background:var(--color-bg-surface,#fff);border:1px solid var(--color-border,var(--color-border));border-radius:12px;flex-direction:column;gap:8px;margin:0 0 12px;padding:10px;display:flex}.community-plaza-top-row{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.community-plaza-search-row{flex-wrap:nowrap;align-items:center;gap:8px;width:100%;display:flex}.community-plaza-search-row input{flex:auto;width:auto;min-width:0;min-height:36px}.community-plaza-search-row .secondary{white-space:nowrap;flex:none;width:auto;min-height:36px}.community-plaza-sort{flex-wrap:nowrap;flex:none;align-items:center;gap:4px;margin-left:auto;display:inline-flex}.community-plaza-sort .community-chip{min-height:28px;padding:2px 10px}.community-plaza-topics{flex-wrap:wrap;flex:auto;align-items:center;gap:8px;min-width:0;margin:0;display:flex}.community-plaza-topic-label{color:var(--color-text-secondary,var(--color-text-soft));font-size:12px;font-weight:700}.community-plaza-topics:empty,.community-plaza-topics.hidden{display:none}.community-plaza-topics .community-chip.is-active,.community-plaza-sort .community-chip.is-active{background:var(--color-primary,var(--color-primary));color:#fff;border-color:#0000}.community-section-head{justify-content:space-between;align-items:center;gap:8px;margin:0 0 12px;display:flex}.community-section-head .community-section-title{margin:0}.community-topic-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.community-topic-status{color:var(--color-text-muted,#64748b);margin-left:8px;font-size:11px;font-weight:700}.community-topic-active-field{align-items:center;gap:8px;font-weight:600;display:flex}.community-follow-list{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.community-follow-list:empty{display:none}.community-follow-card{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);border-radius:12px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.community-follow-main{min-width:0;color:var(--color-text-primary,#172033);align-items:center;gap:8px;font-weight:600;display:flex}.community-follow-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.community-follow-avatar{object-fit:cover;border-radius:50%;flex:none;width:36px;height:36px}.community-follow-avatar.is-fallback{color:#fff;background:linear-gradient(145deg, var(--color-primary,#3b82f6), var(--color-primary-hover,var(--color-primary-hover)));place-items:center;font-size:14px;font-weight:700;display:grid}.community-follow-card .secondary{flex:none;min-height:32px;padding:4px 10px}.community-inline-follow{min-height:28px;margin-left:8px;padding:2px 10px;font-size:12px}button.community-profile-stat{font:inherit;color:var(--color-text-muted,#64748b);cursor:pointer}button.community-profile-stat:hover{color:var(--color-primary,var(--color-primary))}.community-topics-layout{flex-direction:column;gap:28px;width:100%;max-width:none;margin:0;display:flex}.community-topics{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.community-topic-card{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);box-shadow:var(--shadow-card,0 1px 2px #0f172a0f);border-radius:14px;grid-template-columns:96px 1fr;gap:0;min-height:0;margin:0;padding:0;transition:border-color .15s,box-shadow .15s;display:grid;overflow:hidden}.community-topic-card.is-clickable{cursor:pointer}.community-topic-card.is-clickable:hover{border-color:var(--color-primary,var(--color-primary));box-shadow:0 4px 16px #0f172a14}.community-topic-cover{background:var(--color-bg-muted,#f1f5f9);width:96px;min-height:96px;overflow:hidden}.community-topic-cover img{object-fit:cover;width:100%;height:100%;display:block}.community-topic-cover-fallback{color:#fff;background:linear-gradient(145deg, var(--color-primary,#3b82f6), var(--color-primary-hover,var(--color-primary-hover)));place-items:center;width:100%;height:100%;min-height:96px;font-size:28px;font-weight:700;display:grid}.community-topic-body{flex-direction:column;justify-content:flex-start;gap:6px;min-width:0;padding:12px 14px;display:flex}.community-topic-body strong{color:var(--color-text-primary,#172033);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.community-topic-desc{color:var(--color-text-muted,#64748b);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.community-ranking{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);box-shadow:var(--shadow-card,0 1px 2px #0f172a0f);border-radius:14px;flex-direction:column;gap:0;display:flex;overflow:hidden}.community-rank-row{border-bottom:1px solid var(--color-border,#e8eef5);cursor:pointer;grid-template-columns:36px 56px 1fr;align-items:center;gap:12px;padding:12px 14px;transition:background .12s;display:grid}.community-rank-row:last-child{border-bottom:none}.community-rank-row:hover{background:var(--color-bg-subtle,#f8fafc)}.community-rank-idx{text-align:center;color:var(--color-text-muted,#64748b);font-size:16px;font-weight:800}.community-rank-row.is-top-1 .community-rank-idx{color:#ca8a04}.community-rank-row.is-top-2 .community-rank-idx{color:var(--color-text-muted)}.community-rank-row.is-top-3 .community-rank-idx{color:#b45309}.community-rank-cover{background:var(--color-bg-muted,#f1f5f9);border-radius:10px;flex:none;width:56px;height:56px;overflow:hidden}.community-rank-cover img{object-fit:cover;width:100%;height:100%;display:block}.community-rank-cover-fallback{width:100%;height:100%;color:var(--color-text-muted,#64748b);background:var(--color-bg-muted,var(--color-border-soft));place-items:center;font-weight:700;display:grid}.community-rank-main{flex-direction:column;gap:2px;min-width:0;display:flex}.community-rank-title{color:var(--color-text-primary,#172033);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.community-rank-author{color:var(--color-text-muted,#64748b);font-size:12px}.community-rank-meta{color:var(--color-text-secondary,var(--color-text-soft));font-size:12px;font-weight:600}.community-detail-hero{gap:16px;margin-bottom:16px;display:grid}.community-detail-hero img{background:var(--color-bg-muted,#f3efe7);border-radius:12px;width:100%}.community-detail-title{flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 8px;display:flex}.community-detail-desc{color:var(--color-text-secondary,#334155);margin:8px 0;line-height:1.5}.community-detail-author{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0;display:flex}.community-detail-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.community-detail-actions .project-detail-primary-btn{min-height:40px;padding:10px 16px}.community-detail-actions .secondary{min-height:36px}.community-compose-dialog input[type=file]{border:1px dashed var(--color-border-strong,#cbd5e1);background:var(--color-bg-muted,#f1f5f9);width:100%;color:var(--color-text-secondary,#64748b);cursor:pointer;border-radius:10px;padding:10px 12px;font-size:14px;display:block}.community-material ul{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin:8px 0 16px;padding:0;list-style:none;display:grid}.community-material li{align-items:center;gap:6px;font-size:13px;display:flex}.community-material .swatch{border:1px solid #0000001f;border-radius:3px;width:14px;height:14px}.community-compose-preview{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.community-compose-preview img{object-fit:cover;border-radius:8px;width:72px;height:72px;display:block}.community-compose-thumb{width:72px;height:72px;position:relative}.community-compose-thumb button{background:var(--color-text-secondary,#334155);color:#fff;cursor:pointer;border:none;border-radius:999px;width:22px;height:22px;padding:0;font-size:14px;line-height:1;position:absolute;top:-6px;right:-6px}.community-compose-bind{color:var(--color-text-muted,#64748b);gap:6px;font-size:13px;display:grid}.community-compose-bind.is-locked .community-compose-bind-title{color:#6d28d9}.community-compose-bind-title{color:var(--color-text-secondary,var(--color-text-soft));font-weight:600}.community-compose-dialog{width:min(520px,100vw - 24px);max-height:min(90vh,720px)}.community-compose-dialog .palette-dialog-form{max-height:min(90vh,720px);overflow:auto}.community-dialog-message{min-height:0;margin-top:0}.community-dialog-message:empty{display:none}.community-subtabs{background:var(--color-bg-muted,#f1f5f9);border:1px solid var(--color-border,var(--color-border-soft));box-sizing:border-box;border-radius:10px;gap:4px;width:100%;max-width:420px;margin-bottom:12px;padding:4px;display:flex}.community-subtab{color:var(--color-text-secondary,var(--color-text-soft));cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;min-height:36px;padding:8px 12px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.community-subtab:hover:not(.active){background:var(--color-bg-subtle,#e8eef5);color:var(--color-text-primary,#1e293b)}.community-subtab.active{background:var(--color-primary,var(--color-primary));color:#fff;box-shadow:0 1px 3px #2563eb47}.community-mine-status-tabs{max-width:280px;margin-top:-4px;margin-bottom:14px}.community-mine-status-tabs .community-subtab{padding:6px 10px;font-size:.92em;font-weight:500}.community-mine-status-tabs .community-subtab.active{background:#0f766e;box-shadow:0 1px 3px #0f766e47}.community-status-badge{letter-spacing:.02em;border-radius:999px;align-self:flex-start;align-items:center;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-flex}.community-status-badge.is-published{color:#166534;background:#dcfce7}.community-status-badge.is-hidden{background:var(--color-bg-muted,#f1f5f9);color:var(--color-text-secondary,var(--color-text-soft))}.community-load-more{width:100%;margin-top:12px;display:block}.community-load-more.hidden{display:none}.community-comment-list{gap:10px;max-height:280px;margin-bottom:12px;display:grid;overflow:auto}.community-comment-row{border-bottom:1px solid var(--color-border,#ece7de);justify-content:space-between;align-items:flex-start;gap:10px;padding-bottom:8px;display:flex}.community-comment-row.is-reply{border-left:2px solid var(--color-border,var(--color-border-soft));margin-left:28px;padding-left:10px}.community-mutual-badge{color:#047857;background:#ecfdf5;border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.community-report-reasons{gap:8px;display:grid}.community-post-full{white-space:pre-wrap;line-height:1.6}.community-comment-actions{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.community-notice-list{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);border-radius:14px;flex-direction:column;max-width:760px;display:flex;overflow:hidden}.community-notice{text-align:left;border:none;border-bottom:1px solid var(--color-border,#e8eef5);cursor:pointer;width:100%;color:var(--color-text-primary,#172033);background:0 0;border-left:3px solid #0000;padding:12px 14px;display:block}.community-notice:last-child{border-bottom:none}.community-notice:hover{background:var(--color-bg-subtle,#f8fafc)}.community-notice.is-unread{background:var(--color-bg-muted,#f7faf8);border-left-color:var(--color-primary,var(--color-primary));font-weight:600}.community-notice .hint{margin-top:4px;display:block}.admin-stat-card.is-alert{cursor:pointer;background:#fff7ed;border-color:#fdba74}.admin-stat-card.is-alert:before{background:#ea580c}.admin-stat-card[data-admin-jump]{cursor:pointer}.admin-report-status-tabs{flex-wrap:wrap;gap:8px;margin:12px 0 14px;display:flex}.admin-report-status-tabs .is-active{border-color:var(--color-primary,var(--color-primary));color:var(--color-primary,var(--color-primary));background:var(--color-primary-soft);font-weight:600}.admin-report-row{border:1px solid var(--color-border,#e2ddd3);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;padding:12px;display:flex}.admin-report-main{flex:240px;min-width:0}.admin-report-main strong{margin-right:8px}.admin-report-summary{color:var(--color-text-secondary);margin:6px 0}.admin-report-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-topic-row{border:1px solid var(--color-border,#e2ddd3);border-radius:12px;margin-bottom:8px;padding:12px}.admin-topic-form{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:12px;display:grid}.community-profile-head{border:1px solid var(--color-border,var(--color-border));background:var(--color-bg-surface,#fff);box-shadow:var(--shadow-card,0 1px 2px #0f172a0f);border-radius:14px;justify-content:flex-start;align-items:center;gap:14px;max-width:760px;margin-bottom:20px;padding:16px;display:flex}.community-profile-avatar{object-fit:cover;border-radius:50%;flex:none;width:56px;height:56px}.community-profile-avatar.is-fallback{color:#fff;background:linear-gradient(145deg, var(--color-primary,#3b82f6), var(--color-primary-hover,var(--color-primary-hover)));place-items:center;font-size:22px;font-weight:700;display:grid}.community-profile-info{flex:1;min-width:0}.community-profile-info h3{margin:0 0 6px}.community-profile-stats{color:var(--color-text-muted,#64748b);flex-wrap:wrap;align-items:baseline;gap:12px 16px;margin:0;font-size:13px;line-height:1.4;display:flex}.community-profile-stats strong{color:var(--color-text-primary,#172033);font-weight:700}.community-profile-stats .community-profile-stat,.community-profile-stats .community-profile-stat-static{font:inherit;line-height:inherit;min-height:0;color:inherit;vertical-align:baseline;background:0 0;border:none;align-items:baseline;gap:4px;margin:0;padding:0;display:inline-flex}.community-profile-stat-static{color:inherit}.community-profile-badges{flex-wrap:wrap;gap:6px;margin:0 0 8px;display:flex}.community-achievement-badge{color:#047857;background:#ecfdf5;border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.community-profile-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;max-width:760px;margin:0 0 14px;display:flex}.community-profile-filters{flex-wrap:nowrap;align-items:center;gap:10px;max-width:760px;margin:0 0 12px;display:flex}.community-profile-filters .community-subtabs{flex:none;width:max-content;max-width:none;margin-bottom:0}.community-profile-filters .community-subtab{flex:none;padding:6px 12px}.community-profile-self-tag{background:var(--color-bg-muted,#eef2ff);color:var(--color-primary,#3b82f6);vertical-align:middle;border-radius:999px;align-items:center;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-flex}.community-profile-sort{display:none}.community-profile-sort .community-sort-btn.active{border-color:var(--color-primary,#3b82f6);color:var(--color-primary,#3b82f6)}.community-pattern-progress{z-index:1;position:absolute;top:8px;right:8px}.community-bind-row{margin:6px 0 0}.community-notice-agg{color:#4338ca;background:#eef2ff;border-radius:999px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.community-my-achievement{margin:0 0 14px}.community-my-achievement-card{border:1px solid var(--color-border,#e2e8f0);background:var(--color-bg-surface,#fff);border-radius:12px;padding:12px 14px}.community-my-achievement-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.community-my-achievement-stats{color:var(--color-text-muted,#64748b);margin:0 0 8px;font-size:13px}.community-my-achievement-stats strong{color:var(--color-text-primary,#172033)}.palette-color-text{gap:1px;width:100%;min-width:0;line-height:1.2;display:grid}.palette-color-text strong{font-size:11px;font-weight:700}.palette-color-text small{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.app-shell.tablet-layout .nav-item,.app-shell.tablet-layout .workspace-library-actions button,.editor-view.mobile-simulated-landscape .editor-tool-button,.editor-view.mobile-simulated-landscape .editor-toolbar button{min-height:44px}.share-bead-style-label{color:var(--color-text-muted);align-items:center;gap:4px;font-size:13px;display:inline-flex}.share-bead-style-label select{width:auto;min-height:30px;padding:0 6px;font-size:12px}#paletteInventoryPanel .palette-inventory-head,#settingsInventoryPanel .palette-inventory-head{align-items:stretch;gap:0;margin-bottom:8px}#paletteInventoryPanel .palette-inventory-head-main,#settingsInventoryPanel .palette-inventory-head-main{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}#paletteInventoryPanel .palette-inventory-title-row,#settingsInventoryPanel .palette-inventory-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}#paletteInventoryPanel .palette-inventory-title-row h3,#settingsInventoryPanel .palette-inventory-title-row h3{min-width:0;margin:0}#paletteInventoryPanel .palette-inventory-title-row>button,#settingsInventoryPanel .palette-inventory-title-row>button{flex:none;width:auto}#paletteInventoryPanel .palette-inventory-head .settings-section-desc,#settingsInventoryPanel .palette-inventory-head .settings-section-desc{margin:0}#inventoryMessage:empty{min-height:0;margin:0;padding:0;display:none}#inventoryMessage:not(:empty){min-height:0;margin:0 0 8px}#paletteInventoryPanel .inventory-summary,#settingsInventoryPanel .inventory-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px;display:grid}#paletteInventoryPanel .inventory-kpi,#settingsInventoryPanel .inventory-kpi{border:1px solid var(--color-border-subtle,#0f172a14);background:var(--color-bg-subtle,#f4f7fb);border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:12px 14px 10px;display:flex}#paletteInventoryPanel .inventory-kpi-label,#settingsInventoryPanel .inventory-kpi-label{color:var(--color-text-muted,#667085);font-size:12px;font-weight:500;line-height:1.2}#paletteInventoryPanel .inventory-kpi-value,#settingsInventoryPanel .inventory-kpi-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:var(--color-text,#172033);font-size:28px;font-weight:650;line-height:1.05;display:block}#paletteInventoryPanel .inventory-kpi.is-alert,#settingsInventoryPanel .inventory-kpi.is-alert{background:#fff7ed;border-color:#f3d7b0}#paletteInventoryPanel .inventory-kpi.is-alert .inventory-kpi-value,#settingsInventoryPanel .inventory-kpi.is-alert .inventory-kpi-value{color:#b86e00}#paletteInventoryPanel .inventory-mode-btn,#settingsInventoryPanel .inventory-mode-btn{appearance:none;color:var(--color-text-muted,#667085);box-shadow:none;background:0 0;border:0;font-weight:600}#paletteInventoryPanel .inventory-mode-btn.active,#settingsInventoryPanel .inventory-mode-btn.active{color:var(--color-text,#172033);background:var(--color-bg,#fff)}.inventory-workspace{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:16px;display:grid}.inventory-board,.inventory-composer{border:1px solid var(--border-color,#00000014);background:color-mix(in srgb, var(--panel-bg,#fff) 88%, transparent);border-radius:16px;padding:12px}.inventory-board-bar input[type=search]{width:100%;margin:0}.inventory-form-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.inventory-field-wide{grid-column:1/-1}.inventory-composer .inventory-mode-panel>button,.inventory-composer textarea,.inventory-composer select{width:100%;margin-top:8px}.inventory-mode{background:color-mix(in srgb, var(--color-text,#1f2933) 6%, transparent);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:12px;padding:4px;display:grid}.inventory-mode-btn{min-height:32px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px}.inventory-mode-btn.active{background:var(--panel-bg,#fff);box-shadow:0 1px 2px #00000014}.inventory-list{flex-direction:column;min-height:180px;display:flex}.inventory-row{border-bottom:1px solid var(--border-color,#0000000f);grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 2px;display:grid}.inventory-row.is-low{box-shadow:inset 3px 0 #e6a23c}.inventory-row-main{flex-direction:column;min-width:0;display:flex}.inventory-row-main span,.inventory-low-tag{opacity:.72;font-size:12px}.inventory-low-tag{color:#c47a12;opacity:1}.inventory-stepper{border:1px solid var(--border-color,#0000001f);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.inventory-stepper button{cursor:pointer;background:0 0;border:0;width:28px;min-height:32px}.inventory-stepper input{text-align:center;background:0 0;border:0;width:64px;min-height:32px;margin:0}.inventory-empty{text-align:center;color:var(--color-text-muted,#667085);margin:auto;padding:28px 12px}.inventory-empty strong,.inventory-empty span{display:block}.inventory-empty span{margin-top:4px;font-size:13px}.inventory-palette-grid,.exclude-colors-list{flex-wrap:wrap;gap:6px;max-height:220px;margin-top:8px;display:flex;overflow:auto}.inventory-palette-item,.exclude-color-item,.equivalent-row{align-items:center;gap:4px;font-size:12px;display:inline-flex}.editor-panel-block-legend{position:relative}.editor-legend-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0 10px;display:grid}.editor-legend-actions .secondary{white-space:nowrap;min-width:0;min-height:36px;padding:6px 4px;font-size:12px}.legend-help-pop{z-index:30;border:1px solid var(--color-border-subtle,#e2e8f0);background:var(--color-bg,#fff);pointer-events:none;border-radius:8px;width:220px;max-width:calc(100% - 8px);padding:8px 10px;font-size:12px;line-height:1.6;position:absolute;box-shadow:0 8px 24px #0f172a29}.legend-dialog-body{flex-direction:column;gap:8px;min-width:min(320px,70vw);max-height:60vh;font-size:13px;line-height:1.6;display:flex;overflow-y:auto}.legend-swap-preview{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.legend-dialog-body .equivalent-row{border:1px solid var(--color-border-subtle,#e2e8f0);background:var(--color-bg,#fff);width:100%;color:var(--color-text,#0f172a);text-align:left;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.legend-dialog-body button.equivalent-row{cursor:pointer}.legend-dialog-body button.equivalent-row:hover{border-color:var(--color-primary,#2563eb);background:var(--color-bg-muted,#f8fafc)}.legend-dialog-body .equivalent-row .color-swatch{border-radius:7px;flex:none;width:28px;height:28px}.equiv-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.equiv-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.equiv-diff{color:var(--color-text-secondary,#64748b);font-size:11px}.equiv-badge{color:#92400e;white-space:nowrap;background:#fef3c7;border-radius:999px;flex:none;padding:2px 8px;font-size:11px}.legend-dialog-body .legend-locate{flex:none;min-height:30px;padding:4px 10px;font-size:12px}.editor-equivalents-panel{flex-direction:column;gap:4px;margin-bottom:8px;font-size:12px;display:flex}.legend-shortage{color:#c45656}.legend-enough{color:#2f8f46}.tips-page{min-height:100vh;color:var(--color-text);background:radial-gradient(1200px 480px at 12% -10%, color-mix(in srgb, var(--color-primary) 14%, transparent), transparent 60%), linear-gradient(180deg, var(--color-bg) 0%, var(--color-bg-muted) 100%);margin:0}.tips-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;width:min(920px,100% - 32px);margin:0 auto;padding:20px 0 8px;display:flex}.tips-brand{color:var(--color-text);font-size:16px;font-weight:700;text-decoration:none}.tips-brand:hover{color:var(--color-primary)}.tips-nav{flex-wrap:wrap;gap:8px 14px;display:flex}.tips-nav a{color:var(--color-text-muted);font-size:14px;text-decoration:none}.tips-nav a:hover,.tips-nav a[aria-current=page]{color:var(--color-primary)}.tips-main{width:min(920px,100% - 32px);margin:0 auto;padding:24px 0 48px}.tips-hero{margin-bottom:28px}.tips-eyebrow{color:var(--color-text-muted);margin:0 0 8px;font-size:13px}.tips-eyebrow a{color:inherit}.tips-main h1{margin:0 0 12px;font-size:clamp(28px,4vw,40px);line-height:1.2}.tips-lead{max-width:40em;color:var(--color-text-secondary);margin:0;font-size:16px;line-height:1.65}.tips-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.tips-card{border:1px solid var(--color-border-soft);background:color-mix(in srgb, var(--color-bg) 88%, transparent);color:inherit;border-radius:8px;flex-direction:column;gap:8px;padding:20px 18px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.tips-card:hover{border-color:var(--color-primary);transform:translateY(-2px)}.tips-card h2{margin:0;font-size:18px}.tips-card p{color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.55}.tips-article h2{margin:28px 0 10px;font-size:20px}.tips-article p,.tips-article li{color:var(--color-text-secondary);font-size:15px;line-height:1.7}.tips-article ul{margin:0 0 8px;padding-left:1.2em}.tips-pager{border-top:1px solid var(--color-border-soft);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:36px;padding-top:16px;display:flex}.tips-pager a{color:var(--color-primary);font-size:14px;text-decoration:none}.tips-foot{gap:12px;width:min(920px,100% - 32px);margin:0 auto 40px;padding-top:8px;display:grid}.tips-privacy,.share-privacy-note,.auth-privacy-note{color:var(--color-text-muted);margin:0;font-size:12px;line-height:1.55}.share-privacy-note{border-top:1px solid var(--color-border-soft);margin-top:12px;padding-top:10px}.auth-tips-link{margin:10px 0 0;font-size:14px}.auth-tips-link a{color:var(--color-primary);text-decoration:none}.auth-tips-link a:hover{text-decoration:underline}.tips-cta{background:var(--color-primary);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:fit-content;min-height:40px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.tips-cta:hover{filter:brightness(1.05)}@media (width<=640px){.captcha-image{width:108px;height:40px}}@media (width>=901px){.workspace-upload-panel{align-self:start;height:auto}.workspace-library-section{flex:auto}.workspace-upload-panel .workspace-file-scroll{flex:auto;min-height:240px;max-height:min(760px,80vh)}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.admin-table-actions{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:6px;max-width:100%;display:flex;overflow-x:auto}.admin-table-actions::-webkit-scrollbar{display:none}.admin-table-actions button,.admin-table-select{flex:none;min-height:34px}.admin-project-inline-detail-head .admin-detail-close{height:28px;min-height:28px!important}}@media (width<=900px){.admin-filter-bar{grid-template-columns:1fr}.admin-row{grid-template-columns:1fr;align-items:stretch}.admin-row-actions{justify-content:flex-start}.admin-pager{flex-direction:column;align-items:flex-start}.admin-config-toolbar-actions button{flex:calc(50% - 4px)}.admin-config-layout{grid-template-columns:1fr}.admin-config-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-quick-actions{flex-direction:column;align-items:stretch}.settings-quick-actions button{width:100%}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.auth-screen,.app-shell{grid-template-columns:1fr}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.content{min-width:0;min-height:0;padding:10px 12px;padding-bottom:calc(76px + env(safe-area-inset-bottom,0px));flex:1;order:1}.sidebar,.sidebar-brand,.sidebar-logout{display:none}.mobile-bottom-nav:not(.hidden){display:grid}.mobile-my-sheet:not(.hidden){display:block}.mobile-bottom-item{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app-shell.mobile-palette-layout{width:100%;height:100dvh;max-height:100dvh;position:fixed;inset:0;overflow:hidden}html.palette-lock-scroll,html.palette-lock-scroll body,html.palette-lock-scroll #app{overscroll-behavior:none;height:100%;max-height:100dvh;overflow:hidden}.app-shell.mobile-palette-layout .content{min-height:0;padding:10px 12px calc(72px + env(safe-area-inset-bottom,0px));flex-direction:column;flex:1;display:flex;overflow:hidden}.app-shell.mobile-palette-layout #onboardingBanner{display:none}.app-shell.mobile-palette-layout .topbar{height:auto;min-height:0;box-shadow:none;background:0 0;border:0;flex-shrink:0;align-items:center;margin:0 0 8px;padding:0 2px;display:flex}.app-shell.mobile-palette-layout .topbar h2,.app-shell.mobile-palette-layout .topbar #viewTitle{margin:0;font-size:20px;font-weight:700;line-height:1.25}.app-shell.mobile-palette-layout .topbar .status{display:none}.app-shell.mobile-palette-layout .palette-page-root,.app-shell.mobile-palette-layout .palette-host,.app-shell.mobile-palette-layout #paletteView.view.active,.app-shell.mobile-palette-layout #paletteView .panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}#paletteView.view.active{flex-direction:column;flex:1;min-height:0;overflow:hidden;display:flex!important}#paletteView .panel{flex-direction:column;flex:1;min-height:0;margin-bottom:0;padding:12px 12px 8px;display:flex;overflow:hidden}#paletteView .panel-head{flex-shrink:0;gap:8px;margin-bottom:10px}#paletteView .palette-mobile-toolbar{flex-direction:column;flex-shrink:0;gap:8px;display:flex}#paletteView #paletteMineTools:not(.hidden){flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:hidden}#paletteView #paletteMinePanel>dialog:not([open]){display:none!important}#paletteView .palette-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;display:grid}#paletteView .palette-tab{text-align:center;border-radius:10px;min-height:36px;padding:0 4px;font-size:12px}#paletteView .palette-tab-panel:not(.hidden){flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden}#paletteView #paletteInventoryPanel:not(.hidden){gap:8px}#paletteView #paletteInventoryPanel .palette-inventory-head{flex-shrink:0;gap:0;margin-bottom:0}#paletteView #paletteInventoryPanel .palette-inventory-title-row{gap:8px}#paletteView #paletteInventoryPanel .palette-inventory-title-row h3{font-size:16px}#paletteView #paletteInventoryPanel .palette-inventory-title-row>button{min-width:56px;min-height:32px;padding:0 12px;font-size:13px}#paletteView #paletteInventoryPanel .palette-inventory-head .settings-section-desc{margin:0;font-size:12px;line-height:1.4}#paletteView #paletteInventoryPanel #inventoryMessage,#paletteView #paletteInventoryPanel #inventorySummary{flex-shrink:0}#paletteView #paletteInventoryPanel #inventoryMessage:not(:empty){min-height:0;margin:0;font-size:13px;line-height:1.4}#paletteView #paletteInventoryPanel .inventory-workspace{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;grid-template-columns:1fr;align-content:start;gap:10px;min-height:0;padding-bottom:12px;display:grid;overflow-y:auto}.app-shell.mobile-palette-layout #paletteView #paletteInventoryPanel .inventory-workspace{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow-y:auto}#paletteView #paletteInventoryPanel .inventory-board,#paletteView #paletteInventoryPanel .inventory-composer{min-width:0}#paletteView #paletteInventoryPanel .inventory-list{max-height:none;overflow:visible}#paletteView #paletteInventoryPanel .inventory-palette-colors{-webkit-overflow-scrolling:touch;max-height:220px;overflow-y:auto}#paletteView #paletteInventoryPanel .inventory-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}#paletteView #paletteInventoryPanel .inventory-kpi{border:1px solid var(--color-border-subtle,#0f172a14);background:var(--color-bg-subtle,#f4f7fb);border-radius:12px;flex-direction:column;gap:2px;min-width:0;padding:10px 10px 8px;display:flex}#paletteView #paletteInventoryPanel .inventory-kpi-label{color:var(--color-text-muted,#667085);font-size:12px}#paletteView #paletteInventoryPanel .inventory-kpi-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:650}#paletteView #paletteInventoryPanel .inventory-kpi.is-alert{background:#fff7ed;border-color:#f3d7b0}#paletteView .palette-mobile-toolbar,#paletteView .palette-main-header,#paletteView .palette-mine-bar,#paletteView #paletteQuickColors,#paletteView #myPaletteQuickColors,#paletteView #addColorPanel,#paletteView .palette-reorder-hint,#paletteView #myPaletteEmptyState,#paletteView #paletteMineLoginHint{flex-shrink:0}#paletteView .palette-colors-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;margin:0 -2px;padding:2px;overflow-y:auto}#paletteView .palette-browse-bar{box-shadow:none;background:0 0;border:0;gap:8px;margin-bottom:0;padding:0}#paletteView .palette-field-label{display:none}#paletteView .palette-field{gap:0}#paletteView .palette-browse-primary{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}#paletteView .palette-browse-primary .palette-field-palette{grid-column:1/-1}#paletteView .palette-select,#paletteView .palette-search-input{min-height:40px;font-size:14px}#paletteView .palette-search-input{appearance:none;background-position:12px;padding:0 12px 0 36px}#paletteView .palette-search-input::-webkit-search-decoration{appearance:none;display:none}#paletteView .palette-search-input::-webkit-search-cancel-button{appearance:none;display:none}#paletteView .palette-bar-action{border-radius:10px;align-self:stretch;min-width:64px;min-height:40px;padding:0 12px;font-size:13px}#paletteView .palette-bar-action-long{display:none}#paletteView .palette-bar-action-short{display:inline}#paletteView .palette-filter-drawer>summary{border:1px solid var(--color-border);background:var(--color-bg-subtle);min-height:32px;color:var(--color-text-muted);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:0 10px;font-size:12px;font-weight:500;list-style:none;display:flex}#paletteView .palette-filter-drawer>summary::-webkit-details-marker{display:none}#paletteView .palette-filter-drawer>summary:after{content:"▾";color:#94a3b8;font-size:11px;transition:transform .15s}#paletteView .palette-filter-drawer[open]>summary:after{transform:rotate(180deg)}#paletteView .palette-filter-drawer:not([open])>.palette-browse-filters,#paletteView .palette-filter-drawer:not([open])>.palette-main-filters{display:none!important}#paletteView .palette-filter-drawer[open]>.palette-browse-filters,#paletteView .palette-filter-drawer[open]>.palette-main-filters{border-top:0;grid-template-columns:1fr;gap:0;margin-top:6px;padding-top:0}#paletteView .palette-main-meta{display:none}#paletteView .palette-reorder-hint{display:none!important}#paletteView .palette-page-message{z-index:30;background:var(--color-bg-surface);border-radius:10px;min-height:0;margin:0 0 10px;padding:10px 12px;position:sticky;top:0;box-shadow:0 4px 16px #0f172a1a}#paletteView .palette-page-message:empty{box-shadow:none;margin:0;padding:0;display:none}#paletteView .palette-filter-drawer .palette-filter-label{display:none}#paletteView .palette-family-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}#paletteView .palette-family-chips::-webkit-scrollbar{display:none}#paletteView .palette-family-chip{flex-shrink:0}#paletteView .palette-quick-colors{-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:stretch;gap:8px;margin-bottom:0;display:flex;overflow-x:auto}#paletteView .palette-quick-colors::-webkit-scrollbar{display:none}#paletteView .palette-quick-section{flex-shrink:0;align-items:center;gap:6px;display:flex}#paletteView .palette-quick-section h4{white-space:nowrap;color:#94a3b8;margin:0;font-size:11px}#paletteView .palette-quick-list{flex-wrap:nowrap}#paletteView .palette-quick-chip{flex-shrink:0;min-height:30px;padding:2px 8px 2px 2px;font-size:11px}#paletteView .palette-quick-chip .color-swatch{width:20px;height:20px}#paletteView .palette-mine-layout{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden}#paletteView .palette-mine-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;padding:6px 8px}#paletteView .palette-mine-bar-actions{grid-column:1/-1;gap:8px;display:flex}#paletteView .palette-mine-bar-actions button{flex:1;min-height:34px;padding:0 8px;font-size:12px}#paletteView .palette-main{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}#paletteView .palette-main-detail:not(.hidden){flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow:hidden}#paletteView .palette-main-header{gap:6px;padding:6px 8px}#paletteView .palette-main-filters{border-top:0;margin-top:0;padding-top:0}#paletteView .palette-add-panel{padding:10px}#paletteView .palette-add-form{grid-template-columns:1fr 1fr}#paletteView .palette-add-actions{grid-column:1/-1}.app-shell.mobile-palette-layout #paletteView .palette-color-grid-browse,.app-shell.mobile-palette-layout #paletteView .palette-color-grid-manage{flex:none;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));align-content:start;align-items:start;gap:5px;height:max-content;min-height:0}.app-shell.mobile-palette-layout #paletteView .palette-color-card{gap:2px;padding:4px}.app-shell.mobile-palette-layout #paletteView .palette-color-card-main{text-align:center;grid-template-columns:1fr;gap:2px}.app-shell.mobile-palette-layout #paletteView .palette-color-card-main .color-swatch{border-radius:6px;width:100%;height:40px;margin:0 auto}.app-shell.mobile-palette-layout #paletteView .palette-color-card-main>span:last-child{-webkit-line-clamp:1;word-break:break-all;-webkit-box-orient:vertical;font-size:10px;line-height:1.25;display:-webkit-box;overflow:hidden}.app-shell.mobile-palette-layout #paletteView .palette-color-card-actions{display:none}.app-shell.mobile-palette-layout #paletteView .color-card-manage{gap:2px;padding:4px}.app-shell.mobile-palette-layout #paletteView .color-card-manage.color-card-reorderable{padding-top:18px}.app-shell.mobile-palette-layout #paletteView .color-card-manage .color-swatch{height:40px}.app-shell.mobile-palette-layout #paletteView .color-card-name,.app-shell.mobile-palette-layout #paletteView .color-card-info code{display:none}.app-shell.mobile-palette-layout #paletteView .color-card-info{text-align:center}.app-shell.mobile-palette-layout #paletteView .color-card-info strong{word-break:break-all;font-size:10px;line-height:1.2}.app-shell.mobile-palette-layout #paletteView .color-card-actions{display:none}.app-shell.mobile-palette-layout #paletteView .color-drag-handle{width:36px;height:22px;color:var(--color-text-muted);z-index:2;font-size:16px;display:inline-flex;top:2px}.app-shell.mobile-palette-layout #paletteView #paletteMinePanel:not(.hidden),.app-shell.mobile-palette-layout #paletteView .palette-mine-layout,.app-shell.mobile-palette-layout #paletteView #paletteMineTools:not(.hidden),.app-shell.mobile-palette-layout #paletteView .palette-main,.app-shell.mobile-palette-layout #paletteView .palette-main-detail:not(.hidden){flex-direction:column;flex:1;width:100%;min-height:0;display:flex;overflow:hidden}.app-shell.mobile-palette-layout #paletteView .palette-mine-layout,.app-shell.mobile-palette-layout #paletteView #paletteMineTools:not(.hidden){gap:8px}.app-shell.mobile-palette-layout #paletteView .palette-main-detail:not(.hidden){gap:6px}.app-shell.mobile-palette-layout #paletteView .palette-mine-bar{border-radius:10px;flex-shrink:0;width:100%;padding:6px 8px}.app-shell.mobile-palette-layout #paletteView .palette-main-header{background:0 0;border:0;border-radius:0;flex-shrink:0;gap:6px;padding:0}.app-shell.mobile-palette-layout #paletteView .palette-main-toolbar{flex-direction:column;align-items:stretch;gap:6px;display:flex}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-row{flex-wrap:nowrap;align-items:flex-start;gap:6px;display:flex}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1 1 0;min-width:0;display:block;overflow-x:auto}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-scroll::-webkit-scrollbar{display:none}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-primary{flex-wrap:nowrap;gap:6px;width:max-content;display:flex}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-primary button{white-space:nowrap;flex:none;min-height:32px;padding:0 10px;font-size:12px}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-more-trigger{white-space:nowrap;flex:none;justify-content:center;align-items:center;min-height:32px;padding:0 10px;font-size:12px;display:inline-flex}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-secondary{z-index:30;border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;flex-direction:column;align-items:stretch;gap:6px;min-width:220px;padding:8px;display:none;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0f172a1f}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-row.is-more-open .palette-toolbar-secondary{display:flex}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-row{z-index:20;position:relative}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-row.is-more-open{z-index:40}.app-shell.mobile-palette-layout #paletteView .palette-toolbar-secondary .button-like,.app-shell.mobile-palette-layout #paletteView .palette-toolbar-secondary button{text-align:center;width:100%;min-height:32px;padding:0 8px;font-size:12px}.app-shell.mobile-palette-layout #paletteView .palette-main-filters{border-top:0;gap:4px;margin-top:0;padding-top:0}.app-shell.mobile-palette-layout #paletteView .palette-main-filters .palette-filter-label{display:none}.app-shell.mobile-palette-layout #paletteView .palette-colors-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;align-content:start;min-height:0;overflow:hidden auto}.app-shell.mobile-palette-layout #paletteView .palette-colors-scroll>.color-grid{flex:none;align-content:start;align-items:start;height:auto;min-height:0}.mobile-workspace-steps:not(.hidden){grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.workspace-intro-bar{flex-direction:column;align-items:stretch;margin-bottom:4px}.workspace-intro-bar .workspace-flow-status-inline{flex:0 auto;width:100%}.workspace-intro-actions{flex-shrink:1;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-left:0;display:grid}.workspace-intro-actions>button{width:100%;min-height:40px}.workspace-blank-entry{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:8px}.workspace-blank-entry>button{width:100%}#workspaceView[data-mobile-step=upload] .workspace-generate-panel,#workspaceView[data-mobile-step=generate] .workspace-upload-panel,#workspaceView[data-mobile-step=generate] #patternResult,#workspaceView[data-mobile-step=preview] .workspace-upload-panel,#workspaceView[data-mobile-step=preview] #patternForm{display:none}.workspace-layout,.project-detail-grid{grid-template-columns:1fr}.workspace-layout{gap:14px}.pattern-post-save-buttons{grid-template-columns:1fr;display:grid}.workspace-upload-panel{order:1}.workspace-generate-panel{order:2}.workspace-file-scroll{max-height:none}.workspace-generate-panel .settings-size{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-generate-panel .settings-size>label:first-child{grid-column:1/-1}.workspace-generate-panel .settings-palette,.workspace-generate-panel .settings-colors{grid-template-columns:repeat(2,minmax(0,1fr))}.panel.workspace-upload-panel,.panel.workspace-generate-panel{gap:6px;padding:10px 12px}.panel.workspace-upload-panel>h3,.panel.workspace-generate-panel>h3{margin-bottom:4px;font-size:15px}.workspace-upload-panel .upload-drop-zone{padding:8px}.workspace-upload-panel .upload-action-row{grid-template-columns:1fr 1fr;align-items:stretch;gap:6px;display:grid}.workspace-upload-panel .upload-action-row:not(:has(#aiImageEntry:not(.hidden))){grid-template-columns:1fr}.workspace-upload-panel .upload-form-compact{gap:0;margin:0}.workspace-upload-panel .upload-form-compact button,.workspace-upload-panel .upload-sample-btn{width:100%;min-height:36px;font-size:13px}.workspace-upload-panel .upload-sample-row{border:none;gap:0;margin:0;padding:0}.workspace-upload-panel .upload-sample-hint{display:none}.workspace-upload-panel>.upload-drop-zone>.file-name{margin-top:4px;font-size:11px}.workspace-upload-panel .upload-hint{margin:2px 0 0;font-size:11px}.workspace-library-section{gap:6px;padding-top:8px}.workspace-upload-panel .compact-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace-library-actions{flex:160px;justify-content:flex-end;gap:4px;width:auto}.workspace-library-actions button{min-height:32px;padding:4px 6px;font-size:12px}.workspace-library-filters{flex-flow:row;align-items:center;gap:4px;min-width:0;display:flex}.workspace-library-filters>input{flex:1 1 0;width:auto;min-width:0;min-height:34px;padding:5px 6px;font-size:13px}.workspace-library-filter-toolbar{flex-wrap:nowrap;flex:none;align-items:center;gap:4px;width:auto;display:flex}.workspace-library-filter-toolbar select{flex:none;min-width:0;max-width:100px;min-height:34px;padding:4px 6px;font-size:12px}.workspace-library-filter-toggle,button.workspace-library-filter-toggle{flex:none;justify-content:center;min-height:34px;padding:0 6px;font-size:12px}.workspace-generate-panel .settings-section-title{margin:4px 0 2px;font-size:12px}.workspace-generate-panel .settings-grid{gap:6px;margin-bottom:4px}.workspace-generate-panel label{gap:2px;font-size:12px}.workspace-generate-panel input,.workspace-generate-panel select{min-height:34px;padding:5px 8px;font-size:13px}.workspace-generate-panel .settings-inline-hint{margin:-2px 0 4px;font-size:11px;line-height:1.35}.auth-screen{width:min(680px,100% - 48px);min-height:auto;margin:24px auto;padding:0}.register-form-grid{grid-template-columns:1fr}.auth-brand{min-height:360px;padding:34px}.topbar{align-items:center;gap:10px;margin-bottom:10px}.topbar-main .eyebrow{display:none}.topbar h2{font-size:20px;line-height:1.25}.panel-head,.preview-toolbar,.upload-result{flex-direction:column;grid-template-columns:1fr;align-items:stretch}.file-library{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.file-actions,#patternSummary{grid-template-columns:1fr}.color-grid:not([class*=palette-color-grid]){grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.preview-toolbar{padding:8px 10px;display:block}.preview-toolbar-title{display:none}.preview-toolbar-main{flex-flow:wrap;align-items:center;gap:6px 8px;display:flex}.preview-options{gap:6px 8px;display:contents}.preview-options .check-label{min-height:28px;font-size:12px}.preview-grid-step-label{white-space:nowrap;font-size:12px}.preview-actions{flex-direction:row;flex:100%;gap:6px;width:100%;display:flex}.preview-actions button{flex:1 1 0;width:auto;min-width:0;min-height:34px;font-size:12px}.preview-rotation-toolbar{flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 10px;display:flex}.preview-rotation-title span{display:none}.image-rotation-buttons{flex:100%;grid-template-columns:repeat(2,minmax(0,1fr))}#patternResult .pattern-legend-fold{border:1px solid var(--color-border-subtle);background:#fbfdff;border-radius:8px}#patternResult .pattern-legend-fold-title{margin:0;padding:8px 10px;font-size:13px}#patternResult .workspace-pattern-legend{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:5px;max-height:132px;padding:0 8px 8px;overflow-y:auto}#patternResult .workspace-pattern-legend .color-item{grid-template-columns:20px minmax(0,1fr);gap:4px;padding:4px 5px;font-size:10px;line-height:1.2}#patternResult .workspace-pattern-legend .color-swatch{width:20px;height:20px}#patternResult .pattern-preview-canvas-wrap canvas,#patternResult #patternPreview{max-height:min(280px,38vh)}#patternResult .pattern-result{gap:8px;margin-top:8px}#patternSummary.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:8px}.workspace-library-title h3{white-space:nowrap;writing-mode:horizontal-tb}.workspace-library-head{flex-flow:wrap;align-items:center;gap:6px}.workspace-library-actions{flex:160px;width:auto}.workspace-library-actions button{flex:1 1 0;min-width:0}#paletteView .palette-toolbar{grid-template-columns:1fr}#projectView .project-card.project-recycle-card{grid-template-columns:20px 48px minmax(0,1fr);grid-template-areas:"check thumb body""actions actions actions";align-items:start}#projectView .project-card.project-recycle-card .project-recycle-check{grid-area:check;min-height:48px}#projectView .project-card.project-recycle-card .project-card-thumb-wrap{grid-area:thumb}#projectView .project-card.project-recycle-card .project-recycle-body{grid-area:body}#projectView .project-card.project-recycle-card .project-recycle-actions{flex-direction:row;grid-area:actions;justify-content:stretch;width:100%;padding-top:0}#projectView .project-card.project-recycle-card .project-recycle-actions button{flex:1;min-width:0}.register-security-cards{grid-template-columns:1fr}.project-list-create-actions button{width:100%}.editor-body,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-body{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:1fr}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-canvas-wrap{min-height:160px}.app-shell.editor-focus .content{padding-bottom:0}.editor-key-hint,.editor-tool-button .tool-shortcut{display:none!important}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-tools{border-right:0;border-bottom:1px solid var(--color-border);flex-flow:row;gap:4px;padding:3px 6px;display:flex;overflow-x:hidden}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-tool-button{flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:1px;width:auto;min-width:0;min-height:36px;padding:2px 1px}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-tool-button .tool-icon{font-size:15px}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-tool-button .tool-label{text-overflow:ellipsis;max-width:100%;font-size:10px;line-height:1.05;overflow:hidden}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-tool-button[data-tool=replace]{flex-direction:column;flex:1 1 0;grid-column:auto;justify-content:center;width:auto;min-width:0}.editor-view.is-landscape-layout .editor-tools,.editor-view.mobile-simulated-landscape .editor-tools{border-right:1px solid var(--color-border);border-bottom:0;flex-flow:column;gap:4px;max-height:none;padding:4px 2px;display:flex;overflow:hidden auto}.editor-view.is-landscape-layout .editor-tool-button,.editor-view.mobile-simulated-landscape .editor-tool-button{flex-direction:column;flex:none;justify-content:center;align-items:center;gap:1px;width:100%;min-width:0;min-height:38px;padding:2px 1px}.editor-view.is-landscape-layout .editor-tool-button .tool-label,.editor-view.mobile-simulated-landscape .editor-tool-button .tool-label{text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;line-height:1.15;display:block;overflow:hidden}.editor-view.is-landscape-layout .editor-tool-button[data-tool=replace],.editor-view.mobile-simulated-landscape .editor-tool-button[data-tool=replace]{flex-direction:column;grid-column:auto;justify-content:center;gap:1px;min-height:38px}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel{border-left:0;border-top:1px solid var(--color-border);width:auto;min-width:0;max-height:min(34vh,280px)}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel.collapsed{min-height:36px;max-height:36px;overflow:hidden}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel.collapsed .editor-panel-body{display:none}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel.collapsed .editor-panel-head{border-bottom:0;flex-direction:row;justify-content:space-between;align-items:center;min-height:36px;padding:4px 10px}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel.collapsed .editor-panel-head h3{font-size:13px;display:block}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel.collapsed .editor-panel-toggle{min-height:28px;padding:0 10px;font-size:12px}.editor-view.mobile-immersive-mode:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel{max-height:36px;overflow:hidden}.editor-view.mobile-immersive-mode:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-panel .editor-panel-body{display:none}.editor-panel.collapsed{width:auto;min-width:0;max-height:none}.editor-panel.collapsed .editor-panel-head h3{display:block}.editor-mobile-zoom-fab{z-index:12;border:1px solid var(--color-border);background:#fffffff5;border-radius:999px;align-items:center;gap:4px;padding:4px;display:inline-flex;position:absolute;bottom:10px;right:10px;box-shadow:0 8px 20px #0f172a24}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar{box-sizing:border-box;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"back edit edit""view view status";align-items:stretch;gap:3px;width:100%;max-width:100%;padding:2px 6px;display:grid;overflow:visible}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar button{min-height:32px;padding:0 6px;font-size:12px}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups{display:contents}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar>.toolbar-group-status,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:first-child,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-view,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-edit{order:unset;margin:0}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:has(#editorSaveButton){order:unset;margin:0}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:first-child{flex:none;grid-area:back;align-self:stretch;width:auto;padding:2px;display:flex}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:first-child>button{flex:none;min-width:48px;min-height:32px;padding:0 8px}:is(.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-edit,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:has(#editorSaveButton)){grid-area:edit;justify-self:stretch;align-items:stretch;gap:3px;width:100%;min-width:0;padding:2px;display:flex}:is(.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-edit>button,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:has(#editorSaveButton)>button){flex:1 1 0;min-width:0;min-height:32px;padding:0 4px;font-size:12px}:is(.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-edit>.toolbar-history-hint,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:has(#editorSaveButton)>.toolbar-history-hint){text-align:center;flex:none;align-self:center;min-width:28px;min-height:32px;padding:0 4px;font-size:11px;line-height:32px}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-view{grid-area:view;justify-self:stretch;align-items:stretch;gap:3px;width:100%;min-width:0;max-width:100%;padding:2px;display:flex}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-view>button{flex:1 1 0;min-width:0;min-height:32px;padding:0 4px;font-size:12px}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) #editorZoomOutButton,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) #editorZoomInButton{display:none!important}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar>.toolbar-group-status{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:8px;flex:none;grid-area:status;justify-self:stretch;align-items:stretch;gap:3px;width:auto;min-width:0;max-width:none;padding:2px;display:flex}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status .editor-live-context{display:none}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status .editor-live-status{flex:none;align-items:stretch;gap:4px;width:auto;padding:0;display:inline-flex}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status .status-chip,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-live-status .status-chip{white-space:nowrap;flex:none;justify-content:center;align-items:center;min-width:0;min-height:28px;padding:0 6px;font-size:11px;display:inline-flex}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status .status-chip-tool{display:none!important}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status .status-chip-coord,.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-live-status .status-chip-coord{font-variant-numeric:tabular-nums;justify-content:center;min-width:4.5em;max-width:6.5em;display:inline-flex!important}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status .status-chip-coord .status-chip-label{display:none}.editor-view.mobile-immersive-mode:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"back edit""view view"}.editor-view.mobile-immersive-mode:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status{display:none}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar-save{min-width:0;padding:0 6px}.editor-toolbar-groups .toolbar-group button,.toolbar-group-status button{text-align:center;justify-content:center;align-items:center;display:inline-flex}.editor-live-context{flex:auto;min-width:0;font-size:11px}.editor-live-status{flex:none;justify-content:flex-end}.editor-live-status .status-chip-coord{min-width:4.5em}.editor-selection-bar{flex-wrap:wrap;justify-content:center;width:auto;right:8px;top:auto!important;bottom:56px!important;left:8px!important}.editor-selection-bar-nudge{display:none}.editor-selection-bar-btn{min-height:40px}.editor-selection-bar-btn.icon{min-width:40px}.mobile-landscape-btn.is-active{color:var(--color-primary-hover);border-color:var(--color-primary);background:var(--color-primary-soft)}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar{flex-direction:row;flex-shrink:0;justify-content:flex-start;align-items:center;gap:8px;width:100%;min-width:0;max-width:100%;padding:6px 10px;overflow:hidden}.editor-view.is-mobile-layout.is-landscape-layout:not(.mobile-simulated-landscape) .editor-toolbar-groups,.editor-view.is-mobile-layout.mobile-simulated-landscape .editor-toolbar-groups{-webkit-overflow-scrolling:touch;touch-action:pan-x manipulation;overscroll-behavior:contain;scrollbar-width:none;flex-wrap:nowrap;flex:auto;align-items:center;gap:6px;width:auto;min-width:0;max-width:100%;display:flex;overflow:auto hidden}.editor-view.is-mobile-layout.is-landscape-layout:not(.mobile-simulated-landscape) .editor-toolbar-groups::-webkit-scrollbar{display:none}.editor-view.is-mobile-layout.mobile-simulated-landscape .editor-toolbar-groups::-webkit-scrollbar{display:none}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group,.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:first-child,.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-view,.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group-edit{order:unset;flex-wrap:nowrap;flex:none;gap:4px;width:auto;min-width:0;max-width:none;margin-left:0;display:inline-flex}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar-groups>.toolbar-group:has(#editorSaveButton){order:unset;flex-wrap:nowrap;flex:none;gap:4px;width:auto;min-width:0;max-width:none;margin-left:0;display:inline-flex}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar>.toolbar-group-status{flex-wrap:nowrap;flex:none;align-items:center;gap:6px;width:auto;margin-left:0;display:inline-flex}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .toolbar-group-status .editor-live-context{display:inline-flex}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar button,.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel button,.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .palette-color,.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .legend-item{touch-action:none;pointer-events:auto}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar button{min-height:34px;padding:0 10px;font-size:13px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-live-context{text-overflow:ellipsis;white-space:nowrap;max-width:88px;overflow:hidden}.editor-view.is-mobile-layout.is-landscape-layout .editor-mobile-hint,.assembly-view.is-mobile-layout.is-landscape-layout .assembly-mobile-hint,.editor-view.is-mobile-layout.mobile-immersive-mode .editor-mobile-hint,.assembly-view.is-mobile-layout.mobile-immersive-mode .assembly-mobile-hint{display:none}.editor-view.is-mobile-layout.is-landscape-layout .editor-body{grid-template-rows:minmax(0,1fr);grid-template-columns:72px minmax(0,1fr) minmax(220px,30%);overflow:hidden}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-body:has(.editor-panel.collapsed){grid-template-columns:72px minmax(0,1fr) 44px}.editor-view.is-mobile-layout.is-landscape-layout.editor-panel-open .editor-body{grid-template-columns:72px minmax(0,1fr) minmax(220px,30%)}.editor-view.is-mobile-layout.is-landscape-layout.editor-panel-open .editor-body:has(.editor-panel.collapsed){grid-template-columns:72px minmax(0,1fr) 44px}.editor-view.is-mobile-layout.is-landscape-layout .editor-tools,.editor-view.is-mobile-layout.is-landscape-layout .editor-canvas-wrap,.editor-view.is-mobile-layout.is-landscape-layout .editor-panel{grid-row:1;min-width:0;min-height:0}.editor-view.is-mobile-layout.is-landscape-layout .editor-canvas-wrap{touch-action:none;overflow:hidden}.editor-view.is-mobile-layout.is-landscape-layout .editor-canvas{touch-action:none}.editor-view.is-mobile-layout.is-landscape-layout .editor-tools,.editor-view.is-mobile-layout.mobile-simulated-landscape .editor-tools{border-bottom:0;border-right:1px solid var(--color-border);touch-action:none;flex-direction:column;gap:4px;max-height:none;padding:4px 2px;display:flex;overflow:hidden auto}.editor-view.is-mobile-layout.is-landscape-layout .editor-tool-button{touch-action:manipulation;pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:38px;padding:2px}.editor-view.is-mobile-layout.is-landscape-layout .editor-tool-button[data-tool=replace]{flex-direction:column;grid-column:auto;min-height:38px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel{border-top:0;border-left:1px solid var(--color-border);touch-action:none;flex-direction:column;align-self:stretch;height:100%;min-height:0;display:flex;overflow:hidden;max-height:none!important}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel.collapsed{width:44px;min-width:44px;max-width:44px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel.collapsed .editor-panel-body{display:none!important}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel-head{flex-shrink:0;padding:6px 8px}.editor-view.is-mobile-layout.is-landscape-layout:not(.mobile-simulated-landscape) .editor-panel:not(.collapsed) .editor-panel-body,.editor-view.is-mobile-layout.mobile-simulated-landscape .editor-panel:not(.collapsed) .editor-panel-body{-webkit-overflow-scrolling:touch;touch-action:none;overscroll-behavior:contain;flex-direction:column;flex:1 1 0;gap:10px;min-height:0;padding:10px;display:flex;overflow:hidden auto}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-color-panel{flex:none;gap:8px;min-height:0;max-height:none;display:grid;overflow:visible}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-color-panel h4{margin:0;font-size:12px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-current-color{grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-width:0;display:grid}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-current-color .color-swatch{box-sizing:border-box;flex-shrink:0;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;max-height:20px;display:block}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-current-color>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;line-height:1.3;overflow:hidden}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-palette-search{min-height:28px;padding:4px 8px;font-size:12px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-recent-colors-list{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;display:grid}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-recent-colors-list .palette-color{min-width:0;min-height:unset;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:100%;height:auto;padding:4px 2px;font-size:10px;line-height:1.15;display:flex;overflow:hidden}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-recent-colors-list .palette-color .color-swatch{box-sizing:border-box;flex-shrink:0;width:18px;min-width:18px;height:18px;min-height:18px;display:block}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-palette-list{-webkit-overflow-scrolling:touch;touch-action:none;overscroll-behavior:contain;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:4px;max-height:200px;overflow:hidden auto}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-palette-list .palette-color{min-width:0;min-height:unset;flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;height:auto;padding:4px 2px;font-size:10px;line-height:1.15;display:flex;overflow:hidden}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-palette-list .palette-color-text{text-align:center;text-overflow:ellipsis;white-space:nowrap;word-break:normal;min-width:0;max-width:100%;display:block;overflow:hidden}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-palette-list .palette-color-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.15;display:block;overflow:hidden}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-palette-list .palette-color-text small{display:none}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-palette-list .palette-color .color-swatch{box-sizing:border-box;flex-shrink:0;width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;max-height:18px;display:block}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel-block-legend{flex:none;gap:8px;min-height:0;display:grid;overflow:visible}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel-block-legend h4{flex-shrink:0;margin:0;font-size:12px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-legend-list{-webkit-overflow-scrolling:touch;touch-action:none;overscroll-behavior:contain;max-height:200px;overflow:hidden auto}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-legend-list .legend-item{min-width:0;overflow:hidden}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-legend-list .legend-item span:last-child{overflow-wrap:anywhere;word-break:break-word;min-width:0;font-size:11px;line-height:1.35}.editor-legend-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-legend-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-legend-actions .secondary{white-space:normal;overflow-wrap:anywhere;min-width:0;padding:6px 4px;font-size:11px;line-height:1.25}.legend-help-pop{z-index:30;width:210px;position:absolute}#editorLegendDialog{max-width:min(420px,92vw);max-height:86vh;overflow-y:auto}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel-block-meta{display:grid}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel-block:has(#editorShowGrid){flex:none;gap:4px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel-block:has(#editorShowGrid) h4{margin:0;font-size:12px}.editor-view.is-mobile-layout:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-panel-block:has(#editorShowGrid) .check-label{font-size:11px}.editor-view.is-mobile-layout.is-landscape-layout .editor-mobile-zoom-fab{bottom:8px;right:8px}.assembly-view.is-mobile-layout.is-landscape-layout .assembly-topbar,.assembly-view.is-mobile-layout.mobile-immersive-mode .assembly-topbar{padding:4px 10px}.assembly-view.is-mobile-layout.is-landscape-layout .assembly-topbar-actions,.assembly-view.is-mobile-layout.mobile-immersive-mode .assembly-topbar-actions{flex-wrap:nowrap;width:auto}.assembly-view.is-phone-dock .assembly-dock-row-primary{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:6px;display:grid}.assembly-view.is-phone-dock .assembly-dock-modes{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-dock-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.assembly-view.is-phone-dock .assembly-mode-btn{text-align:center;white-space:nowrap;letter-spacing:0;flex-direction:row;justify-content:center;align-items:center;gap:2px;width:100%;min-height:44px;padding:0 6px;font-size:11px;line-height:1.2;display:inline-flex}.assembly-view.is-phone-dock .assembly-more-toggle{letter-spacing:0;grid-column:1/-1;font-size:11px}.assembly-view.is-phone-dock .assembly-dock-extras{flex-wrap:wrap;grid-column:1/-1;justify-content:stretch;gap:6px;display:flex}.assembly-view.is-phone-dock .assembly-dock-extras .assembly-mode-btn,.assembly-view.is-phone-dock .assembly-dock-extras .assembly-dock-action,.assembly-view.is-phone-dock .assembly-dock-extras .assembly-display-select{flex:calc(50% - 3px);min-height:44px}.assembly-view.is-mobile-layout.is-landscape-layout .assembly-dock-more-group,.assembly-view.is-mobile-layout.mobile-simulated-landscape .assembly-dock-more-group{display:contents}.assembly-view.is-mobile-layout.is-landscape-layout .assembly-more-toggle,.assembly-view.is-mobile-layout.mobile-simulated-landscape .assembly-more-toggle,.assembly-view.is-mobile-layout.landscape-mode-on .assembly-more-toggle{display:none}.assembly-view.is-mobile-layout:is(.is-landscape-layout,.landscape-mode-on) .assembly-dock-mark-inline,.assembly-view.is-mobile-layout.mobile-immersive-mode .assembly-dock-mark-inline{flex-basis:auto;order:0}.assembly-landscape-btn.is-active,.assembly-view .mobile-landscape-btn.is-active{color:#93c5fd;border-color:var(--color-primary);background:#2563eb40}.assembly-view.is-mobile-layout .assembly-landscape-btn,.assembly-view.is-mobile-layout .mobile-landscape-btn:not(.hidden){justify-content:center;align-items:center;display:inline-flex}.assembly-view.is-phone-dock .assembly-topbar{padding:calc(4px + env(safe-area-inset-top,0px)) 8px 4px 8px;flex-wrap:nowrap;align-items:center;gap:4px}.assembly-view.is-phone-dock .assembly-back-btn{flex-shrink:0;min-height:34px;padding:0 8px;font-size:12px}.assembly-view.is-phone-dock .assembly-topbar-center{flex-direction:row;flex:auto;align-items:center;gap:4px;min-width:0;display:flex}.assembly-view.is-phone-dock .assembly-top-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:11px;line-height:1.15;overflow:hidden}.assembly-view.is-phone-dock .assembly-progress-text{color:var(--color-text-muted);white-space:nowrap;flex-shrink:0;font-size:10px;line-height:1.15}.assembly-view.is-phone-dock .assembly-progress-text:before{content:"?";color:var(--color-text-soft);margin-right:3px}.assembly-view.is-phone-dock .assembly-topbar-actions{flex-wrap:nowrap;flex:none;justify-content:flex-end;gap:4px;width:auto}.assembly-view.is-phone-dock .assembly-topbar-chip-btn{white-space:nowrap;flex-shrink:0;width:auto;min-width:auto;height:auto;min-height:34px;padding:0 7px;font-size:11px;line-height:1.2}.assembly-view.is-phone-dock .assembly-topbar-actions .assembly-sync-status{border-radius:999px;width:8px;min-width:8px;height:8px;min-height:8px;margin-left:0;padding:0;font-size:0;line-height:0;overflow:hidden}.assembly-view.is-phone-dock .assembly-mobile-hint{top:calc(env(safe-area-inset-top,0px) + 48px);font-size:11px}.assembly-view.is-phone-dock .assembly-dock-row-primary{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-view.is-phone-dock .assembly-dock-more-group{border-top:1px solid #94a3b81f;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:6px;display:none}.assembly-view.is-phone-dock .assembly-dock.is-more-open .assembly-dock-more-group{border-top:1px solid #94a3b81f;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:6px;display:grid}.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-dock-extras,.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-dock-actions{display:contents}.assembly-view.is-phone-dock .assembly-dock-more-group #assemblyFitBtn{grid-area:1/1}.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-display-select{white-space:nowrap;box-sizing:border-box;background:#0f172a99;border:1px solid #94a3b840;border-radius:8px;flex-direction:row;grid-area:1/2;justify-content:center;justify-self:stretch;align-items:center;gap:4px;width:100%;max-width:100%;min-height:38px;padding:0 8px;font-size:12px;display:inline-flex}.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-display-label{flex:none;margin:0;font-size:11px}.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-major-grid-trigger{flex:none;width:auto;min-width:4.4em;max-width:5.8em;min-height:28px;padding:0 8px;font-size:12px}.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-display-select select{display:none}.assembly-view.is-phone-dock .assembly-dock-more-group #assemblyLegendToggle,.assembly-view.is-phone-dock .assembly-dock-more-group #assemblyResetAssistButton{grid-area:2/1}.assembly-view.is-phone-dock .assembly-dock-more-group #assemblyResetProgressButton{grid-area:2/2}.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-mode-btn,.assembly-view.is-phone-dock .assembly-dock-more-group .assembly-dock-action{min-height:38px;padding:0 6px;font-size:11px}.assembly-view.is-phone-dock .assembly-landscape-hint{display:none}.assembly-touch-lock-fab{z-index:14;color:#ffffffc7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);width:32px;height:32px;min-height:32px;box-shadow:none;cursor:pointer;touch-action:manipulation;opacity:.55;background:#0f172a1f;border:1px solid #ffffff2e;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:14px;line-height:1;display:inline-flex;position:absolute;top:auto;bottom:14px;right:12px}.assembly-touch-lock-fab:hover,.assembly-touch-lock-fab:focus-visible{opacity:.85;background:#0f172a47}.assembly-touch-lock-fab.is-locked,.assembly-touch-lock-fab.active{color:#ffedd5;opacity:.8;background:#ea580c38;border-color:#fdba7466}.assembly-view:not(.is-mobile-layout) .assembly-touch-lock-fab{opacity:.45;bottom:16px;right:16px}.assembly-view.is-mobile-layout.is-landscape-layout .assembly-touch-lock-fab,.assembly-view.is-mobile-layout.mobile-simulated-landscape .assembly-touch-lock-fab{bottom:12px;right:12px}.assembly-view.is-phone-dock .assembly-dock-mark-inline,.assembly-view.is-phone-dock .assembly-lock-inline{grid-column:1/-1}.assembly-view.is-phone-dock .assembly-legend-drawer.is-open{max-height:min(32vh,240px)}.mobile-step-tab,.project-detail-back,.project-detail-primary-btn,.project-detail-edit-btn,.project-detail-inline-actions button,.project-detail-secondary-actions button,.pattern-actions button,.preview-actions button{text-align:center;justify-content:center;align-items:center;line-height:1.25;display:inline-flex}.export-modal{place-items:end center}.export-modal-card{width:100%;max-width:100%;max-height:min(92dvh, calc(100dvh - env(safe-area-inset-top,0px)));border-radius:16px 16px 0 0;margin:0;padding:16px}.export-modal-head{flex-direction:column;align-items:stretch;gap:8px}.export-modal-head button{align-self:flex-end}.export-primary-actions{grid-template-columns:1fr}.export-primary-btn{min-height:56px}.project-detail-drawer,.project-detail-content{min-width:0;max-width:100%}.project-layout.project-mobile-detail .project-detail-drawer{width:100%;max-width:100%}.project-detail-name-input{width:100%;min-width:0}.project-detail-title-row{flex-direction:column;align-items:stretch}.project-detail-inline-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.project-detail-inline-actions button{width:100%;min-height:42px}.project-detail-actions-bar{flex-direction:column;align-items:stretch}.project-detail-actions-bar button{width:100%}.project-detail-preview-toolbar+.project-detail-media,.project-detail-media{max-width:100%;overflow:hidden}.project-detail-media canvas,.project-detail-media img{max-width:100%;height:auto}.admin-filter-bar,.admin-visual-list,.settings-layout,.settings-form-inline{grid-template-columns:1fr}.onboarding-banner{flex-direction:column;align-items:stretch}}@media (width<=640px){.auth-screen,.content{padding:10px}.content{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}.auth-screen{width:calc(100% - 24px);margin:12px auto}.auth-brand{min-height:260px;padding:20px}.auth-brand h1{font-size:28px}.panel{min-width:0;max-width:100%;padding:14px}.section-grid,.workspace-layout{min-width:0;max-width:100%}.pattern-summary-stats{grid-template-columns:1fr}.pattern-summary-layout,.pattern-ratio-preview,.preview-rotation-title{flex-direction:column;align-items:flex-start}.image-rotation-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}.toolbar,.upload-form,.upload-form-pick,.settings-grid,.workspace-generate-panel .settings-size,.workspace-generate-panel .settings-palette,.inline-form{grid-template-columns:1fr}.workspace-generate-panel .settings-palette,.workspace-generate-panel .settings-colors,.workspace-generate-panel .settings-size{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.workspace-generate-panel .settings-size>label:first-child{grid-column:1/-1}.workspace-generate-panel .settings-project{grid-template-columns:1fr}.panel.workspace-upload-panel,.panel.workspace-generate-panel{padding:10px}.workspace-library-filters{flex-flow:row;align-items:center;gap:4px;min-width:0;display:flex}.workspace-library-filter-toolbar{flex:none;gap:4px;width:auto;display:flex}.workspace-library-filter-toolbar select{min-width:0;max-width:96px;font-size:12px}.bead-size-inline{flex-direction:column;align-items:stretch}.bead-size-select{width:100%}.upload-result,.upload-pending{grid-template-columns:1fr}.upload-result img,.upload-pending img{width:100%;height:auto;max-height:180px}.upload-pending-actions,.pattern-actions{flex-direction:column}.upload-pending-actions button,.pattern-actions button{width:100%}.file-library{grid-template-columns:repeat(2,minmax(0,1fr))}.current-source-hint{box-sizing:border-box;flex-flow:wrap;align-items:center;gap:6px 8px;width:100%;margin-bottom:8px;padding:6px 8px}.current-source-hint .flow-step-badge{order:0}.current-source-hint .current-source-thumb{flex:0 0 36px;order:1;width:36px;height:36px}.current-source-hint .current-source-meta{flex:140px;order:2;width:auto;min-width:0}.current-source-hint .current-source-name{white-space:nowrap;text-overflow:ellipsis;vertical-align:bottom;max-width:100%;display:inline-block;overflow:hidden}.project-list-header{gap:8px}.project-list-create-actions{grid-template-columns:1fr 1fr}.project-detail-actions{grid-template-columns:1fr}.admin-tabs{gap:6px;padding:8px;display:grid;overflow:visible}.admin-tab-group{border-bottom:1px solid var(--color-border-subtle);gap:4px;padding-bottom:6px;display:grid}.admin-tab-group:last-child{border-bottom:0;padding-bottom:0}.admin-tab-group-title{text-transform:none;min-width:0;padding:0 2px;font-size:11px;line-height:1.2}.admin-tab-group-items{flex-wrap:wrap;gap:6px;display:flex}.admin-tab{white-space:nowrap;text-align:center;border-radius:8px;flex-direction:row;flex:none;justify-content:center;gap:5px;width:auto;min-height:36px;padding:0 10px}.admin-tab-icon,.admin-tab-icon svg{width:16px;height:16px}.admin-tab-label{word-break:keep-all;font-size:12px;line-height:1.2}.admin-account-controls,.admin-detail-preview-wrap{grid-template-columns:1fr}.admin-project-inline-detail .admin-detail-preview-wrap{grid-template-columns:48px minmax(0,1fr);align-items:start;gap:8px}.admin-project-inline-detail .admin-detail-preview,.admin-project-inline-detail .admin-visual-thumb.placeholder{width:48px;height:48px}button:not(.admin-tab):not(.admin-detail-close),.button-like:not(.admin-tab):not(.admin-detail-close){min-height:44px}.admin-table-actions button:not(.admin-tab){min-height:34px}.admin-project-inline-detail-head .admin-detail-close{height:28px;padding:0 10px;min-height:28px!important}.share-modal-card{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.share-modal-head{align-items:flex-start;padding:16px}.share-option-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.share-toggle-card{gap:6px;min-height:38px;padding:6px 8px}.share-toggle-card strong{font-size:12px}.share-form-row{grid-template-columns:1fr}.share-result{margin:12px 16px 0}.share-result-layout{grid-template-columns:1fr;justify-items:stretch}.share-result-qr{order:-1;justify-self:center}.share-form{padding:14px 16px 16px}.share-actions{grid-template-columns:1fr;width:100%;display:grid}.share-actions button,.share-actions .button-link{width:100%}.share-result-actions{grid-template-columns:1fr;display:grid}.share-result-actions button,.share-result-actions .button-link{width:100%}.share-modal-card>.message{margin:12px 16px 0}.share-page{padding:12px 12px 20px}.share-page-card{padding:12px 14px 16px}.share-password-card{margin-top:8vh;padding:18px}.share-page-head-bar{flex-direction:column;align-items:flex-start;gap:4px}.share-page-head-line{white-space:normal;flex-wrap:wrap}.share-page-meta-inline{white-space:normal}.share-page-promo{text-align:left;white-space:normal}.share-page-head-main{flex-direction:column;align-items:stretch;gap:8px}.share-download-button{align-self:flex-start}.share-page-canvas-wrap{height:min(62vh,560px);min-height:240px}.share-page-viewbar{gap:8px}.share-page-viewbar-toggles,.share-zoom-controls{width:100%}.share-zoom-controls{justify-content:flex-start}.share-legend-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.export-field-row,.export-checkbox-grid,.export-form-section-inline{grid-template-columns:1fr}.export-form-section-inline #exportFileNameHint{order:2}.export-form-section-inline>.export-field:last-of-type{order:3}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.toast-container{top:calc(12px + env(safe-area-inset-top,0px));max-width:min(360px,100vw - 24px);bottom:auto;left:50%;right:auto;transform:translate(-50%)}.toast{transform:translateY(-8px)}.toast.show{transform:translateY(0)}}@media (width<=640px){.duplicate-color-toolbar{flex-direction:column;align-items:stretch}.duplicate-color-toolbar>div,.duplicate-color-toolbar button{flex:1}.duplicate-color-list{grid-template-columns:1fr;max-height:min(42vh,100dvh - 400px)}}@media (width>=641px) and (width<=900px){.app-shell{grid-template-columns:188px minmax(0,1fr)}.sidebar{gap:14px;padding:16px 12px}.sidebar-brand{padding-bottom:12px}.sidebar-brand strong{font-size:17px}.sidebar-brand span{font-size:12px}.nav-item{min-height:36px;font-size:13px}.content{padding:12px 14px}.topbar h2{font-size:20px}.workspace-layout{grid-template-columns:1fr}.project-layout.project-desktop{grid-template-columns:minmax(220px,280px) minmax(0,1fr);min-height:0}.settings-layout{grid-template-columns:1fr}}@media (width<=900px){.app-shell.tablet-layout #projectView .project-detail-grid{grid-template-columns:1fr}.app-shell.tablet-layout #projectView .project-detail-media{min-height:min(280px,48vw);max-height:min(400px,56vh)}}@media (width>=901px) and (width<=1200px){.app-shell:not(.editor-focus){grid-template-columns:188px minmax(0,1fr)}.app-shell:not(.editor-focus) .workspace-layout{grid-template-columns:minmax(220px,32%) minmax(0,68%);gap:12px}.app-shell:not(.editor-focus) .project-layout.project-desktop{grid-template-columns:minmax(210px,260px) minmax(0,1fr)}.app-shell:not(.editor-focus) #projectView .project-detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.app-shell:not(.editor-focus) .workspace-library-head{flex-flow:wrap;align-items:center;gap:6px}.app-shell:not(.editor-focus) .workspace-library-title{flex-wrap:nowrap;width:auto;min-width:0}.app-shell:not(.editor-focus) .workspace-library-title h3{white-space:nowrap;writing-mode:horizontal-tb}.app-shell:not(.editor-focus) .workspace-library-actions{flex:180px;width:auto}.app-shell:not(.editor-focus) .workspace-library-filters{flex-flow:row;align-items:center;gap:6px;min-width:0;display:flex}.app-shell:not(.editor-focus) .workspace-library-filters>input{flex:1 1 0;width:auto;min-width:0;min-height:34px;font-size:13px}.app-shell:not(.editor-focus) .workspace-library-filter-toolbar{flex:none;gap:4px;width:auto;display:flex}.app-shell:not(.editor-focus) .workspace-library-filter-toolbar select{flex:none;min-width:0;max-width:120px;min-height:34px;font-size:13px}.app-shell:not(.editor-focus) .workspace-library-filter-toggle,.app-shell:not(.editor-focus) button.workspace-library-filter-toggle{flex:none;min-width:0;min-height:34px}.app-shell:not(.editor-focus) #projectView .project-list-filters{grid-template-columns:1fr;gap:8px}.app-shell:not(.editor-focus) #projectView .project-search{width:100%;min-height:38px;font-size:14px}.app-shell:not(.editor-focus) #projectView .project-sort-label{width:100%;min-width:0}.app-shell:not(.editor-focus) #projectView .project-sort-label select{width:100%;min-width:0;max-width:none;min-height:38px;font-size:14px}.app-shell:not(.editor-focus) .preview-toolbar{flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 10px;display:flex}.app-shell:not(.editor-focus) .preview-toolbar-title{display:none}.app-shell:not(.editor-focus) .preview-toolbar-main,.app-shell:not(.editor-focus) .preview-options{display:contents}.app-shell:not(.editor-focus) .preview-actions{flex:none;gap:6px;width:auto;margin-left:auto;display:inline-flex}.app-shell:not(.editor-focus) .preview-actions button{white-space:nowrap;flex:0 auto;width:auto;min-width:0}.app-shell:not(.editor-focus) .workspace-pattern-legend,.app-shell:not(.editor-focus) .project-detail-legend{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));max-height:200px;overflow-y:auto}.app-shell:not(.editor-focus):not(.tablet-layout) .palette-color-grid-manage{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}.app-shell:not(.editor-focus):not(.tablet-layout) .palette-color-grid-manage>.color-card-manage{min-width:0;overflow:hidden}}@media (width<=900px){.palette-browse-primary{grid-template-columns:1fr}.palette-browse-bar{padding:12px}.palette-browse-filters,.palette-main-filters{grid-template-columns:1fr}.palette-filter-label{padding-top:0}.palette-family-chips{-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.palette-bar-action{width:100%}.palette-add-form{grid-template-columns:1fr 1fr}}@media (width<=640px){.palette-add-form{grid-template-columns:1fr}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.settings-subnav{z-index:3;position:sticky;top:0}}@media (width<=900px){.settings-profile-link{grid-template-columns:1fr;align-items:stretch}.settings-profile-link-actions{width:100%}.settings-profile-link-actions button{flex:1}}@media (width<=1100px){.settings-account-top,.settings-account-bottom{grid-template-columns:1fr}}@media (width<=900px){.settings-info-grid,.settings-stats-grid,.settings-limits-grid,.settings-info-grid-compact,.settings-stats-grid-compact,.settings-limits-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-account-forms,.settings-quick-actions{grid-template-columns:1fr}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.admin-config-layout{grid-template-columns:1fr}.admin-config-sidebar{scrollbar-width:thin;gap:8px;padding-bottom:4px;display:flex;position:static;overflow-x:auto}.admin-config-group-nav{white-space:nowrap;flex:none}}@media (width<=640px){.admin-config-toolbar{grid-template-columns:1fr}.admin-config-toolbar-actions{grid-template-columns:1fr 1fr;display:grid}.admin-config-toolbar-actions button{width:100%}.admin-config-recent{grid-column:1}.admin-config-section{padding:12px}.admin-config-section-head{flex-direction:column;align-items:stretch}.admin-config-section-actions{grid-template-columns:1fr 1fr;display:grid}.admin-config-section-actions button{width:100%}.admin-config-row{grid-template-columns:1fr;gap:10px}.admin-config-control{justify-content:flex-start}.admin-config-control>input{max-width:none}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.admin-overview-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout,.admin-account-controls{grid-template-columns:1fr}.admin-account-card .admin-row-actions{flex-direction:column}.admin-account-card .admin-row-actions button{width:100%}.admin-palette-layout{grid-template-columns:1fr}.admin-color-form{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-list-toolbar{flex-direction:column;align-items:stretch}.admin-list-toolbar .admin-filter-bar{grid-template-columns:1fr}.admin-bulk-bar{border-top:1px solid #eef2f7;justify-content:space-between;width:100%;padding-top:8px}.admin-record-main{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"thumb content""actions actions"}.admin-record-thumb{grid-area:thumb}.admin-record-content{grid-area:content}.admin-record-actions-inline{grid-area:actions;justify-content:flex-start;margin-top:4px}.admin-record-thumb .admin-visual-thumb{width:44px;height:44px}.admin-bulk-delete-btn{margin-left:auto}.admin-visual-list{grid-template-columns:1fr}}@media (width<=640px){.admin-palette-workspace-head{gap:4px;display:grid}.admin-palette-workspace-head .hint{text-align:left}.admin-color-form,.admin-import-form{grid-template-columns:1fr}.admin-import-form button,.admin-import-form .button-like,.admin-color-form-actions button{width:100%}.admin-import-actions{display:grid}}@media (width>=901px){.settings-info-grid,.settings-stats-grid,.settings-limits-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}@media (width<=900px){.settings-pref-columns,.settings-pref-algo-grid{grid-template-columns:1fr}}@media (width<=640px){.settings-pref-group{padding:14px}.settings-form-footer{flex-direction:column;align-items:stretch}.settings-form-footer>button{width:100%;min-width:0}.palette-scope-switch,.palette-pick-wrap{grid-template-columns:1fr}.palette-kind-badge:not(.compact){justify-self:start}}@media (width<=1100px){.admin-overview-bar{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.admin-view .admin-shell{gap:10px;padding:8px}.admin-tabs{gap:6px;padding:8px}.admin-tab-group{border-bottom:1px solid var(--color-border-subtle);gap:4px;padding-bottom:6px}.admin-tab-group:last-child{border-bottom:0;padding-bottom:0}.admin-tab-group-title{font-size:11px;line-height:1.2}.admin-tab-group-items{gap:6px}.admin-tab{border-radius:8px;gap:5px;min-height:36px;padding:0 10px}.admin-tab-icon,.admin-tab-icon svg{width:16px;height:16px}.admin-tab-label{font-size:12px;line-height:1.2}}@media (width<=640px){.admin-view .admin-shell{padding:6px}.admin-stats-head{flex-direction:column;align-items:stretch;gap:12px}.admin-stats-head button{width:100%}.admin-overview-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.admin-stat-card{min-height:88px;padding:12px}}@media (width<=1100px){.admin-storage-cards,.admin-storage-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-storage-orphan-grid{grid-template-columns:1fr}}@media (width<=640px){.admin-storage-cards,.admin-storage-actions{grid-template-columns:1fr}.admin-storage-action button{width:100%}.admin-storage-days-field input{width:64px}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){#projectView.view.active{display:block}.project-layout{grid-template-columns:1fr;align-items:stretch}.project-layout.project-desktop .project-list-panel{max-height:none;position:static;overflow:visible}.project-list-panel,.project-detail-drawer{align-self:auto;overflow:visible}.project-list-filters{grid-template-columns:1fr}.project-list-scroll{flex:none;overflow:visible}#projectView .project-list-panel>#projectActivePanel,#projectView .project-list-panel>#projectRecyclePanel{flex:none}#projectView .project-recycle-grid{flex:none;overflow:visible}#projectView .project-card:not(.project-recycle-card){grid-template-columns:48px minmax(0,1fr) 18px}#projectView .project-card-thumb-wrap,#projectView .project-card-thumb{width:48px;height:48px}#projectView .project-card.project-recycle-card{grid-template-columns:20px 48px minmax(0,1fr);grid-template-areas:"check thumb body""actions actions actions";align-items:start}#projectView .project-card.project-recycle-card .project-recycle-check{grid-area:check;min-height:48px}#projectView .project-card.project-recycle-card .project-card-thumb-wrap{grid-area:thumb}#projectView .project-card.project-recycle-card .project-recycle-body{grid-area:body}#projectView .project-card.project-recycle-card .project-recycle-actions{flex-direction:row;grid-area:actions;justify-content:stretch;width:100%;padding-top:0}#projectView .project-card.project-recycle-card .project-recycle-actions button{flex:1;min-width:0}.project-recycle-batch{flex-direction:column;align-items:stretch;padding:0 2px}.project-recycle-batch-left{justify-content:flex-start;width:100%;margin:0}.project-recycle-batch-actions{width:100%}.project-recycle-batch-actions button{flex:1;min-width:0;min-height:32px}.project-recycle-batch-all{width:auto;margin:0}.project-detail-content{overflow:visible}.project-layout:not(.project-mobile-detail) .project-detail-drawer,.project-layout.project-mobile-detail .project-list-panel{display:none}.project-layout.project-mobile-detail .project-detail-drawer{padding:12px;display:block}.project-layout.project-mobile-detail .project-detail-content{padding-right:0}.project-layout.project-mobile-detail .project-detail-topbar{border:1px solid var(--color-border-soft);background:var(--color-bg-subtle);border-radius:12px;gap:10px;margin-bottom:14px;padding:12px}.project-layout.project-mobile-detail .project-detail-back{text-align:center;justify-content:center;align-items:center;width:100%;min-height:42px;padding:0 14px;line-height:1.25;display:inline-flex}.project-layout.project-mobile-detail .project-detail-title-row{flex-direction:column;align-items:stretch;gap:10px}.project-layout.project-mobile-detail .project-detail-name-input{width:100%;min-height:42px}.project-layout.project-mobile-detail .project-detail-inline-actions{grid-template-columns:1fr 1fr;gap:8px;width:100%;display:grid}.project-layout.project-mobile-detail .project-detail-inline-actions button{width:100%;min-height:42px}.project-layout.project-mobile-detail .project-detail-primary-actions,.project-layout.project-mobile-detail .project-detail-secondary-actions{width:100%}.project-layout.project-mobile-detail .project-detail-primary-btn,.project-layout.project-mobile-detail .project-detail-edit-btn,.project-layout.project-mobile-detail .project-detail-secondary-actions button{text-align:center;justify-content:center;align-items:center;width:100%;min-height:42px;line-height:1.25;display:inline-flex}.project-detail-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-secondary-actions{grid-template-columns:repeat(3,minmax(0,1fr))}#projectView .project-detail-grid,.project-detail-actions{grid-template-columns:1fr}.project-detail-actions-bar{justify-content:stretch;width:100%}.project-detail-actions-bar input{max-width:none}.onboarding-banner{flex-direction:column;align-items:stretch}}@media (width>=901px) and (width<=1200px){.workspace-layout{grid-template-columns:minmax(280px,35%) minmax(0,65%)}.workspace-generate-panel .settings-size{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-generate-panel .settings-size>label:first-child{grid-column:1/-1}.workspace-generate-panel .settings-palette{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1201px){.workspace-layout{grid-template-columns:minmax(320px,34%) minmax(0,66%)}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.app-shell.editor-focus{height:var(--app-vh,100svh);max-height:var(--app-vh,100svh);min-height:var(--app-vh,100svh)}html:has(.app-shell.editor-focus:not(.hidden)){height:var(--app-vh,100svh);max-height:var(--app-vh,100svh);overflow:hidden}html:has(.app-shell.editor-focus:not(.hidden)) body{height:var(--app-vh,100svh);max-height:var(--app-vh,100svh);overflow:hidden}html:has(.app-shell.editor-focus:not(.hidden)) #app{height:var(--app-vh,100svh);max-height:var(--app-vh,100svh);overflow:hidden}:is(.app-shell.editor-focus .assembly-view:not(.hidden):not(:fullscreen):not(.is-fullscreen),.app-shell.editor-focus .editor-view:not(.hidden):not(:fullscreen):not(.is-fullscreen)){top:var(--app-vt,0px);left:var(--app-vl,0px);z-index:900;width:var(--app-vw,100%);height:var(--app-vh,100svh);max-height:var(--app-vh,100svh);min-height:0;margin:0;padding:0;position:fixed;bottom:auto;right:auto;overflow:hidden}.app-shell.editor-focus .assembly-view:is(:fullscreen,.is-fullscreen):not(.hidden),.app-shell.editor-focus .editor-view:is(:fullscreen,.is-fullscreen):not(.hidden){margin:0;padding:0;overflow:hidden;width:100%!important;height:100%!important;max-height:none!important;position:fixed!important;inset:0!important}.app-shell.editor-focus .assembly-view:not(.hidden) .assembly-workspace,.app-shell.editor-focus .editor-view:not(.hidden) .editor-workspace{height:100%;min-height:0}.app-shell.editor-focus .content{flex:0;height:0;overflow:hidden;padding:0!important}}@media (width<=1100px){.assembly-dock-row{gap:6px}.assembly-mode-btn,.assembly-dock-action{min-height:40px}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){.assembly-view.is-mobile-layout .assembly-back-btn,.assembly-view.is-mobile-layout .assembly-fullscreen-btn{min-height:44px;padding:0 12px}.assembly-view.is-mobile-layout .assembly-topbar-center{gap:1px}.assembly-view.is-mobile-layout .assembly-top-title{font-size:13px}.assembly-view.is-mobile-layout:not(.is-phone-dock) .assembly-sync-status{padding:4px 6px;font-size:10px}.assembly-view.is-mobile-layout:not(.is-phone-dock):not(.mobile-simulated-landscape) .assembly-dock-row-primary .assembly-dock-actions{margin-left:auto}.assembly-view.is-phone-dock .assembly-mode-btn,.assembly-view.is-phone-dock .assembly-dock-action{min-height:44px;padding:0 12px;font-size:13px}.assembly-view.is-phone-dock .assembly-nudge-btn{width:40px;min-width:40px;height:28px;min-height:28px;font-size:12px}.assembly-view.is-mobile-layout .assembly-lock-input{width:80px;min-width:80px;max-width:80px;height:36px;min-height:36px;font-size:15px}.assembly-view.is-phone-dock .assembly-dock-mark-inline{flex-basis:100%;order:3}.assembly-view.is-phone-dock .assembly-mark-undo-btn,.assembly-view.is-phone-dock .assembly-mark-redo-btn{min-height:36px}.assembly-view.is-mobile-layout .assembly-region-bar{bottom:calc(var(--assembly-dock-h,88px) + 8px);gap:8px;padding:8px 10px}.assembly-view.is-mobile-layout .assembly-region-btn{min-height:40px;padding:0 14px;font-size:13px}.assembly-view.is-phone-dock .assembly-legend-drawer.is-open{max-height:min(32vh,240px)}.assembly-landscape-btn.is-active,.assembly-view .mobile-landscape-btn.is-active{color:#93c5fd;border-color:var(--color-primary);background:#2563eb40}.assembly-view.is-mobile-layout .assembly-landscape-btn,.assembly-view.is-mobile-layout .mobile-landscape-btn:not(.hidden){display:inline-flex}}@media (width<=640px){.assembly-view.is-mobile-layout:not(.is-phone-dock):not(.landscape-mode-on):not(.is-landscape-layout) .assembly-topbar{padding-top:calc(6px + env(safe-area-inset-top,0px));flex-wrap:wrap;gap:6px}.assembly-view.is-mobile-layout:not(.is-phone-dock):not(.landscape-mode-on):not(.is-landscape-layout) .assembly-topbar-actions{justify-content:space-between;width:100%}.assembly-dock-lock-row{scrollbar-width:thin;justify-content:flex-start;overflow-x:auto}.assembly-swipe-lock-label{min-height:44px;font-size:13px}.assembly-lock-inline{min-width:max-content}.assembly-dock-modes{flex:1;min-width:0}.assembly-dock-modes .assembly-mode-btn{flex:1;min-width:0;padding:0 8px;font-size:12px}.assembly-view.is-phone-dock .assembly-legend-drawer.is-open:not(.is-legend-panel) .assembly-legend-list{grid-template-columns:1fr}.project-detail-primary-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.project-detail-secondary-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.project-detail-secondary-actions button{padding:8px 4px;font-size:12px}}@media (width<=900px){#settingsSharesPanel .panel-head.my-shares-head{flex-direction:column;align-items:stretch}#settingsSharesPanel .admin-status-summary{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}}@media (width<=900px),(height<=520px) and (width<=1100px) and ((hover:none) or (pointer:coarse)){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea,#paletteView .palette-select,#paletteView .palette-search-input,.workspace-library-filters input,.workspace-library-filter-toolbar select,.project-search,.project-sort-label select,.auth-card input,.auth-card select,.admin-filter-keyword,.admin-filter-select,.admin-table-select,.settings-compact-form input,.settings-compact-form select,.share-password-form input,.export-form input,.export-form select,.editor-palette-search,.assembly-lock-input{font-size:16px}#paletteView .palette-search-input::placeholder{font-size:10px}.check-label{min-height:44px;padding:4px 0}.check-label input[type=checkbox],.check-label input[type=radio],input[type=checkbox],input[type=radio]{width:20px;min-width:20px;height:20px;min-height:20px}.admin-bulk-check,.admin-row-check{min-height:44px;padding:4px 2px}.admin-bulk-check input[type=checkbox],.admin-row-check input[type=checkbox]{flex-basis:20px;width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px}.admin-row-check-disabled{width:20px;height:20px}table.admin-table:not(.admin-table-projects){min-width:640px}:is(.admin-table-projects-wrap,.admin-table-scroll:has(.admin-table-projects)){overflow:visible}table.admin-table.admin-table-projects{width:100%;min-width:0}.admin-table-projects colgroup,.admin-table-projects thead{display:none}.admin-table-projects tbody{flex-direction:column;gap:8px;display:flex}.admin-table-projects tr.admin-project-row{border:1px solid var(--color-border-soft);background:var(--color-bg-surface);border-radius:10px;grid-template-columns:28px 40px minmax(0,1fr);grid-template-areas:"check thumb main""actions actions actions";align-items:center;gap:8px 10px;padding:10px;display:grid}.admin-table-projects tr.admin-project-inline-detail-row{background:0 0;border:0;padding:0;display:block}.admin-table-projects tr.admin-project-row>td{background:0 0;border:0;padding:0}.admin-table-projects tr.admin-project-row>td.check{grid-area:check;justify-self:center}.admin-table-projects tr.admin-project-row>td.thumb{grid-area:thumb}.admin-table-projects tr.admin-project-row>td.main{grid-area:main;min-width:0}.admin-table-projects tr.admin-project-row>td.user,.admin-table-projects tr.admin-project-row>td.size,.admin-table-projects tr.admin-project-row>td.date{display:none}.admin-table-projects tr.admin-project-row>td.actions{grid-area:actions;width:100%}.admin-table-projects .admin-project-mobile-meta{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;line-height:1.35;display:block;overflow:hidden}.admin-table-projects .admin-table-actions{width:100%}.admin-table-projects .admin-table-thumb .admin-visual-thumb,.admin-table-projects .admin-table-thumb .media-frame.admin-visual-thumb{width:40px;height:40px}.admin-table th,.admin-table td{padding:10px 8px;font-size:13px}.admin-pager button,.admin-bulk-delete-btn{min-height:40px;padding:0 12px}.preview-actions button{min-height:44px;font-size:13px}.preview-options .check-label{min-height:40px;font-size:13px}#paletteView .palette-tab,#paletteView .palette-select,#paletteView .palette-search-input,#paletteView .palette-bar-action,#paletteView .palette-mine-bar-actions button{min-height:44px}#paletteView .palette-filter-drawer>summary{min-height:40px}.mobile-step-tab{min-height:44px;font-size:14px}.workspace-upload-panel .compact-toolbar button,.workspace-library-actions button,.file-actions button{min-height:44px}.share-modal-card{width:min(100vw - 16px,520px);max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:14px;padding:16px}.export-modal-card{width:min(100vw - 16px,640px);max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:14px;padding:16px}.confirm-modal-card{width:min(100vw - 24px,420px);padding:20px 16px}.settings-security-modal{padding:12px}.settings-security-modal-card{width:min(100vw - 24px,440px);max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));border-radius:14px;padding:20px 16px}.settings-security-modal-head{margin-bottom:14px}.confirm-modal-actions{flex-wrap:wrap}.confirm-modal-actions button{flex:calc(50% - 5px);min-height:44px}.assembly-nudge-btn{border-radius:6px;width:36px;min-width:36px;height:26px;min-height:26px;font-size:12px}.topbar{gap:8px;margin-bottom:8px}.topbar-notices-btn{min-height:32px;padding:5px 10px;font-size:13px}.topbar h2{font-size:clamp(18px,5vw,20px)}html.is-mobile-layout .app-shell:not(.mobile-palette-layout):not(.editor-focus) .content{padding-left:max(10px, env(safe-area-inset-left,0px));padding-right:max(10px, env(safe-area-inset-right,0px))}}@media (width<=900px){.auth-screen{grid-template-columns:1fr;align-items:stretch;gap:20px;width:min(680px,100% - 32px);min-height:auto;margin:20px auto;padding:0}.auth-brand{min-height:220px;padding:24px}.auth-brand h1{font-size:clamp(26px,7vw,34px)}.auth-brand:after{width:min(240px,70%);height:120px;margin-top:20px}.register-form-grid{grid-template-columns:1fr}}@media (width<=640px){.settings-info-grid,.settings-stats-grid,.settings-limits-grid,.settings-info-grid-compact,.settings-stats-grid-compact,.settings-limits-grid-compact,.admin-overview-bar{grid-template-columns:1fr}.share-page-cta{flex-direction:column;align-items:stretch;padding:16px}.share-page-cta-button{justify-content:center;width:100%;min-height:44px}.share-page-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.share-zoom-btn,.share-download-button,.palette-family-chip,.palette-family-chips.compact .palette-family-chip{min-height:40px}.blank-project-size-grid{grid-template-columns:1fr}.mobile-bottom-nav.has-admin .mobile-bottom-label{font-size:9px}.mobile-bottom-item{min-height:48px;padding:2px 1px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=900px){.admin-list-toolbar{flex-direction:column;align-items:stretch;gap:10px}.admin-list-toolbar .admin-filter-bar{flex:auto;grid-template-columns:1fr;width:100%}.admin-bulk-bar{flex-wrap:wrap;justify-content:flex-start;width:100%}.admin-panel .panel-head,.admin-panel .panel-head-actions{flex-wrap:wrap;gap:8px}.admin-panel .panel-head-actions{width:100%}.admin-panel .inline-form,.admin-panel form,.admin-form-grid{grid-template-columns:1fr;gap:10px;display:grid}.admin-panel .inline-form>label,.admin-panel form>label,.admin-form-grid>label{width:100%;min-width:0}.admin-form-actions,.admin-form-actions button{width:100%}.admin-table-wrap,.admin-list{-webkit-overflow-scrolling:touch;overflow-x:auto}.editor-toolbar-groups{gap:6px}.editor-view:is(.is-landscape-layout,.mobile-simulated-landscape) .editor-toolbar button{min-height:40px;padding:0 10px}.community-feed{grid-template-columns:1fr;gap:12px}:is(.community-panel:has(>.community-feed)>.community-load-more,.community-panel:has(>.community-feed)>.empty-state){max-width:none}.community-feed .community-card-media.is-multi img{height:120px;max-height:120px}.community-feed .community-card-body{gap:8px;padding:12px}.community-feed .community-card-actions .secondary{flex:auto;min-height:40px}}@media (width>=901px){.community-detail-hero{grid-template-columns:minmax(180px,280px) 1fr;align-items:start}}@media (width<=900px){.community-profile-toolbar{flex-direction:column;align-items:stretch}.community-profile-filters{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:8px;overflow-x:auto}.community-profile-filters::-webkit-scrollbar{height:0;display:none}.community-profile-sort{width:100%}.community-profile-sort .community-sort-btn{flex:1}.community-toolbar{flex-direction:column;align-items:stretch;gap:8px;padding:8px}.community-tabs{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 78%,#0000 100%);mask-image:linear-gradient(90deg,#000 78%,#0000 100%)}.community-tabs::-webkit-scrollbar{height:0;display:none}.community-toolbar-actions{justify-content:stretch;width:100%}.community-toolbar-actions .secondary,.community-toolbar-actions .project-detail-primary-btn{flex:auto}.community-plaza-filters{padding:8px}.community-plaza-search-row{gap:6px}.community-plaza-search-row input{min-width:0}.community-plaza-search-row .secondary{width:auto;min-width:64px;padding:0 12px}.community-plaza-top-row{gap:6px}.community-plaza-sort{margin-left:0}#communityView .community-plaza-filters .community-chip{min-height:32px}.community-detail-actions .project-detail-primary-btn{flex:100%}.community-back-bar{margin-bottom:8px}.community-topics-layout{max-width:none}.community-topics{grid-template-columns:1fr}.community-topic-card{grid-template-columns:72px 1fr}.community-topic-cover{width:72px;min-height:72px}.community-topic-cover-fallback{min-height:72px;font-size:22px}.community-rank-row{grid-template-columns:28px 44px 1fr;gap:10px;padding:10px 12px}.community-rank-cover{border-radius:8px;width:44px;height:44px}.community-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.community-subtabs,.community-notice-list,.community-profile-head{max-width:none}#communityView .community-tab,#communityView .community-subtab,#communityView .community-card-actions .secondary,#communityView .community-inline-follow,#communityView .community-load-more,#communityView .community-notice,#communityView .community-toolbar-actions button,#communityView .community-plaza-filters .secondary,#communityView .community-detail-actions button,#communityView .community-back-btn,#communityView .community-follow-card .secondary{min-height:44px}.mobile-bottom-nav{gap:0}.mobile-bottom-item{min-width:0;padding:6px 2px}.mobile-bottom-label{font-size:11px}}@media (width>=641px) and (width<=1100px){.community-toolbar{flex-wrap:nowrap}.community-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#communityView .community-tab,#communityView .community-subtab,#communityView .community-card-actions .secondary,#communityView .community-inline-follow,#communityView .community-load-more,#communityView .community-toolbar-actions button,#communityView .community-detail-actions button,#communityView .community-back-btn{min-height:44px}}@media (width>=901px) and (width<=1100px){.community-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (pointer:coarse){button:not(.linkish):not(.link-like):not(.topbar-notices-btn),.community-tab,.community-subtab,.community-inline-follow,.community-load-more,.nav-item,.mobile-bottom-item,.settings-subtab,.settings-action-toggle{min-height:44px}.topbar-notices-btn{min-height:32px;padding:4px 10px}.admin-tab{min-height:36px}.editor-key-hint,.editor-tool-button .tool-shortcut{display:none!important}}.editor-view.is-mobile-layout .editor-key-hint,.editor-view.is-mobile-layout .editor-tool-button .tool-shortcut,.editor-view.is-tablet-layout .editor-key-hint,.editor-view.is-tablet-layout .editor-tool-button .tool-shortcut,.app-shell.tablet-layout .editor-key-hint,.app-shell.tablet-layout .editor-tool-button .tool-shortcut{display:none!important}@media (width<=900px){#settingsInventoryPanel .inventory-kpi{padding:10px 10px 8px}#settingsInventoryPanel .inventory-kpi-value{font-size:22px}.inventory-workspace{grid-template-columns:1fr}.inventory-row{grid-template-columns:28px minmax(0,1fr)}.inventory-stepper,.inventory-row .danger-btn{grid-column:2;justify-self:start}}@media (width<=900px) and (width>=641px){.tips-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tips-top{padding-top:16px}.tips-main h1{font-size:28px}}@media (width<=640px){.tips-card-grid{grid-template-columns:1fr}.tips-top{padding-top:16px}.tips-main h1{font-size:28px}.share-page-promo{white-space:normal;text-align:left}}.app-shell.tablet-layout:not(.editor-focus){flex-direction:unset;grid-template-columns:200px minmax(0,1fr);min-height:100vh;display:grid!important}.app-shell.tablet-layout:not(.editor-focus) .sidebar{gap:14px;padding:16px;display:flex!important}.app-shell.tablet-layout:not(.editor-focus) .sidebar-brand,.app-shell.tablet-layout:not(.editor-focus) .sidebar-logout{display:grid!important}.app-shell.tablet-layout:not(.editor-focus) .sidebar-brand span{font-size:12px}.app-shell.tablet-layout:not(.editor-focus) .mobile-bottom-nav,.app-shell.tablet-layout:not(.editor-focus) .mobile-my-sheet{display:none!important}.app-shell.tablet-layout:not(.editor-focus) .content{order:unset;padding:12px 14px}.app-shell.tablet-layout:not(.editor-focus) .topbar{margin-bottom:10px;display:flex}@media (width<=900px){.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-toolbar .editor-key-hint{display:none}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .toolbar-group-status .status-chip-coord{display:inline-flex!important}.editor-view:not(.is-landscape-layout):not(.mobile-simulated-landscape) .editor-tools{max-height:none}.assembly-view.is-phone-dock .assembly-dock-mark-inline,.assembly-view.is-phone-dock .assembly-lock-inline{gap:6px;padding:6px 0 2px}.assembly-view.is-phone-dock .assembly-progress-text{font-size:12px;font-weight:600}.assembly-view.is-phone-dock .assembly-dock:not(.is-more-open) .assembly-dock-more-group{display:none}.community-toolbar{flex-direction:column;align-items:stretch;gap:8px;display:flex}.community-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.community-tabs::-webkit-scrollbar{display:none}.community-tab{white-space:nowrap;flex:none;min-height:36px;padding:0 12px;font-size:13px}.community-toolbar-actions{flex-wrap:wrap;gap:6px;display:flex}.community-toolbar-actions>button{flex:auto;min-height:40px}.workspace-intro-bar{flex-direction:column;align-items:stretch;gap:8px}.workspace-intro-bar .workspace-flow-status-inline{flex:0 auto;width:100%}.workspace-intro-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.workspace-intro-actions>button{min-height:40px;padding:0 6px;font-size:12px}.workspace-flow-chips{flex-wrap:nowrap;overflow-x:auto}}.ai-assistant-fab{right:20px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:var(--z-fab,900);background:var(--color-primary);color:#fff;letter-spacing:.5px;width:56px;height:56px;box-shadow:var(--shadow-3);cursor:pointer;border:none;border-radius:999px;font-size:15px;font-weight:600;position:fixed}.ai-assistant-fab:hover{background:var(--color-primary-hover)}.ai-assistant-panel{z-index:var(--z-modal,1000);background:var(--color-bg-surface);border-left:1px solid var(--color-border);flex-direction:column;width:min(420px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #0f172a1f}.ai-assistant-panel.hidden{display:none}.ai-assistant-head{border-bottom:1px solid var(--color-border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.ai-assistant-head-main{flex-direction:column;gap:2px;min-width:0;display:flex}.ai-assistant-title{color:var(--color-text-primary);font-size:15px;font-weight:650}.ai-assistant-status{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-muted);font-size:12px;overflow:hidden}.ai-assistant-head-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.ai-assistant-icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.ai-assistant-icon-btn:hover{background:var(--color-bg-muted);color:var(--color-text-primary)}.ai-assistant-icon-btn[aria-pressed=true]{background:var(--color-primary-soft);color:var(--color-primary)}.ai-assistant-consent{border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-muted);color:var(--color-text-secondary);flex-direction:column;gap:10px;padding:14px;font-size:13px;line-height:1.6;display:flex}.ai-assistant-consent.hidden{display:none}.ai-assistant-consent button{border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;cursor:pointer;border:none;align-self:flex-start;min-height:36px;padding:0 14px;font-size:13px}.ai-history{border-bottom:1px solid var(--color-border-subtle);background:var(--color-bg-surface);flex-shrink:0;max-height:42%;overflow-y:auto}.ai-history.hidden{display:none}.ai-history ul{flex-direction:column;gap:4px;margin:0;padding:8px;list-style:none;display:flex}.ai-history-group{letter-spacing:.02em;color:var(--color-text-muted);margin:6px 4px 2px;padding:0 4px;font-size:11px;font-weight:600;list-style:none}.ai-history-group:first-child{margin-top:0}.ai-history-item{border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid #0000;align-items:center;gap:4px;display:flex}.ai-history-item:hover{border-color:var(--color-border)}.ai-history-item.is-current{border-color:var(--color-primary);background:var(--color-primary-soft)}.ai-history-main{cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px;display:flex}.ai-history-title{text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--color-text-primary);font-size:13px;overflow:hidden}.ai-history-time{color:var(--color-text-muted);font-size:11px}.ai-history-del{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-size:16px;line-height:1}.ai-history-del:hover{color:var(--color-danger)}.ai-history-empty{text-align:center;color:var(--color-text-muted);padding:14px 10px;font-size:12px;list-style:none}.ai-assistant-body{background:var(--color-bg-subtle);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.ai-empty{flex-direction:column;flex:1;justify-content:center;align-items:stretch;gap:10px;padding:28px 18px 20px;display:flex}.ai-empty.hidden{display:none}.ai-empty-title{color:var(--color-text-primary);text-align:center;margin:0;font-size:17px;font-weight:650}.ai-empty-desc{color:var(--color-text-muted);text-align:center;margin:0;font-size:13px;line-height:1.5}.ai-chips{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.ai-chip{border:1px solid var(--color-border);background:var(--color-bg-surface);max-width:100%;color:var(--color-text-secondary);text-align:left;cursor:pointer;box-shadow:var(--shadow-1);border-radius:999px;padding:8px 12px;font-size:12.5px;line-height:1.35}.ai-chip:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-soft)}.ai-assistant-messages{scroll-behavior:smooth;flex-direction:column;flex:1;gap:34px;padding:14px 14px 18px;display:flex;overflow-y:auto}.ai-assistant-messages:empty{display:none}.ai-scroll-down{z-index:2;border:1px solid var(--color-border);background:var(--color-bg-surface);width:36px;height:36px;color:var(--color-text-secondary);box-shadow:var(--shadow-2);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;bottom:12px;right:16px}.ai-scroll-down.hidden{display:none}.ai-scroll-down:hover{color:var(--color-primary);border-color:var(--color-primary)}.ai-msg{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:92%;padding:10px 12px;font-size:14px;line-height:1.6;position:relative}.ai-msg:has(>.ai-msg-actions):after{content:"";height:32px;position:absolute;top:100%;left:0;right:0}.ai-msg.user{background:var(--color-primary);color:#fff;border-bottom-right-radius:5px;align-self:flex-end}.ai-msg.assistant{background:var(--color-bg-surface);border:1px solid var(--color-border-subtle);width:100%;max-width:100%;color:var(--color-text-primary);box-shadow:var(--shadow-1);border-bottom-left-radius:5px;align-self:flex-start}.ai-msg.assistant.streaming>.ai-answer:after{content:"▍";color:var(--color-primary)}.ai-msg-actions{z-index:3;opacity:0;visibility:hidden;pointer-events:none;background:0 0;border:none;align-items:center;gap:0;margin:0;padding:0;transition:opacity .1s .1s,visibility .1s .1s;display:flex;position:absolute;top:calc(100% + 4px);left:2px}.ai-msg.user .ai-msg-actions{left:auto;right:2px}.ai-msg:hover .ai-msg-actions,.ai-msg:focus-within .ai-msg-actions,.ai-msg-actions:hover,.ai-msg-actions:focus-within{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}@media (hover:none){.ai-msg-actions{opacity:1;visibility:visible;pointer-events:auto;transition:none}}.ai-msg-action{width:28px;height:28px;min-height:28px;color:var(--color-text-muted);box-shadow:none;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:inline-flex}.ai-msg-action:hover{background:var(--color-bg-muted);color:var(--color-text-primary)}.ai-msg-action svg{opacity:.85;display:block}.ai-msg.assistant .ai-answer{white-space:normal}.ai-thinking{color:var(--color-text-muted);font-size:13px}.ai-thinking:after{content:"";background:var(--color-primary);border-radius:50%;width:6px;height:6px;margin-left:6px;animation:1.2s ease-in-out infinite ai-thinking-pulse;display:inline-block}@keyframes ai-thinking-pulse{0%,to{opacity:.25}50%{opacity:1}}.ai-answer .ai-plaintext{white-space:pre-wrap;margin:0}.ai-msg.error{color:var(--color-danger);background:#b91c1c14;align-self:center;font-size:13px}.ai-phantom-gen-tip{color:#8a5a00;background:#b478141f;border-radius:8px;margin:8px 0 0;padding:8px 10px;font-size:13px;line-height:1.4}.ai-answer p{margin:2px 0}.ai-answer p:first-child{margin-top:0}.ai-answer p:last-child{margin-bottom:0}.ai-answer h1,.ai-answer h2,.ai-answer h3,.ai-answer h4,.ai-answer h5,.ai-answer h6{color:var(--color-text-primary);margin:6px 0 3px;line-height:1.4}.ai-answer h1{font-size:17px;font-weight:700}.ai-answer h2{font-size:16px;font-weight:700}.ai-answer h3{font-size:15px;font-weight:700}.ai-answer h4,.ai-answer h5{font-size:14px;font-weight:700}.ai-answer h6{font-size:13px;font-weight:700}.ai-answer ul,.ai-answer ol{margin:2px 0;padding-left:20px}.ai-answer ul li,.ai-answer ol li{margin:1px 0}.ai-answer li>p,.ai-answer blockquote>p{margin-top:0;margin-bottom:0}.ai-answer table{border-collapse:collapse;width:100%;margin:4px 0;font-size:13px}.ai-answer table th,.ai-answer table td{border:1px solid var(--color-border-subtle);text-align:left;vertical-align:top;padding:4px 8px}.ai-answer table th{background:var(--color-bg-subtle);font-weight:600}.ai-answer pre{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-subtle);white-space:pre;margin:4px 0;padding:8px 10px;font-size:12.5px;overflow-x:auto}.ai-answer code{background:var(--color-bg-subtle);border-radius:4px;padding:1px 5px;font-size:12.5px}.ai-answer pre code{background:0 0;padding:0}.ai-answer blockquote{border-left:3px solid var(--color-border);color:var(--color-text-secondary);margin:4px 0;padding:2px 0 2px 10px}.ai-answer hr{border:none;border-top:1px solid var(--color-border-subtle);margin:6px 0}.ai-answer a{color:var(--color-link);word-break:break-all}.ai-msg.meta{color:var(--color-text-muted);background:0 0;align-self:center;padding:0;font-size:12px}.ai-assistant-input{padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border-subtle);background:var(--color-bg-surface);flex-shrink:0}.ai-composer{border:1px solid var(--color-border-input);background:var(--color-bg-subtle);border-radius:18px;align-items:center;gap:8px;min-height:52px;padding:8px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.ai-composer:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);background:var(--color-bg-surface)}.ai-composer textarea{min-width:0;min-height:36px;max-height:132px;color:var(--color-text-primary);font:inherit;resize:none;background:0 0;border:none;border-radius:0;flex:1;margin:0;padding:8px 2px;font-size:14px;line-height:1.5;overflow-y:auto}.ai-composer textarea:focus{box-shadow:none;outline:none}.ai-composer-actions{flex-shrink:0;justify-content:center;align-self:center;align-items:center;gap:6px;height:32px;padding:0;display:flex}.ai-composer-send,.ai-composer-stop{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;min-height:32px;margin:0;padding:0;line-height:0;display:inline-flex}.ai-composer-send{background:var(--color-primary);color:#fff}.ai-composer-send:hover:not(:disabled){background:var(--color-primary-hover)}.ai-composer-send:disabled{opacity:.38;cursor:not-allowed}.ai-composer-stop{background:var(--color-text-primary);color:#fff;border-radius:8px}.ai-composer-stop:hover{background:var(--color-text-secondary);color:#fff}.ai-composer-send svg,.ai-composer-stop svg{flex-shrink:0;display:block}.ai-composer-stop.hidden,.ai-composer-send.hidden{display:none!important}@media (width<=900px){.ai-assistant-fab{right:16px;bottom:calc(72px + env(safe-area-inset-bottom,0px))}.ai-assistant-panel{border-left:none;border-top:1px solid var(--color-border);border-radius:16px 16px 0 0;width:100vw;height:min(86vh,86dvh,100%);top:auto;left:0;box-shadow:0 -18px 40px #0f172a2e}.ai-empty{padding-top:20px}}.ai-calibrate-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-subtle);margin-top:10px;padding:10px 12px;font-size:13px}.ai-calibrate-head{align-items:center;gap:8px;display:flex}.ai-calibrate-title{color:var(--color-text-primary);font-size:12px;font-weight:600}.ai-calibrate-meta{color:var(--color-text-muted);flex:1;font-size:12px}.ai-calibrate-close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.ai-calibrate-close:hover{color:var(--color-text-primary)}.ai-calibrate-subject{color:var(--color-text-primary);margin:6px 0 0}.ai-calibrate-changes,.ai-calibrate-palette{color:var(--color-text-secondary);margin:6px 0 0;font-size:12px}.ai-calibrate-palette-notes{color:var(--color-warning);flex-direction:column;gap:3px;margin:4px 0 0;padding-left:18px;font-size:12px;display:flex}.ai-calibrate-reason{color:var(--color-text-muted);margin:4px 0 0;font-size:12px}.ai-calibrate-tips{color:var(--color-text-secondary);flex-direction:column;gap:3px;margin:6px 0 0;padding-left:18px;display:flex}.ai-image-progress{background:var(--color-bg-subtle);border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.ai-image-progress-bar{background:var(--color-primary);border-radius:3px;width:40%;height:100%;animation:1.2s ease-in-out infinite ai-image-progress-slide}@keyframes ai-image-progress-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}.ai-task-status{border-radius:var(--radius-md,8px);border:1px solid color-mix(in srgb, var(--color-border,#d0d5dd) 85%, transparent);background:color-mix(in srgb, var(--color-surface,#f8f9fb) 92%, var(--color-primary,#2563eb) 8%);color:var(--color-text-secondary,#667085);flex-direction:column;gap:8px;margin-top:8px;padding:8px 10px;font-size:12px;display:flex}.ai-task-status .ai-image-progress{margin:0}.ai-task-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.ai-task-status-text{flex:auto;min-width:0;line-height:1.4}.ai-task-status.is-failed{border-color:color-mix(in srgb, var(--color-danger,#b91c1c) 25%, transparent);color:var(--color-danger,#b91c1c);background:#b91c1c14}.ai-task-status.is-done{background:color-mix(in srgb, var(--color-surface,#f8f9fb) 88%, #16a34a 12%);border-color:color-mix(in srgb, #16a34a 22%, var(--color-border,#d0d5dd))}.ai-task-use{border:1px solid color-mix(in srgb, var(--color-primary,#2563eb) 55%, transparent);color:var(--color-primary,#2563eb);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex:none;margin:0;padding:5px 12px;font-size:12px;font-weight:500;line-height:1.2}.ai-task-use:hover{background:color-mix(in srgb, var(--color-primary,#2563eb) 10%, transparent)}.ai-task-use:active{background:color-mix(in srgb, var(--color-primary,#2563eb) 16%, transparent)}.ai-refs{color:var(--color-text-secondary);margin-top:8px;font-size:12px}.ai-refs summary{cursor:pointer;color:var(--color-link)}.ai-refs ul{flex-direction:column;gap:4px;margin:6px 0 0;padding-left:18px;display:flex}.ai-tool{border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-secondary);margin-top:6px;padding:6px 8px;font-size:12px}.admin-ai-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-surface);margin-top:12px;padding:12px}.admin-ai-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.admin-ai-card-head h4{color:var(--color-text-primary);margin:0;font-size:14px}.admin-ai-card-actions{align-items:center;gap:8px;min-width:0;display:flex}.admin-ai-card-actions .hint{color:var(--color-text-muted);white-space:nowrap;font-size:11px}.admin-ai-link-btn{white-space:nowrap;padding:3px 10px;font-size:12px}.admin-ai-badge{background:var(--color-bg-muted);color:var(--color-text-muted);border-radius:999px;padding:3px 10px;font-size:12px}.admin-ai-badge-on{color:var(--color-success);background:#15803d1f}.admin-ai-badge-off{color:var(--color-danger);background:#b91c1c1a}.admin-ai-providers{flex-direction:column;gap:8px;display:flex}.admin-ai-provider{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-subtle);grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:10px 12px;display:grid}.admin-ai-provider.is-off{opacity:.72}.admin-ai-provider-title{color:var(--color-text-primary);flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;display:flex}.admin-ai-provider-meta{color:var(--color-text-muted);word-break:break-all;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:3px;font-size:12px;display:-webkit-box;overflow:hidden}.admin-ai-provider-models{color:var(--color-text-secondary);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:3px;font-size:12px;display:-webkit-box;overflow:hidden}.admin-ai-provider-chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.admin-ai-chip{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;padding:1px 8px;font-size:11px}.admin-ai-chip-ok{color:var(--color-success);background:#15803d1f}.admin-ai-chip-err{color:var(--color-danger);background:#b91c1c1a}.admin-ai-chip-warn{color:#b45309;background:#f59e0b24}.admin-ai-chip-off{background:var(--color-bg-muted);color:var(--color-text-muted)}.admin-ai-provider-circuit{color:var(--color-danger);margin-top:4px;font-size:12px;line-height:1.35}.admin-ai-circuit-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.admin-ai-provider-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:6px;max-width:340px;display:flex}.admin-ai-provider-actions button{white-space:nowrap;min-width:56px;padding:5px 10px;font-size:12px}.admin-ai-probe-result{border-radius:var(--radius-sm);background:var(--color-bg-muted);grid-column:1/-1;padding:10px;font-size:12px}.admin-ai-probe-result.hidden{display:none}.admin-ai-probe-head{color:var(--color-text-primary);justify-content:space-between;gap:8px;margin-bottom:6px;font-weight:600;display:flex}.admin-ai-probe-head span{color:var(--color-text-muted);font-weight:400}.admin-ai-probe-list{flex-direction:column;gap:3px;margin:0;padding-left:18px;display:flex}.admin-ai-probe-list li.ok{color:var(--color-success)}.admin-ai-probe-list li.err{color:var(--color-danger)}.admin-ai-probe-list li.warn{color:#b45309}.admin-ai-form{border:1px dashed var(--color-border);border-radius:var(--radius-md);margin-top:12px;padding:12px}.admin-ai-providers>.admin-ai-form{margin-top:0}.admin-ai-form.hidden{display:none}.admin-ai-form-head{color:var(--color-text-primary);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:13px;display:flex}.admin-ai-preset{color:var(--color-text-label);align-items:center;gap:6px;font-size:12px;display:flex}.admin-ai-fields{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;display:grid}.admin-ai-fields label,.admin-ai-setting{color:var(--color-text-label);flex-direction:column;gap:3px;min-width:0;font-size:12px;display:flex}.admin-ai-fields input:not([type=checkbox]):not([type=radio]),.admin-ai-fields textarea,.admin-ai-setting input:not([type=checkbox]):not([type=radio]),.admin-ai-setting select,.admin-ai-setting textarea{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font:inherit;box-sizing:border-box;width:100%;padding:6px 8px}.admin-ai-setting input[type=checkbox]{flex:none;width:auto}.admin-ai-fields textarea[readonly]{background:var(--color-bg-muted);color:var(--color-text-muted)}.admin-ai-readonly{color:var(--color-text-primary);padding:7px 0;font-size:14px}.admin-ai-wide{grid-column:1/-1}.admin-ai-checks{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;font-size:13px;display:flex}.admin-ai-checks-title{color:var(--color-text-label);font-size:12px}.admin-ai-checks label{align-items:center;gap:5px;display:flex}.admin-ai-enabled{margin-left:auto}.admin-ai-advanced:not(.admin-ai-group-fold){margin-top:10px}.admin-ai-advanced:not(.admin-ai-group-fold)>summary{cursor:pointer;color:var(--color-link);font-size:12px}.admin-ai-advanced:not(.admin-ai-group-fold)>.admin-ai-settings,.admin-ai-advanced:not(.admin-ai-group-fold)>.admin-ai-fields{margin-top:8px}.admin-ai-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.admin-ai-settings-message{min-height:0;margin-top:8px;font-size:13px}.admin-ai-settings-message:empty{display:none}.admin-ai-group{margin-bottom:10px}.admin-ai-group-title{color:var(--color-text-primary);white-space:nowrap;font-size:13px;font-weight:600}.admin-ai-group-hint{color:var(--color-text-muted);white-space:nowrap;font-size:11px;font-weight:400}.admin-ai-group-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-muted);text-align:right;flex:1;font-size:11px;font-weight:400;overflow:hidden}.admin-ai-group-fold{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-subtle)}.admin-ai-group-fold>summary{cursor:pointer;color:var(--color-text-primary);align-items:baseline;gap:8px;padding:8px 10px;font-size:13px;list-style:none;display:flex}.admin-ai-group-fold>summary::-webkit-details-marker{display:none}.admin-ai-group-fold>summary:after{content:"▾";color:var(--color-text-muted);flex:none;font-size:11px;transition:transform .15s}.admin-ai-group-fold[open]>summary:after{transform:rotate(180deg)}.admin-ai-group-fold[open]>summary{border-bottom:1px solid var(--color-border-subtle);margin-bottom:8px}.admin-ai-group-body{padding:0 10px 10px}.admin-ai-settings{flex-direction:column;gap:8px;display:flex}.admin-ai-settings>.admin-ai-group,.admin-ai-settings>.admin-ai-advanced,.admin-ai-settings>.admin-ai-group-fold{grid-column:1/-1}.admin-ai-group-body{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;display:grid}.admin-ai-group-fold[data-group=prompt]>.admin-ai-group-body{grid-template-columns:1fr;gap:12px}.admin-ai-setting small{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.admin-ai-prompt-section{flex-direction:column;gap:8px;min-width:0;display:flex}.admin-ai-prompt-section-head{color:var(--color-text-primary);align-items:baseline;gap:8px;font-size:13px;font-weight:600;display:flex}.admin-ai-prompt-section-head small{color:var(--color-text-muted);font-size:11px;font-weight:400}.admin-ai-prompt-grid{flex-direction:column;gap:8px;display:flex}.admin-ai-prompt-grid.is-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;display:grid}.admin-ai-prompt-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-surface);flex-direction:column;gap:6px;min-width:0;padding:10px 12px;display:flex}.admin-ai-prompt-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-ai-prompt-name{color:var(--color-text-primary);font-size:13px;font-weight:600}.admin-ai-prompt-badge{color:var(--color-text-muted);background:var(--color-bg-muted);border-radius:999px;padding:3px 7px;font-size:11px;line-height:1}.admin-ai-prompt-badge.is-custom{color:#7a5c00;background:#fff4d6}.admin-ai-prompt-count{color:var(--color-text-muted);margin-left:auto;font-size:11px}.admin-ai-prompt-card textarea{box-sizing:border-box;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-bg-surface);width:100%;color:var(--color-text-primary);font:inherit;resize:vertical;min-height:60px;padding:8px 10px;font-size:12px;line-height:1.5}.admin-ai-prompt-card textarea:focus{border-color:var(--color-accent);outline:none}.admin-ai-prompt-foot{flex-direction:column;gap:6px;min-width:0;display:flex}.admin-ai-prompt-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.admin-ai-prompt-tip{color:var(--color-text-muted);font-size:11px}.admin-ai-prompt-actions{flex-wrap:wrap;gap:8px;display:flex}.admin-ai-prompt-actions button{border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;padding:4px 10px;font-size:12px}.admin-ai-prompt-actions button:hover{border-color:var(--color-accent);color:var(--color-accent)}.admin-ai-prompt-stale{border-radius:var(--radius-sm);color:#7a5c00;background:#fff4d6;padding:6px 8px;font-size:12px;line-height:1.5}.admin-ai-prompt-preview{font-size:12px}.admin-ai-prompt-preview summary{cursor:pointer;color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.admin-ai-prompt-preview pre{white-space:pre-wrap;word-break:break-word;max-height:220px;color:var(--color-text-secondary);background:var(--color-bg-muted);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);margin:6px 0 0;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.5;overflow:auto}.admin-ai-switch{color:var(--color-text-primary);flex-direction:row;align-items:center;gap:6px;font-size:13px;display:inline-flex}.admin-ai-switch input{flex:none;width:auto;margin:0}.admin-ai-result{border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-secondary);margin-top:10px;padding:10px;font-size:13px}.admin-ai-result.hidden{display:none}.admin-ai-result-head{color:var(--color-text-primary);margin-bottom:4px;font-weight:600}.admin-ai-result pre{white-space:pre-wrap;word-break:break-word;max-height:220px;font-size:12px;overflow:auto}.admin-ai-stat-row{flex-wrap:wrap;gap:8px;margin-bottom:8px;display:flex}.admin-ai-stat{border-radius:var(--radius-sm);background:var(--color-bg-muted);color:var(--color-text-secondary);padding:6px 10px;font-size:12px}.admin-ai-tabs{gap:8px;margin-bottom:8px;display:flex}.admin-ai-tabs button{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-secondary);cursor:pointer;padding:4px 16px;font-size:13px}.admin-ai-tabs button.active{border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.admin-ai-filter{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.admin-ai-filter label{align-items:center;gap:4px;display:flex}.admin-ai-filter input{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);font:inherit;max-width:100%;padding:4px 8px}.admin-ai-filter input[type=number]{width:90px}.admin-ai-filter button{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;padding:4px 12px;font-size:12px}.admin-ai-filter button:hover{border-color:var(--color-primary);color:var(--color-primary)}.admin-ai-table{width:100%}.admin-ai-cost{white-space:nowrap}.admin-ai-pager{color:var(--color-text-secondary);justify-content:center;align-items:center;gap:10px;margin-top:10px;font-size:12px;display:flex}.admin-ai-pager button{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-surface);color:var(--color-text-primary);cursor:pointer;padding:4px 12px}.admin-ai-pager button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.admin-ai-pager button:disabled{opacity:.5;cursor:not-allowed}#adminAiUsageResult{min-height:300px;position:relative}#adminAiUsageResult .admin-table-scroll{min-height:220px}#adminAiUsageResult.is-loading .admin-table{opacity:.55}.admin-ai-loading-float{z-index:2;border:1px solid var(--color-border-subtle);background:var(--color-bg-surface);color:var(--color-text-muted);pointer-events:none;border-radius:999px;padding:2px 10px;font-size:11px;position:absolute;top:0;right:0}.admin-ai-price-block{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-subtle);margin-top:10px;padding:10px}.admin-ai-price-head{color:var(--color-text-label);flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px;font-size:12px;display:flex}.admin-ai-price-head .hint{color:var(--color-text-muted);font-size:11px}.admin-ai-price-rows{flex-direction:column;gap:6px;display:flex}.admin-ai-price-row{flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.admin-ai-price-name{min-width:200px;color:var(--color-text-primary);align-items:center;gap:6px;font-size:12px;display:flex}.admin-ai-price-name em{background:var(--color-primary-soft);color:var(--color-primary);border-radius:999px;flex:none;padding:1px 7px;font-size:11px;font-style:normal}.admin-ai-price-name b{word-break:break-all;font-weight:600}.admin-ai-price-fields{flex-wrap:wrap;gap:6px 14px;display:flex}.admin-ai-price-fields label{color:var(--color-text-label);align-items:center;gap:5px;font-size:12px;display:flex}.admin-ai-price-fields input,.admin-ai-price-fields select{box-sizing:border-box;border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-bg-surface);height:32px;color:var(--color-text-primary);font:inherit;padding:0 8px}.admin-ai-price-fields input{width:84px}.admin-ai-price-unit{color:var(--color-text-muted);font-size:11px}.admin-ai-mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}.ai-tools{color:var(--color-text-muted);margin-top:6px;font-size:12px}.ai-tools summary{cursor:pointer}.ai-tools ul{flex-direction:column;gap:3px;margin:6px 0 0;padding-left:18px;display:flex}.admin-ai-steps-fold{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-subtle);margin:8px 0 4px}.admin-ai-steps-fold>summary{cursor:pointer;color:var(--color-text-primary);align-items:baseline;gap:8px;padding:8px 10px;font-size:12px;font-weight:600;list-style:none;display:flex}.admin-ai-steps-fold>summary::-webkit-details-marker{display:none}.admin-ai-steps-fold>summary:after{content:"▾";color:var(--color-text-muted);margin-left:auto;font-size:11px;font-weight:400;transition:transform .15s}.admin-ai-steps-fold[open]>summary:after{transform:rotate(180deg)}.admin-ai-steps-fold>summary span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text-muted);flex:1;font-weight:400;overflow:hidden}.admin-ai-steps{color:var(--color-text-secondary);flex-direction:column;gap:3px;margin:0;padding:0 12px 10px 30px;font-size:12px;line-height:1.55;display:flex}.admin-ai-steps code{background:var(--color-bg-muted);border-radius:4px;padding:1px 5px;font-size:11px}@media (width<=900px){.admin-ai-card{padding:10px}.admin-ai-card-head{flex-wrap:wrap}.admin-ai-card-actions{justify-content:space-between;width:100%}.admin-ai-card-actions .hint{white-space:normal}.admin-ai-provider{grid-template-columns:1fr}.admin-ai-provider-actions{justify-content:flex-start;max-width:none}.admin-ai-provider-meta,.admin-ai-provider-models{white-space:normal;display:block}.admin-ai-group-fold>summary{flex-wrap:wrap;gap:4px 8px}.admin-ai-group-summary{text-align:left;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-basis:100%;display:-webkit-box;overflow:hidden}.admin-ai-group-body,.admin-ai-fields{grid-template-columns:1fr}.admin-ai-steps-fold>summary span{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.admin-ai-filter{gap:6px}}.admin-ai-effective{color:var(--color-text-muted);font-size:11px}.admin-ai-effective.is-on{color:var(--color-success)}html[data-theme=dark]{--color-text-primary:#e2e8f0;--color-text-secondary:#cbd5e1;--color-text-muted:#94a3b8;--color-text-label:#cbd5e1;--color-bg-page:#0f172a;--color-bg-grid:#33415559;--color-bg-surface:#1e293b;--color-bg-subtle:#1e293b;--color-bg-muted:#334155;--color-border:#334155;--color-border-input:#475569;--color-border-strong:#475569;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-soft:#2563eb2e;--color-border-subtle:#334155;--color-border-soft:#334155;--color-text-soft:#cbd5e1;--color-link:#93c5fd;--color-link-hover:#bfdbfe;--shadow-card:0 1px 2px #00000059}html[data-theme=dark] body{color:var(--color-text-primary);background:linear-gradient(90deg, var(--color-bg-grid) 1px, transparent 1px), linear-gradient(var(--color-bg-grid) 1px, transparent 1px), var(--color-bg-page)}html[data-theme=dark] label{color:var(--color-text-label)}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{color:var(--color-text-primary);border-color:var(--color-border-input);background:var(--color-bg-surface)}html[data-theme=dark] button.secondary,html[data-theme=dark] button.tab,html[data-theme=dark] button.nav-item{color:var(--color-text-secondary)}html[data-theme=dark] button.secondary{border-color:var(--color-border-strong);background:var(--color-bg-surface)}html[data-theme=dark] button.secondary:hover{background:var(--color-bg-muted)}html[data-theme=dark] button.link-like,html[data-theme=dark] .link-like{color:var(--color-link)}html[data-theme=dark] button.link-like:hover,html[data-theme=dark] .link-like:hover{color:var(--color-link-hover)}html[data-theme=dark] .hint,html[data-theme=dark] .field-hint,html[data-theme=dark] .setting-field-hint,html[data-theme=dark] .settings-section-desc,html[data-theme=dark] .eyebrow{color:var(--color-text-muted)}html[data-theme=dark] .auth-card,html[data-theme=dark] .panel,html[data-theme=dark] .settings-subnav,html[data-theme=dark] .settings-info-grid>div,html[data-theme=dark] .settings-stats-grid>div,html[data-theme=dark] .settings-limits-grid>div,html[data-theme=dark] .settings-pref-group,html[data-theme=dark] .settings-action-card,html[data-theme=dark] .settings-shares-summary-item,html[data-theme=dark] .mobile-bottom-nav,html[data-theme=dark] .workspace-generate-panel,html[data-theme=dark] .project-card,html[data-theme=dark] .admin-account-card,html[data-theme=dark] .admin-record-card,html[data-theme=dark] .palette-detail-panel,html[data-theme=dark] .editor-panel,html[data-theme=dark] .dialog-card{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .captcha-image{border-color:var(--color-border);opacity:.92;background:#0f172a}html[data-theme=dark] .sidebar{border-color:var(--color-border);background:#111827}html[data-theme=dark] .sidebar-brand{border-color:var(--color-border)}html[data-theme=dark] .sidebar-brand span{color:var(--color-text-muted)}html[data-theme=dark] .nav-item.active{color:#93c5fd;background:#3b82f638}html[data-theme=dark] .settings-subtab{color:var(--color-text-secondary)}html[data-theme=dark] .settings-subtab.active{color:#e2e8f0;background:var(--color-bg-muted);border-color:var(--color-border-strong)}html[data-theme=dark] .settings-info-grid span,html[data-theme=dark] .settings-stats-grid span,html[data-theme=dark] .settings-limits-grid span{color:var(--color-text-muted)}html[data-theme=dark] .settings-form,html[data-theme=dark] .settings-subsection,html[data-theme=dark] .settings-inline-heading,html[data-theme=dark] .settings-profile-nickname{border-color:var(--color-border)}html[data-theme=dark] .settings-segmented,html[data-theme=dark] .register-security-card-inner,html[data-theme=dark] .palette-scope-switch,html[data-theme=dark] .project-view-tab,html[data-theme=dark] .project-toolbar,html[data-theme=dark] .workspace-library-panel{border-color:var(--color-border-strong);background:#0f172a}html[data-theme=dark] .register-security-card input:checked+.register-security-card-inner,html[data-theme=dark] .palette-scope-btn.active,html[data-theme=dark] .project-view-tab.active{color:#93c5fd;background:#2563eb2e;border-color:#3b82f6}html[data-theme=dark] .settings-segmented-item:has(input:checked) span{color:#93c5fd;background:#2563eb2e;border-color:#3b82f6}html[data-theme=dark] .settings-action-card-head h4,html[data-theme=dark] .topbar h2,html[data-theme=dark] .panel h3,html[data-theme=dark] .settings-subsection h4,html[data-theme=dark] .settings-pref-group h4,html[data-theme=dark] .auth-panel-title,html[data-theme=dark] .project-card-title,html[data-theme=dark] .admin-record-title{color:#f1f5f9}html[data-theme=dark] .settings-action-card.is-open{border-color:#3b82f6;box-shadow:0 0 0 3px #2563eb2e}html[data-theme=dark] .settings-security-modal-card{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary);box-shadow:0 24px 60px #00000073}html[data-theme=dark] .settings-security-modal-head h3{color:#f1f5f9}html[data-theme=dark] .settings-security-modal-subtitle{color:var(--color-text-muted)}html[data-theme=dark] .settings-security-modal-backdrop{background:#020617a6}html[data-theme=dark] .media-frame{background:#0f172a}html[data-theme=dark] .mobile-bottom-nav{box-shadow:0 -1px 0 var(--color-border);background:#111827}html[data-theme=dark] .mobile-bottom-item{color:var(--color-text-muted)}html[data-theme=dark] .mobile-bottom-item.active{color:#93c5fd}html[data-theme=dark] .danger-btn,html[data-theme=dark] .settings-logout-action{color:#fca5a5;background:#7f1d1d40;border-color:#7f1d1d}html[data-theme=dark] .settings-form-message.error,html[data-theme=dark] .message.error{color:#fca5a5;background:#7f1d1d40}html[data-theme=dark] .settings-form-message.ok,html[data-theme=dark] .message.ok{color:#86efac;background:#16653440}html[data-theme=dark] .message{color:var(--color-text-secondary)}html[data-theme=dark] .editor-toolbar,html[data-theme=dark] .editor-tools{border-color:var(--color-border);background:#111827}html[data-theme=dark] .editor-tool-button,html[data-theme=dark] .editor-canvas-wrap{border-color:var(--color-border);background:#0f172a}html[data-theme=dark] .editor-tool-button.active{color:#93c5fd;background:#3b82f638}html[data-theme=dark] .status-chip{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .onboarding-banner,html[data-theme=dark] .workspace-intro-card{border-color:var(--color-border);background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%)}html[data-theme=dark] .color-item,html[data-theme=dark] .palette-color-chip,html[data-theme=dark] .project-detail-meta>div{border-color:var(--color-border);background:var(--color-bg-muted)}html[data-theme=dark] .topbar,html[data-theme=dark] .admin-overview-bar>div{color:var(--color-text-primary)}html[data-theme=dark] .project-recycle-hint{color:var(--color-text-muted)}html[data-theme=dark] .project-recycle-batch{border-color:var(--color-border);background:var(--color-bg-muted);box-shadow:none}html[data-theme=dark] .project-recycle-batch-left .project-batch-select-all{color:var(--color-text-primary)}html[data-theme=dark] .project-batch-count{color:var(--color-text-muted);background:0 0}html[data-theme=dark] .project-recycle-batch .project-batch-restore:not(:disabled),html[data-theme=dark] .project-recycle-batch .project-batch-delete:not(:disabled),html[data-theme=dark] .project-recycle-batch .project-batch-clear:not(:disabled){background:var(--color-bg-surface)}html[data-theme=dark] .project-recycle-batch .project-batch-restore:not(:disabled){color:#93c5fd;border-color:#3b82f680}html[data-theme=dark] .project-recycle-batch .project-batch-delete:not(:disabled){color:#fca5a5;border-color:#f8717173}html[data-theme=dark] .project-recycle-batch .project-batch-clear:not(:disabled){border-color:var(--color-border);color:var(--color-text-secondary)}html[data-theme=dark] dialog::backdrop{background:#020617b8}html[data-theme=dark] .auth-screen,html[data-theme=dark] .auth-card,html[data-theme=dark] .auth-step-card,html[data-theme=dark] .register-security-card-inner{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .auth-brand{color:var(--color-text-primary)}html[data-theme=dark] .auth-brand p,html[data-theme=dark] .auth-panel-subtitle,html[data-theme=dark] .auth-step-hint{color:var(--color-text-muted)}html[data-theme=dark] .sidebar-brand strong{color:#f1f5f9}html[data-theme=dark] .sidebar-brand span,html[data-theme=dark] .eyebrow{color:var(--color-text-muted)}html[data-theme=dark] .sidebar-logout{border-color:var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .dialog-card,html[data-theme=dark] .palette-dialog-card{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .workspace-upload-panel,html[data-theme=dark] .workspace-preview-panel,html[data-theme=dark] .project-list-panel,html[data-theme=dark] .project-detail-panel{border-color:var(--color-border);background:var(--color-bg-surface)}html[data-theme=dark] .settings-pref-divider{background:var(--color-border)}html[data-theme=dark] .settings-account-aside{border-color:var(--color-border);background:var(--color-bg-surface)}html[data-theme=dark] .my-shares-empty{border-color:var(--color-border);color:var(--color-text-muted)}html[data-theme=dark] .my-shares-empty strong{color:var(--color-text-primary)}html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:#64748b}html[data-theme=dark] .upload-drop-zone{border-color:var(--color-border-strong);background:var(--color-bg-muted)}html[data-theme=dark] .upload-drop-zone.drag-over{background:#2563eb26;border-color:#3b82f6}html[data-theme=dark] .file-card{border-color:var(--color-border);background:var(--color-bg-surface)}html[data-theme=dark] .file-card:hover{border-color:#60a5fa}html[data-theme=dark] .pattern-summary-panel{border-color:var(--color-border);background:var(--color-bg-muted)}html[data-theme=dark] .pattern-summary-meta>strong{color:#f1f5f9}html[data-theme=dark] .pattern-summary-stats span{color:var(--color-text-muted)}html[data-theme=dark] .current-source-hint{color:#93c5fd;background:#2563eb1f;border-color:#3b82f659}html[data-theme=dark] .workspace-step-tab,html[data-theme=dark] .mobile-step-tab,html[data-theme=dark] .upload-flow-step{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .workspace-step-tab.active,html[data-theme=dark] .mobile-step-tab.active,html[data-theme=dark] .upload-flow-step.is-active{color:#93c5fd;background:#2563eb2e;border-color:#3b82f6}html[data-theme=dark] .advanced-settings,html[data-theme=dark] .advanced-settings-group{border-color:var(--color-border)}html[data-theme=dark] .palette-color-chip,html[data-theme=dark] .color-item{background:var(--color-bg-muted)}html[data-theme=dark] .project-detail-meta>div,html[data-theme=dark] .project-detail-legend-section details{background:var(--color-bg-muted);border-color:var(--color-border)}html[data-theme=dark] .workspace-intro-bar,html[data-theme=dark] .preview-toolbar,html[data-theme=dark] .preview-rotation-toolbar,html[data-theme=dark] .pattern-preview-canvas-wrap,html[data-theme=dark] .workspace-file-scroll,html[data-theme=dark] .file-name,html[data-theme=dark] .upload-message,html[data-theme=dark] .share-page-card,html[data-theme=dark] .export-modal-card,html[data-theme=dark] .palette-dialog-card,html[data-theme=dark] dialog,html[data-theme=dark] .auth-legal-dialog,html[data-theme=dark] .palette-browse-bar,html[data-theme=dark] .palette-mine-bar,html[data-theme=dark] .palette-main-header,html[data-theme=dark] .palette-empty-state,html[data-theme=dark] .palette-color-card,html[data-theme=dark] .color-card-manage,html[data-theme=dark] .palette-add-panel,html[data-theme=dark] .palette-reorder-hint,html[data-theme=dark] .admin-paste-panel,html[data-theme=dark] .palette-page-message{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .palette-browse-filters,html[data-theme=dark] .palette-main-filters{border-color:var(--color-border)}html[data-theme=dark] .palette-filter-label,html[data-theme=dark] .palette-field,html[data-theme=dark] .palette-add-form label,html[data-theme=dark] .palette-quick-section h4{color:var(--color-text-muted)}html[data-theme=dark] .palette-select,html[data-theme=dark] .palette-search-input{border-color:var(--color-border-input);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .palette-family-chip,html[data-theme=dark] .palette-tab,html[data-theme=dark] .palette-quick-chip{border-color:var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .palette-family-chip:hover,html[data-theme=dark] .palette-tab:hover:not(.active),html[data-theme=dark] .palette-quick-chip:hover{background:var(--color-bg-muted);color:var(--color-text-primary);border-color:#60a5fa}html[data-theme=dark] .palette-family-chip.active{color:#93c5fd;background:#2563eb2e;border-color:#3b82f6}html[data-theme=dark] .palette-empty-state strong{color:#f1f5f9}html[data-theme=dark] .palette-empty-state{color:var(--color-text-muted)}html[data-theme=dark] .project-count-badge{background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .palette-color-card-main,html[data-theme=dark] .palette-color-card-main:hover,html[data-theme=dark] .palette-color-card-main:focus,html[data-theme=dark] .palette-color-card-main:active{color:var(--color-text-primary);background:0 0}html[data-theme=dark] .palette-color-card-main strong{color:#f1f5f9}html[data-theme=dark] .palette-color-card-actions .is-favorite{color:#fcd34d;background:#92400e40;border-color:#92400e}html[data-theme=dark] .color-card-action{border-color:var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .color-card-action:hover,html[data-theme=dark] .color-card-action:focus{background:var(--color-bg-muted);color:var(--color-text-primary)}html[data-theme=dark] .color-card-action.danger{color:#fca5a5;background:#7f1d1d40;border-color:#7f1d1d}html[data-theme=dark] .duplicate-color-option:has(input:checked){background:#2563eb26;border-color:#3b82f6}html[data-theme=dark] .hex-preview-swatch{border-color:var(--color-border-strong)}html[data-theme=dark] #paletteView .palette-filter-drawer>summary{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .advanced-settings,html[data-theme=dark] .advanced-settings-group,html[data-theme=dark] .pattern-ratio-preview,html[data-theme=dark] .generate-estimate-panel,html[data-theme=dark] .project-reference-panel{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .advanced-settings summary,html[data-theme=dark] .project-reference-panel summary{color:var(--color-text-primary)}html[data-theme=dark] .advanced-settings-group-title{color:var(--color-text-muted)}html[data-theme=dark] .setting-field-label{color:var(--color-text-secondary)}html[data-theme=dark] .setting-field-hint{color:var(--color-text-muted)}html[data-theme=dark] .pattern-summary-meta>strong,html[data-theme=dark] .pattern-ratio-meta strong,html[data-theme=dark] .generate-estimate-grid strong{color:#f1f5f9}html[data-theme=dark] .pattern-summary-stats span,html[data-theme=dark] .pattern-ratio-size,html[data-theme=dark] .generate-estimate-grid span{color:var(--color-text-muted)}html[data-theme=dark] .pattern-summary-stats strong{color:var(--color-text-primary)}html[data-theme=dark] .pattern-ratio-shape{background:linear-gradient(135deg,#1e3a5f 0%,#1e293b 100%);border-color:#3b82f6}html[data-theme=dark] .pattern-ratio-shape.is-warning{background:linear-gradient(135deg,#92400e80 0%,#1e293b 100%);border-color:#f59e0b}html[data-theme=dark] .pattern-ratio-shape.is-extreme{background:linear-gradient(135deg,#7f1d1d80 0%,#1e293b 100%);border-color:#ef4444}html[data-theme=dark] .preview-rotation-title strong{color:#f1f5f9}html[data-theme=dark] .preview-rotation-title span{color:var(--color-text-muted)}html[data-theme=dark] .image-rotation-buttons{border-color:var(--color-border-strong);background:var(--color-bg-surface)}html[data-theme=dark] .rotation-option{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .rotation-option:hover{background:var(--color-bg-muted);color:var(--color-text-primary);border-color:#60a5fa}html[data-theme=dark] .rotation-option.secondary{background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .admin-tabs,html[data-theme=dark] .admin-filter-bar,html[data-theme=dark] .admin-list-toolbar,html[data-theme=dark] .admin-table-scroll,html[data-theme=dark] .admin-row:not(tr),html[data-theme=dark] .admin-detail,html[data-theme=dark] .admin-config-toolbar,html[data-theme=dark] .admin-config-section,html[data-theme=dark] .admin-config-row,html[data-theme=dark] .admin-config-empty,html[data-theme=dark] .admin-stat-card,html[data-theme=dark] .admin-palette-sidebar,html[data-theme=dark] .admin-palette-item,html[data-theme=dark] .admin-palette-section,html[data-theme=dark] .admin-palette-create,html[data-theme=dark] .admin-preview-dialog,html[data-theme=dark] .confirm-modal-card{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .admin-tab{color:var(--color-text-secondary);border-color:var(--color-border);background:var(--color-bg-muted)}html[data-theme=dark] .admin-tab:hover{color:var(--color-text-primary);border-color:var(--color-border-strong);background:#3341558c}html[data-theme=dark] .admin-tab.active,html[data-theme=dark] .admin-tab.active:hover{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}html[data-theme=dark] .admin-tab-group-title,html[data-theme=dark] .admin-bulk-check,html[data-theme=dark] .admin-row-check,html[data-theme=dark] .admin-pager,html[data-theme=dark] .admin-row span{color:var(--color-text-muted)}html[data-theme=dark] .admin-table thead th{background:var(--color-bg-muted);border-color:var(--color-border);color:var(--color-text-muted)}html[data-theme=dark] .admin-table th,html[data-theme=dark] .admin-table td{border-color:var(--color-border)}html[data-theme=dark] .admin-table tbody tr:hover,html[data-theme=dark] .admin-table tbody tr:nth-child(2n):hover{background:#33415599}html[data-theme=dark] .admin-table tbody tr:nth-child(2n),html[data-theme=dark] .admin-table tbody tr.is-inactive{background:#0f172a66}html[data-theme=dark] .admin-table-cell{color:var(--color-text-secondary)}html[data-theme=dark] .admin-table-cell.main strong{color:#f1f5f9}html[data-theme=dark] .admin-table-cell.main span,html[data-theme=dark] .admin-table-token,html[data-theme=dark] .admin-table-hint{color:var(--color-text-muted)}html[data-theme=dark] .admin-table-actions button:not(.secondary):not(.admin-danger-btn){background:var(--color-bg-muted);border-color:var(--color-border-strong);color:var(--color-text-secondary)}html[data-theme=dark] .admin-table-actions button:not(.secondary):not(.admin-danger-btn):hover{color:#f1f5f9;background:#475569}html[data-theme=dark] .admin-table-empty{color:var(--color-text-muted)}html[data-theme=dark] .admin-pill{background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .admin-pill.strong{color:#93c5fd;background:#2563eb33}html[data-theme=dark] .admin-config-group-nav{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .admin-config-group-nav.active{color:#93c5fd;background:#2563eb2e;border-color:#3b82f6}html[data-theme=dark] .admin-config-recent strong{color:var(--color-text-secondary)}html[data-theme=dark] .admin-config-recent span{background:var(--color-bg-muted);border-color:var(--color-border);color:var(--color-text-muted)}html[data-theme=dark] .admin-config-row.is-dirty{background:#92400e26;border-color:#f59e0b}html[data-theme=dark] .admin-status-chip{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .admin-create-user-form{border-color:var(--color-border);background:#0f172a66}html[data-theme=dark] .workspace-blank-entry{background:linear-gradient(135deg,#1e293b 0%,#0f172a 100%);border-color:#3b82f666}html[data-theme=dark] .workspace-blank-entry-copy strong{color:#93c5fd}html[data-theme=dark] .upload-result{background:#2563eb1f;border-color:#3b82f666}html[data-theme=dark] .upload-result img,html[data-theme=dark] .upload-pending img{border-color:var(--color-border);background:var(--color-bg-muted)}html[data-theme=dark] #uploadInfo strong{color:#f1f5f9}html[data-theme=dark] #uploadInfo span{color:var(--color-text-muted)}html[data-theme=dark] .workspace-library-filter-toggle,html[data-theme=dark] button.workspace-library-filter-toggle,html[data-theme=dark] .workspace-library-selected-only{border-color:var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .workspace-library-filter-toggle-check{border-color:var(--color-border-strong);background:var(--color-bg-muted)}html[data-theme=dark] .file-check,html[data-theme=dark] .workspace-library-count,html[data-theme=dark] .file-card span:not(.file-current-badge){color:var(--color-text-muted)}html[data-theme=dark] .file-card strong{color:var(--color-text-primary)}html[data-theme=dark] .preview-toolbar-title strong{color:#f1f5f9}html[data-theme=dark] .preview-toolbar-title span,html[data-theme=dark] .preview-grid-step-label,html[data-theme=dark] .editor-grid-step-label{color:var(--color-text-muted)}html[data-theme=dark] .preview-grid-step-label select,html[data-theme=dark] .editor-grid-step-label select,html[data-theme=dark] .project-sort-label select{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .summary-grid,html[data-theme=dark] .project-list-batch,html[data-theme=dark] .project-empty-state,html[data-theme=dark] .project-detail-placeholder,html[data-theme=dark] .project-reference-panel{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .summary-metric{border-color:var(--color-border);background:var(--color-bg-muted)}html[data-theme=dark] .summary-metric strong{color:#f1f5f9}html[data-theme=dark] .summary-metric.is-saved{background:#16653440;border-color:#166534}html[data-theme=dark] .summary-metric.is-saved strong{color:#86efac}html[data-theme=dark] .summary-metric.is-draft{background:#92400e40;border-color:#92400e}html[data-theme=dark] .summary-metric.is-draft strong{color:#fcd34d}html[data-theme=dark] .project-view-tabs{border-color:var(--color-border);background:#0f172a}html[data-theme=dark] button.project-view-tab:hover:not(.active){background:var(--color-bg-muted);color:var(--color-text-primary)}html[data-theme=dark] .project-batch-delete{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-muted)}html[data-theme=dark] .project-batch-delete:not(:disabled){background:var(--color-bg-surface);color:#fca5a5;border-color:#f8717173}html[data-theme=dark] .project-batch-delete:not(:disabled):hover{background:#7f1d1d4d}html[data-theme=dark] .project-batch-delete:disabled{border-color:var(--color-border);background:var(--color-bg-muted);color:#64748b}html[data-theme=dark] .project-empty-state strong,html[data-theme=dark] .project-detail-placeholder strong{color:var(--color-text-primary)}html[data-theme=dark] .project-detail-topbar{background:linear-gradient(180deg, var(--color-bg-surface) 85%, transparent)}html[data-theme=dark] .project-batch-select-all{color:var(--color-text-secondary)}html[data-theme=dark] .editor-toolbar,html[data-theme=dark] .editor-main,html[data-theme=dark] .editor-body,html[data-theme=dark] .editor-tools,html[data-theme=dark] .editor-panel,html[data-theme=dark] .editor-panel-head{border-color:var(--color-border);color:var(--color-text-primary);background:#111827}html[data-theme=dark] .toolbar-group,html[data-theme=dark] .toolbar-group-status,html[data-theme=dark] .editor-live-context,html[data-theme=dark] .editor-live-status .status-chip{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .editor-tool-button,html[data-theme=dark] .editor-selection-bar-btn{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary)}html[data-theme=dark] .editor-tool-button .tool-shortcut,html[data-theme=dark] button.secondary .editor-key-hint kbd{border-color:var(--color-border-strong);background:var(--color-bg-muted);color:var(--color-text-muted)}html[data-theme=dark] .editor-panel-block h4,html[data-theme=dark] .editor-panel-head h3,html[data-theme=dark] .editor-info{color:var(--color-text-secondary)}html[data-theme=dark] .editor-recent-label{color:var(--color-text-muted)}html[data-theme=dark] .editor-recent-colors-list .palette-color,html[data-theme=dark] .editor-palette-list .palette-color,html[data-theme=dark] .editor-legend-list .legend-item{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .editor-recent-colors-list .palette-color:hover,html[data-theme=dark] .editor-palette-list .palette-color:hover,html[data-theme=dark] .editor-legend-list .legend-item:hover{color:#f1f5f9;background:#475569}html[data-theme=dark] .editor-legend-list .legend-item.active{background:#92400e40;border-color:#f59e0b}html[data-theme=dark] .editor-mobile-hint{color:#fcd34d;background:#92400e40;border-color:#92400e}html[data-theme=dark] .editor-live-context.is-select{color:#93c5fd;background:#2563eb2e;border-color:#3b82f680}html[data-theme=dark] .editor-live-status .status-chip-value{color:#f1f5f9}html[data-theme=dark] .editor-live-status.dirty .status-chip-save{color:#fcd34d;background:#92400e4d;border-color:#f59e0b}html[data-theme=dark] .share-modal-card,html[data-theme=dark] .share-toggle-card,html[data-theme=dark] .share-result,html[data-theme=dark] .share-summary-item,html[data-theme=dark] .share-legend-item,html[data-theme=dark] .export-settings,html[data-theme=dark] .export-option-block,html[data-theme=dark] .export-advanced,html[data-theme=dark] .export-pdf-options,html[data-theme=dark] .export-png-options,html[data-theme=dark] .export-result,html[data-theme=dark] .export-preview-panel{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .share-toggle-card:hover{background:var(--color-bg-subtle)}html[data-theme=dark] .share-toggle-card:has(input:checked){background:#10b9811f;border-color:#34d39973}html[data-theme=dark] .share-result{background:var(--color-bg-subtle)}html[data-theme=dark] .share-result-link-label{color:var(--color-text-secondary)}html[data-theme=dark] .share-result-link-label input,html[data-theme=dark] .share-result-qr img{background:var(--color-bg-surface);border-color:var(--color-border)}html[data-theme=dark] .share-page-canvas-wrap{border-color:var(--color-border);background:#0f172a}html[data-theme=dark] .share-password-state.is-locked{color:#fcd34d;background:#92400e33;border-color:#f59e0b66}html[data-theme=dark] .export-preview-tag{background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .export-fit-hint{background:var(--color-bg-subtle);border-color:var(--color-border);color:var(--color-text-secondary)}html[data-theme=dark] .export-fit-hint.is-ok{color:#86efac;background:#16653447;border-color:#4ade8059}html[data-theme=dark] .export-fit-hint.is-warn{color:#fdba74;background:#9a341247;border-color:#fb923c66}html[data-theme=dark] .export-fit-hint.is-muted{color:var(--color-text-muted);background:var(--color-bg-subtle);border-color:var(--color-border)}html[data-theme=dark] .auth-brand{border-color:var(--color-border);background:linear-gradient(#1e293beb,#1e293beb),linear-gradient(90deg,#33415559 1px,#0000 1px),linear-gradient(#33415559 1px,#0000 1px)}html[data-theme=dark] .auth-wizard-step-dot{border-color:var(--color-border-strong);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .auth-register-benefits,html[data-theme=dark] .register-security-mode,html[data-theme=dark] .register-step-actions,html[data-theme=dark] .forgot-security-question{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .register-security-card-icon{background:var(--color-bg-muted)}html[data-theme=dark] .password-eye-btn:hover{background:var(--color-bg-muted);color:var(--color-text-primary)}html[data-theme=dark] .mobile-my-sheet-card,html[data-theme=dark] .onboarding-banner span{color:var(--color-text-primary)}html[data-theme=dark] .mobile-my-sheet-card{border-color:var(--color-border);background:var(--color-bg-surface)}html[data-theme=dark] .mobile-my-sheet-head strong{color:#f1f5f9}html[data-theme=dark] .mobile-my-sheet-role{color:var(--color-text-muted)}html[data-theme=dark] .settings-account-aside,html[data-theme=dark] .upload-drop-zone{border-color:var(--color-border);background:var(--color-bg-surface)}html[data-theme=dark] .mobile-step-tab{border-color:var(--color-border);background:var(--color-bg-muted);color:var(--color-text-secondary)}html[data-theme=dark] .mobile-bottom-item.active{color:#93c5fd;background:#3b82f633}html[data-theme=dark] #paletteView .palette-page-message{background:var(--color-bg-surface);border-color:var(--color-border);color:var(--color-text-primary);box-shadow:0 4px 16px #00000059}html[data-theme=dark] .admin-status-chip strong{color:var(--color-text-primary)}html[data-theme=dark] .admin-status-chip:hover{border-color:var(--color-border-strong);color:#f1f5f9;background:#475569}html[data-theme=dark] .admin-status-chip.active{color:#93c5fd;background:#2563eb33;border-color:#3b82f6}html[data-theme=dark] .admin-status-chip.active strong{color:#93c5fd}html[data-theme=dark] .admin-stat-card{border-color:var(--color-border);background:var(--color-bg-surface)}html[data-theme=dark] .admin-stat-card span{color:var(--color-text-secondary)}html[data-theme=dark] .admin-stat-card strong{color:#f1f5f9}html[data-theme=dark] .admin-stat-card small{color:var(--color-text-muted)}html[data-theme=dark] .admin-storage-action,html[data-theme=dark] .admin-storage-types,html[data-theme=dark] .admin-storage-orphan-block{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .admin-storage-action-copy strong,html[data-theme=dark] .admin-storage-types h4,html[data-theme=dark] .admin-storage-orphan-block h4,html[data-theme=dark] .admin-storage-type strong{color:#f1f5f9}html[data-theme=dark] .admin-storage-action-copy p,html[data-theme=dark] .admin-storage-types .hint{color:var(--color-text-muted)}html[data-theme=dark] .admin-storage-action-copy span,html[data-theme=dark] .admin-storage-type-name{color:var(--color-text-secondary)}html[data-theme=dark] .admin-storage-type{border-bottom-color:var(--color-border)}html[data-theme=dark] .admin-storage-days-field{color:var(--color-text-secondary)}html[data-theme=dark] .admin-storage-days-field input,html[data-theme=dark] .pattern-legend-fold,html[data-theme=dark] .upload-pending,html[data-theme=dark] .settings-shares-summary-item{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .settings-shares-summary-item span{color:var(--color-text-muted)}html[data-theme=dark] .settings-shares-summary-item strong,html[data-theme=dark] .tpl-name{color:var(--color-text-primary)}html[data-theme=dark] .tpl-desc{color:var(--color-text-muted)}html[data-theme=dark] .tpl-tag{background:var(--color-bg-muted);color:var(--color-text-muted)}html[data-theme=dark] .tpl-thumb{background:#0f172a}html[data-theme=dark] button.tpl-card{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] button.tpl-card:hover{background:var(--color-bg-muted);border-color:#475569}html[data-theme=dark] button.tpl-card.is-active{background:#2563eb29;border-color:#2563eb}html[data-theme=dark] .workspace-flow-chip{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-muted)}html[data-theme=dark] .workspace-flow-chip em{color:#cbd5e1;background:#334155}html[data-theme=dark] .workspace-flow-chip.is-active{color:#93c5fd;background:#2563eb2e;border-color:#1d4ed8}html[data-theme=dark] .workspace-flow-chip.is-active em{color:#fff;background:#2563eb}html[data-theme=dark] .settings-stat-link:hover,html[data-theme=dark] .settings-stat-link:focus-visible{background:var(--color-bg-muted)}html[data-theme=dark] .pattern-legend-fold-title{color:var(--color-text-primary)}html[data-theme=dark] .list-row{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] .color-swatch{border-color:var(--color-border-strong)}html[data-theme=dark] .color-card-main,html[data-theme=dark] .color-card-main:hover,html[data-theme=dark] .color-card-main:focus,html[data-theme=dark] .color-card-main:active{color:var(--color-text-primary);background:0 0}html[data-theme=dark] .color-card-info strong{color:#f1f5f9}html[data-theme=dark] .color-card-name{color:var(--color-text-secondary)}html[data-theme=dark] .color-card-info code{color:var(--color-text-muted)}html[data-theme=dark] #projectView .project-card{border-color:var(--color-border);background:var(--color-bg-surface);color:var(--color-text-primary)}html[data-theme=dark] #projectView .project-card:hover{border-color:#60a5fa}html[data-theme=dark] #projectView .project-card.active{background:#2563eb2e;border-color:#3b82f6}html[data-theme=dark] #projectView .project-card:has(.project-select:checked){background:#2563eb1f;border-color:#3b82f6}html[data-theme=dark] #projectView .project-card.project-recycle-card:hover{border-color:var(--color-border-strong);background:var(--color-bg-muted)}html[data-theme=dark] #projectView .project-card-title{color:#f1f5f9}html[data-theme=dark] #projectView .project-progress-badge{color:#6ee7b7;background:#10b9812e}html[data-theme=dark] #projectView .project-card-metric,html[data-theme=dark] #projectView .project-card-updated{color:var(--color-text-muted)}html[data-theme=dark] #projectView .project-card-thumb{border-color:var(--color-border)}html[data-theme=dark] .project-detail-media,html[data-theme=dark] .source-preview img{border-color:var(--color-border);background:var(--color-bg-muted)}html[data-theme=dark] .project-share-badge{color:#86efac;background:#1665344d;border-color:#166534}html[data-theme=dark] .app-shell.editor-focus .content,html[data-theme=dark] .app-shell.editor-focus .editor-view:not(.hidden),html[data-theme=dark] .editor-view.mobile-simulated-landscape{background:#0f172a}html[data-theme=dark] .editor-canvas-wrap{border-color:var(--color-border);background:#0f172a}html[data-theme=dark] button.community-tab,html[data-theme=dark] .community-tab{color:var(--color-text-primary);background:var(--color-bg-surface);border-color:var(--color-border-strong)}html[data-theme=dark] button.community-tab:hover:not(.active),html[data-theme=dark] .community-tab:hover:not(.active){background:var(--color-bg-muted);color:var(--color-text-primary)}html[data-theme=dark] button.community-tab.active,html[data-theme=dark] .community-tab.active{background:var(--color-primary);color:#fff;border-color:#0000}html[data-theme=dark] .community-card,html[data-theme=dark] .community-topic-card,html[data-theme=dark] .community-ranking,html[data-theme=dark] .community-notice-list,html[data-theme=dark] .community-profile-head{background:var(--color-bg-surface);border-color:var(--color-border)}html[data-theme=dark] .community-rank-row:hover,html[data-theme=dark] .community-notice:hover,html[data-theme=dark] .community-notice.is-unread{background:var(--color-bg-muted)}html[data-theme=dark] .community-chip{background:var(--color-bg-muted);border-color:var(--color-border);color:var(--color-text-secondary)}html[data-theme=dark] .community-subtabs{background:var(--color-bg-muted);border-color:var(--color-border)}html[data-theme=dark] .community-tag.is-showcase{color:#c7d2fe;background:#312e81}html[data-theme=dark] .linkish{color:var(--color-link)}html[data-theme=dark] .status{color:#86efac;background:#16653447}html[data-theme=dark] .status.error{color:#fca5a5;background:#991b1b47}html[data-theme=dark] .project-card-badge.is-template{color:#fcd34d;background:#92400e59}html[data-theme=dark] .palette-color-text small{color:var(--color-text-muted)}
