:root{--v-red: #7c2d3a;--v-red-hover: #661f2c;--v-red-light: #a8535f;--v-red-on-dark: #d4767e;--v-red-wash: rgb(124 45 58 / .07);--v-ink: #14161b;--v-ink-2: #3a3f4a;--v-muted: #62666f;--v-surface: #f2f3f5;--v-card: #ffffff;--v-surface-2: #eef0f3;--v-red-solid: #7c2d3a;--v-ok-wash: #ecfdf3;--v-warn-wash: #fffbeb;--v-danger-wash: #fef2f2;--v-line: #e4e6ea;--v-line-strong: #d3d7de;--v-ok: #1a7f4b;--v-warn: #96601a;--v-danger: #a32222;--r-control: 7px;--r-card: 12px;--r-pill: 999px;--s-1: .25rem;--s-2: .5rem;--s-3: .75rem;--s-4: 1rem;--s-6: 1.5rem;--s-8: 2rem;--shadow-pop: 0 10px 30px rgb(20 22 27 / .12);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.55;font-variant-numeric:tabular-nums}[data-theme=dark]{--v-ink: #e8ebf1;--v-ink-2: #c2c8d4;--v-muted: #9198a6;--v-surface: #101318;--v-surface-2: #1b1f27;--v-card: #171b22;--v-line: #282d37;--v-line-strong: #3a4151;--v-red: #dd8b93;--v-red-hover: #e8a1a8;--v-red-light: #b86770;--v-red-solid: #8d3a47;--v-red-wash: rgb(221 139 147 / .12);--v-ok: #5fd39a;--v-warn: #e0a95f;--v-danger: #f08a8a;--v-ok-wash: rgb(95 211 154 / .12);--v-warn-wash: rgb(224 169 95 / .12);--v-danger-wash: rgb(240 138 138 / .12);--shadow-pop: 0 14px 40px rgb(0 0 0 / .5);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--v-ink: #e8ebf1;--v-ink-2: #c2c8d4;--v-muted: #9198a6;--v-surface: #101318;--v-surface-2: #1b1f27;--v-card: #171b22;--v-line: #282d37;--v-line-strong: #3a4151;--v-red: #dd8b93;--v-red-hover: #e8a1a8;--v-red-light: #b86770;--v-red-solid: #8d3a47;--v-red-wash: rgb(221 139 147 / .12);--v-ok: #5fd39a;--v-warn: #e0a95f;--v-danger: #f08a8a;--v-ok-wash: rgb(95 211 154 / .12);--v-warn-wash: rgb(224 169 95 / .12);--v-danger-wash: rgb(240 138 138 / .12);--shadow-pop: 0 14px 40px rgb(0 0 0 / .5);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--v-surface);color:var(--v-ink);-webkit-font-smoothing:antialiased}h1{font-size:1.75rem;line-height:1.2;letter-spacing:-.02em;margin:0 0 var(--s-4)}h2{font-size:1.3rem;line-height:1.3;letter-spacing:-.01em;margin:0 0 var(--s-3)}h3{font-size:1rem;line-height:1.4;margin:0 0 var(--s-2)}:focus-visible{outline:2px solid var(--v-red);outline-offset:2px;border-radius:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.center{display:grid;place-items:center;min-height:100vh}.brand-sm{font-weight:700;letter-spacing:.1em}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;background:var(--v-card)}.auth-topbar{width:100%;max-width:520px;display:flex;justify-content:flex-end;padding:1.25rem 1.5rem 0}.auth-shell{width:100%;max-width:460px;padding:1.5rem 1.5rem 3rem;display:flex;flex-direction:column}.auth-mark{width:116px;height:96px;align-self:center;margin:1.5rem 0 1.75rem}.auth-title{font-size:1.55rem;font-weight:700;text-align:center;margin:0;letter-spacing:-.01em;line-height:1.25;color:var(--v-ink)}.auth-intro{text-align:center;color:#5b6270;font-size:.92rem;margin:.75rem 0 0;line-height:1.5}.auth-body{display:flex;flex-direction:column;gap:1.1rem;margin-top:2.25rem}.field{display:flex;flex-direction:column;gap:.55rem}.field-label{font-size:.92rem;font-weight:600;color:#3f4653;letter-spacing:.06em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.field-required{color:var(--v-red)}.field input:not([type=checkbox]):not([type=radio]):not([type=color]),input.mono{width:100%;box-sizing:border-box;padding:1rem 1.1rem;font-size:1rem;background:var(--v-surface-2);border:1px solid transparent;border-radius:10px;color:var(--v-ink);transition:border-color .12s,background .12s}.field input:not([type=checkbox]):not([type=radio]):focus{outline:none;background:var(--v-card);border-color:var(--v-red);box-shadow:0 0 0 3px #82323a24}.field input.mono{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:0}button.primary{width:100%;padding:.85rem 1rem;margin-top:var(--s-1);border:0;border-radius:var(--r-control);cursor:pointer;background:var(--v-red-solid);color:#fff;font:inherit;font-size:.95rem;font-weight:600;transition:background .14s ease}button.primary:hover:not(:disabled){background:var(--v-red-hover)}button.primary:disabled{opacity:.45;cursor:default}button.secondary{flex:1;padding:.8rem 1rem;border-radius:var(--r-control);cursor:pointer;background:var(--v-card);border:1px solid var(--v-line-strong);color:var(--v-ink-2);font:inherit;font-size:.92rem;transition:border-color .14s ease,color .14s ease}button.secondary:hover{border-color:var(--v-ink-2);color:var(--v-ink)}.button-row{display:flex;gap:.6rem}.auth-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem}.auth-link{background:none;border:0;padding:0;cursor:pointer;color:var(--v-ink-2);font-size:.95rem;text-decoration:underline;text-underline-offset:3px}.auth-link:hover{color:var(--v-red)}.auth-body .auth-link{align-self:center;margin-top:.25rem}.hint-inline{color:var(--v-muted);font-size:.82rem;margin:-.5rem 0 0}.error{color:var(--v-red);font-size:.88rem;margin:0}button{padding:.6rem .95rem;border:0;border-radius:var(--r-control);cursor:pointer;background:var(--v-red-solid);color:#fff;font:inherit;font-size:.92rem;font-weight:500;transition:background .14s ease}button:not([class]):hover:not(:disabled){background:var(--v-red-hover)}button:disabled{opacity:.45;cursor:default}button.link{background:none;color:var(--v-ink-2);padding:.35rem .1rem;text-decoration:none;font-weight:500}button.link:hover{background:none;color:var(--v-ink);text-decoration:underline;text-underline-offset:3px}input,select,textarea{padding:.55rem .7rem;border:1px solid var(--v-line-strong);border-radius:var(--r-control);background:var(--v-card);color:var(--v-ink);font:inherit;font-size:.92rem;transition:border-color .14s ease}input:hover,select:hover{border-color:var(--v-muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--v-red)}input::placeholder{color:var(--v-muted)}.page{max-width:1040px;margin:0 auto;padding:var(--s-8) var(--s-6) 4rem}header{display:flex;align-items:center;gap:var(--s-4);padding-bottom:var(--s-4);margin-bottom:var(--s-6);border-bottom:1px solid var(--v-line)}header .brand-sm{font-size:.95rem}header .brand-sm{margin-right:auto}.quota{font-size:.85rem;color:var(--v-muted)}.row{display:flex;gap:.5rem;margin-bottom:1.5rem}.row input{flex:1}.projects{list-style:none;padding:0;margin:0;background:var(--v-card);border:1px solid var(--v-line);border-radius:var(--r-card);overflow:hidden}.projects li{display:flex;align-items:center;gap:var(--s-3);padding:.85rem var(--s-4);border-bottom:1px solid var(--v-line)}.projects li:last-child{border-bottom:0}.projects li:hover{background:var(--v-surface)}.projects li button{margin-left:auto}.projects li.empty{display:block;border-bottom:0;background:none;border:0;padding:var(--s-8) var(--s-4)}.empty{display:block;padding:var(--s-8) var(--s-4);text-align:center;color:var(--v-muted);font-size:.9rem;background:none;border:1px dashed var(--v-line-strong);border-radius:var(--r-card)}.card-top{display:flex;justify-content:flex-end;margin-bottom:.5rem}.lang{padding:.35rem .5rem;border:1px solid var(--v-line);border-radius:6px;background:var(--v-card);font-size:.85rem;color:var(--v-ink-2)}header .lang{margin-left:.5rem}.quota{margin-left:auto;font-size:.85rem;color:var(--v-ink-2)}.preview-controls{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem}.device{width:390px;height:760px;margin:0 auto;border-radius:28px;overflow:hidden;border:10px solid #0b0f19;box-shadow:0 12px 32px #0b0f192e;display:flex}.device>*{flex:1}.device-dark{border-color:#000}.hint{text-align:center;color:var(--v-muted);font-size:.8rem;margin-top:1rem}.muted{color:var(--v-muted);font-size:.88rem;margin:0}.auth-heading{font-size:1.35rem;font-weight:700;color:var(--v-ink);margin:2rem 0 0;letter-spacing:-.01em}.auth-heading+.auth-intro{text-align:left;margin-top:.7rem}.auth-heading+.auth-intro strong{color:var(--v-ink);font-weight:700}.codes{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.codes li{background:var(--v-surface-2);border-radius:10px;padding:.95rem .5rem;text-align:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95rem;letter-spacing:.05em;color:var(--v-ink)}button.chip{flex:1;padding:.95rem 1rem;border:0;border-radius:10px;background:var(--v-surface-2);color:var(--v-ink-2);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92rem}button.chip:hover{background:var(--v-surface-2)}.editor{display:flex;flex-direction:column;height:100vh;background:var(--v-surface)}.editor-bar{display:flex;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--v-card);border-bottom:1px solid var(--v-line)}.editor-name{font-weight:700}.editor-rev{font-family:ui-monospace,Menlo,monospace;font-size:.78rem;color:var(--v-muted)}.editor-actions{margin-left:auto;display:flex;align-items:center;gap:.4rem}button.primary.compact{width:auto;padding:.5rem 1.1rem;margin:0;font-size:.88rem}.editor-error,.editor-issues{margin:0;padding:.5rem 1rem;font-size:.85rem}.editor-issues{background:var(--v-warn-wash);color:#92400e;border-bottom:1px solid #fed7aa}.editor-grid{flex:1;display:grid;grid-template-rows:minmax(0,1fr);min-height:0}.dock{background:var(--v-card);overflow-y:auto;display:flex;flex-direction:column;border-right:1px solid var(--v-line)}.dock.right{border-right:0;border-left:1px solid var(--v-line)}.dock-section{border-bottom:1px solid var(--v-line)}.dock-head{display:flex;align-items:center;background:var(--v-surface)}.dock-title{flex:1;display:flex;align-items:center;gap:.3rem;border:0;background:none;cursor:pointer;text-align:left;padding:.42rem .6rem;font-size:.7rem;font-weight:600;letter-spacing:0;color:var(--v-ink-2)}.dock-title:hover{color:var(--v-ink)}.dock-caret{font-size:.6rem;width:.7rem}.dock-actions{display:flex;gap:.1rem;padding-right:.35rem;opacity:0}.dock-head:hover .dock-actions{opacity:1}.dock-move{border:0;background:none;cursor:pointer;font-size:.7rem;color:var(--v-ink-2);padding:.1rem .2rem}.dock-move:hover{color:var(--v-ink)}.dock-body{padding:.6rem;overflow-y:auto}.dock-resize{height:5px;cursor:row-resize;background:transparent;border-bottom:1px solid transparent}.dock-resize:hover{background:var(--v-red);opacity:.35}.dock-body .panel-title:first-child{margin-top:0}.dock-reset{margin:.6rem;border:1px solid var(--v-line);background:var(--v-card);border-radius:5px;padding:.3rem;cursor:pointer;font-size:.7rem;color:var(--v-ink-2)}.dock-reset:hover{background:var(--v-surface)}.dock-divider{background:var(--v-line);cursor:col-resize}.dock-divider:hover{background:var(--v-primary)}.panel{background:var(--v-card);border-right:1px solid var(--v-line);overflow-y:auto;padding:.9rem}.panel:last-child{border-right:0;border-left:1px solid var(--v-line)}.panel-title{font-size:.78rem;letter-spacing:0;color:var(--v-muted);margin:0 0 .75rem}.panel-hint{font-size:.78rem;color:var(--v-muted);margin:.5rem 0 0;line-height:1.4}.palette-group{margin-bottom:1rem}.palette-category{font-size:.72rem;color:var(--v-muted);margin:0 0 .4rem;font-weight:600}.palette-items{display:flex;flex-wrap:wrap;gap:.3rem}.palette-item{padding:.35rem .6rem;font-size:.78rem;border-radius:6px;background:var(--v-surface-2);color:var(--v-ink-2);border:0;cursor:pointer}.palette-item:hover:not(:disabled){background:var(--v-red);color:#fff}.palette-item:disabled{opacity:.35;cursor:not-allowed}.tree-list,.tree-list ul{list-style:none;padding:0;margin:0}.tree-row{display:flex;align-items:center;gap:.4rem;padding:.3rem .4rem;border-radius:5px;cursor:pointer;font-size:.8rem}.tree-row:hover{background:var(--v-surface)}.tree-row.selected{background:var(--v-red);color:#fff}.tree-row.selected .tree-id{color:#ffffffb3}.tree-label{flex:1}.tree-id{font-family:ui-monospace,Menlo,monospace;font-size:.68rem;color:#b0b4bd}.tree-actions{display:none;gap:.15rem}.tree-row:hover .tree-actions{display:flex}.tree-actions button{background:none;border:0;color:inherit;cursor:pointer;padding:0 .25rem;font-size:.85rem}.canvas{display:flex;flex-direction:column;min-height:0;background:var(--v-surface)}.canvas-bar{padding:.5rem 1rem;border-bottom:1px solid var(--v-line);background:var(--v-card)}.breadcrumb{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}.breadcrumb button{background:none;border:0;padding:.1rem .3rem;cursor:pointer;font-size:.76rem;color:var(--v-muted);border-radius:4px}.breadcrumb button:hover{background:var(--v-surface-2)}.breadcrumb button.current{color:var(--v-red);font-weight:700}.canvas-stage{flex:1;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-content:center;overflow:auto;padding:1.25rem;min-height:0}@media(max-width:1350px){.canvas-stage{padding:.75rem}}.inspector-fields{display:flex;flex-direction:column;gap:.8rem}.insp-row{display:flex;flex-direction:column;gap:.3rem}.insp-inline{flex-direction:row;align-items:center;gap:.5rem}.insp-label{font-size:.74rem;color:var(--v-muted);font-weight:600}.insp-row input[type=text],.insp-row input[type=number],.insp-row input[type=url],.insp-row select{padding:.4rem .5rem;font-size:.82rem;border:1px solid var(--v-line);border-radius:6px;background:var(--v-card);width:100%;box-sizing:border-box}.insp-locale{display:flex;align-items:center;gap:.35rem}.insp-locale-tag{font-family:ui-monospace,Menlo,monospace;font-size:.66rem;background:var(--v-surface-2);padding:.15rem .3rem;border-radius:4px;color:var(--v-muted)}.insp-locale-tag.primary{background:var(--v-red);color:#fff}.insp-group{border-top:1px solid var(--v-line);padding-top:.7rem}.insp-grid{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.insp-option{display:flex;gap:.25rem;align-items:center}.insp-option button{background:none;border:0;color:var(--v-muted);cursor:pointer;padding:0 .3rem}.insp-add{align-self:flex-start;background:var(--v-surface-2);color:var(--v-ink-2);border:0;border-radius:6px;padding:.25rem .7rem;cursor:pointer}.project-open{background:none;border:0;padding:0;color:var(--v-ink);font-size:1rem;cursor:pointer;text-align:left}.project-open:hover{color:var(--v-red);text-decoration:underline}.left-panel{display:flex;flex-direction:column;gap:1.2rem}.nav-panel{display:flex;flex-direction:column;gap:.4rem}.chip-row{display:flex;gap:.3rem;flex-wrap:wrap}.toggle{padding:.3rem .65rem;font-size:.76rem;border-radius:6px;background:var(--v-surface-2);color:var(--v-ink-2);border:1px solid transparent;cursor:pointer}.toggle.on{background:var(--v-red);color:#fff}.nav-style{width:100%;padding:.35rem .5rem;font-size:.8rem;border:1px solid var(--v-line);border-radius:6px;background:var(--v-card)}.screen-list{list-style:none;padding:0;margin:0}.screen-list li{display:flex;align-items:center;gap:.3rem}.screen-row{flex:1;text-align:left;background:none;border:0;cursor:pointer;padding:.32rem .4rem;border-radius:5px;font-size:.8rem;color:var(--v-ink)}.screen-row:hover{background:var(--v-surface)}.screen-row.selected{background:var(--v-red);color:#fff}.screen-menu input{cursor:pointer}.frame{display:flex;overflow:hidden;box-shadow:0 12px 32px #0b0f1929}.frame>*{flex:1}.frame-mobile{width:390px;height:760px;border-radius:28px;border:10px solid #0b0f19}.frame-web{width:1000px;height:620px;border-radius:10px;border:1px solid var(--v-line);border-top:26px solid #e7eaef}.frame.device-dark{border-color:#000}.frame-web.device-dark{border-top-color:#2a2f3a}.project-platforms{margin-left:.75rem;font-size:.75rem;color:var(--v-muted)}.row .chip-row{flex-shrink:0}.drop-slot{height:4px;border-radius:2px;margin:1px .4rem 1px 0}.drop-slot.over{background:var(--v-red);box-shadow:0 0 0 1px var(--v-red)}.tree-inside{display:flex;align-items:center;gap:.4rem;flex:1;border-radius:4px;padding:0 2px}.tree-inside.droppable{outline:1px dashed transparent}.tree-inside.over{outline:1px dashed var(--v-red);background:#82323a14}.tree-row.selected .tree-inside.over{background:#ffffff2e}.tree-row.is-dragging{opacity:.4}.drag-ghost{background:var(--v-red);color:#fff;padding:.3rem .7rem;border-radius:6px;font-size:.78rem;pointer-events:none;box-shadow:0 6px 16px #0b0f1947}.drag-overlay,.drag-overlay *{pointer-events:none!important}.palette-item.is-dragging{opacity:.4}.palette-item,.tree-row{touch-action:none}.screen-flag{margin-left:.3rem;opacity:.6}.screen-action{background:none;border:0;color:var(--v-muted);cursor:pointer;padding:0 .2rem;font-size:.85rem}.screen-action:hover{color:var(--v-red)}.screen-rename{flex:1;padding:.25rem .4rem;font-size:.8rem;border:1px solid var(--v-red);border-radius:5px}.screen-add{display:flex;gap:.25rem;margin-top:.4rem}.screen-add input{flex:1;padding:.3rem .45rem;font-size:.78rem;border:1px solid var(--v-line);border-radius:6px}.screen-add button{padding:.3rem .6rem;font-size:.85rem}html,body{max-width:100%;overflow-x:hidden}.editor{overflow:hidden}.editor-grid>*{min-width:0;min-height:0}.panel{min-width:0;overflow:auto;overscroll-behavior:contain}.palette-items{min-width:0}.palette-item{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-list{min-width:0}.tree-label,.screen-row{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas{min-width:0;overflow:hidden}.insp-color{display:flex;align-items:center;gap:.35rem}.insp-sublabel{font-size:.72rem;color:var(--v-muted);width:3.6rem;flex-shrink:0}.insp-color select{flex:1;padding:.3rem .4rem;font-size:.78rem;border:1px solid var(--v-line);border-radius:5px;background:var(--v-card)}.insp-color input[type=color]{width:28px;height:26px;padding:0;border:1px solid var(--v-line);border-radius:5px;background:none;cursor:pointer}.tab-row{display:flex;gap:.25rem;margin-bottom:.6rem}.tab{flex:1;padding:.35rem;font-size:.76rem;border:0;border-radius:6px;background:var(--v-surface-2);color:var(--v-ink-2);cursor:pointer}.tab.on{background:var(--v-red-solid);color:#fff}.theme-panel{display:flex;flex-direction:column;gap:.4rem}.theme-subtitle{font-size:.78rem;letter-spacing:0;color:var(--v-muted);margin:.9rem 0 .3rem}.theme-colors{display:flex;flex-direction:column;gap:.2rem}.theme-row{display:flex;align-items:center;gap:.4rem;font-size:.76rem}.theme-row input[type=color]{width:26px;height:22px;padding:0;border:1px solid var(--v-line);border-radius:4px;background:none;cursor:pointer;flex-shrink:0}.theme-token{flex:1;color:var(--v-ink-2)}.theme-hex{font-family:ui-monospace,Menlo,monospace;font-size:.68rem;color:#a0a5ae}.contrast-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.15rem}.contrast-list li{display:flex;align-items:center;gap:.4rem;font-size:.73rem;padding:.15rem .3rem;border-radius:4px}.contrast-list li.ok{color:var(--v-ok);background:var(--v-ok-wash)}.contrast-list li.fail{color:var(--v-danger);background:var(--v-danger-wash)}.contrast-pair{flex:1}.contrast-ratio{font-family:ui-monospace,Menlo,monospace}.theme-option{display:flex;align-items:center;gap:.4rem;font-size:.76rem;margin-top:.25rem}.theme-option>span:first-child{flex:1;color:var(--v-ink-2)}.theme-option select{padding:.25rem .4rem;font-size:.76rem;border:1px solid var(--v-line);border-radius:5px;background:var(--v-card)}.theme-option input[type=range]{width:90px}.icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.2rem}.icon-cell{display:grid;place-items:center;aspect-ratio:1;border:1px solid transparent;border-radius:5px;background:var(--v-surface-2);color:var(--v-ink-2);cursor:pointer;font-size:.7rem;padding:0}.icon-cell:hover{background:var(--v-surface-2)}.icon-cell.on{background:var(--v-red);color:#fff}.insp-warning{font-size:.72rem;color:#92400e;background:var(--v-warn-wash);margin:.3rem 0 0;padding:.3rem .4rem;border-radius:5px;line-height:1.35}.panel,.panel *{min-width:0}.panel input,.panel select,.panel button{max-width:100%}.screen-add input,.screen-list li,.theme-row,.theme-option{min-width:0}.screen-add input{flex:1 1 0}.theme-option>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contrast-pair{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-stage{min-width:0}.frame-mobile{width:390px;max-width:100%;height:auto;aspect-ratio:39 / 76;max-height:100%}.frame-web{width:1000px;max-width:100%;height:auto;aspect-ratio:100 / 62;max-height:100%}.export-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b0f1973;display:grid;place-items:center;z-index:50;padding:2rem}.export-dialog{background:var(--v-card);border-radius:12px;width:min(1100px,100%);height:min(760px,100%);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 50px #0b0f194d}.export-bar{display:flex;align-items:center;gap:1rem;padding:.8rem 1.1rem;border-bottom:1px solid var(--v-line)}.export-title{font-size:1rem;margin:0}.export-actions{margin-left:auto;display:flex;align-items:center;gap:.5rem}.export-error{margin:0;padding:.6rem 1.1rem}.export-empty{flex:1;display:grid;place-items:center;align-content:center;gap:1rem;padding:2rem;text-align:center}.export-empty .muted{max-width:30rem}.export-empty button.primary{width:auto;padding:.8rem 1.6rem}.export-body{flex:1 1 auto;display:grid;grid-template-columns:260px minmax(0,1fr);min-height:320px}.export-tabs{margin:0 1.1rem;flex:0 0 auto}.export-pane{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.2rem 1.1rem 1.2rem}.export-files{list-style:none;margin:0;padding:.5rem;overflow-y:auto;border-right:1px solid var(--v-line)}.export-file{width:100%;text-align:left;background:none;border:0;cursor:pointer;padding:.32rem .5rem;border-radius:5px;font-size:.76rem;font-family:ui-monospace,Menlo,monospace;color:var(--v-ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-file:hover{background:var(--v-surface)}.export-file.selected{background:var(--v-red);color:#fff}.export-code{margin:0;padding:1rem;overflow:auto;background:#0b0f19;color:#e8eaf0;font-size:.78rem;line-height:1.55;min-width:0}.canvas-stage{position:relative}.canvas-drop{position:absolute;pointer-events:none;border-radius:4px;z-index:5}.canvas-drop-before,.canvas-drop-after{background:var(--v-red);box-shadow:0 0 0 1px var(--v-red)}.canvas-drop-inside{outline:2px dashed var(--v-red);background:#82323a1a}.preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--v-surface);z-index:60;display:flex;flex-direction:column}.preview-bar{display:flex;align-items:center;gap:1rem;padding:.7rem 1.1rem;background:var(--v-card);border-bottom:1px solid var(--v-line)}.preview-controls{margin-left:auto;display:flex;align-items:center;gap:.4rem}.preview-stage{flex:1;display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;align-content:center;overflow:auto;padding:1.5rem}.insp-tablerow{display:flex;gap:.2rem;align-items:center}.insp-tablerow input{min-width:0;flex:1}.insp-tablerow button{background:none;border:0;color:var(--v-muted);cursor:pointer;padding:0 .25rem}.backend-toggle{align-self:flex-start;padding:.3rem 0}.backend-picker{border:1px solid var(--v-line);border-radius:10px;padding:.9rem;display:flex;flex-direction:column;gap:1rem;background:var(--v-surface-2)}.backend-section{display:flex;flex-direction:column;gap:.5rem}.backend-title{font-size:.8rem;letter-spacing:0;color:var(--v-muted);margin:0}.backend-options{display:flex;flex-direction:column;gap:.45rem;padding-left:.1rem}.backend-check{display:flex;align-items:center;gap:.45rem;font-size:.85rem;color:var(--v-ink-2);cursor:pointer}.backend-oauth{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.backend-required{color:var(--v-red)}.binding-row{display:flex;gap:.2rem;align-items:center;flex-wrap:wrap}.binding-row select,.binding-row input{flex:1;min-width:0;padding:.28rem .35rem;font-size:.75rem;border:1px solid var(--v-line);border-radius:5px;background:var(--v-card)}.binding-row button{background:none;border:0;color:var(--v-muted);cursor:pointer;padding:0 .2rem}.editor-meta{display:flex;gap:.5rem;align-items:center;font-size:.72rem;color:var(--v-muted);cursor:help}.editor-meta-item{background:var(--v-surface);padding:.15rem .45rem;border-radius:4px;white-space:nowrap}@media(max-width:1250px){.editor-meta{display:none}}.menu-structure{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem}.menu-group{background:var(--v-surface-2);border-radius:6px;padding:.4rem .5rem}.menu-group-head{display:flex;align-items:center;gap:.3rem}.menu-group-name{flex:1;font-size:.8rem;font-weight:600;color:var(--v-ink)}.menu-group-items{list-style:none;margin:.25rem 0 0;padding:0 0 0 .7rem;font-size:.76rem;color:var(--v-muted)}.menu-group-items li{padding:.1rem 0}.menu-group-form{display:flex;flex-direction:column;gap:.35rem;border:1px solid var(--v-line);border-radius:6px;padding:.5rem}.menu-group-form input[type=text],.menu-group-form input:not([type]){padding:.3rem .45rem;font-size:.78rem;border:1px solid var(--v-line);border-radius:5px}.menu-entry{display:flex;align-items:center;gap:.3rem;padding:.2rem .1rem}.menu-entry-name{flex:1;font-size:.8rem;color:var(--v-ink)}.screen-action.on{color:var(--v-red);font-weight:700}.backend-layouts{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.backend-layouts>.insp-sublabel{white-space:nowrap}.layout-choices{display:flex;gap:.4rem}.layout-choice{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.45rem .3rem;border:1px solid var(--v-line);border-radius:7px;background:var(--v-card);cursor:pointer;font-size:.72rem;color:var(--v-ink-2)}.layout-choice:hover{border-color:#c4c9d2}.layout-choice.on{border-color:var(--v-red);background:var(--v-red-wash);color:var(--v-red)}.layout-preview{width:100%;height:30px}.layout-preview .lp-card{fill:var(--v-card);stroke:var(--v-line-strong);stroke-width:1}.layout-preview .lp-line{fill:var(--v-line-strong)}.layout-preview .lp-accent{fill:currentColor;opacity:.55}.layout-choice.on .lp-accent{opacity:1}.backend-field{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--v-ink-2)}.backend-field input{padding:.35rem .5rem;font-size:.8rem;border:1px solid var(--v-line);border-radius:5px}.assist-panel{display:flex;flex-direction:column;gap:.4rem;min-width:0;padding-bottom:.8rem;margin-bottom:.8rem;border-bottom:1px solid var(--v-line)}.assist-input{width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:.5rem .6rem;font-size:.82rem;line-height:1.45;font-family:inherit;border:1px solid var(--v-line);border-radius:6px;min-height:6.5rem;resize:vertical}.assist-result{background:var(--v-surface);border-radius:6px;padding:.5rem .6rem;display:flex;flex-direction:column;gap:.4rem}.assist-note{font-size:.82rem;color:var(--v-ink);margin:0;line-height:1.4}.assist-changes{list-style:none;margin:0;padding:0;font-size:.78rem;font-family:ui-monospace,Menlo,monospace;color:var(--v-ink-2)}.assist-changes li{padding:.1rem 0}.assist-head{display:flex;align-items:center;gap:.4rem}.assist-head .panel-title{flex:1;margin:0}.assist-quota{font-size:.7rem;color:var(--v-muted);background:var(--v-surface);padding:.1rem .35rem;border-radius:4px;cursor:help}.assist-quota.low{color:var(--v-warn);background:var(--v-warn-wash)}.assist-context{font-size:.74rem;color:var(--v-muted);margin:0;line-height:1.4}.assist-context .link{font-size:.74rem;padding:0}.right-column{display:flex;flex-direction:column;min-height:0;overflow-y:auto}.right-column .inspector{flex:1;min-height:0;padding:0}.assist-errors{list-style:none;margin:0;padding:0;font-size:.76rem;color:var(--v-warn);line-height:1.4}.assist-errors li{padding:.1rem 0}.assist-raw{font-size:.74rem;color:var(--v-muted)}.assist-raw summary{cursor:pointer;padding:.2rem 0}.assist-raw pre{margin:.3rem 0 0;padding:.4rem;background:var(--v-surface-2);border-radius:4px;font-size:.68rem;line-height:1.4;white-space:pre-wrap;word-break:break-all;max-height:12rem;overflow-y:auto}.assist-hint{font-size:.74rem;color:var(--v-muted);margin:0;line-height:1.4}.schema-panel{display:flex;flex-direction:column;gap:.5rem}.schema-entity{border:1px solid var(--v-line);border-radius:7px;padding:.45rem .55rem;display:flex;flex-direction:column;gap:.35rem}.schema-entity-head{display:flex;align-items:center;gap:.35rem}.schema-entity-name{flex:1;font-size:.82rem;font-weight:600;color:var(--v-ink)}.schema-toggle{background:none;border:none;cursor:pointer;padding:0 .2rem;color:var(--v-muted);font-size:.8rem}.schema-ident{font-size:.66rem;color:var(--v-muted);font-family:ui-monospace,Menlo,monospace}.schema-field{background:var(--v-surface);border-radius:5px;padding:.35rem .45rem;display:flex;flex-direction:column;gap:.3rem}.schema-field-head{display:flex;align-items:center;gap:.35rem}.schema-label{flex:1;min-width:0;padding:.2rem .35rem;font-size:.78rem;border:1px solid transparent;border-radius:4px;background:transparent}.schema-label:hover,.schema-label:focus{border-color:var(--v-line);background:var(--v-card)}.schema-field-body{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.schema-field-body select{font-size:.74rem;padding:.15rem .3rem}.schema-flag{display:flex;align-items:center;gap:.2rem;font-size:.72rem;color:var(--v-ink-2)}.schema-options{padding:.25rem .4rem;font-size:.74rem;border:1px solid var(--v-line);border-radius:4px}.schema-add{display:flex;gap:.3rem}.schema-add input{flex:1;min-width:0;padding:.3rem .45rem;font-size:.78rem;border:1px solid var(--v-line);border-radius:5px}.schema-problems{list-style:none;margin:0;padding:.4rem .5rem;font-size:.74rem;color:var(--v-warn);background:var(--v-warn-wash);border-radius:5px;line-height:1.4}.insp-data{display:flex;flex-direction:column;gap:.3rem;padding:.5rem 0 .6rem;border-bottom:1px solid var(--v-line);margin-bottom:.6rem}.insp-data select{font-size:.78rem;padding:.25rem .35rem}.hint-inline.warn{color:var(--v-warn)}.insp-filter-row{display:flex;align-items:center;gap:.25rem}.insp-filter-row select,.insp-filter-row input{min-width:0;flex:1;font-size:.74rem;padding:.2rem .3rem;border:1px solid var(--v-line);border-radius:4px}.project-meta{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.project-badge{font-size:.68rem;color:var(--v-ink-2);background:var(--v-surface-2);border-radius:4px;padding:.1rem .35rem;white-space:nowrap}.project-badge.rev{font-family:ui-monospace,Menlo,monospace;color:var(--v-muted)}.delivery{border-top:1px solid var(--v-line);margin-top:.8rem;padding-top:.8rem;display:flex;flex-direction:column;gap:.4rem}.delivery-title{margin:0;font-size:.8rem;font-weight:600;color:var(--v-ink)}.delivery-repo{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.8rem}.delivery-repo code{font-size:.76rem}.delivery-actions{display:flex;gap:.4rem;align-items:center}.credentials{margin-top:2rem;border-top:1px solid var(--v-line);padding-top:1.2rem}.credentials h3{margin:0 0 .3rem;font-size:.95rem}.credential-list{list-style:none;margin:.8rem 0 0;padding:0;display:flex;flex-direction:column;gap:.9rem}.credential-list>li{border:1px solid var(--v-line);border-radius:8px;padding:.7rem .8rem}.credential-head{display:flex;align-items:center;gap:.5rem}.credential-name{font-size:.85rem;font-weight:600;color:var(--v-ink)}.credential-actions{display:flex;gap:.6rem;align-items:center;margin-top:.5rem}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.7rem}.field>span{font-size:.78rem;color:var(--v-ink-2)}.field input,.field select,.field textarea{padding:.4rem .5rem;font-size:.82rem;border:1px solid var(--v-line);border-radius:5px;font-family:inherit}.field textarea{font-family:ui-monospace,Menlo,monospace;font-size:.74rem}.schema-seed{border-top:1px dashed var(--v-line-strong);padding-top:.4rem;margin-top:.3rem;display:flex;flex-direction:column;gap:.3rem}.schema-toggle-row{background:none;border:none;cursor:pointer;padding:0;font-size:.74rem;color:var(--v-ink-2);text-align:left}.app-settings{display:flex;flex-direction:column;gap:.2rem}.key-name{font-family:ui-monospace,Menlo,monospace;font-size:.68rem}.image-preview{display:flex;align-items:center;gap:.5rem;margin:.2rem 0}.image-preview img{width:48px;height:48px;object-fit:contain;border:1px solid var(--v-line);border-radius:6px;background:var(--v-card)}.image-actions{display:flex;gap:.35rem;align-items:center}.image-url{flex:1;min-width:0}.file-button{position:relative;overflow:hidden;cursor:pointer}.file-button input[type=file]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.migrations{border-top:1px solid var(--v-line);margin-top:.8rem;padding-top:.8rem}.migration-list{list-style:none;margin:.4rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.migration-list li{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.78rem}.migration-list code{font-size:.72rem}.locale-list{display:flex;flex-direction:column;gap:.15rem;margin-top:.35rem}.locale-item input[type=checkbox]{flex:0 0 auto;width:15px;height:15px;margin:0;accent-color:var(--v-red)}.locale-item{display:flex;align-items:center;gap:.45rem;font-size:.8rem;padding:.15rem 0;cursor:pointer}.locale-item.on{color:var(--v-ink);font-weight:500}.modal.wide{max-width:620px;width:92vw;padding:0}.wizard{display:flex;flex-direction:column}.wizard-steps{display:flex;list-style:none;margin:0;padding:1rem 1.2rem 0;gap:.2rem}.wizard-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:.3rem;position:relative;color:#aab0bb;font-size:.7rem}.wizard-step:before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--v-line);z-index:0}.wizard-step:first-child:before{display:none}.wizard-step.done:before,.wizard-step.current:before{background:var(--v-red)}.wizard-dot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--v-card);border:2px solid var(--v-line);position:relative;z-index:1}.wizard-step.current .wizard-dot{border-color:var(--v-red);color:var(--v-red)}.wizard-step.done .wizard-dot{background:var(--v-red);border-color:var(--v-red);color:#fff}.wizard-step.current .wizard-step-label{color:var(--v-ink);font-weight:600}.wizard-body{padding:1.2rem;min-height:250px}.wizard-title{margin:0 0 .3rem;font-size:1.15rem;color:var(--v-ink)}.wizard-hint{margin:0 0 1rem;font-size:.82rem;color:var(--v-ink-2);line-height:1.45;opacity:.8}.wizard-actions{display:flex;justify-content:space-between;align-items:center;padding:.9rem 1.2rem;border-top:1px solid var(--v-line);background:var(--v-surface)}.wizard-actions .primary{display:inline-flex;align-items:center;gap:.35rem}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.5rem}.choice{display:flex;flex-direction:column;gap:.25rem;text-align:left;padding:.7rem .8rem;border:1px solid var(--v-line);border-radius:9px;background:var(--v-card);cursor:pointer;color:var(--v-ink-2);transition:.12s}.choice:hover{border-color:var(--v-line-strong);background:var(--v-surface-2)}.choice.on{border-color:var(--v-red);background:var(--v-red-wash);color:var(--v-red)}.choice-name{font-size:.85rem;font-weight:600;color:var(--v-ink)}.choice.on .choice-name{color:var(--v-red)}.choice-hint{font-size:.72rem;line-height:1.35;color:var(--v-ink-2);opacity:.72}.field-label{display:block;font-size:.78rem;color:var(--v-ink-2);margin:.9rem 0 .35rem}.review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem}.review-list li{display:flex;align-items:center;gap:.55rem;padding:.55rem .2rem;border-bottom:1px solid var(--v-surface-2);font-size:.85rem;color:var(--v-red)}.review-key{flex:1;color:var(--v-ink-2);opacity:.75;font-size:.8rem}.review-list strong{color:var(--v-ink);font-weight:600}.project-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem}.project-card{position:relative;border:1px solid var(--v-line);border-radius:10px;background:var(--v-card);overflow:hidden;transition:.12s}.project-card:hover{border-color:var(--v-line-strong);box-shadow:0 2px 10px #0b0f190d}.project-card .project-open{display:flex;flex-direction:column;gap:.45rem;width:100%;text-align:left;padding:.85rem;border:0;background:none;cursor:pointer}.project-card-head{display:flex;align-items:center;gap:.4rem;color:var(--v-red)}.project-card-name{font-size:.95rem;font-weight:600;color:var(--v-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-meta{display:flex;gap:.3rem;flex-wrap:wrap}.project-card-foot{margin-top:.15rem}.project-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;color:var(--v-ink-2);background:var(--v-surface);border-radius:5px;padding:.15rem .4rem}.project-chip.muted{background:none;opacity:.6;padding-left:0}.project-delete{position:absolute;top:.6rem;right:.7rem;font-size:.72rem;opacity:0;transition:.12s}.project-card:hover .project-delete{opacity:.7}.project-delete:hover{opacity:1}.project-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:2.5rem 1rem;border:1px dashed var(--v-line-strong);border-radius:10px;color:var(--v-ink-2)}.project-empty p{margin:0;font-size:.88rem}.project-empty .hint-inline{font-size:.78rem}.review-list li.over-quota strong{color:var(--v-red)}.review-list li.over-quota{background:var(--v-red-wash)}.wizard .field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.wizard .field>span:first-child{font-size:.8rem;font-weight:500;color:var(--v-ink-2)}.wizard .field input{width:100%;padding:.5rem .6rem;font-size:.9rem;border:1px solid var(--v-line);border-radius:6px;background:var(--v-card);color:var(--v-ink)}.wizard .field input:not([type=checkbox]):not([type=radio]):focus{outline:none;border-color:var(--v-red)}.wizard .field .hint-inline{margin:0;font-size:.75rem;line-height:1.4;color:var(--v-ink-2);opacity:.7}.wizard .choice-grid+.hint-inline{display:block;margin-top:.6rem}.wizard .field-label{display:block;font-size:.8rem;font-weight:500;color:var(--v-ink-2);margin:0 0 .4rem}.wizard-actions .primary,.wizard-actions .chip{width:auto;flex:0 0 auto;padding:.5rem 1.1rem;font-size:.88rem;border-radius:7px;line-height:1.3}.tab-bar{display:flex;gap:var(--s-1);margin-bottom:var(--s-6);border-bottom:1px solid var(--v-line)}.tab-bar .tab{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;border:0;background:none;cursor:pointer;padding:.55rem .85rem;font:inherit;font-size:.9rem;font-weight:500;color:var(--v-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .14s ease}.tab-bar .tab:hover{background:none;color:var(--v-ink)}.tab-bar .tab.on{color:var(--v-red);border-bottom-color:var(--v-red);font-weight:600}.create-card{border-style:dashed;border-color:var(--v-line-strong);background:var(--v-surface-2)}.create-card:hover{border-color:var(--v-red);background:var(--v-red-wash)}.create-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;width:100%;height:100%;min-height:118px;border:0;background:none;cursor:pointer;color:var(--v-red);padding:1rem}.create-tile-name{font-size:.9rem;font-weight:600}.create-tile-hint{font-size:.75rem;color:var(--v-ink-2);opacity:.7;text-align:center;line-height:1.35}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0b0f196b;overflow-y:auto}.modal{background:var(--v-card);border-radius:12px;padding:1.2rem;max-width:460px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 12px 40px #0b0f192e}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.modal-actions .primary,.modal-actions .chip{width:auto;flex:0 0 auto;padding:.45rem 1rem}.confirm-dialog{max-width:380px;text-align:center;padding:1.4rem 1.3rem 1.1rem}.confirm-icon{width:44px;height:44px;border-radius:50%;margin:0 auto .8rem;display:grid;place-items:center;background:var(--v-surface);color:var(--v-ink-2)}.confirm-icon.destructive{background:var(--v-red-wash);color:var(--v-red)}.confirm-message{margin:0 0 1.2rem;font-size:.92rem;line-height:1.5;color:var(--v-ink)}.confirm-actions{display:flex;justify-content:center;gap:.5rem}.confirm-actions button{width:auto;flex:0 0 auto;padding:.5rem 1.2rem;font-size:.88rem;border-radius:7px;cursor:pointer}.confirm-actions .danger{border:0;background:var(--v-red);color:#fff;font-weight:600}.confirm-actions .danger:hover{background:var(--v-red-hover)}.builds{border-top:1px solid var(--v-line);margin-top:.8rem;padding-top:.8rem}.build-start{display:flex;gap:.4rem;align-items:center;margin-top:.5rem}.build-start .primary{width:auto;flex:0 0 auto;padding:.4rem .9rem}.build-list{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.build-list li{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:.78rem;color:var(--v-ink-2)}.build-platform{font-weight:600;color:var(--v-ink)}.build-sha{font-size:.72rem;opacity:.7}.signup-closed{text-align:center;margin:.4rem 0 0;font-size:.82rem;line-height:1.5}.export-tabs .tab{padding:.45rem .7rem;font-size:.8rem}.panel-hint.warn{color:var(--v-red);opacity:.85}.build-manual{margin-top:.5rem}.build-command{display:block;margin:.5rem 0;padding:.55rem .7rem;background:var(--v-ink);color:#e8eaf0;border-radius:6px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.75rem;-webkit-user-select:all;user-select:all;overflow-x:auto}.template-grid{display:grid;gap:.6rem;margin-top:.8rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.template-card{display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;padding:.85rem .95rem;text-align:left;border:1px solid var(--v-line);border-radius:10px;background:var(--v-card);color:var(--v-ink);cursor:pointer;font:inherit;transition:border-color .16s,background .16s,transform .16s}.template-card:hover{border-color:var(--v-red-light);transform:translateY(-2px)}.template-card.on{border-color:var(--v-red);background:#82323a0d}.template-card b{font-size:.9rem}.template-card span{font-size:.78rem;color:var(--v-ink-2);line-height:1.4}.template-card>svg{color:var(--v-red)}.template-card.on>svg{color:var(--v-red)}.schema-length{display:flex;align-items:center;gap:.4rem;font-size:.8rem}.schema-length input{width:4.5rem;padding:.25rem .4rem}.admin{padding:.5rem 0 2rem}.admin-stats{display:grid;gap:.8rem;margin-bottom:1.6rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.admin-stat{display:flex;flex-direction:column;gap:.15rem;padding:.9rem 1rem;border:1px solid var(--v-line);border-radius:10px;background:var(--v-card)}.admin-stat>svg{color:var(--v-red);margin-bottom:.2rem}.admin-stat b{font-size:1.5rem;font-weight:700;letter-spacing:-.01em}.admin-stat span{font-size:.78rem;color:var(--v-ink-2)}.admin-stat.warn b{color:var(--v-red)}.admin-title{font-size:.95rem;font-weight:600;margin:0 0 .6rem}.admin-table{width:100%;border-collapse:collapse;font-size:.85rem}.admin-table th{text-align:left;font-weight:600;font-size:.78rem;color:var(--v-ink-2);padding:.4rem .6rem;border-bottom:1px solid var(--v-line)}.admin-table td{padding:.5rem .6rem;border-bottom:1px solid var(--v-line)}.admin-table .num{text-align:right}.admin-table .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem;color:var(--v-ink-2)}.admin-tabs{margin-bottom:1rem}.admin-tabs .tab{padding:.45rem .7rem;font-size:.82rem}.data-list-bar{display:flex;align-items:center;gap:.7rem;margin-bottom:.7rem}.data-list-bar input[type=search]{flex:1 1 auto;max-width:20rem;padding:.4rem .6rem;font-size:.85rem}.data-list-count{margin-left:auto;font-size:.78rem;color:var(--v-ink-2)}.data-list-toggle{display:flex;align-items:center;gap:.35rem;font-size:.8rem;white-space:nowrap}.admin-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.admin-table th.sortable:hover{color:var(--v-ink)}.sort-arrow{margin-left:.25rem;color:var(--v-red)}.admin-table tr.clickable{cursor:pointer}.admin-table tr.clickable:hover{background:#82323a0a}.admin-table .preview{display:block;max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--v-ink-2)}.admin-table .fail{color:var(--v-red);font-weight:600}.data-list-pager{display:flex;align-items:center;gap:.7rem;margin-top:.8rem;font-size:.82rem}.data-list-pager button{padding:.25rem .6rem}.admin-detail{max-width:52rem;width:min(52rem,92vw);max-height:86vh;overflow-y:auto}.admin-detail-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.admin-detail-bar h3{margin:0;font-size:1rem}.admin-fields{display:grid;grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0 0 1.2rem;font-size:.85rem}.admin-fields dt{color:var(--v-ink-2)}.admin-fields dd{margin:0}.admin-plain-list{list-style:none;margin:0 0 1.2rem;padding:0;font-size:.85rem;display:flex;flex-direction:column;gap:.25rem}.admin-plain-list li{display:flex;gap:.6rem;align-items:baseline}.admin-plain-list span{color:var(--v-ink-2);font-size:.8rem}.admin-code{margin:0 0 1.2rem;padding:.7rem .9rem;border-radius:8px;background:var(--v-ink);color:#e8eaf0;font-size:.78rem;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:22rem;overflow-y:auto}.billing{padding:.5rem 0 2rem}.billing-current{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;margin-bottom:1.2rem;border:1px solid var(--v-line);border-radius:10px;background:var(--v-card)}.billing-current>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem}.billing-limits{font-size:.8rem;color:var(--v-ink-2)}.billing-warn{font-size:.78rem;font-weight:600;color:var(--v-red)}.billing-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.billing-card{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-4) 1.1rem;border:1px solid var(--v-line);border-radius:var(--r-card);background:var(--v-card);color:var(--v-ink)}.billing-card.on{border-color:var(--v-red);background:#82323a0a}.billing-price{display:flex;align-items:baseline;gap:.3rem;min-height:2rem}.billing-price .amount{font-size:1.6rem;font-weight:700;letter-spacing:-.01em}.billing-price .per{font-size:.8rem;color:var(--v-ink-2)}.billing-features{list-style:none;margin:0;padding:0;flex:1 1 auto;font-size:.84rem;color:var(--v-ink-2);display:flex;flex-direction:column;gap:.2rem}.billing-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--v-red)}.billing-hint{font-size:.78rem;color:var(--v-ink-2)}.billing-note{margin-top:1.2rem}.signup-plans{border:0;margin:.4rem 0 .2rem;padding:0;display:flex;flex-direction:column;gap:.4rem}.signup-plans legend{font-size:.8rem;font-weight:600;margin-bottom:.3rem;color:var(--v-ink)}.signup-plan{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;column-gap:.5rem;padding:.55rem .75rem;cursor:pointer;border:1px solid var(--v-line);border-radius:8px;background:var(--v-card);color:var(--v-ink)}.signup-plan.on{border-color:var(--v-red);background:#82323a0a}.signup-plan b{font-size:.88rem}.signup-plan span{font-size:.82rem;justify-self:end}.signup-plan small{grid-column:2 / 4;font-size:.75rem;color:var(--v-ink-2)}.admin-page{max-width:1180px}.admin-role{font-size:.78rem;font-weight:600;color:var(--v-red);padding:.1rem .55rem;border-radius:var(--r-pill);background:var(--v-red-wash)}.admin-nav{display:inline-flex;gap:.2rem;padding:.25rem;margin:.6rem 0 1.2rem;background:var(--v-card);border:1px solid var(--v-line);border-radius:10px}.admin-nav button{border:0;background:none;padding:.45rem .9rem;border-radius:7px;font:inherit;font-size:.85rem;color:var(--v-muted);cursor:pointer}.admin-nav button:hover{color:var(--v-ink)}.admin-nav button.on{background:var(--v-red-solid);color:#fff;font-weight:600}.admin-notice{margin:0 0 1rem;padding:.6rem .9rem;border-radius:8px;font-size:.85rem}.admin-notice.ok{background:var(--v-ok-wash);color:var(--v-ok);border:1px solid #bbf7d0}.admin-notice.error{background:var(--v-danger-wash);color:var(--v-red);border:1px solid #fecaca}.stat-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat-grid.compact{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.stat{display:flex;flex-direction:column;gap:.15rem;text-align:left;font:inherit;padding:1.1rem 1.15rem;background:var(--v-card);color:var(--v-ink);border:1px solid var(--v-line);border-radius:var(--r-card);transition:border-color .14s ease,transform .14s ease}.stat.jump{cursor:pointer;text-decoration:none}.stat.jump:hover{border-color:var(--v-red-light);transform:translateY(-1px)}.stat-label{font-size:.82rem;color:var(--v-muted)}.stat-value{font-size:2rem;font-weight:650;letter-spacing:-.03em;line-height:1.1}.stat-hint{font-size:.75rem;color:var(--v-muted)}.stat.warn .stat-value{color:var(--v-red)}.dl{background:var(--v-card);border:1px solid var(--v-line);border-radius:var(--r-card);overflow:hidden}.dl-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;padding:.8rem 1rem;border-bottom:1px solid var(--v-line)}.dl-search{display:flex;align-items:center;gap:.4rem;flex:1 1 220px;max-width:22rem;padding:0 .6rem;border:1px solid var(--v-line);border-radius:8px;background:var(--v-card)}.dl-search span{color:var(--v-muted)}.dl-search input{border:0;outline:0;background:none;padding:.45rem 0;width:100%;font:inherit;font-size:.85rem}.dl-search:focus-within{border-color:var(--v-red-light)}.dl-filters{display:inline-flex;border:1px solid var(--v-line);border-radius:8px;overflow:hidden}.dl-filters button{border:0;background:var(--v-card);padding:.42rem .75rem;font:inherit;font-size:.8rem;color:var(--v-muted);cursor:pointer}.dl-filters button+button{border-left:1px solid var(--v-line)}.dl-filters button.on{background:#82323a14;color:var(--v-red);font-weight:600}.dl-count{margin-left:auto;font-size:.78rem;color:var(--v-muted)}.dl-refresh{display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid var(--v-line);background:var(--v-card);border-radius:8px;cursor:pointer;color:var(--v-muted);font-size:.95rem;line-height:1}.dl-refresh:hover{color:var(--v-ink)}.dl-scroll{overflow-x:auto}.dl-table{width:100%;border-collapse:collapse;font-size:.86rem}.dl-table th{position:sticky;top:0;background:var(--v-surface);text-align:left;white-space:nowrap;font-size:.78rem;font-weight:600;letter-spacing:0;color:var(--v-muted);padding:.6rem 1rem;border-bottom:1px solid var(--v-line)}.dl-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.dl-table th.sortable:hover{color:var(--v-ink)}.dl-table th.narrow{width:1%}.dl-table .num{text-align:right;font-variant-numeric:tabular-nums}.dl-arrow{margin-left:.3rem;font-size:.6rem;color:var(--v-red)}.dl-table td{padding:.7rem 1rem;border-bottom:1px solid var(--v-line);vertical-align:middle}.dl-table tbody tr:last-child td{border-bottom:0}.dl-table tr.clickable{cursor:pointer}.dl-table tr.clickable:hover td{background:var(--v-surface)}.dl-skeleton td span{display:block;height:.8rem;border-radius:4px;width:70%;background:linear-gradient(90deg,var(--v-surface-2) 25%,#f6f7f9 50%,var(--v-surface-2) 75%);background-size:200% 100%;animation:dl-shimmer 1.2s infinite}@keyframes dl-shimmer{to{background-position:-200% 0}}.dl-empty{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:2.4rem 1rem;color:var(--v-muted);font-size:.85rem}.dl-empty b{color:var(--v-ink)}.dl-pager{display:flex;align-items:center;justify-content:flex-end;gap:.8rem;padding:.7rem 1rem;border-top:1px solid var(--v-line);font-size:.8rem;color:var(--v-muted)}.dl-pager button{border:1px solid var(--v-line);background:var(--v-card);border-radius:7px;padding:.3rem .7rem;font:inherit;cursor:pointer}.dl-pager button:disabled{opacity:.45;cursor:default}.dl-actions-col{width:1%;text-align:right}.dl-menu{position:relative;display:inline-block}.dl-menu-trigger{display:grid;place-items:center;width:2rem;height:2rem;padding:0;border:1px solid transparent;background:none;border-radius:7px;font-size:1.1rem;line-height:1;color:var(--v-muted);cursor:pointer}.dl-menu-trigger span{display:block;margin-top:-.35em}.dl-menu-trigger:hover,.dl-menu-trigger[aria-expanded=true]{border-color:var(--v-line);background:var(--v-card);color:var(--v-ink)}.dl-menu-list{z-index:60;min-width:13rem;list-style:none;margin:0;padding:.3rem;background:var(--v-card);border:1px solid var(--v-line);border-radius:10px;box-shadow:0 10px 30px #0b0f191f}.dl-menu-list button{display:block;width:100%;text-align:left;border:0;background:none;padding:.5rem .7rem;border-radius:6px;font:inherit;font-size:.85rem;color:var(--v-ink);cursor:pointer}.dl-menu-list button:hover{background:var(--v-surface)}.dl-menu-list button.danger{color:var(--v-red)}.dl-menu-list button.danger:hover{background:var(--v-danger-wash)}.person{display:flex;align-items:center;gap:.65rem}.person-text{display:flex;flex-direction:column;min-width:0}.person-text b{font-weight:600}.person-text small{font-size:.76rem;color:var(--v-muted)}.clip{display:block;max-width:30rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{display:inline-grid;place-items:center;flex:0 0 auto;width:2rem;height:2rem;border-radius:50%;background:#82323a1a;color:var(--v-red);font-size:.72rem;font-weight:700}.avatar.lg{width:2.8rem;height:2.8rem;font-size:.9rem}.avatar.square{border-radius:10px}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;white-space:nowrap;font-size:.72rem;font-weight:600}.badge.ok{background:var(--v-ok-wash);color:var(--v-ok)}.badge.warn{background:var(--v-warn-wash);color:var(--v-warn)}.badge.error{background:var(--v-danger-wash);color:var(--v-red)}.badge.muted{background:var(--v-surface-2);color:var(--v-muted)}.chips{display:flex;flex-wrap:wrap;gap:.3rem}.chip{padding:.12rem .5rem;border-radius:6px;background:var(--v-surface-2);font-size:.74rem}.chip.muted{color:var(--v-muted)}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.78rem}.muted{color:var(--v-muted)}.admin-modal{width:min(46rem,94vw);max-height:88vh;padding:0;display:flex;flex-direction:column;background:var(--v-card);border-radius:14px;overflow:hidden}.admin-modal-bar{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.2rem;border-bottom:1px solid var(--v-line)}.admin-modal-bar h3{margin:0;font-size:1rem}.admin-modal-close{border:0;background:none;width:2rem;height:2rem;border-radius:7px;color:var(--v-muted);cursor:pointer;font-size:.95rem}.admin-modal-close:hover{background:var(--v-surface);color:var(--v-ink)}.admin-modal-body{padding:1.1rem 1.2rem 1.4rem;overflow-y:auto}.detail-head{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.detail-head>div{display:flex;flex-direction:column;flex:1 1 auto}.detail-head b{font-size:1.05rem}.detail-head small{color:var(--v-muted);font-size:.82rem}.fields{display:grid;grid-template-columns:1fr 1fr;gap:.1rem 1.4rem;margin:0 0 1rem}.fields>div{display:flex;flex-direction:column;gap:.15rem;padding:.55rem 0;border-bottom:1px solid var(--v-line)}.fields dt{font-size:.78rem;color:var(--v-muted)}.fields dd{margin:0;font-size:.88rem;word-break:break-word}.fields.nested{grid-template-columns:1fr;margin:0}.fields.nested>div{padding:.3rem 0}.detail-section{margin-top:1.2rem}.detail-section h4{margin:0 0 .6rem;font-size:.82rem;font-weight:600}.detail-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.detail-list li{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--v-line);font-size:.86rem}.detail-list li span:last-child{margin-left:auto;color:var(--v-muted);font-size:.8rem}.copy-block{position:relative}.copy-block pre{margin:0;padding:.9rem 5rem .9rem 1rem;border-radius:10px;background:#0b0f19;color:#e8eaf0;font-size:.78rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:22rem;overflow-y:auto}.copy-button{position:absolute;top:.5rem;right:.5rem;border:1px solid #2c3446;background:#1c2333;color:#cfd4de;border-radius:6px;padding:.25rem .6rem;font:inherit;font-size:.74rem;cursor:pointer}.copy-button:hover{color:#fff}@media(max-width:640px){.fields{grid-template-columns:1fr}.dl-count{margin-left:0}}.billing-sync{display:inline-block;margin-top:.4rem;font-size:.8rem}.help{padding:.5rem 0 2rem}.help-grid{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.help-card{display:flex;flex-direction:column;gap:.3rem;text-align:left;padding:1.05rem 1.15rem;font:inherit;cursor:pointer;border:1px solid var(--v-line);border-radius:12px;background:var(--v-card);color:var(--v-ink);transition:border-color .16s,transform .16s}.help-card:hover{border-color:var(--v-red-light);transform:translateY(-1px)}.help-card b{font-size:.95rem}.help-card span{font-size:.83rem;color:var(--v-muted);line-height:1.5}.help-back{border:0;background:none;padding:0;margin-bottom:.9rem;font:inherit;font-size:.83rem;color:var(--v-muted);cursor:pointer}.help-back:hover{color:var(--v-ink)}.help-article{padding:1.6rem 1.8rem;max-width:46rem;border:1px solid var(--v-line);border-radius:12px;background:var(--v-card)}.help-article h2{margin:0 0 .9rem;font-size:1.25rem;letter-spacing:-.01em}.help-article h3{margin:1.4rem 0 .4rem;font-size:.95rem;font-weight:600}.help-article p{margin:0 0 .7rem;font-size:.95rem;line-height:1.65;color:var(--v-ink-2)}.help-steps,.help-list{margin:0 0 .9rem;padding-left:1.3rem;font-size:.93rem;line-height:1.65;color:var(--v-ink-2)}.help-steps li,.help-list li{margin-bottom:.45rem}.help-steps li::marker{color:var(--v-red);font-weight:700}.help-note{margin:.9rem 0;padding:.75rem .95rem;border-radius:9px;border-left:3px solid;font-size:.87rem;line-height:1.6}.help-note.tip{border-color:var(--v-ok);background:var(--v-ok-wash)}.help-note.warn{border-color:var(--v-warn);background:var(--v-warn-wash)}.help-foot{margin-top:1.2rem;font-size:.83rem;color:var(--v-muted)}.chart-grid{display:grid;gap:.8rem;margin-top:1rem;grid-template-columns:repeat(auto-fit,minmax(440px,1fr))}.chart{margin:0;padding:1rem 1.1rem .6rem;background:var(--v-card);border:1px solid var(--v-line);border-radius:12px}.chart figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;margin-bottom:.4rem}.chart figcaption b{font-size:.86rem}.chart figcaption span{font-size:.8rem;color:var(--v-muted);font-variant-numeric:tabular-nums}.chart svg{width:100%;height:auto;display:block}.chart-gridline{stroke:var(--v-line);stroke-width:1}.chart-axis{font-size:13px;fill:var(--v-muted)}.chart-bar{fill:var(--v-red);opacity:.85}.chart-bar.failed{fill:var(--v-warn);opacity:.9}.chart-area{fill:#82323a1f}.chart-line{fill:none;stroke:var(--v-red);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--v-red)}.chart-empty{margin:1.2rem 0 1.4rem;font-size:.83rem;color:var(--v-muted);text-align:center}.usage{margin:0 0 1.3rem;padding:1rem 1.1rem;background:var(--v-card);border:1px solid var(--v-line);border-radius:12px}.usage h3{margin:0 0 .7rem;font-size:.86rem;font-weight:600}.usage-row{display:grid;grid-template-columns:8rem 1fr auto;align-items:center;gap:.7rem;margin-bottom:.45rem;font-size:.82rem}.usage-label{color:var(--v-muted)}.usage-value{color:var(--v-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.usage-bar{display:block;height:7px;border-radius:999px;background:var(--v-surface-2);overflow:hidden}.usage-bar i{display:block;height:100%;background:var(--v-red);border-radius:999px;transition:width .3s}.usage-bar i.warn{background:var(--v-warn)}.usage-bar i.full{background:var(--v-danger)}.usage-hint{margin:.7rem 0 0;font-size:.78rem;color:var(--v-muted)}.usage-chip{display:inline-flex;align-items:center;gap:.45rem;background:var(--v-surface-2);border:1px solid var(--v-line);padding:.2rem .55rem .2rem .25rem;border-radius:6px;font-size:.72rem;color:var(--v-ink-2);white-space:nowrap}.editor-actions .usage-chip{margin-right:.5rem}.editor-actions .usage-chip+*{position:relative;margin-left:.4rem}.editor-actions .usage-chip+*:before{content:"";position:absolute;left:-.75rem;top:15%;height:70%;border-left:1px solid var(--v-line)}.page header .usage-chip{margin:0 .4rem}.usage-chip-tag{background:var(--v-card);border:1px solid var(--v-line);border-radius:4px;padding:0 .3rem;font-size:.65rem;font-weight:700;letter-spacing:.04em;color:var(--v-muted)}.usage-chip-bar{display:block;width:3rem;height:5px;border-radius:999px;background:var(--v-line-strong);overflow:hidden}.usage-chip-bar i{display:block;height:100%;background:var(--v-red);border-radius:999px}.usage-chip.warn .usage-chip-bar i{background:var(--v-warn)}.usage-chip.full{color:var(--v-red)}.usage-chip.full .usage-chip-bar i{background:var(--v-danger)}@media(max-width:640px){.usage-row{grid-template-columns:1fr auto}.usage-bar{grid-column:1 / -1;order:3}}.range-bar{display:inline-flex;margin:1.1rem 0 0;border:1px solid var(--v-line);border-radius:8px;overflow:hidden;background:var(--v-card)}.range-bar button{border:0;background:none;padding:.4rem .8rem;font:inherit;font-size:.8rem;color:var(--v-muted);cursor:pointer}.range-bar button+button{border-left:1px solid var(--v-line)}.range-bar button.on{background:#82323a14;color:var(--v-red);font-weight:600}ul.editor-issues{list-style:none;margin:0;padding:.5rem 1rem;background:var(--v-warn-wash);border-bottom:1px solid var(--v-line)}ul.editor-issues li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;font-size:.83rem;color:var(--v-warn);padding:.15rem 0}ul.editor-issues b{font-weight:600;color:var(--v-ink)}ul.editor-issues span{color:var(--v-ink-2)}.theme-switcher{display:inline-flex;align-items:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.insp-field.invalid{border-left:3px solid var(--v-danger);padding-left:.5rem;margin-left:-.65rem}.insp-field.invalid input,.insp-field.invalid select,select.invalid{border-color:var(--v-danger);box-shadow:0 0 0 1px var(--v-danger)}.insp-invalid-note{margin:.25rem 0 .5rem;font-size:.75rem;color:var(--v-danger);word-break:break-word}ul.editor-issues li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem}ul.editor-issues .issue-actions{margin-left:auto;display:inline-flex;gap:.75rem}ul.editor-issues .issue-actions button.link{font-size:.8rem;padding:0}ul.editor-issues code.issue-path{margin-left:.35rem;font-size:.72rem;color:var(--v-muted)}
