:root{--bg:#eef2f7;--panel:#fff;--text:#172033;--muted:#667085;--line:#dbe2ea;--brand:#2563eb;--brand2:#1d4ed8;--danger:#dc2626;--ok:#15803d;--shadow:0 10px 30px rgba(15,23,42,.08);--radius:12px}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:8px 11px;cursor:pointer;color:var(--text)}button:hover{background:#f8fafc}.primary{background:var(--brand)!important;color:#fff!important;border-color:var(--brand)!important}.danger{color:var(--danger)}.topbar{height:64px;background:#0f172a;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 16px;box-shadow:0 2px 12px rgba(0,0,0,.16);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:10px}.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);display:grid;place-items:center;font-weight:800}.brand small{display:block;color:#a8b3c7;font-size:11px;margin-top:2px}.toolbar{display:flex;gap:8px}.workspace{height:calc(100% - 64px);display:grid;grid-template-columns:250px minmax(0,1fr) 320px}.left-panel,.right-panel{background:var(--panel);overflow:auto}.left-panel{border-right:1px solid var(--line)}.right-panel{border-left:1px solid var(--line)}.main-nav{padding:12px;border-bottom:1px solid var(--line);display:grid;gap:5px}.main-nav button{text-align:left;border:0;background:transparent;padding:9px 10px}.main-nav button.active{background:#eff6ff;color:#1d4ed8;font-weight:700}.tree-head{padding:12px 14px 8px;display:flex;justify-content:space-between;align-items:center;font-size:12px;text-transform:uppercase;color:var(--muted);font-weight:700}.tree-head button{padding:2px 8px}.project-tree{padding:0 8px 16px}.tree-group{margin-bottom:10px}.tree-group-title{font-size:12px;color:var(--muted);font-weight:700;padding:7px}.tree-item{display:flex;align-items:center;gap:7px;border-radius:8px;padding:8px;cursor:pointer;font-size:13px}.tree-item:hover,.tree-item.active{background:#f1f5f9}.tree-item .dot{width:7px;height:7px;border-radius:50%;background:#94a3b8}.tree-item.active .dot{background:var(--brand)}.editor{min-width:0;display:flex;flex-direction:column}.editor-head{height:54px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 14px}.editor-head small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.viewport-switch{display:flex;gap:4px}.viewport-switch button{padding:6px 8px;font-size:12px}.viewport-switch button.active{background:#0f172a;color:#fff}.canvas-wrap{flex:1;overflow:auto;padding:28px}.canvas{min-height:500px;background:#fff;border-radius:14px;box-shadow:var(--shadow);margin:0 auto;transition:.2s;width:100%;max-width:1280px;overflow:hidden}.canvas-wrap.tablet .canvas{max-width:820px}.canvas-wrap.mobile .canvas{max-width:390px}.panel-tabs{height:46px;border-bottom:1px solid var(--line);display:flex}.panel-tabs button{flex:1;border:0;border-radius:0;background:#fff}.panel-tabs button.active{font-weight:700;color:var(--brand);border-bottom:2px solid var(--brand)}.panel-body{padding:14px}.hidden{display:none!important}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800;margin:12px 0 8px}.field{display:grid;gap:5px;margin-bottom:10px}.field label{font-size:12px;color:#475467}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.field textarea{min-height:82px;resize:vertical}.row{display:flex;gap:8px}.row>*{flex:1}.card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.muted{color:var(--muted)}.small{font-size:12px}.empty{padding:30px;text-align:center;color:var(--muted)}.component-palette{display:grid;grid-template-columns:1fr 1fr;gap:8px}.palette-item{padding:11px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:12px}.page-shell{min-height:500px;background:var(--sc-bg,#f7f8fb);color:var(--sc-text,#111827);font-family:var(--sc-font,Inter,system-ui);padding:18px}.page-title{font-size:26px;margin:0 0 4px}.page-subtitle{color:#64748b;margin:0 0 20px}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}.sc-block{grid-column:span var(--w,12);border:1px dashed transparent;position:relative}.sc-block.selected{outline:2px solid #60a5fa;outline-offset:3px}.sc-card{background:var(--sc-card,#fff);border-radius:var(--sc-radius,12px);padding:16px;border:1px solid #e2e8f0}.sc-kpi strong{font-size:28px;display:block}.sc-button{display:inline-flex;align-items:center;justify-content:center;background:var(--sc-primary,#2563eb);color:#fff;border:0;border-radius:9px;padding:10px 14px}.sc-table-wrap{overflow:auto}.sc-table{width:100%;border-collapse:collapse;font-size:13px}.sc-table th,.sc-table td{padding:9px 10px;border-bottom:1px solid #e5e7eb;text-align:left;white-space:nowrap}.sc-form{display:grid;grid-template-columns:repeat(12,1fr);gap:10px}.sc-form .f{grid-column:span 6}.sc-form label{font-size:12px;display:block;margin-bottom:4px;color:#475569}.sc-form input,.sc-form select,.sc-form textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:9px;background:#fff}.sc-filterbar{display:flex;gap:8px;flex-wrap:wrap}.sc-filterbar input,.sc-filterbar select{border:1px solid #cbd5e1;border-radius:8px;padding:8px}.component-actions{position:absolute;right:5px;top:5px;display:none;gap:4px}.sc-block:hover .component-actions,.sc-block.selected .component-actions{display:flex}.component-actions button{padding:3px 6px;font-size:11px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);display:grid;place-items:center;z-index:50;padding:20px}.modal{width:min(780px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.3)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-body{padding:18px}.modal-foot{padding:14px 18px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.badge{display:inline-block;border-radius:999px;padding:3px 8px;font-size:11px;background:#eef2ff;color:#3730a3}.status-ok{color:var(--ok)}.status-warn{color:#b45309}.preflight{display:grid;gap:8px}.preflight .item{display:flex;justify-content:space-between;padding:9px 10px;border:1px solid var(--line);border-radius:9px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#111827;color:#fff;padding:10px 14px;border-radius:9px;z-index:80;box-shadow:var(--shadow)}@media(max-width:1050px){.workspace{grid-template-columns:210px minmax(0,1fr)}.right-panel{position:fixed;right:0;top:64px;bottom:0;width:320px;z-index:10;box-shadow:-10px 0 30px rgba(15,23,42,.12)}}@media(max-width:760px){body{overflow:auto}.topbar{height:auto;min-height:64px;align-items:flex-start;gap:10px;padding:10px;flex-direction:column}.toolbar{width:100%;overflow:visible;flex-wrap:wrap}.toolbar button{flex:1 1 auto}.workspace{height:auto;display:block}.left-panel{border:0}.main-nav{grid-template-columns:repeat(4,minmax(90px,1fr));overflow:auto}.project-tree{display:none}.editor-head{position:sticky;top:0;z-index:3}.canvas-wrap{padding:10px}.right-panel{position:static;width:auto;box-shadow:none;border:0}.grid{gap:8px}.sc-block{grid-column:span 12!important}.sc-form .f{grid-column:span 12}.brand small{display:none}}
.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex:0 0 auto}.icon-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.icon-picker button{padding:7px;display:grid;place-items:center}.icon-picker button.active{background:#eff6ff;border-color:#60a5fa;color:#2563eb}.icon-picker .icon{width:19px;height:19px}
.sc-block[draggable="true"]{cursor:grab}.sc-block.dragging{opacity:.45}.sc-block.drag-over{outline:2px dashed #2563eb;outline-offset:4px}

.check-list{display:grid;gap:6px;margin-bottom:8px}.check-list label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;border:1px solid var(--line);border-radius:8px;padding:7px 8px;font-size:12px}.check-list small{color:var(--muted);font-size:10px}.check-list input{width:auto}.preflight .ok{border-color:#bbf7d0;background:#f0fdf4}.preflight .warn{border-color:#fde68a;background:#fffbeb}.preflight .error{border-color:#fecaca;background:#fef2f2}
