@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap";:root{color:#f8fbff;--bg:#09131d;--panel:#081620e0;--panel-strong:#0a1b27f5;--border:#a0c6db1f;--border-strong:#a0c6db3d;--text:#f8fbff;--muted:#9ab7ca;--accent:#6ad5ff;--accent-strong:#1ba7d7;--accent-warm:#f0b34a;--danger:#ef6a6a;--success:#74d49b;--shadow:0 22px 56px #01080e38;--radius-xl:28px;--radius-lg:20px;--radius-md:16px;--scrollbar-track:#09131d3d;--scrollbar-thumb:#2babd6b8;--scrollbar-thumb-hover:#5ad2f8e0;background:radial-gradient(circle at 0 0,#f4b4001a,#0000 22%),radial-gradient(circle at 100% 0,#0e749024,#0000 26%),#09131d;font-family:IBM Plex Sans,sans-serif}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:999px}::-webkit-scrollbar-thumb{border:2px solid var(--scrollbar-track);background:linear-gradient(#6ad5ff80,#1ba7d7b8);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(#7addffc7,#1ba7d7eb)}html,body,#root{height:100%;min-height:100%}body{color:var(--text);background:radial-gradient(circle at 20% 0,#30abd81a,#0000 20%),linear-gradient(#08111a 0%,#0b1622 100%);margin:0;overflow:hidden}body:before{content:"";pointer-events:none;opacity:.55;background-image:linear-gradient(#79adcc14 1px,#0000 1px),linear-gradient(90deg,#79adcc14 1px,#0000 1px);background-size:34px 34px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#00000047,#0000 70%);mask-image:linear-gradient(#00000047,#0000 70%)}img{max-width:100%}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin:0 0 .45rem;font-size:.74rem}.muted{color:var(--muted)}.auth-page,.app-shell,.admin-shell{padding:28px;position:relative}.auth-page{grid-template-columns:minmax(0,1.25fr) minmax(320px,460px);align-items:stretch;gap:24px;min-height:100vh;display:grid}.app-shell,.admin-shell{flex-direction:column;gap:18px;height:100svh;min-height:100svh;display:flex;overflow:hidden}.auth-hero,.auth-panel,.panel,.stat-card,.topbar{border:1px solid var(--border);background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.auth-hero,.auth-panel,.panel{border-radius:var(--radius-xl)}.auth-hero{padding:48px;position:relative;overflow:hidden}.auth-hero:after{content:"";background:radial-gradient(circle,#6ad5ff4d,#0000 68%);border-radius:50%;width:300px;height:300px;position:absolute;inset:auto -10% -30% auto}.auth-hero h1{max-width:12ch;margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(2.8rem,5vw,4.8rem);line-height:.98}.auth-hero__lead{max-width:44rem;color:var(--muted);margin:1.25rem 0 0;font-size:1.08rem;line-height:1.7}.credential-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:44px;display:grid}.credential-strip--single{grid-template-columns:minmax(0,280px)}.credential-card{border-radius:var(--radius-md);background:#ffffff0a;border:1px solid #ffffff14;padding:18px 20px}.credential-card span{color:var(--muted);margin-bottom:6px;display:block}.credential-card strong{font-family:Space Grotesk,sans-serif}.auth-panel{align-self:center;padding:32px}.panel__header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.panel__header h2,.panel-section__title h3,.viewer-side h2{margin:0;font-family:Space Grotesk,sans-serif}.auth-form,.panel-section{gap:20px;display:grid}.panel>.panel-section+.panel-section,.panel>.asset-grid{margin-top:10px}.field{gap:8px;display:grid}.field span{color:var(--muted);font-size:.92rem}.field input,.field textarea,.field select{width:100%;color:var(--text);background:#071118bd;border:1px solid #a0c6db29;border-radius:14px;outline:none;padding:13px 14px;transition:border-color .16s,transform .16s}.field input:focus,.field textarea:focus,.field select:focus{border-color:#6ad5ff8a;transform:translateY(-1px)}.field textarea{resize:vertical}.password-field{position:relative}.password-field input{padding-right:54px}.password-toggle{width:36px;height:36px;color:var(--muted);background:#ffffff0a;border:0;border-radius:12px;justify-content:center;align-items:center;padding:0;transition:background .16s,color .16s,transform .16s;display:inline-flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.password-toggle:hover,.password-toggle:focus-visible{color:var(--accent);background:#6ad5ff1f;transform:translateY(calc(-50% - 1px))}.password-toggle svg{width:1.05rem;height:1.05rem}.password-toggle--inline{border-radius:10px;width:30px;height:30px;position:static;transform:none}.password-toggle--inline:hover,.password-toggle--inline:focus-visible{transform:none}.password-value{align-items:center;gap:8px;display:inline-flex}.password-value.is-empty{color:var(--text)}.password-value__text{letter-spacing:.04em}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.primary-button,.secondary-button,.ghost-button,.upload-button{border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:0 18px;transition:transform .18s,background .18s,border-color .18s;display:inline-flex}.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.upload-button:hover{transform:translateY(-1px)}.primary-button svg,.secondary-button svg,.ghost-button svg,.upload-button svg{flex:none;width:1rem;height:1rem}.primary-button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#03121a;font-weight:700}.primary-button--danger{color:#fff5f5;background:linear-gradient(135deg,#ef6a6a,#d84d4d)}.primary-button--large{min-height:52px}.secondary-button{color:var(--text);background:#1ba7d724;border-color:#6ad5ff3d}.ghost-button{color:var(--text);background:0 0;border-color:#a0c6db38}.ghost-button--danger{color:#ffd4d4;border-color:#ff6b6b4d}.ghost-button--danger:hover{background:#ff6b6b14;border-color:#ff6b6b70}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled,.upload-button:disabled{opacity:.58;cursor:not-allowed;transform:none}.ghost-button--full{width:100%}.upload-button{color:var(--text);background:#f0b34a24;border-color:#f0b34a3d;position:relative;overflow:hidden}.upload-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.form-error,.form-success{border-radius:14px;margin:0;padding:12px 14px}.form-error{color:#ffd0d0;background:#ef6a6a1f;border:1px solid #ef6a6a40}.form-success{color:#d8ffe6;background:#74d49b1f;border:1px solid #74d49b3d}.overlay-close-button{width:38px;height:38px;color:var(--muted);background:#ffffff08;border:1px solid #a0c6db29;border-radius:12px;justify-content:center;align-items:center;padding:0;transition:background .16s,border-color .16s,color .16s,transform .16s;display:inline-flex}.overlay-close-button:hover,.overlay-close-button:focus-visible{color:var(--text);background:#6ad5ff1a;border-color:#6ad5ff47;transform:translateY(-1px)}.overlay-close-button svg{width:1rem;height:1rem}.toast-stack{z-index:60;gap:10px;width:min(360px,100vw - 28px);display:grid;position:fixed;bottom:18px;right:18px}.status-toast{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#08141ef0;border:1px solid #a0c6db2e;border-radius:16px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 12px 12px 14px;display:flex;box-shadow:0 18px 36px #0000003d}.status-toast p{margin:0;font-size:.9rem;line-height:1.5}.status-toast .overlay-close-button{flex:none;width:32px;height:32px}.status-toast--success{color:#d8ffe6;background:linear-gradient(#133128f5,#0a1815f5);border-color:#74d49b47}.status-toast--error{color:#ffd0d0;background:linear-gradient(#3e1414f5,#1d0d0df5);border-color:#ef6a6a47}.topbar{border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;display:flex}.topbar h1{margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(1.8rem,3vw,2.7rem)}.topbar--compact h1{font-size:clamp(1.5rem,2.2vw,2.2rem)}.topbar__actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.role-badge{color:#ffd78b;background:#f0b34a24;border:1px solid #f0b34a33;border-radius:999px;align-items:center;min-height:42px;padding:0 16px;display:inline-flex}.mobile-readonly-pill{color:#cfefff;background:#6ad5ff14;border:1px solid #6ad5ff33;border-radius:999px;align-items:center;min-height:42px;padding:0 16px;font-size:.92rem;display:inline-flex}.workspace-shell{gap:10px;width:100%;min-width:0;padding:14px 14px 18px}.workspace-toolbar{flex:none;justify-content:flex-end;display:flex}.workspace-topbar__trigger{flex:none;min-width:132px}.workspace-actions-backdrop{z-index:38;opacity:0;pointer-events:none;background:#03090e6b;transition:opacity .22s;position:fixed;inset:0}.workspace-actions-backdrop.is-open{opacity:1;pointer-events:auto}.workspace-actions-drawer{z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;pointer-events:none;background:linear-gradient(#0a1823fa,#07121bf5),#08141ef5;border:1px solid #a0c6db29;border-radius:28px;flex-direction:column;gap:20px;width:min(360px,100vw - 32px);padding:24px;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .22s;display:flex;position:fixed;top:20px;bottom:20px;right:20px;transform:translate(calc(100% + 28px));box-shadow:0 24px 54px #00000052}.workspace-actions-drawer.is-open{opacity:1;pointer-events:auto;transform:translate(0)}.workspace-actions-drawer__header{gap:8px;padding-right:52px;display:grid;position:relative}.workspace-actions-drawer__header h2{margin:0;font-family:Space Grotesk,sans-serif;font-size:1.8rem}.workspace-actions-drawer__meta{color:var(--muted);margin:0;line-height:1.55}.workspace-actions-drawer__list{gap:12px;margin-top:auto;display:grid}.workspace-actions-drawer__list>*{justify-content:center;width:100%}.workspace-mobile-lock{min-height:48px;color:var(--muted);text-align:center;background:#ffffff08;border:1px solid #a0c6db1f;border-radius:16px;place-items:center;padding:10px 14px;line-height:1.5;display:grid}.workspace-actions-drawer__danger{color:#ffb0b0;background:#ef6a6a1a;border-color:#ef6a6a42}.workspace-actions-drawer__danger:hover{background:#ef6a6a29;border-color:#ef6a6a61}.admin-shell--editor>.topbar{display:none}.admin-shell--editor{gap:12px;padding:14px}.editor-toolbar{flex:none;justify-content:flex-end;display:flex}.editor-toolbar__trigger{min-width:132px}.editor-header-backdrop{z-index:38;opacity:0;pointer-events:none;background:#03090e6b;transition:opacity .22s;position:fixed;inset:0}.editor-header-backdrop.is-open{opacity:1;pointer-events:auto}.editor-header-drawer{z-index:40;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);opacity:0;pointer-events:none;background:linear-gradient(#0a1823fa,#07121bf5),#08141ef5;border:1px solid #a0c6db29;border-radius:28px;flex-direction:column;gap:20px;width:min(360px,100vw - 32px);padding:24px;transition:transform .26s cubic-bezier(.22,1,.36,1),opacity .22s;display:flex;position:fixed;top:20px;bottom:20px;right:20px;transform:translate(calc(100% + 28px));box-shadow:0 24px 54px #00000052}.editor-header-drawer.is-open{opacity:1;pointer-events:auto;transform:translate(0)}.editor-header-drawer__header{gap:8px;padding-right:52px;display:grid;position:relative}.editor-header-drawer__header h2{margin:0;font-family:Space Grotesk,sans-serif;font-size:1.8rem;line-height:1.15}.editor-header-drawer__meta{color:var(--muted);margin:0;line-height:1.55}.editor-header-drawer__actions{gap:12px;margin-top:auto;display:grid}.editor-header-drawer__actions>*{justify-content:center;width:100%}.editor-header-drawer__danger{color:#ffb0b0;background:#ef6a6a1a;border-color:#ef6a6a42}.editor-header-drawer__danger:hover{background:#ef6a6a29;border-color:#ef6a6a61}.stats-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0;display:grid}.stats-row--compact{gap:12px;margin:14px 0 16px}.stat-card{border-radius:var(--radius-lg);padding:18px 20px}.stat-card span{color:var(--muted)}.stat-card strong{margin-top:12px;font-family:Space Grotesk,sans-serif;font-size:2.4rem;display:block}.stat-card--compact{padding:14px 16px}.stat-card--compact strong{margin-top:8px;font-size:2rem}.viewer-layout{flex:1;grid-template-columns:minmax(0,1fr) 340px;gap:22px;min-height:0;display:grid}.portal-shell{height:100svh;min-height:100svh;overflow:hidden}.portal-topbar{flex:none}.portal-group-card__index{color:var(--accent);font-family:Space Grotesk,sans-serif;font-size:2.2rem}.portal-group-list{flex:auto;align-content:start;gap:16px;min-height:auto;padding-bottom:20px;padding-right:0;display:grid;overflow:visible}.portal-group-list--standalone{scrollbar-width:thin;scrollbar-color:#6ad5ff57 #09131d2e;min-height:0;padding-top:6px;padding-right:10px;overflow:hidden auto}.portal-group-list--standalone::-webkit-scrollbar{width:10px}.portal-group-list--standalone::-webkit-scrollbar-track{background:#09131d3d;border-radius:999px}.portal-group-list--standalone::-webkit-scrollbar-thumb{background:linear-gradient(#6ad5ff7a,#1ba7d7ad);border:2px solid #09131d3d;border-radius:999px}.portal-group-list--standalone::-webkit-scrollbar-thumb:hover{background:linear-gradient(#7addffb8,#1ba7d7e6)}.portal-group-accordion{box-shadow:var(--shadow);background:linear-gradient(#081823f5,#08151feb),#081620e6;border:1px solid #a0c6db24;border-radius:26px;overflow:hidden}.portal-group-accordion.is-open{box-shadow:var(--shadow), inset 0 0 0 1px #6ad5ff1f;border-color:#6ad5ff4d}.portal-group-accordion.is-current{border-color:#6ad5ff61}.portal-group-trigger{width:100%;color:var(--text);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:18px;padding:22px 26px;display:flex}.portal-group-trigger__meta{align-items:center;gap:18px;min-width:0;display:flex}.portal-group-trigger__meta strong{font-family:Space Grotesk,sans-serif;font-size:1.35rem;display:block}.portal-group-trigger__side{color:var(--muted);flex:none;place-items:center end;gap:16px;font-size:.92rem;display:flex}.portal-group-trigger__chevron{width:2.2rem;height:2.2rem;color:var(--accent);background:#ffffff08;border:1px solid #a0c6db24;border-radius:999px;justify-content:center;align-items:center;font-size:1.05rem;transition:transform .22s,background .22s,border-color .22s;display:inline-flex;transform:rotate(0)}.portal-group-trigger__chevron.is-open{background:#6ad5ff14;border-color:#6ad5ff3d;transform:rotate(180deg)}.portal-group-accordion__body{opacity:0;will-change:height;height:0;transition:height .38s cubic-bezier(.22,1,.36,1),opacity .22s;overflow:hidden}.portal-group-accordion__body.is-open{opacity:1}.portal-group-accordion__inner{gap:0;padding:0 26px 24px;display:grid}.portal-group-drawer{background:linear-gradient(#102533bd,#0a1822d1),#ffffff08;border:1px solid #a0c6db1f;border-radius:24px;gap:16px;padding:18px;display:grid;box-shadow:inset 0 1px #ffffff08}.portal-member-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.portal-member-button{width:100%;min-height:104px;color:var(--text);text-align:left;background:#06121b8a;border:1px solid #a0c6db1f;border-radius:20px;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:flex}.portal-member-button:hover{background:#112532c2;border-color:#6ad5ff4d;transform:translateY(-1px);box-shadow:0 14px 26px #00000029}.portal-member-button strong{font-size:1rem;display:block}.portal-member-button span,.portal-member-button small{color:var(--muted)}.portal-member-button__copy{gap:8px;min-width:0;display:grid}.portal-member-button__action{min-height:38px;color:var(--text);white-space:nowrap;background:#ffffff0a;border:1px solid #a0c6db24;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:.84rem;display:inline-flex}.portal-member-password{color:#d8f7ff;background:#6ad5ff1a;border:1px solid #6ad5ff2e;border-radius:999px;align-items:center;gap:8px;width:fit-content;padding:6px 10px;font-size:.78rem;display:inline-flex}.portal-member-password strong{color:var(--text);font-family:Space Grotesk,sans-serif;font-size:.85rem}.portal-member-empty{color:var(--muted);text-align:center;border:1px dashed #a0c6db2e;border-radius:20px;padding:24px 18px}.portal-login-password-hint{color:var(--muted);background:#6ad5ff14;border:1px solid #6ad5ff2e;border-radius:16px;margin:0;padding:12px 14px;line-height:1.55}.viewer-layout--compact{grid-template-columns:minmax(0,1fr) 300px;align-items:stretch}.workspace-canvas-shell{min-width:0;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex:1;padding:0;display:flex;overflow:hidden}.workspace-canvas-shell .canvas-shell,.workspace-canvas-shell .canvas-stage{min-width:0}.workspace-canvas-shell .canvas-shell{flex:1}.workspace-canvas-shell .canvas-stage,.workspace-canvas-shell .canvas-stage.is-compact{height:100%;min-height:0}.viewer-main,.viewer-side,.panel--canvas{min-height:0}.viewer-main,.panel--canvas{display:flex}.panel--canvas{flex-direction:column}.panel,.viewer-side{padding:24px}.admin-shell--editor .panel,.admin-shell--editor .viewer-side{padding:18px}.viewer-side{overflow:auto}.viewer-side p{color:var(--muted);margin:0 0 14px;line-height:1.65}.viewer-side--compact{padding:16px}.viewer-side--compact p{font-size:.96rem}.admin-layout{flex:1;grid-template-columns:minmax(240px,.82fr) minmax(0,2.08fr) minmax(232px,.74fr);align-items:stretch;gap:12px;height:100%;min-height:0;display:grid}.admin-layout.is-assets-collapsed{grid-template-columns:136px minmax(0,2.08fr) minmax(232px,.74fr)}.user-admin-layout{flex:1;grid-template-columns:minmax(320px,.82fr) minmax(0,1.18fr);gap:22px;min-height:0;display:grid}.user-admin-sidebar,.user-admin-editor{flex-direction:column;min-height:0;display:flex}.user-admin-sidebar{gap:18px}.user-admin-filters{gap:14px;display:grid}.user-admin-filter-badge{justify-self:start}.user-admin-list{gap:12px;padding-right:6px;display:grid;overflow:auto}.user-admin-list-item{width:100%;color:var(--text);text-align:left;background:#ffffff08;border:1px solid #a0c6db24;border-radius:18px;gap:12px;padding:16px 18px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:grid}.user-admin-list-item:hover{background:#1125328a;border-color:#6ad5ff33;transform:translateY(-1px)}.user-admin-list-item.is-active{background:linear-gradient(135deg,#6ad5ff2e,#1ba7d71f);border-color:#6ad5ff61;box-shadow:inset 0 0 0 1px #6ad5ff14}.user-admin-list-item strong{font-size:1rem}.user-admin-list-item span,.user-admin-list-item small{color:var(--muted)}.user-admin-editor .auth-form{gap:22px}.user-admin-password-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.user-admin-section{background:#ffffff06;border:1px solid #a0c6db1f;border-radius:20px;gap:14px;padding:18px;display:grid}.user-admin-section h3{margin:0;font-family:Space Grotesk,sans-serif;font-size:1.05rem}.admin-layout.is-sidebar-collapsed{grid-template-columns:minmax(248px,.88fr) minmax(0,1.95fr) 136px}.admin-layout.is-assets-collapsed.is-sidebar-collapsed{grid-template-columns:136px minmax(0,2.08fr) 136px}.panel-section--scroll{flex:1;min-height:0;padding-right:8px;overflow:auto}.panel-empty{min-height:220px;color:var(--muted);text-align:center;place-items:center;display:grid}.stacked-actions{gap:10px;display:grid}.tool-switch{grid-template-columns:1fr;gap:12px;display:grid}.tool-hint{background:#1ba7d71a;border:1px solid #6ad5ff2e;border-radius:16px;gap:8px;padding:14px;display:grid}.tool-hint strong{font-size:.94rem}.tool-hint span{color:var(--muted);font-size:.9rem}.tool-workspace{flex:1;align-content:start;gap:12px;min-height:0;padding:4px 0 0;display:grid;overflow:auto}.tool-workspace__header{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;display:grid}.tool-workspace__badge{width:2rem;height:2rem;color:var(--accent);background:#6ad5ff14;border:1px solid #6ad5ff2e;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.tool-workspace__badge svg{width:.9rem;height:.9rem}.tool-workspace__copy{gap:4px;display:grid}.tool-workspace__copy strong{font-size:.92rem}.tool-workspace__copy span{color:var(--muted);font-size:.8rem;line-height:1.5}.tool-workspace__grid{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:8px;display:grid}.tool-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.tool-choice{width:100%;min-height:52px;color:var(--text);text-align:center;background:#ffffff08;border:1px solid #a0c6db1f;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:7px 5px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:flex}.tool-choice:hover{background:#1125328a;border-color:#6ad5ff33;transform:translateY(-1px)}.tool-choice.is-active{background:linear-gradient(135deg,#6ad5ff33,#1ba7d71f);border-color:#6ad5ff66;box-shadow:inset 0 0 0 1px #ffffff0a}.tool-choice__icon{width:1.85rem;height:1.85rem;color:var(--accent);background:#051017ad;border:1px solid #a0c6db29;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.tool-choice__icon svg{width:.84rem;height:.84rem}.tool-choice__copy{justify-items:center;gap:0;display:grid}.tool-choice__copy strong{font-size:.74rem;line-height:1.1}.tool-choice__copy span{display:none}.tool-mini-card{width:100%;min-width:0;color:var(--text);text-align:left;background:#ffffff08;border:1px solid #a0c6db1a;border-radius:14px;align-content:start;gap:6px;padding:10px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:grid}button.tool-mini-card{cursor:pointer}button.tool-mini-card:hover{background:#1125328a;border-color:#6ad5ff33;transform:translateY(-1px)}.tool-mini-card.is-active{background:linear-gradient(135deg,#6ad5ff2e,#1ba7d71a);border-color:#6ad5ff61;box-shadow:inset 0 0 0 1px #6ad5ff14}.tool-mini-card--static{cursor:default}.tool-mini-card--wide{grid-column:1/-1}.tool-mini-card strong{font-size:.8rem}.tool-mini-card>span:last-child{color:var(--muted);font-size:.74rem;line-height:1.45}.tool-mini-card__visual{min-height:28px;color:var(--accent);align-items:center;display:inline-flex}.tool-chip-row{flex-wrap:wrap;gap:6px;display:flex}.tool-chip{color:#dff7ff;background:#6ad5ff14;border:1px solid #6ad5ff29;border-radius:999px;align-items:center;min-height:26px;padding:0 8px;font-size:.7rem;line-height:1;display:inline-flex}.tool-arrow-preview{width:100%;max-width:72px;height:24px}.tool-zone-preview{width:100%;max-width:76px;height:34px}.tool-zone-preview--shape{background:#6ad5ff24;border:2px solid;border-radius:10px;width:52px;height:30px}.tool-zone-preview--shape.is-circle{border-radius:999px}.tool-text-preview{color:#dff7ff;letter-spacing:.04em;background:#6ad5ff14;border:1px solid #6ad5ff29;border-radius:10px;justify-content:center;min-width:48px;min-height:30px;padding:0 10px;font-family:Space Grotesk,sans-serif;font-size:.8rem}.tool-context-card{background:linear-gradient(#112532a8,#0a161fc7),#08141ee0;border:1px solid #6ad5ff2e;border-radius:18px;gap:12px;padding:14px;display:grid}.tool-context-card__header{align-items:flex-start;gap:12px;display:flex}.tool-context-card__icon{width:2.8rem;height:2.8rem;color:var(--accent);background:#6ad5ff1f;border:1px solid #6ad5ff2e;border-radius:15px;flex:none;justify-content:center;align-items:center;display:inline-flex}.tool-context-card__icon svg{width:1.15rem;height:1.15rem}.tool-context-card__copy{gap:4px;display:grid}.tool-context-card__copy strong{font-size:.95rem}.tool-context-card__copy span{color:var(--muted);font-size:.82rem;line-height:1.45}.tool-context-card__body{gap:12px;display:grid}.tool-context-card__text{color:var(--muted);margin:0;font-size:.84rem;line-height:1.55}.tool-inline-note{color:var(--muted);background:#ffffff06;border:1px solid #a0c6db1a;border-radius:14px;margin:0;padding:10px 12px;font-size:.82rem;line-height:1.5}.tool-status{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tool-status__pill{min-height:38px;color:var(--text);background:#ffffff0a;border:1px solid #6ad5ff2e;border-radius:999px;align-items:center;padding:0 14px;font-size:.88rem;display:inline-flex}.tool-accordion-group{gap:12px}.tool-accordion{background:#ffffff06;border:1px solid #a0c6db1f;border-radius:20px;overflow:hidden}.tool-accordion.is-open{background:#11253280;border-color:#6ad5ff3d;box-shadow:0 18px 38px #00000024}.tool-accordion__header{width:100%;color:var(--text);text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.tool-accordion__summary{align-items:center;gap:12px;min-width:0;display:flex}.tool-accordion__summary strong{font-size:.98rem}.tool-accordion__icon,.tool-card__icon{flex:none;justify-content:center;align-items:center;display:inline-flex}.tool-accordion__icon{width:2.6rem;height:2.6rem;color:var(--accent);background:#6ad5ff1f;border:1px solid #6ad5ff2e;border-radius:14px}.tool-accordion__icon svg,.tool-card__icon svg,.admin-sidebar__open svg{width:1.1rem;height:1.1rem}.tool-accordion__chevron{min-width:2rem;color:var(--muted);justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:inline-flex}.tool-accordion__body{gap:14px;padding:0 18px 18px;display:grid}.tool-card-grid{gap:10px;display:grid}.tool-card{width:100%;color:var(--text);text-align:left;background:#ffffff08;border:1px solid #a0c6db1f;border-radius:18px;align-items:flex-start;gap:12px;padding:14px 16px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:flex}.tool-card:hover{background:#11253294;border-color:#6ad5ff33;transform:translateY(-1px)}.tool-card.is-active{background:linear-gradient(135deg,#6ad5ff38,#1ba7d729);border-color:#6ad5ff6b;box-shadow:inset 0 0 0 1px #ffffff0a}.tool-card__icon{width:2.5rem;height:2.5rem;color:var(--accent);background:#051017a3;border:1px solid #a0c6db24;border-radius:14px}.tool-card__meta{gap:4px;min-width:0;display:grid}.tool-card__meta strong{font-size:.95rem}.tool-card__meta span{color:var(--muted);font-size:.84rem;line-height:1.45}.admin-layout>.panel,.viewer-side{flex-direction:column;min-height:0;display:flex;overflow:hidden}.asset-grid{flex:1;min-height:0;padding-right:4px;overflow:auto}.canvas-shell{flex:1;min-width:0;min-height:0;display:flex}.canvas-stage{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:#060e15e6;border:1px solid #a0c6db29;border-radius:26px;flex:1;min-height:clamp(560px,78vh,1100px);position:relative;overflow:hidden}.canvas-stage.is-compact{min-height:clamp(560px,80vh,1100px)}.canvas-stage.is-panning{cursor:grabbing}.canvas-toolbar{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#07121be0;border:1px solid #a0c6db29;border-radius:999px;align-items:center;gap:10px;padding:10px;display:flex;position:absolute;top:18px;right:18px;box-shadow:0 14px 32px #00000038}.canvas-toolbar__button{min-width:40px;height:40px;color:var(--text);background:#ffffff0a;border:1px solid #a0c6db2e;border-radius:999px;padding:0 14px;font-weight:700}.canvas-toolbar__button--wide{min-width:88px}.canvas-toolbar__ratio{text-align:center;min-width:56px;color:var(--muted);font-size:.84rem;font-weight:600}.canvas-guide{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#07121be6;border:1px solid #6ad5ff3d;border-radius:18px;gap:8px;max-width:min(360px,100% - 36px);padding:14px 16px;display:grid;position:absolute;top:18px;left:18px;box-shadow:0 14px 32px #0003}.canvas-guide strong{font-size:.95rem}.canvas-guide span{color:var(--muted);font-size:.88rem;line-height:1.45}.canvas-guide__button{min-height:36px;color:var(--text);background:#ffffff0a;border:1px solid #a0c6db2e;border-radius:999px;justify-self:start;padding:0 14px}.canvas-context-menu{z-index:12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#07121bf5;border:1px solid #a0c6db29;border-radius:18px;gap:6px;width:210px;padding:8px;display:grid;position:absolute;box-shadow:0 18px 42px #00000047}.canvas-context-menu button{width:100%;min-height:40px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;padding:0 12px;display:flex}.canvas-context-menu button:hover{background:#ffffff0f}.canvas-context-menu button.is-danger{color:#ffb0b0}.canvas-viewport{transform-origin:0 0;will-change:transform;width:2800px;height:1800px;position:absolute;top:0;left:0}.canvas-grid{pointer-events:none;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:34px 34px;position:absolute;inset:0}.canvas-board{background:linear-gradient(#ffffff09 1px,#0000 1px) 0 0/34px 34px,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/34px 34px,radial-gradient(circle at top,#61beff0f,#0000 42%),#081119f0;width:2800px;height:1800px;position:relative}.canvas-board__frame{background:linear-gradient(#ffffff08,#ffffff03),#f5f6f808;border:1px solid #ffffff29;border-radius:22px;position:absolute;inset:40px;overflow:hidden}.canvas-board__background{object-fit:cover;opacity:.84;width:100%;height:100%;position:absolute;inset:0}.canvas-empty-stage{z-index:1;pointer-events:none;text-align:center;background:linear-gradient(#ffffff09 1px,#0000 1px) 0 0/34px 34px,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/34px 34px,radial-gradient(circle at top,#61beff0f,#0000 42%),#081119f0;align-content:center;place-items:center;gap:16px;padding:clamp(28px,4vw,52px);display:grid;position:absolute;inset:0}.canvas-empty-stage strong{font-family:Space Grotesk,sans-serif;font-size:clamp(1.7rem,2.8vw,2.4rem)}.canvas-empty-stage span{max-width:44rem;color:var(--muted);font-size:clamp(1rem,1.35vw,1.18rem);line-height:1.7}.canvas-zone{color:#eaffece6;background:#8ddc6c2e;border:1px solid #50b45066;border-radius:8px;align-items:flex-end;padding:12px;font-size:.88rem;display:flex;position:absolute}.canvas-zone--north{width:32%;height:34%;top:26px;right:22px}.canvas-zone--south{width:52%;height:46%;bottom:22px;right:22px}.canvas-caption{color:#ff8484f0;font-size:.86rem;position:absolute;left:18px}.canvas-caption--wan{bottom:160px}.canvas-connections{pointer-events:none;position:absolute;inset:0}.canvas-cable-group{pointer-events:auto}.canvas-cable-hit{fill:none;stroke:#0000;stroke-width:18px;cursor:pointer}.canvas-cable{fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #5fd5ff2e)}.canvas-cable.is-dashed{stroke-dasharray:10 8}.canvas-cable.is-selected{stroke-width:4.6px}.canvas-cable-handle{fill:#f0b34a;stroke:#08111a;stroke-width:2px;cursor:grab}.canvas-cable-handle-button{z-index:260;cursor:grab;background:#f0b34a;border:2px solid #08111a;border-radius:999px;width:18px;height:18px;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 20px #0000003d}.canvas-cable-label rect{fill:#08141edb;stroke:#a0c6db24}.canvas-cable-label text{fill:var(--text);font-size:.72rem}.canvas-node{color:var(--text);text-align:left;background:0 0;border:1px solid #0000;border-radius:24px;align-content:start;gap:10px;padding:12px;display:grid;position:absolute;overflow:visible}.canvas-node__media{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08121a6b;border-radius:20px;place-items:center;height:100%;min-height:0;display:grid;overflow:hidden}.canvas-node__media img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:100%}.canvas-node__meta{gap:3px;padding:0 6px;display:grid}.canvas-node__meta strong{font-size:.9rem;line-height:1.25}.canvas-node__meta span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}.canvas-node__fallback{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#02131b;border-radius:18px;justify-content:center;align-items:center;width:72px;height:72px;font-weight:700;display:inline-flex}.canvas-node.is-editable{cursor:grab}.canvas-node.is-selected .canvas-node__media{outline-offset:4px;outline:2px solid #6ad5ffcc}.canvas-node.is-cable-start .canvas-node__media{outline-offset:4px;outline:2px solid #f0b34ae6}.canvas-node.is-dragging{z-index:100;transform:scale(1.02)}.canvas-node.is-resizing{z-index:100}.canvas-node.is-image .canvas-node__meta{text-align:center;justify-items:center}.canvas-drawing{place-items:center;min-width:0;min-height:0;display:grid;position:absolute}.canvas-drawing.is-draft{pointer-events:none;opacity:.9}.canvas-drawing__square,.canvas-drawing__shape,.canvas-drawing__arrow,.canvas-drawing__text{width:100%;height:100%}.canvas-drawing__square{border:2px solid var(--accent);background:#6ad5ff24;border-radius:22px;box-shadow:inset 0 0 0 1px #ffffff0a}.canvas-drawing__arrow{overflow:visible}.canvas-drawing__text{text-align:left;word-break:break-word;text-shadow:0 10px 22px #00000042;justify-content:flex-start;align-items:center;padding:8px 12px;font-weight:700;line-height:1.2;display:flex}.canvas-drawing__badge{max-width:calc(100% - 24px);color:var(--text);white-space:nowrap;text-overflow:ellipsis;background:#08141ee0;border:1px solid #a0c6db29;border-radius:999px;padding:6px 10px;font-size:.72rem;position:absolute;inset:auto auto 12px 12px;overflow:hidden}.canvas-drawing__control{cursor:grab;background:#f0b34a;border:2px solid #08111a;border-radius:999px;width:16px;height:16px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 20px #0000003d}.canvas-drawing.is-selected .canvas-drawing__square,.canvas-drawing.is-selected .canvas-drawing__shape,.canvas-drawing.is-selected .canvas-drawing__arrow,.canvas-drawing.is-selected .canvas-drawing__text{filter:drop-shadow(0 0 .8rem #6ad5ff47)}.canvas-drawing__resize{background:var(--accent-warm);border:2px solid #08111a;border-radius:999px;position:absolute;box-shadow:0 10px 20px #0000003d}.canvas-drawing__resize--x{cursor:ew-resize;width:14px;height:38px;top:50%;right:-8px;transform:translateY(-50%)}.canvas-drawing__resize--y{cursor:ns-resize;width:38px;height:14px;bottom:-8px;left:50%;transform:translate(-50%)}.canvas-drawing__resize--xy{cursor:nwse-resize;width:18px;height:18px;bottom:-9px;right:-9px}.canvas-drawing__endpoint{z-index:2;background:linear-gradient(#f0b34a,#d6811c);border:2px solid #08111a;border-radius:999px;width:24px;height:24px;padding:0;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 20px #0000003d}.canvas-drawing__endpoint--start,.canvas-drawing__endpoint--end{cursor:grab}.canvas-node__resize{background:var(--accent-warm);border:2px solid #08111a;border-radius:999px;position:absolute;box-shadow:0 10px 20px #0000003d}.canvas-node__resize--x{cursor:ew-resize;width:14px;height:38px;top:50%;right:-8px;transform:translateY(-50%)}.canvas-node__resize--y{cursor:ns-resize;width:38px;height:14px;bottom:-8px;left:50%;transform:translate(-50%)}.canvas-node__resize--xy{cursor:nwse-resize;width:18px;height:18px;bottom:-9px;right:-9px}.asset-grid{gap:18px;display:grid}.admin-sidebar{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:hidden}.admin-sidebar__hero{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.admin-sidebar__hero-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:10px;display:flex}.admin-sidebar__hero-copy{gap:8px;display:grid}.admin-sidebar__hero-copy h2{margin:0}.admin-sidebar__create{flex-shrink:0;min-width:0;padding-inline:16px}.panel-collapse-button{width:42px;height:42px;color:var(--text);background:#ffffff0a;border:1px solid #a0c6db29;border-radius:999px;justify-content:center;align-items:center;transition:transform .18s,border-color .18s,background .18s;display:inline-flex}.panel-collapse-button:hover{background:#6ad5ff14;border-color:#6ad5ff3d;transform:translateY(-1px)}.panel-collapse-button svg{width:18px;height:18px}.panel-section--compact{gap:14px}.admin-sidebar__tools-section{flex-direction:column;flex:1;min-height:0;display:flex}.schema-quickbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;display:grid}.schema-quickbar__field{min-width:0}.schema-quickbar__action{min-height:48px;padding-inline:16px}.admin-sidebar__section-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-sidebar__section-head strong{font-size:.98rem;display:block}.eyebrow--compact{margin-bottom:4px;font-size:.7rem}.ghost-button--soft{min-height:38px;padding-inline:14px}.ghost-button--soft.is-active{color:#dff7ff;background:#6ad5ff1f;border-color:#6ad5ff52}.admin-sidebar--collapsed,.asset-library-panel--collapsed{align-content:start;justify-items:center;padding:14px 10px;display:grid}.panel-bubble__button{width:min(100%,94px);min-height:102px;color:var(--text);text-align:center;background:linear-gradient(#0d1f2af0,#081620e6),#ffffff0a;border:1px solid #a0c6db29;border-radius:30px;align-content:center;justify-items:center;gap:10px;padding:14px 10px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:grid}.panel-bubble__button:hover{background:linear-gradient(#122937f5,#0a1b26eb),#ffffff0d;border-color:#6ad5ff4d;transform:translateY(-1px);box-shadow:inset 0 0 0 1px #6ad5ff14}.panel-bubble__toggle{color:#dff7ff;background:#6ad5ff24;border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.2rem;line-height:1;display:inline-flex}.panel-bubble__label{color:var(--muted);overflow-wrap:anywhere;font-size:.82rem;line-height:1.3}.visual-choice-grid{gap:10px;display:grid}.visual-choice-grid--compact{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-choice{width:100%;color:var(--text);text-align:left;background:#ffffff08;border:1px solid #a0c6db1f;border-radius:18px;gap:10px;padding:14px;transition:transform .18s,border-color .18s,background .18s;display:grid}.visual-choice:hover{border-color:#6ad5ff3d;transform:translateY(-1px)}.visual-choice.is-active{background:#6ad5ff14;border-color:#6ad5ff57}.visual-choice__preview{background:#071118a3;border:1px solid #a0c6db1f;border-radius:14px;place-items:center;min-height:62px;display:grid}.visual-choice__preview svg{width:100%;height:100%}.visual-choice__shape{border:3px solid var(--accent);width:54px;height:38px}.visual-choice__align{color:var(--muted);font-size:.82rem}.visual-choice__copy{gap:4px;display:grid}.visual-choice__copy span{color:var(--muted);font-size:.82rem;line-height:1.45}.text-style-toggle-row{gap:10px;display:flex}.text-style-toggle-row>button{min-width:44px;padding-inline:0;font-weight:700}.asset-empty-state{background:#ffffff08;border:1px dashed #a0c6db33;border-radius:18px;gap:6px;padding:16px;display:grid}.asset-empty-state span{color:var(--muted)}.asset-library-panel{min-height:0}.asset-library-panel__header{align-items:start;gap:14px;display:grid}.asset-library-panel__controls{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-width:0;display:grid}.asset-view-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;display:grid}.asset-view-switch__button{width:100%;min-width:0;min-height:44px;color:var(--text);white-space:nowrap;background:#ffffff08;border:1px solid #a0c6db29;border-radius:999px;padding:0 14px}.asset-view-switch__button.is-active{background:#6ad5ff1f;border-color:#6ad5ff52}.asset-mode-card{background:#ffffff08;border:1px solid #a0c6db1f;border-radius:18px;gap:6px;padding:14px 16px;display:grid}.asset-mode-card span{color:var(--muted);font-size:.88rem;line-height:1.5}.asset-management-list{gap:12px;min-height:0;padding-right:4px;display:grid;overflow:auto}.asset-management-row{background:#ffffff08;border:1px solid #a0c6db1f;border-radius:18px;align-items:center;gap:12px;padding:12px;display:grid}.asset-inventory-grid{grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:8px;min-height:0;padding:4px;display:grid;overflow:auto}.asset-management-row{grid-template-columns:64px minmax(0,1fr) minmax(0,220px)}.asset-inventory-slot{aspect-ratio:1;cursor:grab;background:linear-gradient(#ffffff0d,#ffffff03),#071118b8;border:1px solid #a0c6db24;border-radius:8px;place-items:center;min-width:0;padding:7px;transition:transform .16s,border-color .16s,background .16s;display:grid;position:relative;box-shadow:inset 0 0 0 1px #ffffff08,inset 0 -8px 18px #0000002e}.asset-inventory-slot:hover,.asset-inventory-slot:focus-visible{background:linear-gradient(#6ad5ff14,#ffffff03),#071118c7;border-color:#6ad5ff70;transform:translateY(-1px)}.asset-inventory-slot:active{cursor:grabbing}.asset-inventory-slot img{object-fit:contain;border-radius:6px;width:100%;height:100%}.asset-inventory-slot__badge{background:var(--accent);border-radius:999px;width:8px;height:8px;position:absolute;bottom:5px;right:5px;box-shadow:0 0 0 2px #071118e6}.asset-management-row img{object-fit:contain;background:#07111899;border-radius:14px;width:64px;height:64px}.asset-management-row__copy{gap:4px;min-width:0;display:grid}.asset-management-row__copy span{color:var(--muted);text-overflow:ellipsis;font-size:.84rem;overflow:hidden}.asset-management-stack{gap:14px}.asset-management-stack__upload{width:100%}.asset-management-row__folder{min-width:0}.asset-management-row__actions{align-content:start;gap:10px;display:grid}.asset-management-row__actions .ghost-button{width:100%}.asset-card{background:#ffffff08;border:1px solid #a0c6db1f;border-radius:20px;gap:14px;padding:16px;display:grid}.asset-card img{aspect-ratio:4/3;object-fit:contain;background:#07111899;border-radius:14px;width:100%}.asset-card__body{gap:4px;display:grid}.asset-card__body span{color:var(--muted);font-size:.86rem}.asset-card__actions{gap:10px;margin-top:2px;display:grid}.modal-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;background:#030a0fb3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-card{border:1px solid var(--border-strong);width:min(760px,100%);box-shadow:var(--shadow);background:#08141ef5;border-radius:24px;padding:30px}.modal-card--editor{grid-template-rows:auto minmax(0,1fr) auto;gap:18px;width:min(780px,100%);max-height:min(88vh,920px);display:grid}.modal-card--narrow{width:min(640px,100%)}.modal-card__header{justify-content:space-between;gap:18px;margin-bottom:18px;padding-right:50px;display:flex;position:relative}.modal-card__header h2{margin:0;font-family:Space Grotesk,sans-serif;font-size:2rem}.modal-card__subtitle{color:var(--muted);margin:8px 0 0;line-height:1.55}.modal-card__content{gap:14px;padding-right:6px;display:grid;overflow:auto}.modal-card__actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.drawing-editor-modal{width:min(920px,100%)}.drawing-editor-modal__content{gap:18px}.drawing-editor-section{background:#ffffff08;border:1px solid #a0c6db1f;border-radius:20px;gap:14px;padding:16px;display:grid}.drawing-editor-section--grid{gap:16px}.drawing-editor-section__title{gap:4px;display:grid}.drawing-editor-section__title strong{font-size:1rem}.drawing-editor-section__title span{color:var(--muted);font-size:.88rem;line-height:1.5}.drawing-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.drawing-choice-grid--compact{grid-template-columns:repeat(3,minmax(0,1fr))}.drawing-choice-card{width:100%;color:var(--text);text-align:left;background:#ffffff08;border:1px solid #a0c6db1f;border-radius:18px;gap:10px;padding:14px;transition:transform .18s,border-color .18s,background .18s;display:grid}.drawing-choice-card:hover{border-color:#6ad5ff3d;transform:translateY(-1px)}.drawing-choice-card.is-active{background:#6ad5ff14;border-color:#6ad5ff57}.drawing-choice-card__preview{background:#071118a3;border:1px solid #a0c6db1f;border-radius:14px;place-items:center;min-height:68px;display:grid}.drawing-choice-card__preview svg{width:100%;height:100%}.drawing-choice-card__shape{border:3px solid var(--accent);width:56px;height:40px}.drawing-choice-card__copy{gap:4px;display:grid}.drawing-choice-card__copy span{color:var(--muted);font-size:.84rem;line-height:1.45}.drawing-choice-card__align{color:var(--muted);font-size:.82rem}.drawing-text-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.drawing-text-toolbar__font{min-width:0}.drawing-text-toolbar__toggle-group{gap:10px;display:flex}.drawing-text-toolbar__toggle-group>button{min-width:44px;padding-inline:0;font-weight:700}.drawing-text-preview-card{background:#0711188f;border:1px solid #a0c6db1a;border-radius:18px;gap:10px;padding:14px;display:grid}.drawing-text-preview-card>span{color:var(--muted);font-size:.84rem}.drawing-text-preview-card__content{white-space:pre-wrap;word-break:break-word;background:#ffffff0a;border:1px solid #a0c6db1a;border-radius:14px;min-height:96px;padding:14px}.drawing-editor-modal__footer{gap:14px;display:grid}.drawing-editor-modal__layer-actions{flex-wrap:wrap;gap:10px;display:flex}.confirm-modal__details{gap:10px;margin-bottom:6px;display:grid}.help-widget{z-index:36;justify-items:start;gap:12px;display:grid;position:fixed;bottom:22px;left:22px}.help-widget__toggle{width:52px;height:52px;color:var(--accent);background:#08141ef0;border:1px solid #6ad5ff3d;border-radius:999px;font-family:Space Grotesk,sans-serif;font-size:1.35rem;font-weight:700;box-shadow:0 18px 36px #0000003d}.help-widget__panel{width:min(340px,100vw - 32px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#08141ef5;border:1px solid #a0c6db29;border-radius:22px;gap:14px;padding:18px;display:grid}.help-widget__header{justify-content:space-between;align-items:flex-start;gap:14px;padding-right:46px;display:flex;position:relative}.help-widget__header h2{margin:0;font-family:Space Grotesk,sans-serif;font-size:1.2rem}.help-widget__description,.help-widget__note{color:var(--muted);margin:0;font-size:.92rem;line-height:1.55}.help-widget__list{gap:10px;display:grid}.help-widget__item{color:var(--text);background:#ffffff08;border:1px solid #a0c6db1a;border-radius:16px;padding:12px 14px;font-size:.9rem;line-height:1.5}.popup-editor-card{background:#1125326b;border:1px solid #6ad5ff2e;border-radius:18px;gap:14px;padding:16px;display:grid}.popup-editor-card__copy{gap:6px;display:grid}.popup-editor-card__copy span{color:var(--muted);font-size:.88rem;line-height:1.5}.popup-editor-card__summary{background:#ffffff08;border:1px solid #a0c6db1a;border-radius:16px;gap:8px;padding:14px;display:grid}.popup-editor-card__summary span{color:var(--muted);font-size:.88rem}.popup-editor-card__summary strong{color:var(--text)}.popup-mode-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.popup-mode-switch .ghost-button{border-radius:14px}.popup-layout-actions{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;display:flex}.popup-add-control{grid-template-columns:minmax(170px,1fr) 40px;gap:8px;min-width:min(260px,100%);display:grid}.popup-add-control select{width:100%;min-height:40px;color:var(--text);background:#071118bd;border:1px solid #a0c6db29;border-radius:14px;outline:none;padding:0 14px}.popup-layout-list{gap:10px;display:grid}.popup-layout-row{background:#07111873;border:1px solid #a0c6db1a;border-radius:16px;grid-template-columns:112px minmax(0,1fr) auto;align-items:end;gap:12px;padding:12px;display:grid}.popup-layout-row__toggle{min-height:46px;color:var(--muted);align-items:center;gap:9px;font-size:.9rem;display:flex}.popup-layout-row__toggle input{width:18px;height:18px;accent-color:var(--accent)}.popup-layout-row__label{min-width:0}.popup-layout-row__fields{gap:10px;min-width:0;display:grid}.popup-layout-row--custom{grid-template-columns:112px minmax(0,1fr) minmax(280px,auto)}.popup-layout-row__order{flex-wrap:wrap;gap:8px;display:flex}.icon-button{width:40px;height:40px;color:var(--text);background:#ffffff08;border:1px solid #a0c6db38;border-radius:12px;place-items:center;padding:0;font-weight:800;line-height:1;transition:transform .18s,background .18s,border-color .18s;display:inline-grid}.icon-button:hover{background:#6ad5ff1c;border-color:#6ad5ff61;transform:translateY(-1px)}.icon-button:disabled{opacity:.48;cursor:not-allowed;transform:none}.icon-button--danger{color:#ffd4d4;border-color:#ff6b6b47}.icon-button--danger:hover{background:#ff6b6b1a;border-color:#ff6b6b75}.icon-button--add{color:#d8ffe6;background:#74d49b1f;border-color:#74d49b57;font-size:1.24rem}.switch-port-editor{gap:10px;display:grid}.switch-port-editor__row{border:1px solid color-mix(in srgb, var(--vlan-color) 46%, transparent);background:linear-gradient(90deg, color-mix(in srgb, var(--vlan-color) 17%, transparent), transparent 52%), #0711187a;border-radius:16px;grid-template-columns:48px minmax(118px,.72fr) minmax(92px,.4fr) minmax(0,1fr) 40px;align-items:end;gap:10px;padding:12px;display:grid}.switch-port-editor__number{background:color-mix(in srgb, var(--vlan-color) 28%, #ffffff0a);border:1px solid color-mix(in srgb, var(--vlan-color) 58%, transparent);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:12px;place-items:center;margin-bottom:4px;padding:0;font-weight:800;transition:transform .18s,border-color .18s,background .18s;display:inline-grid}.switch-port-editor__number:hover{border-color:color-mix(in srgb, var(--vlan-color) 78%, transparent);transform:translateY(-1px)}.switch-port-editor__color{position:relative}.switch-port-editor__palette{z-index:5;background:#050f16f5;border:1px solid #a0c6db2e;border-radius:12px;grid-template-columns:repeat(5,22px);gap:6px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 16px 34px #00000057}.switch-port-editor__swatch{border:1px solid #ffffff42;border-radius:7px;width:22px;height:22px;padding:0}.switch-port-editor__swatch.is-active{box-shadow:0 0 0 2px #ffffff57}.switch-port-editor__description{min-width:0}.switch-port-editor__description textarea{resize:vertical;min-height:46px}.mobile-restriction-page{align-items:center}.mobile-restriction-card{width:min(560px,100%)}.mobile-restriction-card__lead{color:var(--muted);margin:0;line-height:1.7}.mobile-restriction-card__actions{gap:12px;margin-top:22px;display:grid}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.detail-row{background:#ffffff08;border:1px solid #a0c6db1a;border-radius:16px;gap:4px;padding:14px 16px;display:grid}.detail-row span{color:var(--muted);font-size:.84rem}.detail-row strong{word-break:break-word}.detail-row strong .password-value{justify-content:flex-start}.detail-row--wide{grid-column:1/-1}.switch-display{gap:16px;display:grid}.switch-display__shell{background:linear-gradient(#ffffff14,#0000),#040d13e6;border:1px solid #a0c6db29;border-radius:18px;padding:16px;box-shadow:inset 0 0 0 1px #ffffff08}.switch-display__brand{color:var(--muted);letter-spacing:0;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:.78rem;font-weight:800;display:flex}.switch-display__ports{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;display:grid}.switch-display__port{border:1px solid color-mix(in srgb, var(--vlan-color) 64%, transparent);background:linear-gradient(180deg, color-mix(in srgb, var(--vlan-color) 26%, transparent), transparent), #08161ee0;min-height:54px;box-shadow:inset 0 -4px 0 color-mix(in srgb, var(--vlan-color) 55%, transparent);color:var(--text);cursor:pointer;border-radius:10px;gap:4px;padding:8px 6px;transition:transform .16s,border-color .16s,background .16s;display:grid}.switch-display__port:hover,.switch-display__port:focus-visible,.switch-display__port[aria-pressed=true]{border-color:color-mix(in srgb, var(--vlan-color) 82%, transparent);transform:translateY(-1px)}.switch-display__port span,.switch-display__port strong{text-align:center;display:block}.switch-display__port span{color:var(--muted);font-size:.72rem}.switch-display__port strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;overflow:hidden}.switch-display__notes{grid-template-columns:1fr;gap:10px;display:grid}.switch-display__note{border:1px solid color-mix(in srgb, var(--vlan-color) 48%, transparent);background:color-mix(in srgb, var(--vlan-color) 13%, #ffffff08);border-radius:14px;gap:8px;padding:12px;display:grid}.switch-display__note div{justify-content:space-between;align-items:center;gap:10px;display:flex}.switch-display__note span{color:var(--text);font-weight:800}.switch-display__note strong{background:color-mix(in srgb, var(--vlan-color) 24%, #ffffff0a);color:var(--text);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:.76rem}.switch-display__note p{color:var(--muted);white-space:pre-wrap;margin:0;font-size:.88rem;line-height:1.45}.screen-loader{place-items:center;min-height:60vh;display:grid}.screen-loader--inline{min-height:45vh}.screen-loader__card{background:#0a1924d1;border:1px solid #a0c6db24;border-radius:24px;justify-items:center;gap:16px;padding:26px 30px;display:grid}.app-shell--compact{width:100%;max-width:none;margin:0;padding-top:22px}.loader-ring{border:4px solid #6ad5ff2e;border-top-color:var(--accent);border-radius:50%;width:42px;height:42px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1200px){body{overflow:auto}.auth-page,.viewer-layout,.admin-layout,.user-admin-layout{grid-template-columns:1fr}.app-shell,.admin-shell{height:auto;overflow:visible}.workspace-shell{height:100svh;overflow:hidden}.workspace-actions-drawer,.editor-header-drawer{width:min(360px,100vw - 28px);top:18px;bottom:18px;right:18px}.stats-row{grid-template-columns:1fr}}@media (width<=1600px){.admin-shell--editor{padding:12px}.admin-layout{grid-template-columns:minmax(214px,.76fr) minmax(0,1.96fr) minmax(218px,.74fr);gap:12px}.admin-layout.is-assets-collapsed{grid-template-columns:120px minmax(0,1.96fr) minmax(218px,.74fr)}.admin-layout.is-sidebar-collapsed{grid-template-columns:minmax(214px,.76fr) minmax(0,1.96fr) 120px}.admin-layout.is-assets-collapsed.is-sidebar-collapsed{grid-template-columns:120px minmax(0,1.96fr) 120px}.admin-shell--editor .panel,.admin-shell--editor .viewer-side{padding:16px}}@media (width<=720px){.auth-page,.app-shell,.admin-shell{padding:16px}.auth-hero,.auth-panel,.panel,.topbar{padding:18px}.credential-strip,.field-grid,.detail-grid,.popup-layout-row,.popup-mode-switch,.switch-port-editor__row,.switch-display__ports,.switch-display__notes{grid-template-columns:1fr}.popup-layout-actions,.popup-layout-row__order{justify-content:stretch}.popup-layout-row__order .icon-button{flex:1;width:auto}.schema-quickbar{grid-template-columns:1fr}.tool-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-workspace__grid{grid-template-columns:1fr}.admin-sidebar__hero{flex-direction:column}.topbar{align-items:flex-start}.topbar__actions,.topbar__actions>*{width:100%}.workspace-topbar__trigger{width:100%;min-width:0}.workspace-actions-drawer{width:auto;padding:20px;inset:12px}.workspace-shell{gap:8px;padding:10px}.workspace-canvas-shell{min-height:0}.workspace-canvas-shell .canvas-stage,.workspace-canvas-shell .canvas-stage.is-compact{border-radius:20px;min-height:calc(100svh - 110px)}.canvas-toolbar{gap:8px;padding:8px;top:12px;right:12px}.canvas-toolbar__button{min-width:36px;height:36px;padding-inline:12px;font-size:.92rem}.canvas-toolbar__ratio{min-width:48px;font-size:.9rem}.help-widget{bottom:14px;left:14px}.editor-toolbar__trigger{width:100%;min-width:0}.editor-header-drawer{width:auto;padding:20px;inset:12px}}
