@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Space+Grotesk:wght@400;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--canvas);--canvas:#111516;--panel:#151d1e;--panel-raised:#1b2526;--input:#182022;--line:#293435;--line-strong:#526562;--text:#edf1f2;--text-secondary:#b5c5c2;--text-muted:#8fa19e;--accent:#b1f3dc;--accent-ink:#10201d;--danger:#e99a8c;--danger-ink:#172321;--focus:#6bc9ae;--relation:#9eb5b0;--shadow:#00000038;--login-glow:#294945;font-family:Space Grotesk,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f7faf9;--panel:#fff;--panel-raised:#fff;--input:#f0f5f3;--line:#d7e2df;--line-strong:#9bb2ac;--text:#172321;--text-secondary:#40514d;--text-muted:#61736e;--accent:#197a61;--accent-ink:#fff;--danger:#b54f43;--danger-ink:#fff;--focus:#238f70;--relation:#506863;--shadow:#203b341f;--login-glow:#d8eee7}*{box-sizing:border-box}html,body,#root{background:var(--canvas);min-height:100%}html,body{overflow-x:hidden}body{color:var(--text);margin:0}button,input,select{font:inherit}button{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:0;border-radius:4px;padding:11px 15px;font-weight:600}button:hover{filter:brightness(1.08)}button:disabled{opacity:.45;cursor:not-allowed}.dashboard-actions{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.dashboard-actions .create-form{margin:0}.photo-import-trigger{white-space:nowrap}.photo-import-backdrop{z-index:20}.photo-import-modal{background:var(--panel);border:1px solid var(--line-strong);width:min(860px,100vw - 32px);max-height:min(88vh,820px);box-shadow:0 20px 70px var(--shadow);border-radius:10px;padding:28px;overflow:auto}.photo-import-pick,.photo-import-review{gap:18px;display:grid}.photo-dropzone{border:1px dashed var(--line-strong);background:var(--input);min-height:130px;color:var(--text-secondary);text-align:center;cursor:pointer;border-radius:8px;place-items:center;padding:24px;display:grid}.photo-dropzone input{max-width:100%;margin-top:10px}.photo-preview{object-fit:contain;background:var(--canvas);border-radius:6px;outline:1px solid #ffffff1a;width:100%;max-height:360px;display:block}.review-summary{color:var(--text-secondary);gap:16px;display:flex}.proposal-list{gap:10px;max-height:430px;padding-right:4px;display:grid;overflow:auto}.proposal-item{border:1px solid var(--line);border-radius:6px;min-width:0;margin:0;padding:12px}.proposal-item.is-disabled{opacity:.6}.proposal-children{color:var(--text-secondary);gap:7px;margin:10px 0 0 26px;font-size:.9rem;display:grid}.checkbox{cursor:pointer;grid-template-columns:none;align-items:center;gap:8px;display:flex}.checkbox input{width:17px;height:17px;accent-color:var(--accent)}.proposal-relation{border:1px solid var(--line);color:var(--text-secondary);border-radius:6px;padding:10px 12px}@media (width<=680px){.photo-import-modal{padding:20px}.dashboard-actions{align-items:stretch}.dashboard-actions .create-form,.dashboard-actions .photo-import-trigger{width:100%}}.login{background:radial-gradient(circle at 80% 10%, var(--login-glow), var(--canvas) 48%);place-items:center;min-height:100vh;display:grid}.login section{width:min(460px,90vw)}h1{margin:18px 0;font-size:clamp(2.8rem,8vw,5.5rem);line-height:.92}.login p{color:var(--text-secondary);font-size:1.1rem}.eyebrow{letter-spacing:.15em;color:var(--accent);font:500 .72rem DM Mono}form{gap:14px;margin:32px 0;display:grid}label{color:var(--text-secondary);gap:7px;font-size:.85rem;display:grid}input,select{background:var(--input);border:1px solid var(--line-strong);color:var(--text);border-radius:5px;width:100%;padding:10px}input::placeholder{color:var(--text-muted)}input:focus,select:focus{outline:2px solid var(--focus);outline-offset:1px}.error{color:var(--danger)!important}.import-warning{border:1px solid color-mix(in srgb, var(--accent) 45%, var(--line));background:color-mix(in srgb, var(--accent) 10%, var(--panel));color:var(--text-secondary);align-items:center;gap:12px;margin:12px 18px 0;padding:12px 14px;display:flex}.import-warning strong{color:var(--accent)}.import-warning span{flex:1}.muted{color:var(--text-muted);font-size:.85rem}.dashboard,.editor{background:var(--canvas);min-height:100vh;color:var(--text)}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.app-shell:has(.sidebar-collapsed){grid-template-columns:72px minmax(0,1fr)}.app-content{min-width:0;min-height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--line);z-index:12;flex-direction:column;gap:24px;height:100vh;padding:20px 14px;transition:width .18s cubic-bezier(.23,1,.32,1),padding .18s cubic-bezier(.23,1,.32,1);display:flex;position:sticky;top:0}.sidebar-brand{justify-content:space-between;align-items:center;gap:8px;padding:0 8px;display:flex}.sidebar-brand strong{color:var(--accent);white-space:nowrap;font:500 1.1rem DM Mono}.sidebar-toggle{place-items:center;width:36px;min-height:36px;padding:8px;display:grid}.sidebar svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:none;width:19px;height:19px}.sidebar-links{gap:6px;display:grid}.sidebar-links a,.sidebar-logout{min-height:44px;color:var(--text-secondary);text-align:left;white-space:nowrap;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;font-size:.88rem;text-decoration:none;display:flex}.sidebar-links a:hover,.sidebar-links a.active{color:var(--text);background:var(--input)}.sidebar-links a.active{box-shadow:inset 3px 0 var(--accent)}.sidebar-logout{width:100%;color:var(--text-muted);background:0 0;margin-top:auto;font-weight:500}.sidebar-logout:hover{background:var(--input);color:var(--danger);filter:none}.sidebar-collapsed{width:72px;padding-inline:10px}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:0}.sidebar-collapsed .sidebar-brand strong,.sidebar-collapsed .sidebar-links span,.sidebar-collapsed .sidebar-logout span{display:none}.sidebar-collapsed .sidebar-links a,.sidebar-collapsed .sidebar-logout{justify-content:center;padding-inline:8px}.dashboard header,.editor header,.user-page header{border-bottom:1px solid var(--line);background:var(--panel);align-items:center;gap:25px;height:64px;padding:0 24px;display:flex}.dashboard header strong,.editor header strong,.user-page header strong{color:var(--accent);font:500 1.1rem DM Mono}.dashboard header span,.editor header span,.user-page header span{color:var(--text-secondary);flex:1}.app-nav{align-items:center;gap:14px;display:flex}.app-nav a{color:var(--text-muted);font-size:.86rem;text-decoration:none}.app-nav a:hover,.app-nav a.active{color:var(--text)}.user-page main{max-width:1120px;margin:auto;padding:70px 32px}.user-page .user-management{border-top:0;margin-top:0;padding-top:0}.ghost{color:var(--text-secondary);background:0 0;padding:8px}.ghost:hover{background:var(--input);filter:none}.xmi-menu{position:relative}.xmi-menu summary{cursor:pointer;list-style:none}.xmi-menu summary::-webkit-details-marker{display:none}.xmi-menu-items{z-index:20;background:var(--panel-raised);border:1px solid var(--line-strong);min-width:170px;box-shadow:0 8px 24px var(--shadow);border-radius:6px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.xmi-menu-items button{text-align:left;width:100%}.xmi-preview h2{margin-top:0}.xmi-warnings{background:var(--panel-raised);border:1px solid var(--line);max-height:180px;color:var(--text-secondary);padding:12px;overflow:auto}.xmi-warnings ul{margin:8px 0 0;padding-left:20px}.xmi-status{z-index:15;background:var(--panel-raised);border:1px solid var(--line-strong);color:var(--accent);margin:0;padding:10px 14px;position:fixed;bottom:18px;right:18px}.dash-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:30px;padding-bottom:38px;display:flex}.dash-heading h2{margin:14px 0;font-size:clamp(2.5rem,6vw,5rem);line-height:.9}.dashboard main{max-width:1120px;margin:auto;padding:70px 32px}.create-form{min-width:360px;margin:0;display:flex}.create-form input{border-radius:4px 0 0 4px}.create-form button{white-space:nowrap;border-radius:0 4px 4px 0}.board-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;padding-top:34px;display:grid}.board{background:var(--panel);border:1px solid var(--line);box-shadow:0 1px 2px var(--shadow);border-radius:8px;padding:22px}.board h3{margin:18px 0 8px}.board-mark{color:var(--accent);font:700 2rem DM Mono}.board .danger-text{color:var(--danger)}.board>div:last-child{align-items:center;gap:10px;margin-top:22px;display:flex}.empty-board,.empty-inspector{color:var(--text-secondary);gap:8px;display:grid}.empty-board{text-align:center;padding:70px 0}.user-management{border-top:1px solid var(--line);margin-top:78px;padding-top:42px}.section-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.section-heading h2{margin:10px 0 6px;font-size:2rem}.admin-badge,.role-pill{color:var(--accent);border:1px solid var(--line-strong);text-transform:uppercase;border-radius:999px;padding:6px 10px;font:500 .72rem DM Mono}.user-layout{grid-template-columns:280px 1fr;align-items:start;gap:28px;margin-top:26px;display:grid}.user-form{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin:0;padding:20px}.user-form h3{margin:0 0 18px}.user-form .checkbox{grid-template-columns:auto 1fr;align-items:center;gap:8px;display:flex}.user-form .checkbox input{width:auto}.field-hint{color:var(--text-muted);font-size:.76rem}.form-actions{align-items:center;gap:8px;display:flex}.user-table{border:1px solid var(--line);background:var(--panel);border-radius:8px;overflow:hidden}.user-row{border-top:1px solid var(--line);grid-template-columns:minmax(180px,1.5fr) .8fr .8fr minmax(150px,1fr);align-items:center;gap:14px;padding:15px 18px;display:grid}.user-row:first-child{border-top:0}.user-row-head{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;background:var(--panel-raised);font:500 .7rem DM Mono}.user-row small{color:var(--text-muted);overflow-wrap:anywhere;margin-top:4px;display:block}.row-actions{justify-content:end;gap:5px;display:flex}.status-active,.status-inactive{font-size:.84rem}.status-active{color:var(--accent)}.status-inactive{color:var(--danger)}.notice{color:var(--accent)}.workspace{grid-template-columns:1fr 320px;height:calc(100vh - 64px);display:grid}.workspace:not(.inspector-open){grid-template-columns:1fr}.canvas{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;background-color:var(--canvas);background-image:radial-gradient(var(--line-strong) 1px, transparent 1px);background-size:24px 24px;width:100%;min-width:0;position:relative;overflow:hidden}.zoom-controls{z-index:8;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 94%, transparent);box-shadow:0 4px 14px var(--shadow);pointer-events:auto;-webkit-user-select:auto;user-select:auto;border-radius:6px;align-items:center;gap:4px;padding:5px;display:flex;position:absolute;bottom:16px;right:16px}.zoom-controls output{min-width:52px;color:var(--text-secondary);text-align:center;font:500 .75rem DM Mono}.zoom-button{width:36px;min-height:36px;padding:4px;font-size:1.2rem;line-height:1}.zoom-reset{min-height:36px;padding:7px 9px;font-size:.75rem}.assistant-launcher{z-index:2;box-shadow:0 4px 14px var(--shadow);pointer-events:auto;-webkit-user-select:auto;user-select:auto;background:#16a36a;border:1px solid #0f7a4f;border-radius:8px;padding:4px;display:block;position:absolute;bottom:0;left:0}.assistant-overlay{z-index:9;pointer-events:none;position:absolute;bottom:16px;left:16px}.assistant-overlay .assistant-launcher,.assistant-overlay .assistant-panel{pointer-events:auto}.assistant-launcher-button{letter-spacing:.01em;color:#fff;background:0 0;justify-content:center;align-items:center;min-height:44px;padding:9px 15px;display:inline-flex}.assistant-launcher-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:none;width:20px;height:20px}.assistant-launcher-button:hover{color:#fff;background:#ffffff2e}.assistant-panel{touch-action:auto;background:var(--panel);border:1px solid var(--line-strong);width:min(520px,100vw - 32px);height:min(720px,100vh - 104px);max-height:min(720px,100vh - 104px);box-shadow:0 16px 40px var(--shadow);transform-origin:0 100%;border-radius:10px;grid-template-rows:auto auto minmax(150px,1fr) auto auto;padding:18px;animation:.18s cubic-bezier(.23,1,.32,1) assistant-popover-in;display:grid;position:absolute;bottom:calc(100% + 12px);left:0;overflow:hidden}@keyframes assistant-popover-in{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.assistant-panel form,.assistant-panel{gap:14px}.assistant-panel label{margin-top:12px}.chat-history{overscroll-behavior:contain;touch-action:pan-y;align-content:start;gap:10px;min-height:0;padding:4px 2px;display:grid;overflow-y:auto}.chat-empty{color:var(--text-muted);text-align:center;margin:auto}.chat-message{background:var(--panel-raised);border-radius:8px;width:fit-content;max-width:88%;padding:9px 11px}.chat-message span{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font:500 .68rem DM Mono}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;line-height:1.4}.chat-user{background:color-mix(in srgb, var(--accent) 16%, var(--panel-raised));justify-self:end}.chat-user span{color:var(--accent)}.assistant-live{color:var(--accent);margin:0;font-size:.8rem}.assistant-live p{margin:0}.live-dot,.status-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}.live-dot{animation:1.2s ease-in-out infinite assistant-pulse}@keyframes assistant-pulse{50%{opacity:.35;transform:scale(.75)}}.chat-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin:0;display:grid}.chat-form textarea{resize:vertical;background:var(--input);border:1px solid var(--line-strong);width:100%;min-height:54px;color:var(--text);border-radius:5px;padding:10px}.chat-form textarea:focus{outline:2px solid var(--focus);outline-offset:1px}.chat-form-actions{align-items:end;gap:6px;display:flex}.assistant-mic{background:var(--panel-raised);width:42px;min-height:42px;color:var(--accent);border:1px solid var(--line-strong);place-items:center;padding:9px;display:grid}.assistant-mic svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px;height:20px}.chat-form-actions .recording{min-height:42px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.assistant-preview{border:1px solid var(--line-strong);background:var(--panel-raised);border-radius:6px;gap:8px;padding:14px;display:grid}.assistant-preview p{text-transform:capitalize;color:var(--accent);margin:0}.recording{background:var(--danger);color:var(--danger-ink)}.canvas.is-panning,.canvas.is-panning .class-card,.canvas.is-panning .class-card:active{cursor:grabbing}.canvas-stage{transform-origin:0 0;pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.canvas-stage .class-card,.canvas-stage .relations{pointer-events:auto}.class-card{background:var(--panel);border:1px solid var(--line-strong);width:210px;box-shadow:0 3px 12px var(--shadow);cursor:grab;border-radius:6px;position:absolute;overflow:hidden}.class-card.relation-endpoint-highlight{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent), 0 3px 12px var(--shadow)}.class-card:active{cursor:grabbing}.class-title{background:var(--panel-raised);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:12px;display:flex}.class-section{border-bottom:1px solid var(--line);padding:8px 12px}.class-section>div{justify-content:space-between;gap:10px;padding:4px 0;display:flex}.class-section>div.endpoint-highlight{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--text);box-shadow:inset 3px 0 0 var(--accent);z-index:4;border-radius:3px;margin:0 -5px;padding:4px 5px;position:relative}.class-section small,.field-hint{color:var(--text-muted)}.mini{padding:5px 8px;font-size:.75rem}.relation-action{color:var(--accent);background:0 0}.inspector{border-left:1px solid var(--line);background:var(--panel);padding:26px 22px;position:relative;overflow:auto}.inspector-close{float:right;border:1px solid var(--line);margin:-12px -10px 12px 12px}.inspector-group{margin-top:28px}.section-title{color:var(--text);justify-content:space-between;align-items:center;font-weight:600;display:flex}.detail{grid-template-columns:1fr 1fr auto;gap:6px;margin-top:8px;display:grid}.relation-multiplicities{grid-template-columns:1fr 1fr}.multiplicity-field{gap:7px;min-width:0;display:grid}.multiplicity-field>label{gap:7px}.multiplicity-help{margin:14px 0 8px;font-size:.82rem}.multiplicity-preview{background:var(--input);border:1px solid var(--line);border-radius:6px;gap:5px;margin:0 0 18px;padding:11px 13px;display:grid}.multiplicity-preview span{color:var(--text-muted);text-transform:uppercase;font:500 .7rem DM Mono}.multiplicity-preview strong{color:var(--accent);font:500 1rem DM Mono}.delete{background:var(--danger);width:100%;color:var(--danger-ink);margin-top:28px}.endpoint-summary{color:var(--text-secondary)}.relation-endpoints{gap:10px;margin-top:18px;display:grid}.relation-endpoints>div{border-left:3px solid var(--accent);background:var(--panel-raised);gap:3px;padding:10px;display:grid}.relation-endpoints small{color:var(--text-muted);text-transform:uppercase;font:500 .7rem DM Mono}.relation-endpoints span{color:var(--text-secondary);overflow-wrap:anywhere;font-size:.85rem}.loading{background:var(--canvas);min-height:100vh;color:var(--text-secondary);place-items:center;display:grid}.editor-error{background:var(--panel);margin:0;padding:10px 24px}.relations{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.relations marker path{stroke:context-stroke}.relations .marker-composition{fill:var(--relation);stroke:var(--relation)}.relations .marker-hollow{fill:var(--canvas)}.relations .marker-open{fill:none}.relation{fill:none;stroke:var(--relation);stroke-width:2px;pointer-events:all;cursor:pointer}.class-card{z-index:3}.class-card.relation-endpoint-highlight{z-index:4;position:absolute}.collaborator-cursor{z-index:5;pointer-events:none;will-change:transform;align-items:flex-start;gap:6px;display:flex;position:absolute;transform:translate(-2px,-2px)}.cursor-pointer{border-top:9px solid #0000;border-bottom:9px solid #0000;border-left:14px solid var(--cursor-color);width:0;height:0;filter:drop-shadow(0 1px 1px var(--shadow));transform-origin:25%;transform:rotate(-45deg)}.cursor-name{background:var(--cursor-color);color:var(--canvas);white-space:nowrap;box-shadow:0 2px 6px var(--shadow);border-radius:999px;margin-top:12px;padding:4px 8px;font:600 .7rem/1 DM Mono}.relation.dependency .relation-line{stroke-dasharray:7 5}.relation-line{stroke:var(--relation);pointer-events:none}.relation-hit{stroke:#0000;stroke-width:18px;pointer-events:stroke}.relation .multiplicity,.relation-label{fill:var(--text-secondary);color:var(--text-secondary);paint-order:stroke fill;stroke:var(--canvas);stroke-width:5px;stroke-linejoin:round;pointer-events:none;font-size:12px;font-weight:600}.relation .multiplicity{dominant-baseline:middle}.relation-label{font-size:13px}.relation.selected,.relation.hovered,.relation.selected .relation-line,.relation.hovered .relation-line{stroke:var(--accent);stroke-width:3px}.relation.selected .multiplicity,.relation.hovered .multiplicity{fill:var(--accent);font-weight:700}.modal-backdrop{z-index:10;background:#080f0e9e;place-items:center;padding:20px;display:grid;position:fixed;inset:0}:root[data-theme=light] .modal-backdrop{background:#182d2740}.relation-modal{background:var(--panel);border:1px solid var(--line-strong);width:min(680px,100%);box-shadow:0 12px 40px var(--shadow);border-radius:8px;margin:0;padding:26px}.sql-drawer{z-index:9;background:var(--panel);border-left:1px solid var(--line-strong);width:min(55vw,900px);box-shadow:-8px 0 28px var(--shadow);transition:transform .24s cubic-bezier(.23,1,.32,1),width .24s cubic-bezier(.23,1,.32,1);position:fixed;top:64px;bottom:0;right:0;overflow:hidden;transform:translate(0)}.sql-drawer-expanded{width:min(72vw,1100px)}.sql-drawer-bar{background:var(--panel-raised);justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:7px 20px;display:flex}.sql-drawer-bar p{margin:0 12px 0 0;display:inline}.sql-drawer-bar strong{margin-right:10px}.sql-drawer-state{color:var(--text-muted);font-size:.78rem}.sql-drawer-controls{gap:4px;display:flex}.sql-drawer-bar>div:first-child{min-width:0}.sql-drawer-controls{flex:none}.sql-workspace{min-width:0;height:calc(100% - 52px);padding:20px clamp(16px,4vw,48px);overflow:auto}.sql-shell{width:min(1180px,100%);margin:0 auto}.sql-heading{justify-content:space-between;align-items:start;gap:24px;display:flex}.sql-heading>div{min-width:0}.sql-heading h1{margin:10px 0 8px;font-size:clamp(2.2rem,5vw,4.5rem);line-height:.95}.sql-editor{background:var(--input);border:1px solid var(--line-strong);border-radius:5px;min-width:0;min-height:min(62vh,720px);margin:20px 0;display:flex;overflow:hidden}.sql-gutter{border-right:1px solid var(--line);color:var(--text-muted);text-align:right;-webkit-user-select:none;user-select:none;flex:0 0 48px;padding:16px 10px;font:14px/1.55 DM Mono,monospace;overflow:hidden}.sql-gutter span{display:block}.sql-textarea{resize:vertical;background:var(--input);width:100%;min-width:0;min-height:min(60vh,718px);color:var(--text);border:0;border-radius:0;margin:0;padding:16px;font:14px/1.55 DM Mono,monospace;display:block}.sql-textarea:focus{outline:2px solid var(--focus);outline-offset:-2px}.sql-feedback{background:var(--input);border-left:3px solid var(--focus);margin:16px 0;padding:12px 16px}.sql-feedback ul{margin:8px 0 0;padding-left:22px;line-height:1.6}.sql-errors{color:var(--danger)}.sql-warnings{color:#e3b341}.sql-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.modal-heading{justify-content:space-between;align-items:start;display:flex}.modal-heading h2{margin:8px 0 0}.modal-grid{grid-template-columns:1fr 1fr;gap:16px;margin-top:24px;display:grid}.members-modal{background:var(--panel);border:1px solid var(--line-strong);width:min(620px,100%);max-height:min(720px,90vh);box-shadow:0 12px 40px var(--shadow);border-radius:8px;padding:26px;overflow:auto}.invitation-modal{background:var(--panel);border:1px solid var(--line-strong);width:min(500px,100%);box-shadow:0 12px 40px var(--shadow);border-radius:8px;padding:28px}.invitation-message{color:var(--text-secondary);margin:24px 0;line-height:1.6}.invitation-message b{color:var(--text)}.invitation-actions{justify-content:flex-end;gap:10px;display:flex}.member-form{grid-template-columns:1fr 150px auto;align-items:end;gap:10px;margin:24px 0 18px}.member-list{border-top:1px solid var(--line)}.member-row{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:13px 0;display:grid}.member-row small{color:var(--text-muted);overflow-wrap:anywhere;margin-top:3px;display:block}.member-row select{width:auto;min-width:100px;padding:7px}.danger-text{color:var(--danger)}@media (width<=800px){.app-shell{grid-template-columns:68px minmax(0,1fr)}.sidebar{width:68px;padding-inline:8px}.sidebar-brand{justify-content:center;padding:0}.sidebar-brand strong,.sidebar-links span,.sidebar-logout span{display:none}.sidebar-links a,.sidebar-logout{justify-content:center;padding-inline:8px}.sidebar-toggle{width:40px}.workspace{grid-template-columns:1fr;height:auto;min-height:calc(100vh - 64px)}.canvas{min-width:0;height:70vh}.zoom-controls{bottom:8px;right:8px}.inspector{border-left:0;border-top:1px solid var(--line)}.dash-heading{display:block}.create-form{min-width:0;margin-top:24px}.dashboard main{padding:42px 20px}.modal-grid,.member-form{grid-template-columns:1fr}.member-row{grid-template-columns:1fr auto}.user-layout{grid-template-columns:1fr}.user-row{grid-template-columns:1fr 1fr}.user-row-head{display:none}.row-actions{justify-content:start}.sql-heading{display:block}.sql-heading .ghost{margin-top:16px}.sql-editor{min-height:280px}.sql-textarea{min-height:278px}.editor header,.user-page header{gap:8px;padding:0 10px}.editor header .ghost,.user-page header .ghost{padding:6px;font-size:11px}.editor header span,.user-page header span{white-space:nowrap;overflow:hidden}.sql-drawer-bar{padding:7px 10px}.sql-drawer-state{display:none}.sql-drawer-controls button{padding:6px;font-size:11px}.sql-drawer{width:min(92vw,700px)}.sql-drawer-expanded{width:calc(100vw - 16px)}.assistant-overlay{bottom:8px;left:8px}.assistant-panel{width:min(520px,100vw - 16px);height:calc(100vh - 80px);max-height:calc(100vh - 80px)}}@media (height<=560px){.assistant-panel{height:calc(100vh - 56px);max-height:calc(100vh - 56px)}}@media (prefers-reduced-motion:reduce){.sql-drawer{transition:none}.assistant-panel,.live-dot{animation:none}}.deployment-modal,.credentials-modal{background:var(--panel);border:1px solid var(--line-strong);width:min(560px,100vw - 32px);max-height:calc(100vh - 40px);box-shadow:0 12px 40px var(--shadow);border-radius:8px;padding:24px;overflow:auto}.deployment-status{background:var(--canvas,#f2f2f2);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;margin:8px 0 18px;padding:6px 10px;font-size:11px;font-weight:700;display:inline-block}.deployment-running{color:#16734a;background:#e5f5ec}.deployment-failed{color:#a12626;background:#fde9e9}.deployment-url code,.credential-row code{overflow-wrap:anywhere;font-family:DM Mono,monospace}.deployment-actions,.integration-actions{flex-wrap:wrap;gap:8px;display:flex}.deployment-actions{margin-top:22px}.deployment-integrations{background:var(--input);border:1px solid var(--line);border-radius:6px;gap:12px;margin-top:20px;padding:16px;display:grid}.deployment-integrations .eyebrow{margin:0 0 4px}.deployment-integrations small{color:var(--text-muted)}.deployment-danger{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.credentials-backdrop{z-index:11}.credentials-modal{width:min(680px,100vw - 32px)}.credentials-loading{color:var(--text-secondary);margin:24px 0}.credentials-list{background:var(--line);border:1px solid var(--line);border-radius:6px;gap:1px;margin:20px 0 0;display:grid;overflow:hidden}.credential-row{background:var(--panel);grid-template-columns:130px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;display:grid}.credential-row dt{color:var(--text-muted);font-size:.75rem;font-weight:600}.credential-row dd{justify-content:space-between;align-items:center;gap:8px;min-width:0;margin:0;display:flex}.credential-row code{min-width:0;color:var(--text-secondary);font-size:.76rem}.credential-copy{flex:none;padding:7px 9px;font-size:.75rem}.credential-controls{flex:none;gap:4px;display:flex}.copy-feedback{min-height:20px;color:var(--accent);margin:10px 0 0;font-size:.78rem}@media (width<=560px){.deployment-modal,.credentials-modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px);padding:18px}.credential-row{grid-template-columns:1fr;gap:6px}.credential-row dd{align-items:flex-start}}
