@charset "UTF-8";.react-dual-listbox,.react-dual-listbox *{box-sizing:border-box}.react-dual-listbox input:disabled,.react-dual-listbox select:disabled{cursor:not-allowed;background:#eee}.react-dual-listbox button,.react-dual-listbox select{font-family:inherit;line-height:1.42857}.react-dual-listbox select{min-height:146px}.rdl-controls{display:flex;flex-direction:column;align-items:center;height:100%}@media (min-width: 576px){.rdl-controls{flex-direction:row}}.rdl-hidden-input{position:absolute;width:0;height:0;opacity:0}.rdl-list-box{display:flex;flex:1 1 0;flex-direction:column;align-self:stretch}.rdl-filter,.rdl-control{display:block;width:100%;padding:8px 12px;font-size:14px;color:#333;border:1px solid #ccc;border-radius:2px}.rdl-filter{margin-bottom:10px}.rdl-filter:focus:not(:disabled){border-color:#8c8c8c;outline:0}.rdl-control-container{display:flex;flex:1 0 auto;flex-direction:column}.rdl-control-label{position:absolute;padding:0 4px 4px;clip:rect(0 0 0 0)}.rdl-has-header .rdl-control-label{position:static;clip:auto}.rdl-control{flex:1 0 auto}.rdl-control:focus:not(:disabled){border-color:#8c8c8c;outline:0}.rdl-control optgroup{font:inherit;font-weight:700}.rdl-actions{display:flex;flex:0 0 auto;margin:10px 0}@media (min-width: 576px){.rdl-actions{flex-direction:column;align-self:flex-end;width:auto;margin:0 10px}}.rdl-actions-to-selected,.rdl-actions-to-available{display:flex}@media (min-width: 576px){.rdl-actions-to-selected,.rdl-actions-to-available{flex-direction:column}}@media (min-width: 576px){.rdl-actions-to-selected{margin-bottom:5px}}.rdl-btn{padding:5px 10px;margin:0 3px;font-size:14px;color:#333;cursor:pointer;background:#fff;border:1px solid #ccc;border-radius:2px}.rdl-btn:active:not(:disabled),.rdl-btn:focus:not(:disabled){background:#e6e6e6;border-color:#8c8c8c}.rdl-btn:focus:not(:disabled){outline:thin dotted;outline-offset:-2px}.rdl-btn:hover:not(:disabled){background:#e6e6e6;border-color:#adadad}.rdl-btn:disabled{cursor:not-allowed;opacity:.5}.rdl-btn:last-child{margin-bottom:0}.rdl-btn .rdl-icon{display:inline-block;font-size:14px;font-style:normal;font-variant:normal;text-align:center;text-rendering:auto}@media (min-width: 576px){.rdl-btn{margin:0 0 5px}}.rdl-no-options{height:100%;padding:4px 6px}.rdl-align-top .rdl-available{margin-bottom:10px}.rdl-align-top .rdl-control{border-top-left-radius:0;border-top-right-radius:0}.rdl-align-top .rdl-actions-to-available,.rdl-align-top .rdl-actions-to-selected{flex-direction:row;margin:0}.rdl-align-top .rdl-list-box .rdl-move{flex:0 1 50%;margin:0}.rdl-align-top .rdl-list-box .rdl-move:first-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.rdl-align-top .rdl-list-box .rdl-move:last-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.rdl-align-top[dir=ltr] .rdl-list-box .rdl-move:first-child{border-right:0;border-top-right-radius:0}.rdl-align-top[dir=ltr] .rdl-list-box .rdl-move:last-child{border-top-left-radius:0}.rdl-align-top[dir=rtl] .rdl-list-box .rdl-move:first-child{border-left:0;border-top-left-radius:0}.rdl-align-top[dir=rtl] .rdl-list-box .rdl-move:last-child{border-top-right-radius:0}@media (min-width: 576px){.rdl-align-top[dir=ltr] .rdl-available{margin:0 10px 0 0}.rdl-align-top[dir=ltr] .rdl-selected{margin-left:10px}.rdl-align-top[dir=rtl] .rdl-available{margin:0 0 0 10px}.rdl-align-top[dir=rtl] .rdl-selected{margin-right:10px}}.rdl-icons-fa5 .rdl-icon,.rdl-icons-fa6 .rdl-icon{font-family:"Font Awesome 6 Free","Font Awesome 5 Free",FontAwesome,sans-serif;font-weight:900}.rdl-icons-fa5 .rdl-icon-move-all-to-selected:before,.rdl-icons-fa5 .rdl-icon-move-bottom:before,.rdl-icons-fa6 .rdl-icon-move-all-to-selected:before,.rdl-icons-fa6 .rdl-icon-move-bottom:before{content:""}.rdl-icons-fa5 .rdl-icon-move-to-selected:before,.rdl-icons-fa5 .rdl-icon-move-down:before,.rdl-icons-fa6 .rdl-icon-move-to-selected:before,.rdl-icons-fa6 .rdl-icon-move-down:before{content:""}.rdl-icons-fa5 .rdl-icon-move-to-available:before,.rdl-icons-fa5 .rdl-icon-move-up:before,.rdl-icons-fa6 .rdl-icon-move-to-available:before,.rdl-icons-fa6 .rdl-icon-move-up:before{content:""}.rdl-icons-fa5 .rdl-icon-move-all-to-available:before,.rdl-icons-fa5 .rdl-icon-move-top:before,.rdl-icons-fa6 .rdl-icon-move-all-to-available:before,.rdl-icons-fa6 .rdl-icon-move-top:before{content:""}@media (min-width: 576px){.rdl-icons-fa5 .rdl-icon-move-to-available:before,.rdl-icons-fa6 .rdl-icon-move-to-available:before{content:""}.rdl-icons-fa5 .rdl-icon-move-all-to-available:before,.rdl-icons-fa6 .rdl-icon-move-all-to-available:before{content:""}.rdl-icons-fa5 .rdl-icon-move-to-selected:before,.rdl-icons-fa6 .rdl-icon-move-to-selected:before{content:""}.rdl-icons-fa5 .rdl-icon-move-all-to-selected:before,.rdl-icons-fa6 .rdl-icon-move-all-to-selected:before{content:""}.rdl-icons-fa5[dir=rtl] .rdl-icon-move-to-available:before,.rdl-icons-fa6[dir=rtl] .rdl-icon-move-to-available:before{content:""}.rdl-icons-fa5[dir=rtl] .rdl-icon-move-all-to-available:before,.rdl-icons-fa6[dir=rtl] .rdl-icon-move-all-to-available:before{content:""}.rdl-icons-fa5[dir=rtl] .rdl-icon-move-to-selected:before,.rdl-icons-fa6[dir=rtl] .rdl-icon-move-to-selected:before{content:""}.rdl-icons-fa5[dir=rtl] .rdl-icon-move-all-to-selected:before,.rdl-icons-fa6[dir=rtl] .rdl-icon-move-all-to-selected:before{content:""}}.rdl-icons-native .rdl-icon-move-all-to-selected:before,.rdl-icons-native .rdl-icon-move-bottom:before{content:"⮇"}.rdl-icons-native .rdl-icon-move-to-selected:before,.rdl-icons-native .rdl-icon-move-down:before{content:"🠣"}.rdl-icons-native .rdl-icon-move-to-available:before,.rdl-icons-native .rdl-icon-move-up:before{content:"🠡"}.rdl-icons-native .rdl-icon-move-all-to-available:before,.rdl-icons-native .rdl-icon-move-top:before{content:"⮅"}@media (min-width: 576px){.rdl-icons-native .rdl-icon-move-to-available:before{content:"⭠"}.rdl-icons-native .rdl-icon-move-all-to-available:before{content:"⮄"}.rdl-icons-native .rdl-icon-move-to-selected:before{content:"⭢"}.rdl-icons-native .rdl-icon-move-all-to-selected:before{content:"⮆"}.rdl-icons-native[dir=rtl] .rdl-icon-move-to-available:before{content:"⭢"}.rdl-icons-native[dir=rtl] .rdl-icon-move-all-to-available:before{content:"⮆"}.rdl-icons-native[dir=rtl] .rdl-icon-move-to-selected:before{content:"⭠"}.rdl-icons-native[dir=rtl] .rdl-icon-move-all-to-selected:before{content:"⮄"}}.react-flow{width:100%;height:100%;position:relative;overflow:hidden}.react-flow__pane{z-index:1}.react-flow__selectionpane{z-index:5}.react-flow .react-flow__connectionline{z-index:1001}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge-path{fill:none}.react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.react-flow__connection-path{fill:none}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box}.react-flow__handle{position:absolute;pointer-events:none}.react-flow__handle.connectable{pointer-events:all}.react-flow__controls{position:absolute;z-index:5;bottom:20px;left:15px}.react-flow__controls-button{width:24px;height:24px;border:none}.react-flow__controls-button svg{width:100%}.react-flow__minimap{position:absolute;z-index:5;bottom:20px;right:15px}.react-flow__attribution{font-size:10px;position:absolute;z-index:1000;background:#ffffff80;padding:2px 3px;color:#999}.react-flow__attribution a{color:#555;text-decoration:none}.react-flow__attribution.top{top:0}.react-flow__attribution.bottom{bottom:0}.react-flow__attribution.left{left:0}.react-flow__attribution.right{right:0}.react-flow__attribution.center{left:50%;transform:translate(-50%)}.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.builder-layout{display:flex;gap:24px;width:100%;min-height:100%}.builder-sidebar-area{width:320px;min-width:320px}.builder-main-area{flex:1;min-width:0}.builder-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.builder-content{width:100%}.builder-sidebar{background:#fff;border-radius:18px;padding:24px;display:flex;flex-direction:column;gap:24px}.builder-sidebar-header{display:flex;align-items:center;gap:14px}.builder-logo{width:56px;height:56px;border-radius:14px;background:#2f80ed;color:#fff;font-weight:700;font-size:22px;display:flex;align-items:center;justify-content:center}.builder-sidebar-title{margin:0;font-size:26px;font-weight:700}.builder-sidebar-description{color:#6b7280;font-size:14px}.builder-sidebar-section{border-top:1px solid #e5e7eb;padding-top:18px}.builder-section-title{font-size:14px;font-weight:700;letter-spacing:1px;margin-bottom:16px;text-transform:uppercase}.builder-section-content{display:flex;flex-direction:column;gap:14px}.builder-title{margin:0;font-size:42px;font-weight:700}.builder-subtitle{margin-top:6px;color:#6b7280}.builder-toggle{display:flex;background:#e9eef5;padding:6px;border-radius:16px;gap:6px}.builder-toggle-btn{border:none;background:transparent;padding:10px 18px;border-radius:12px;font-weight:600}.builder-toggle-btn.active{background:#fff;box-shadow:0 2px 8px #00000014}.erd-sheet{min-width:100%}.erd-tool-pill{border:1px solid #dbe4ef;border-radius:999px;background:#fff;padding:8px 11px;font-size:12px;font-weight:800;color:#475569}.erd-stage{position:relative;height:680px;border:2px dashed #cbd5e1;border-radius:18px;background:linear-gradient(#fff,#fff),radial-gradient(#e2e8f0 1px,transparent 1px);background-size:100% 100%,22px 22px;overflow:hidden}.erd-edge-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.erd-edge-line{stroke:#334155;stroke-width:2.2;fill:none}.erd-edge-hit{stroke:transparent;stroke-width:18;fill:none;pointer-events:stroke;cursor:pointer}.erd-edge-label{font-size:11px;font-weight:900;fill:#334155;paint-order:stroke;stroke:#fff;stroke-width:4px;cursor:pointer;pointer-events:auto}.erd-entity-card{position:absolute;width:230px;min-height:150px;border:3px solid #111;border-radius:16px;background:#fff;box-shadow:0 12px 28px #0f172a21;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.erd-entity-card:active{cursor:grabbing}.erd-entity-head{padding:10px 12px;font-weight:900;border-bottom:2px solid #111;display:flex;justify-content:space-between;gap:8px;align-items:center}.erd-entity-card.star .erd-entity-head{background:#fff7ed;border-color:#fb923c}.erd-entity-card.master .erd-entity-head{background:#eff6ff;border-color:#60a5fa}.erd-entity-card.transaction .erd-entity-head{background:#ecfdf5;border-color:#34d399}.erd-entity-card.other .erd-entity-head{background:#f3f4f6;border-color:#9ca3af}.erd-entity-type{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#475569}.erd-entity-body{padding:8px 12px}.erd-field-row{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:4px 0;border-bottom:1px dashed #e5e7eb}.erd-field-row:last-child{border-bottom:0}.erd-field-name{font-weight:800}.erd-field-type{color:#64748b;font-size:11px}.erd-entity-flags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.erd-flag{font-size:10px;border-radius:999px;background:#f1f5f9;padding:4px 6px;font-weight:900;color:#475569}.erd-empty-state{text-align:center;padding:50px 20px;color:#6b7280}.erd-data-card{border:1px solid #e5e7eb;border-radius:16px;padding:14px;background:#fff}.erd-db-table{min-width:1350px;font-size:13px}.erd-db-table th{white-space:nowrap;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#475569}.erd-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;padding:18px;z-index:2000}.erd-modal{width:min(780px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px}.erd-modal-lg{width:min(980px,100%)}.erd-check-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.erd-check-row label{display:flex;align-items:center;gap:8px;margin:0;font-weight:800}.erd-check-row input{width:auto}.erd-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;flex-wrap:wrap}.erd-toast{position:fixed;right:18px;bottom:18px;background:#111827;color:#fff;padding:11px 14px;border-radius:12px;opacity:0;transform:translateY(10px);transition:.22s;z-index:3000;font-size:13px;font-weight:800;pointer-events:none}.erd-toast.show{opacity:1;transform:translateY(0)}@media (max-width: 1200px){.erd-stage{height:560px}}@media (max-width: 992px){.erd-stage{height:520px}}.erd-builder-page{width:100%;overflow-x:hidden}.erd-layout{display:flex;gap:18px;align-items:stretch;width:100%;min-width:0}.erd-left-panel{flex:0 0 320px;max-width:320px;min-width:280px}.erd-right-panel{flex:1;min-width:0}.erd-left-inner{display:flex;flex-direction:column;gap:16px;padding:4px 0}.erd-section{display:flex;flex-direction:column;gap:10px}.erd-section-title{font-weight:700;font-size:16px;line-height:1.2;margin-top:4px;margin-bottom:2px;color:#344767}.erd-left-inner .form-label{margin-bottom:6px}.erd-left-inner .btn-group{display:flex;width:100%}.erd-left-inner .btn-group .btn{flex:1;min-width:0;white-space:nowrap}.erd-sheet{background:#fff;border-radius:20px;padding:18px;overflow:hidden;box-shadow:0 14px 35px #0f172a14}.erd-sheet-header{display:grid;grid-template-columns:1fr 1fr 220px;gap:16px;align-items:start;margin-bottom:14px;font-size:13px;font-weight:900}.erd-line{display:inline-block;width:230px;border-bottom:2px solid #555;transform:translateY(-3px);margin-left:12px}.erd-checks{display:flex;justify-content:flex-end;gap:20px;font-size:11px;font-weight:700;color:#555}.erd-check-box{width:26px;height:26px;border:2px solid #111;border-radius:5px;margin:auto auto 4px}.erd-title{text-align:center;font-size:28px;font-weight:900;margin:10px 0 6px}.erd-subtitle{text-align:center;font-size:13px;color:#6b7280;margin-bottom:14px}.erd-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0 14px}.erd-tool-pill{border:1px solid #dbe4ef;border-radius:999px;background:#fff;padding:8px 11px;font-size:12px;font-weight:900;color:#475569}.erd-canvas-stage{position:relative;height:680px;border:2px dashed #cbd5e1;border-radius:18px;background:linear-gradient(#fff,#fff),radial-gradient(#e2e8f0 1px,transparent 1px);background-size:100% 100%,22px 22px;overflow:hidden}.erd-entity-layer{position:absolute;top:0;right:0;bottom:0;left:0}.fbd-page{width:100%}.fbd-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.fbd-topbar h2{margin:0;font-size:28px;font-weight:800}.fbd-hint{margin:4px 0 0;color:#6b7280;font-size:13px}.fbd-view-toggle{display:flex;background:#e8eef6;padding:4px;border-radius:12px;gap:4px}.fbd-toggle-btn{border:0;background:transparent;padding:9px 13px;border-radius:10px;font-weight:800;cursor:pointer;color:#475569}.fbd-toggle-btn.active{background:#fff;color:#298ddc;box-shadow:0 3px 10px #0f172a14}.fbd-sidebar-panel{display:flex;flex-direction:column;gap:18px}.fbd-brand{display:flex;align-items:center;gap:10px}.fbd-brand-mark{width:44px;height:44px;border-radius:12px;background:#298ddc;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.fbd-brand h3{margin:0;font-size:20px;font-weight:800}.fbd-brand p{margin:3px 0 0;font-size:12px;color:#6b7280}.fbd-side-section{border-top:1px solid #e5e7eb;padding-top:14px}.fbd-side-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;color:#475569}.fbd-meta-input{width:100%;border:1px solid #dbe4ef;border-radius:10px;padding:10px 11px;margin-bottom:10px;outline:none;font-size:13px}.fbd-meta-input:focus{border-color:#298ddc;box-shadow:0 0 0 3px #298ddc1f}.fbd-btn{width:100%;border:1px solid #dbe4ef;background:#fff;color:#111827;padding:11px 12px;border-radius:11px;font-weight:700;cursor:pointer;margin-bottom:8px;transition:.18s ease}.fbd-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.fbd-btn.primary{background:#298ddc;color:#fff;border-color:#298ddc}.fbd-btn.danger{color:#ef4444;border-color:#fecaca}.fbd-block-list{display:flex;flex-direction:column;gap:8px}.fbd-block-item{background:#f8fafc;border:1px solid #e2e8f0;padding:10px;border-radius:10px;font-size:13px;font-weight:700}.canvas-wrap{background:#fff;border-radius:20px;padding:18px;overflow-x:auto;box-shadow:0 14px 35px #0f172a14}.fbd-sheet{min-width:900px;max-width:1120px;margin:auto;background:#fff;border-radius:8px;padding:18px}.sheet-header{display:grid;grid-template-columns:1fr 1fr 180px;align-items:start;gap:16px;margin-bottom:8px;font-size:13px;font-weight:800}.line{display:inline-block;width:190px;border-bottom:2px solid #555;transform:translateY(-3px);margin-left:12px}.checks{display:flex;justify-content:flex-end;gap:18px;font-size:10px;font-weight:600;color:#555}.check-box{width:24px;height:24px;border:2px solid #111;border-radius:5px;margin:auto auto 4px}.title{text-align:center;font-size:34px;font-weight:900;margin:8px 0 18px}.fbd-grid{display:grid;grid-template-columns:1fr 1.2fr 1.2fr;grid-template-rows:185px 185px 200px 175px 135px 200px;gap:22px 34px}.fbd-box{border:4px solid #111;background:#fff;position:relative;padding:16px 12px 38px;cursor:pointer;overflow:hidden;transition:.18s ease;min-height:120px}.fbd-box:hover{border-color:#298ddc}.fbd-label{position:absolute;left:10px;bottom:8px;font-size:18px;font-weight:900;background:#ffffffeb;padding-right:5px}.chip-zone{display:flex;flex-wrap:wrap;gap:7px;align-content:flex-start}.chip{display:inline-flex;align-items:center;gap:6px;background:#eef6ff;border:1px solid #b9dcff;color:#0f4f7d;padding:6px 8px;border-radius:999px;font-size:12px;font-weight:800}.x{border:0;background:transparent;color:#0f4f7d;cursor:pointer;font-weight:900}.connectors{grid-column:1;grid-row:1 / span 4}.sensors{grid-column:2;grid-row:1}.communication{grid-column:3;grid-row:1}.cpu{grid-column:2;grid-row:2}.memory{grid-column:3;grid-row:2}.actuators{grid-column:2;grid-row:3 / span 2}.peripherals{grid-column:3;grid-row:3}.supply{grid-column:3;grid-row:4}.indicators{grid-column:1 / span 2;grid-row:5}.ui{grid-column:3;grid-row:5}.notes{grid-column:1 / span 3;grid-row:6}.table-wrap{background:#fff;border-radius:20px;padding:18px;overflow-x:auto;box-shadow:0 14px 35px #0f172a14}table{width:100%;border-collapse:collapse;min-width:820px}.modal{width:min(520px,100%);background:#fff;border-radius:18px;padding:20px;box-shadow:0 25px 60px #0f172a47}.modal label{display:block;font-size:13px;font-weight:800;margin:12px 0 6px}.modal input,.modal textarea{width:100%;border:1px solid #dbe4ef;border-radius:11px;padding:11px 12px;font:inherit}.modal textarea{min-height:88px;resize:vertical}.toast{position:fixed;right:18px;bottom:18px;background:#111827;color:#fff;padding:11px 14px;border-radius:12px;z-index:2000;font-size:13px;font-weight:700}@media (max-width: 880px){.fbd-topbar{flex-direction:column;align-items:flex-start}.sheet-header{grid-template-columns:1fr}.checks{justify-content:flex-start}}.fbd-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;padding:18px;z-index:5000}.fbd-modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px;position:relative;z-index:5001}.hls-page{width:100%}.hls-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.hls-topbar h2{margin:0;font-size:28px;font-weight:800}.hls-hint{margin:4px 0 0;color:#6b7280;font-size:13px}.hls-view-toggle{display:flex;background:#e8eef6;padding:4px;border-radius:12px;gap:4px;flex-wrap:wrap}.hls-toggle-btn{border:0;background:transparent;padding:9px 13px;border-radius:10px;font-weight:900;cursor:pointer;color:#475569}.hls-toggle-btn.active{background:#fff;color:#298ddc;box-shadow:0 3px 10px #0f172a14}.hls-sidebar-panel{display:flex;flex-direction:column;gap:18px}.hls-brand{display:flex;align-items:center;gap:10px}.hls-brand-mark{width:44px;height:44px;border-radius:12px;background:#298ddc;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.hls-brand h3{margin:0;font-size:20px;font-weight:800}.hls-brand p{margin:3px 0 0;font-size:12px;color:#6b7280}.hls-side-section{border-top:1px solid #e5e7eb;padding-top:14px}.hls-side-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;color:#475569}.hls-meta-input{width:100%;border:1px solid #dbe4ef;border-radius:10px;padding:10px 11px;margin-bottom:10px;outline:none;font-size:13px}.hls-meta-input:focus{border-color:#298ddc;box-shadow:0 0 0 3px #298ddc1f}.hls-btn{width:100%;border:1px solid #dbe4ef;background:#fff;color:#111827;padding:11px 12px;border-radius:11px;font-weight:700;cursor:pointer;margin-bottom:8px;transition:.18s ease}.hls-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.hls-btn.primary{background:#298ddc;color:#fff;border-color:#298ddc}.hls-btn.danger{color:#ef4444;border-color:#fecaca}.hls-legend{display:flex;gap:8px;flex-wrap:wrap}.hls-legend span{font-size:12px;font-weight:800;border-radius:999px;padding:6px 9px}.hls-lg-inside{background:#eef6ff;border:1px solid #b9dcff;color:#0f4f7d}.hls-lg-exposed{background:#fff3cd;border:1px solid #f4c430;color:#7c4a03}.hls-sheet{min-width:1120px;max-width:1320px;margin:auto;background:#fff;border-radius:8px;padding:12px}.sheet-header{display:grid;grid-template-columns:1fr 1fr 220px;align-items:start;gap:16px;margin-bottom:20px;font-size:13px;font-weight:900}.line{display:inline-block;width:260px;border-bottom:2px solid #555;transform:translateY(-3px);margin-left:12px}.checks{display:flex;justify-content:flex-end;gap:20px;font-size:11px;font-weight:700;color:#555}.check-box{width:26px;height:26px;border:2px solid #111;border-radius:5px;margin:auto auto 4px}.title{text-align:center;font-size:26px;font-weight:900;margin:8px 0 22px}.hls-grid{display:grid;grid-template-columns:2.65fr .78fr 1.03fr;grid-template-rows:160px 160px 160px;gap:34px 34px;align-items:stretch}.hls-box{border:4px solid #111;background:#f7f7f8;position:relative;padding:14px 12px 42px;cursor:pointer;overflow:hidden;transition:.18s ease}.hls-box:hover{border-color:#298ddc;box-shadow:inset 0 0 0 2px #298ddc24}.main-sketch{grid-column:1;grid-row:1 / 4}.top-view{grid-column:2;grid-row:1}.front-view{grid-column:2;grid-row:2}.side-view{grid-column:2;grid-row:3}.notes{grid-column:3;grid-row:1 / 4;background:#fff}.view-title{position:absolute;left:0;right:0;bottom:-32px;text-align:center;font-size:14px;font-weight:900}.main-sketch .view-title{bottom:-40px;font-size:16px}.notes .view-title{top:34px;bottom:auto;font-size:22px}.chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:6px 8px;border-radius:999px;font-size:12px;font-weight:900;cursor:default}.chip.inside{background:#eef6ff;border:1px solid #b9dcff;color:#0f4f7d}.chip.exposed{background:#fff3cd;border:1px solid #f4c430;color:#7c4a03}.chip.placement{background:#ecfdf5;border:1px solid #86efac;color:#166534}.chip.note{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.chip .x{border:0;background:transparent;color:inherit;cursor:pointer;font-weight:900;font-size:13px;padding:0 1px}.box-label{position:absolute;right:14px;top:38px;font-size:22px;font-weight:900;background:#ffffffd9;padding-left:6px}table{width:100%;border-collapse:collapse;min-width:1050px;font-size:14px}.modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.radio-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.radio-row label{display:flex;align-items:center;gap:8px;margin:0;font-weight:800}.radio-row input{width:auto}@media (max-width: 900px){.hls-topbar{flex-direction:column;align-items:flex-start}.sheet-header{grid-template-columns:1fr}.checks{justify-content:flex-start}.row,.row3{grid-template-columns:1fr}.hls-grid{grid-template-columns:1fr;grid-template-rows:auto}.main-sketch,.top-view,.front-view,.side-view,.notes{grid-column:auto;grid-row:auto;min-height:160px}}.hls-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;padding:18px;z-index:5000}.hls-modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px;position:relative;z-index:5001}.lc-page{width:100%}.lc-topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.lc-topbar h2{margin:0;font-size:28px;font-weight:800}.lc-hint{margin:4px 0 0;color:#6b7280;font-size:13px}.lc-view-toggle{display:flex;background:#e8eef6;padding:4px;border-radius:12px;gap:4px;flex-wrap:wrap}.lc-toggle-btn{border:0;background:transparent;padding:9px 13px;border-radius:10px;font-weight:900;cursor:pointer;color:#475569}.lc-toggle-btn.active{background:#fff;color:#298ddc;box-shadow:0 3px 10px #0f172a14}.lc-sidebar-panel{display:flex;flex-direction:column;gap:18px}.lc-brand{display:flex;align-items:center;gap:10px}.lc-brand-mark{width:44px;height:44px;border-radius:12px;background:#298ddc;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.lc-brand h3{margin:0;font-size:20px;font-weight:800}.lc-brand p{margin:3px 0 0;font-size:12px;color:#6b7280}.lc-side-section{border-top:1px solid #e5e7eb;padding-top:14px}.lc-side-title{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;color:#475569}.lc-meta-input{width:100%;border:1px solid #dbe4ef;border-radius:10px;padding:10px 11px;margin-bottom:10px;outline:none;font-size:13px}.lc-meta-input:focus{border-color:#298ddc;box-shadow:0 0 0 3px #298ddc1f}.lc-btn{width:100%;border:1px solid #dbe4ef;background:#fff;color:#111827;padding:11px 12px;border-radius:11px;font-weight:700;cursor:pointer;margin-bottom:8px;transition:.18s ease}.lc-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.lc-btn.primary{background:#298ddc;color:#fff;border-color:#298ddc}.lc-btn.danger{color:#ef4444;border-color:#fecaca}.legend{display:flex;gap:7px;flex-wrap:wrap}.legend span{font-size:11px;font-weight:900;border-radius:999px;padding:6px 8px;color:#fff}.lg-backlog{background:#64748b}.lg-todo{background:#f59e0b}.lg-doing{background:#298ddc}.lg-review{background:#8b5cf6}.lg-done{background:#16a34a}.lg-unmapped{background:#9ca3af}.lc-sheet{min-width:980px;max-width:1320px;margin:auto;background:#fff;border-radius:8px;padding:16px}.lc-sheet .sheet-header{display:grid;grid-template-columns:1fr 1fr 220px;align-items:start;gap:16px;margin-bottom:12px;font-size:13px;font-weight:900}.lc-sheet .line{display:inline-block;width:230px;border-bottom:2px solid #555;transform:translateY(-3px);margin-left:12px}.lc-sheet .checks{display:flex;justify-content:flex-end;gap:20px;font-size:11px;font-weight:700;color:#555}.lc-sheet .check-box{width:26px;height:26px;border:2px solid #111;border-radius:5px;margin:auto auto 4px}.lc-sheet .title{text-align:center;font-size:28px;font-weight:900;margin:10px 0 6px}.lc-sheet .subtitle{text-align:center;font-size:13px;color:#6b7280;margin-bottom:14px}.lc-sheet .toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0 14px}.lc-sheet .tool-pill{border:1px solid #dbe4ef;border-radius:999px;background:#fff;padding:8px 11px;font-size:12px;font-weight:900;color:#475569}.lc-sheet .tool-pill strong{color:#298ddc}.lc-sheet .canvas-stage{position:relative;height:650px;border:2px dashed #cbd5e1;border-radius:18px;background:linear-gradient(#fff,#fff),radial-gradient(#e2e8f0 1px,transparent 1px);background-size:100% 100%,22px 22px;overflow:hidden}.lc-sheet .edge-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.lc-sheet .edge-line{stroke:#334155;stroke-width:2.2;fill:none;marker-end:url(#arrow)}.lc-sheet .edge-hit{stroke:transparent;stroke-width:18;fill:none;pointer-events:stroke;cursor:pointer}.lc-sheet .edge-label{font-size:11px;font-weight:800;fill:#334155;paint-order:stroke;stroke:#fff;stroke-width:4px;cursor:pointer;pointer-events:auto}.lc-sheet .state-node{position:absolute;width:118px;height:118px;border-radius:999px;border:4px solid #111;display:grid;place-items:center;text-align:center;padding:12px;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 10px 24px #0f172a1f;color:#111;font-weight:900;line-height:1.05}.lc-sheet .state-node:active{cursor:grabbing}.lc-sheet .state-node.selected{outline:5px solid rgba(41,141,220,.25)}.lc-sheet .state-node .name{font-size:15px}.lc-sheet .state-node .map{font-size:10px;margin-top:5px;opacity:.9;text-transform:uppercase;letter-spacing:.06em}.lc-sheet .state-node.backlog{background:#64748b;color:#fff;border-color:#334155}.lc-sheet .state-node.todo{background:#f59e0b;color:#fff;border-color:#b45309}.lc-sheet .state-node.doing{background:#298ddc;color:#fff;border-color:#146ead}.lc-sheet .state-node.review{background:#8b5cf6;color:#fff;border-color:#6d28d9}.lc-sheet .state-node.done{background:#16a34a;color:#fff;border-color:#15803d}.lc-sheet .state-node.unmapped{background:#e5e7eb;color:#111;border-color:#111}.cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:16px}.card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px;box-shadow:0 8px 18px #0f172a0d}.card h3{margin:0 0 8px;font-size:13px;color:#475569;text-transform:uppercase;letter-spacing:.06em}.card .big{font-size:32px;font-weight:900}.bar{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin-top:8px}.bar span{display:block;height:100%;border-radius:999px}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.analysis-box{border:1px solid #e5e7eb;border-radius:16px;padding:14px;background:#fff}.analysis-box h3{margin:0 0 10px}.analysis-box ul{margin:0;padding-left:18px;color:#374151}.analysis-box li{margin:7px 0}.lc-sheet table,.analytics-wrap table,.analysis-wrap table,.db-wrap table{width:100%;border-collapse:collapse;min-width:900px;font-size:14px;margin-bottom:18px}.lc-sheet th,.lc-sheet td,.analytics-wrap th,.analytics-wrap td,.analysis-wrap th,.analysis-wrap td,.db-wrap th,.db-wrap td{border-bottom:1px solid #e5e7eb;padding:12px 10px;text-align:left;vertical-align:top}.lc-sheet th,.analytics-wrap th,.analysis-wrap th,.db-wrap th{background:#f8fafc;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#475569}.badge{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:900;color:#fff}.badge.backlog{background:#64748b}.badge.todo{background:#f59e0b}.badge.doing{background:#298ddc}.badge.review{background:#8b5cf6}.badge.done{background:#16a34a}.badge.unmapped{background:#9ca3af}.modal{width:min(700px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px}.modal label{display:block;font-size:13px;font-weight:900;margin:12px 0 6px}.modal input,.modal textarea,.modal select{width:100%;border:1px solid #dbe4ef;border-radius:11px;padding:11px 12px;font:inherit;outline:none;background:#fff}.modal textarea{min-height:86px;resize:vertical}@media (max-width: 980px){.lc-topbar{flex-direction:column;align-items:flex-start}.lc-sheet .sheet-header{grid-template-columns:1fr}.lc-sheet .checks{justify-content:flex-start}.main{padding:14px}.row,.analysis-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}}.lc-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;padding:18px;z-index:5000}.lc-modal{width:min(720px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px;position:relative;z-index:5001}.sad-page{width:100%}.sad-sheet{min-width:1120px;max-width:1320px;margin:auto;background:#fff;border-radius:8px;padding:12px}.sad-sheet .sheet-header{display:grid;grid-template-columns:1fr 1fr 220px;align-items:start;gap:16px;margin-bottom:8px;font-size:13px;font-weight:900}.sad-sheet .line{display:inline-block;width:260px;border-bottom:2px solid #555;transform:translateY(-3px);margin-left:12px}.sad-sheet .checks{display:flex;justify-content:flex-end;gap:20px;font-size:11px;font-weight:700;color:#555}.sad-sheet .check-box{width:26px;height:26px;border:2px solid #111;border-radius:5px;margin:auto auto 4px}.sad-sheet .title{text-align:center;font-size:24px;font-weight:900;margin:8px 0}.sad-grid{display:grid;grid-template-columns:1.05fr 1.45fr 1.55fr .52fr 1.25fr;grid-template-rows:95px 120px 240px 170px 105px;gap:0;border:2px solid #111}.sad-box{border:2px solid #111;background:#fff;position:relative;padding:12px 10px 38px;cursor:pointer;overflow:hidden;transition:.18s;min-height:85px}.sad-box:hover{border-color:#298ddc;box-shadow:inset 0 0 0 2px #298ddc24}.sad-label{position:absolute;right:12px;bottom:8px;font-size:14px;font-weight:900;background:#ffffffeb;padding-left:6px;z-index:2}.label-left{right:auto;left:12px}.band{display:grid;place-items:center;background:linear-gradient(180deg,#7ec2f0,#70b9e8);color:#fff;font-size:22px;font-weight:900;letter-spacing:.02em;padding:0}.band.bottom{background:linear-gradient(180deg,#238fd3,#1f87cc)}.unified{grid-column:1 / 6;grid-row:1}.notes{grid-column:1;grid-row:2 / 5}.dashboard{grid-column:2;grid-row:2}.databases{grid-column:3 / 5;grid-row:2}.backend{grid-column:2;grid-row:3}.webapp{grid-column:3;grid-row:3}.hardwares{grid-column:4;grid-row:3 / 5}.mobile{grid-column:2;grid-row:4}.cloud{grid-column:3;grid-row:4}.plugin{grid-column:5;grid-row:2 / 4}.others{grid-column:5;grid-row:4}.services{grid-column:1 / 6;grid-row:5}.chip-zone{display:flex;flex-wrap:wrap;gap:7px;align-content:flex-start;max-height:100%;overflow-y:auto;padding-bottom:8px}.chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:#eef6ff;border:1px solid #b9dcff;color:#0f4f7d;padding:6px 8px;border-radius:999px;font-size:12px;font-weight:900;cursor:default}.chip .x{border:0;background:transparent;color:#0f4f7d;cursor:pointer;font-weight:900;font-size:13px;padding:0 1px}.table-wrap{background:#fff;border-radius:20px;box-shadow:0 14px 35px #0f172a14;padding:18px;overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:950px;font-size:14px}th,td{border-bottom:1px solid #e5e7eb;padding:12px 10px;text-align:left;vertical-align:top}th{background:#f8fafc;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#475569}.empty-state{text-align:center;padding:50px 20px;color:#6b7280}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;padding:18px;z-index:1000}.modal{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px}.modal h3{margin:0 0 5px;font-size:20px}.modal p{margin:0 0 16px;color:#6b7280;font-size:13px}label{display:block;font-size:13px;font-weight:900;margin:12px 0 6px}input,textarea,select{width:100%;border:1px solid #dbe4ef;border-radius:11px;padding:11px 12px;font:inherit;outline:none;background:#fff}textarea{min-height:78px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.check-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.check-row label{display:flex;align-items:center;gap:8px;margin:0;font-weight:800}.check-row input{width:auto}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.toast{position:fixed;right:18px;bottom:18px;background:#111827;color:#fff;padding:11px 14px;border-radius:12px;opacity:0;transform:translateY(10px);transition:.22s;z-index:2000;font-size:13px;font-weight:800;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}.hidden-file{display:none}@media (max-width: 900px){.sad-sheet .sheet-header{grid-template-columns:1fr}.sad-sheet .checks{justify-content:flex-start}.sad-grid{grid-template-columns:1fr;grid-template-rows:auto}.unified,.notes,.dashboard,.databases,.backend,.webapp,.hardwares,.mobile,.cloud,.plugin,.others,.services{grid-column:auto;grid-row:auto;min-height:120px}.row{grid-template-columns:1fr}}.sad-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a7a;display:flex;align-items:center;justify-content:center;padding:18px;z-index:5000}.sad-modal{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 25px 60px #0f172a47;padding:20px;position:relative;z-index:5001}.ribbon{position:absolute;left:-2.5px;top:-2.5px;z-index:2;overflow:hidden;width:75px;height:75px;text-align:left}.ribbon-login{left:-.5px;top:-.5px}.ribbon span{font-size:10px;font-weight:700;color:#fff;text-transform:uppercase;text-align:center;line-height:20px;letter-spacing:4px;transform:rotate(-45deg);-webkit-transform:rotate(-45deg);width:100px;display:block;background:#79a70a;background:linear-gradient(#9bc90d,#79a70a);box-shadow:0 3px 10px -5px #000;position:absolute;top:19px;left:-21px}.app-wrapper{max-width:900px}.app-glass-card{border-radius:16px;min-height:160px;padding:15px 0;background:#ffffff26;box-shadow:0 4px 30px #0000001a;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.24)}.app-grid{gap:30px 10px}.app-item{flex:0 0 auto;margin:10px}.outer-circle{width:90px;height:90px;border-radius:50%;padding:12px;display:flex;align-items:center;justify-content:center;margin:0 auto;background:#ffffff4d;box-shadow:0 8px 32px #1f26875e;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.inner-circle{width:60px;height:60px;border-radius:50%;background:#fff;padding:8px;display:flex;align-items:center;justify-content:center}.user-avatar{font-size:1.5rem}.avatar-25{width:25px;height:25px;font-size:.8rem;font-weight:600;line-height:1}
