:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e9effb;background:#0e1422;font-synthesis:none}*{box-sizing:border-box}body,html{height:100%;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #4b98ff;outline-offset:2px}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#354561;border-radius:10px}::-webkit-scrollbar-track{background:transparent}.app-shell{--surface:#141c2d;--surface-2:#192336;--border:#29364e;--text:#ebf2fe;--muted:#8597b6;--canvas:#101624;--input:#101828;display:flex;flex-direction:column;height:100dvh;min-height:490px;background:var(--canvas);color:var(--text);font-size:13px}.app-shell.light-theme{--surface:#fff;--surface-2:#eff4fa;--border:#d9e2f0;--text:#1a293d;--muted:#71839c;--canvas:#f4f7fc;--input:#f7f9fe}.topbar{height:67px;min-height:67px;background:var(--surface);border-bottom:1px solid var(--border);gap:19px;padding:0 20px;z-index:6}.brand,.topbar{display:flex;align-items:center}.brand{gap:11px;width:216px;flex-shrink:0}.brand-icon{display:grid;place-items:center;background:#2873c6;color:#fff;width:36px;height:36px;border-radius:9px;box-shadow:0 0 15px #266fcb50}.brand-title{font-size:17px;font-weight:850;letter-spacing:.3px;line-height:1}.brand-title>span{color:#60a7fe}.brand-title small{display:block;font-size:8px;letter-spacing:1.35px;color:var(--muted);font-weight:750;margin-top:6px}.top-divider{height:25px;width:1px;background:var(--border);flex-shrink:0}.project-title{display:flex;align-items:center;gap:9px;color:#7da9e3;min-width:150px;max-width:350px;flex:1 1}.project-title input{background:none;border:0;color:var(--text);font-weight:650;min-width:0;width:100%;outline:0}.top-actions{margin-left:auto;gap:9px}.saved,.top-actions{display:flex;align-items:center}.saved{gap:7px;color:var(--muted);font-size:11px;white-space:nowrap;margin-right:9px}.online-dot{display:inline-block;background:#32c998;width:7px;height:7px;border-radius:50%;box-shadow:0 0 8px #2ecc9170}.icon-btn,.tool-icon{display:grid;place-items:center;background:transparent;color:var(--muted);border:0;border-radius:7px;width:32px;height:32px;flex-shrink:0}.icon-btn:hover,.tool-icon.chosen,.tool-icon:hover{color:#79b6ff;background:#283b55}.present-button,.top-secondary{display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:8px;font-weight:650;white-space:nowrap;border:1px solid var(--border);color:var(--text);background:var(--surface-2)}.top-secondary:hover{border-color:#4c7cab}.present-button,.primary-action{background:#347ed1;color:white;border:1px solid #4597ef}.present-button:hover,.primary-action:hover{background:#4691e7}.workspace{flex:1 1;min-height:0;display:flex;position:relative}.left-sidebar,.right-sidebar{width:256px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;z-index:3;flex-shrink:0}.right-sidebar{width:325px;border-right:0;border-left:1px solid var(--border)}.sidebar-top{padding:20px 15px 12px}.section-title{display:flex;align-items:center;justify-content:space-between;color:var(--text);font-size:11px;font-weight:800;letter-spacing:1.2px;margin:0 3px 17px}.explorer-search{height:36px;background:var(--input);border:1px solid var(--border);border-radius:7px;display:flex;align-items:center;gap:7px;padding:0 9px;color:var(--muted)}.explorer-search input{min-width:0;flex:1 1;background:none;border:0;color:var(--text);font-size:12px;outline:none}.explorer-search span{font-size:9px;white-space:nowrap;color:#65748a}.tabbar{display:flex;gap:4px;background:var(--input);border-radius:7px;padding:4px;margin-top:14px}.tabbar button{flex:1 1;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:600;padding:8px 0;border-radius:5px}.tabbar button.active{color:#e9f4ff;background:#2d5585}.sidebar-scroll{flex:1 1;overflow:auto;padding:8px 10px}.tree-caption{display:flex;align-items:center;gap:5px;font-weight:800;color:var(--muted);font-size:10px;letter-spacing:.8px;margin:8px 7px 12px}.tree-caption span{margin-left:auto;background:var(--surface-2);border:1px solid var(--border);padding:1px 6px;border-radius:5px;font-size:10px;letter-spacing:0}.table-entry{display:flex;align-items:center;width:100%;padding:10px 8px;gap:9px;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:7px;text-align:left;margin:2px 0;font-size:11px}.table-entry:hover{background:var(--surface-2);color:var(--text)}.table-entry.selected{background:#2f4c72;color:#e5f2ff;border-color:#456b99}.table-entry>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.table-entry small{font-size:10px;color:#7188a9}.mini-table{height:20px;width:20px;display:grid;place-items:center;border-radius:5px;color:white}.new-table-link{color:#72aff5;border:1px dashed #31547d;border-radius:7px;background:#18273b;padding:9px;width:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:14px;font-weight:650}.sidebar-bottom{padding:15px;border-top:1px solid var(--border)}.sidebar-stat{display:flex;justify-content:space-between;margin:12px 0;color:var(--muted);font-size:11px}.sidebar-stat span{display:flex;align-items:center;gap:8px}.sidebar-stat b{color:var(--text);font-size:12px}.sidebar-settings{margin-top:12px;padding:13px 4px 0;color:var(--muted);display:flex;gap:8px;align-items:center;background:none;border:0;border-top:1px solid var(--border);width:100%;font-size:11px}.diagram-panel{position:relative;flex:1 1;min-width:0;overflow:hidden;background:var(--canvas)}.diagram-panel .react-flow{position:absolute!important;inset:0}.diagram-head{position:absolute;left:0;top:0;right:0;z-index:2;pointer-events:none;display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px;background:linear-gradient(to bottom,var(--canvas) 35%,transparent)}.diagram-head>*{pointer-events:auto}.breadcrumb{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px;font-weight:750;letter-spacing:1.1px}.diagram-head h2{font-size:16px;font-weight:700;letter-spacing:-.3px;margin:7px 0}.count-pill{background:#254066;color:#9ccaff;padding:4px 7px;border-radius:5px;font-size:10px;letter-spacing:0;margin-left:6px}.diagram-head-actions{display:flex;gap:5px;background:var(--surface);border:1px solid var(--border);padding:4px;border-radius:9px;box-shadow:0 5px 20px #0003}.schema-node{background:#1b2235;border:1.5px solid var(--node-accent);border-radius:8px;min-width:325px;width:325px;overflow:hidden;color:#d9e3f8;box-shadow:0 5px 16px #0003}.schema-node.active{box-shadow:0 0 0 2px #a1d3ff88,0 6px 32px #4889d844}.node-heading{background:color-mix(in srgb,var(--node-accent) 72%,#263855);display:flex;align-items:center;gap:10px;padding:9px 10px;min-height:46px}.node-symbol{background:#ffffff22;border-radius:5px;display:grid;place-items:center;width:26px;height:26px}.node-titles{flex:1 1;min-width:0;display:flex;justify-content:space-between;align-items:center;gap:6px}.node-titles strong{font-size:12px;color:#fff}.node-titles small,.node-titles strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-titles small{font-size:9px;color:#d6e7ff;max-width:105px}.node-menu{color:#e8f0ff;width:21px;height:21px}.node-fields{padding:5px 7px 9px}.node-field{display:flex;align-items:center;height:25px;gap:7px;padding:0 6px;font-size:10.5px}.node-field:hover{background:#ffffff08}.field-key{display:flex;align-items:center;justify-content:center;width:13px;height:14px;color:#536786}.field-key.pk,.field-name.primary{color:#f5c84e}.field-key.fk,.field-name.foreign{color:#67b9ff}.field-dot{height:4px;width:4px;background:#536786;border-radius:50%}.field-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-type{color:#8898b3;white-space:nowrap;font-size:10px}.node-handle{height:10px!important;width:10px!important;border:2px solid #72b6ff!important;background:#192741!important}.canvas-bottom{position:absolute;bottom:13px;left:66px;right:200px;z-index:2;pointer-events:none;display:flex;justify-content:space-between;align-items:center;gap:10px}.canvas-bottom>*{pointer-events:auto}.hint{font-size:10px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:7px 9px}.canvas-actions{display:flex;gap:6px}.canvas-actions button{display:flex;gap:6px;align-items:center;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:10px;padding:8px;border-radius:5px}.canvas-actions .selected{color:#ffcf78;border-color:#bd8d3f}.react-flow__controls{border:1px solid var(--border)!important;border-radius:8px!important;overflow:hidden;box-shadow:0 3px 12px #0003!important;bottom:10px!important;left:15px!important}.react-flow__controls-button{background:var(--surface)!important;fill:var(--muted)!important;border-bottom:1px solid var(--border)!important}.react-flow__controls-button svg{fill:var(--muted)!important}.react-flow__minimap{border:1px solid var(--border);border-radius:7px;overflow:hidden;background:var(--surface)!important;bottom:11px!important;right:12px!important}.diagram-legend{position:absolute;top:105px;right:16px;z-index:2;width:188px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 25px #0004;padding:13px 13px 9px}.diagram-legend>div{font-weight:800;letter-spacing:.6px;font-size:10px;display:flex;justify-content:space-between;margin-bottom:10px}.diagram-legend>div button{border:0;background:none;color:var(--muted)}.diagram-legend p{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:9px;margin:10px 0}.diagram-legend p small{margin-left:auto;color:#657994;font-size:9px}.key-disc{height:8px;width:8px;border-radius:50%;display:inline-block}.gold{background:#f3c342}.blue{background:#57baff}.gray{background:#6b7a94}.line-key{width:15px;height:2px;background:#65b6ff}.inspector-top{padding:22px 18px 16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:10px;letter-spacing:1.1px;font-weight:850;color:#7193bc}.inspector-top h3{margin:5px 0 0;font-size:16px}.inspector-content{overflow:auto;flex:1 1}.inspector-group{padding:19px 17px;border-bottom:1px solid var(--border)}.form-label,.inspector-group>label,.settings-group>label{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.8px;margin:0 0 8px}.inspector-group input:not([type=checkbox]),.inspector-group textarea,.large-input,.settings-group input,.settings-group select{display:block;width:100%;background:var(--input);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:10px;font-size:12px;margin-bottom:16px}.inspector-group textarea{resize:vertical}.color-picker{display:flex;gap:7px;padding:4px 0}.color-picker button{width:22px;height:22px;border:2px solid transparent;border-radius:6px}.color-picker button.active{outline:2px solid #e5ecff;outline-offset:2px}.fields-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 17px 12px}.fields-heading strong{font-size:11px;letter-spacing:.8px}.fields-heading strong span{color:#6e93c4;margin-left:3px}.fields-heading button{background:none;border:0;color:#78b6ff;font-size:11px;display:flex;align-items:center;gap:4px}.field-edit-list{padding:0 12px}.field-editor{border:1px solid var(--border);background:var(--surface-2);border-radius:7px;padding:10px;margin-bottom:9px}.field-editor-title{display:flex;align-items:center;gap:8px;margin-bottom:9px;font-size:11px}.field-editor-title b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.small-index{color:#7596bd;font-size:10px}.field-editor-title button{height:18px;width:18px}.two-inputs{display:grid;grid-template-columns:1fr .85fr;grid-gap:5px;gap:5px}.attrs-input,.two-inputs input,.two-inputs select{width:100%;min-width:0;padding:7px!important;background:var(--input);border:1px solid var(--border);color:var(--text);border-radius:5px;font-size:10px;margin:0 0 8px!important}.toggles{display:flex;gap:12px;margin:3px 0 9px}.toggles label{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:10px}.toggles input{accent-color:#3e91ec}.attrs-input{margin:0!important}.danger-outline{display:flex;align-items:center;justify-content:center;gap:8px;background:#4d2734;color:#ff929e;border:1px solid #814052;padding:10px;border-radius:6px;width:100%;font-size:11px}.inspector-empty{text-align:center;padding:90px 25px}.inspector-empty-icon{display:grid;place-items:center;width:58px;height:58px;background:#223b5f;border:1px solid #3c6295;border-radius:15px;margin:auto;color:#75baff}.inspector-empty h3{font-size:17px;margin:19px 0 9px}.inspector-empty p{color:var(--muted);font-size:12px;line-height:1.8}.inspector-empty button{background:#307bd0;color:white;border:0;border-radius:7px;padding:10px 15px;display:flex;gap:7px;align-items:center;margin:22px auto}.quick-stat{display:flex;gap:14px;justify-content:center;color:var(--muted);font-size:11px}.reopen-inspector{position:absolute;top:120px;right:15px;z-index:3;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:9px;border-radius:7px}.statusbar{height:30px;min-height:30px;border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;padding:0 13px;color:var(--muted);font-size:10px}.statusbar,.statusbar>div{display:flex;align-items:center}.statusbar>div{gap:11px}.status-ready{display:flex;gap:7px;align-items:center}.status-divider{height:13px;border-left:1px solid var(--border)}.modal-backdrop{position:fixed;inset:0;background:#050a14be;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:15;display:grid;place-items:center;padding:14px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:min(100%,475px);max-height:min(92vh,850px);display:flex;flex-direction:column;box-shadow:0 25px 90px #0007}.wide-modal{width:min(100%,800px)}.modal-head{padding:21px 23px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-head h2{font-size:20px;margin:6px 0 0}.modal-body{padding:22px;overflow:auto}.muted{color:var(--muted);font-size:12px;line-height:1.7}.modal-body .muted{margin-top:0}.segmented{display:flex;background:var(--input);padding:4px;border:1px solid var(--border);border-radius:8px;gap:4px;margin:14px 0}.segmented button{flex:1 1;border:0;border-radius:6px;padding:9px;background:transparent;color:var(--muted);font-size:12px}.segmented .on{background:#2f6eae;color:white}.code-area{width:100%;height:min(46vh,450px);resize:vertical;background:#101826;border:1px solid #3a4c66;color:#c7def6;border-radius:7px;padding:15px;font:11px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:13px}.primary-action,.secondary-action{border-radius:7px;padding:11px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;font-weight:700}.secondary-action{background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.warning-note{font-size:10px;color:#aa916c}.export-list{display:grid;grid-gap:8px;gap:8px}.export-list button{border:1px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text);padding:15px;display:flex;align-items:center;gap:13px;text-align:left}.export-list button:hover{border-color:#4f97e9}.export-list button>svg:first-child{color:#83bbfa}.export-list button>span{flex:1 1}.export-list b,.export-list small{display:block}.export-list b{font-size:12px}.export-list small{font-size:10px;color:var(--muted);margin-top:5px;line-height:1.4}.settings-group{margin-bottom:21px}.settings-group select{margin-bottom:0}.setting-toggles{border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:15px 0 22px}.setting-toggles label{display:flex;align-items:center;justify-content:space-between;padding:11px 0;font-size:12px;color:var(--text)}.setting-toggles input{accent-color:#418bdf}.help-rows{margin:18px 0}.help-rows p{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:10px 0;gap:12px;font-size:11px}.help-rows span{color:var(--muted);text-align:right}.error-notice{margin-top:15px;color:#ffb5b5;background:#5c2534;border:1px solid #a44d5d;border-radius:7px;padding:11px;display:flex;justify-content:space-between;white-space:pre-wrap}.error-notice button{background:none;border:0;color:#fff}.toast{position:fixed;bottom:46px;left:50%;transform:translateX(-50%);z-index:20;background:#184d3b;border:1px solid #2b9370;color:#d0fff1;padding:11px 19px;border-radius:8px;box-shadow:0 8px 25px #0006;gap:9px}.presentation-top,.toast{display:flex;align-items:center}.presentation-top{height:95px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;gap:16px}.presentation-top h1{font-size:21px;margin:4px 0 3px}.presentation-top p{margin:0;color:var(--muted);font-size:11px}.presentation-actions{display:flex;gap:8px}.presentation-actions button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:10px;border-radius:7px;display:flex;gap:6px;align-items:center;font-size:11px}.present-legend{top:22px}.is-present .schema-node{font-size:14px}.light-theme .schema-node{background:#fff;color:#263750}.light-theme .node-field:hover{background:#e5f0fe}.light-theme .field-type{color:#63738a}.light-theme .schema-node .field-name{color:#33445b}.light-theme .schema-node .field-name.primary{color:#ac7800}.light-theme .schema-node .field-name.foreign{color:#1670c0}.light-theme .tool-icon:hover{background:#e2eefb}.schema-node{overflow:visible}.node-field{position:relative}.node-handle.pk-handle{border-color:#f5c84e!important;background:#2a2412!important;z-index:4}.node-handle.fk-handle{border-color:#67b9ff!important;background:#122033!important;z-index:4}.light-theme .node-handle.pk-handle{background:#fff8e4!important}.light-theme .node-handle.fk-handle{background:#eef6ff!important}.relation-label{position:absolute;font-size:10px;line-height:1.3;color:#d5e2f4;background:#192238;border:1px solid #31435f;border-radius:4px;padding:1px 5px;pointer-events:none;white-space:nowrap}.light-theme .relation-label{color:#3d5270;background:#fff;border-color:#d5e0ef}.react-flow__edgelabel-renderer{z-index:5}@media(max-width:1300px){.right-sidebar{width:285px}.left-sidebar{width:225px}.brand{width:190px}.topbar{gap:12px}.diagram-legend{right:10px}.hint{display:none}.canvas-bottom{right:160px}}@media(max-width:1020px){.project-title>svg:last-child,.saved,.top-actions>.tool-icon,.top-actions>.top-divider{display:none}.brand{width:auto}.brand-title small{display:none}.topbar{padding:0 12px}.right-sidebar{width:260px}.left-sidebar{width:205px}.diagram-head h2{font-size:14px}.diagram-head{padding:13px}.diagram-legend{top:86px}}@media(max-width:760px){.app-shell{min-height:430px}.topbar{height:58px;min-height:58px;gap:8px}.brand-icon{width:31px;height:31px}.brand-title{font-size:13px}.project-title,.top-secondary,.topbar>.top-divider{display:none}.top-actions{gap:5px}.present-button{padding:9px}.left-sidebar{width:185px}.right-sidebar{position:absolute;right:0;top:0;bottom:0;width:min(88vw,330px);box-shadow:-10px 0 30px #0007}.diagram-head-actions{gap:0}.diagram-head-actions>.tool-icon:nth-child(2),.diagram-head-actions>.tool-icon:nth-child(3){display:none}.diagram-legend{width:155px}.statusbar>div:first-child>span:last-child,.statusbar>div:last-child{display:none}.presentation-top{height:auto;min-height:80px;padding:10px}.presentation-top h1{font-size:16px}.presentation-actions button{font-size:0;gap:0;padding:9px}.presentation-actions svg{width:16px;height:16px}}@media(max-width:550px){.left-sidebar{position:absolute;left:0;top:0;bottom:0;box-shadow:10px 0 30px #0008;width:min(75vw,245px)}.brand-title{font-size:12px}.topbar{padding:0 10px}.top-actions{margin-left:auto}.diagram-head h2{max-width:210px;line-height:1.4}.diagram-legend{top:auto;bottom:120px;width:158px}.canvas-bottom{left:70px;right:8px;bottom:10px}.canvas-actions button{font-size:0}.canvas-actions svg{height:16px;width:16px}.modal-body,.modal-head{padding:15px}.toast{width:90%;justify-content:center}.presentation-top p{font-size:9px}}.export-list button.is-asked{border-color:#4b98ff;box-shadow:inset 0 0 0 1px #4b98ff}.export-theme-ask{margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.export-theme-ask .segmented{display:flex;gap:8px}.export-theme-ask .segmented button{flex:1 1}.export-theme-ask .muted:last-child{margin-top:10px;margin-bottom:0}