.auth-screen{background:var(--bg);place-items:center;min-height:100%;padding:24px 16px;display:grid}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:min(360px,100%);padding:28px 24px 24px;box-shadow:0 10px 30px #0f172a14}.auth-card h1{margin:4px 0 18px;font-size:17px}.auth-card .field{margin-bottom:12px}.auth-card input{padding:8px 10px;font-size:14px}.auth-card button.primary{margin-top:10px;padding:9px;font-size:14px}.auth-brand{letter-spacing:.08em;color:#fff;background:var(--accent);border-radius:6px;padding:3px 8px;font-size:12px;font-weight:800;display:inline-block}.phone-input{align-items:stretch;display:flex}.phone-input>span{border:1px solid var(--border-strong);border-radius:var(--radius) 0 0 var(--radius);background:var(--panel-2);color:var(--dim);border-right:0;align-items:center;padding:0 10px;font-size:14px;display:flex}.phone-input input{border-radius:0 var(--radius) var(--radius) 0;flex:1}.auth-error{color:var(--danger);border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;justify-content:space-between;align-items:center;gap:8px;margin:8px 0 0;padding:7px 10px;font-size:12px;display:flex}.modal.auth-modal{width:min(380px,92vw);height:auto;padding:20px;display:block}.modal.auth-modal h2{margin:0 0 10px;font-size:15px}.modal.auth-modal .field input{padding:7px 9px}.modal-actions{justify-content:flex-end;margin-top:14px}.user-menu{position:relative}.user-menu-pop{z-index:40;background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;min-width:200px;padding:8px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 10px 25px #0f172a1f}.user-menu-pop .dim{padding:2px 8px 6px}.user-menu-pop button{text-align:left}:root{--bg:#f1f5f9;--panel:#fff;--panel-2:#f8fafc;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--dim:#64748b;--accent:#2563eb;--accent-soft:#dbeafe;--danger:#dc2626;--warn:#d97706;--ok:#16a34a;--stage:#e5e7eb;--radius:6px;color:var(--text);background:var(--bg);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}button,input,select,textarea{font:inherit;color:inherit}.mono,input.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.dim{color:var(--dim)}.hint{color:var(--dim);margin:6px 0 0;font-size:12px;line-height:1.45}.warn-text{color:var(--warn);font-size:12px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}button{background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;white-space:nowrap;padding:5px 10px}button:hover:not(:disabled){background:var(--panel-2);border-color:#94a3b8}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:#1d4ed8}button.danger{color:var(--danger)}button.ghost{background:0 0;border-color:#0000}button.on{background:var(--accent-soft);border-color:var(--accent);color:#1e3a8a}button.small{padding:2px 8px;font-size:12px}button.icon{text-align:center;width:28px;padding:4px 0}button.wide{width:100%}.btn-row{flex-wrap:wrap;gap:6px;display:flex}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;min-width:0;padding:5px 7px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field{flex-direction:column;gap:3px;min-width:0;margin-bottom:8px;display:flex}.field-label{color:var(--dim);text-transform:none;font-size:11px}.field-input{align-items:center;display:flex;position:relative}.field-input input{width:100%;padding-right:30px}.field-input .suffix{color:var(--dim);pointer-events:none;font-size:11px;position:absolute;right:7px}.field-error{color:var(--danger);font-size:11px}.grid2{grid-template-columns:1fr 1fr;gap:0 8px;display:grid}.grid3{grid-template-columns:1fr 1fr auto;align-items:end;gap:0 8px;display:grid}.grid3 .align-end{margin-bottom:8px}.check{align-items:center;gap:6px;margin:4px 0;font-size:12px;display:flex}.kv{grid-template-columns:auto 1fr;gap:3px 10px;margin:4px 0 10px;font-size:12px;display:grid}.kv>span{color:var(--dim)}.chips{flex-wrap:wrap;gap:4px;margin:-4px 0 8px;display:flex}.chip{border-radius:999px;padding:2px 10px;font-size:12px}.status{color:#334155;background:#e2e8f0;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.status-published{color:#166534;background:#dcfce7}.status-archived{color:#94a3b8;background:#f1f5f9}.status-draft{color:#92400e;background:#fef3c7}.badge{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.badge.err{color:#b91c1c;background:#fee2e2}.badge.warn{color:#92400e;background:#fef3c7}.badge.ok{color:#166534;background:#dcfce7}.editor{grid-template-rows:auto auto 1fr;height:100vh;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:6px 12px;display:flex}.doc-title{flex:1;align-items:baseline;gap:10px;min-width:0;display:flex}.doc-title b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.dirty{color:var(--warn);font-size:14px}.topbar-actions{gap:6px;display:flex}.toolbar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:14px;padding:6px 12px;display:flex}.tool-group{align-items:center;gap:4px;display:flex}.tool-group+.tool-group{border-left:1px solid var(--border);padding-left:14px}.tool-group label{color:var(--dim);align-items:center;gap:4px;font-size:12px;display:flex}.tool-group input[type=number]{width:54px;padding:3px 5px}.tool-group select{padding:3px 4px}.tool{min-width:32px}.wide-icon{width:34px}.workspace{grid-template-columns:290px 1fr 320px;min-height:0;display:grid}.side{background:var(--panel);min-height:0;overflow-y:auto}.side.left{border-right:1px solid var(--border)}.side.right{border-left:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.inspector{flex:1;min-height:0;overflow-y:auto}.inspector-empty{color:var(--dim);padding:16px}.panel-section{border-bottom:1px solid var(--border)}.panel-section>header{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:9px 12px;display:flex}.panel-section>header h3{flex:1;margin:0;font-size:12px;font-weight:600}.chev{color:var(--dim);font-size:10px;transition:transform .12s;display:inline-block}.chev.open{transform:rotate(90deg)}.panel-body{padding:0 12px 12px}.section-actions{gap:4px;display:flex}.calib{background:var(--panel-2);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:6px 8px;font-size:12px;display:flex}.layers{margin:0;padding:0;list-style:none}.layers li{cursor:pointer;border-radius:4px;align-items:center;gap:7px;padding:4px 6px;font-size:12px;display:flex}.layers li:hover{background:var(--panel-2)}.layers li.sel{background:var(--accent-soft)}.layers li.empty{color:var(--dim);cursor:default}.swatch{border-radius:2px;flex:none;width:10px;height:10px}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-meta{color:var(--dim);font-size:11px}.layer-ops{gap:2px;display:none}.layers li:hover .layer-ops{display:flex}.layer-ops .icon{width:20px;padding:0;font-size:11px}.issues{border-top:1px solid var(--border);flex-direction:column;min-height:90px;max-height:38%;display:flex}.issues header{align-items:center;gap:6px;padding:8px 12px;display:flex}.issues h3{flex:1;margin:0;font-size:12px}.issues ul{margin:0;padding:0 8px 8px;list-style:none;overflow-y:auto}.issues li{border-radius:4px;align-items:baseline;gap:7px;padding:4px;font-size:12px;line-height:1.35;display:flex}.issues li.clickable{cursor:pointer}.issues li.clickable:hover{background:var(--panel-2)}.issues .dot{border-radius:50%;flex:none;width:7px;height:7px;transform:translateY(-1px)}.issues li.error .dot{background:var(--danger)}.issues li.warning .dot{background:var(--warn)}.stage{background:var(--stage);min-width:0;min-height:0;position:relative}.canvas-wrap{grid-template-rows:20px 1fr;grid-template-columns:20px 1fr;display:grid;position:absolute;inset:0}.ruler-corner{background:var(--panel);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.ruler{background:var(--panel);display:block;overflow:hidden}.ruler line{stroke:#94a3b8;stroke-width:1px}.ruler text{fill:var(--dim);font-size:9px}.ruler-x{border-bottom:1px solid var(--border)}.ruler-y{border-right:1px solid var(--border)}.canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.shape-label{paint-order:stroke;stroke:#ffffffd9;stroke-width:.6px;pointer-events:none;font-weight:600}.dim-label{fill:#92400e;pointer-events:none;font-weight:600}.canvas-status{border:1px solid var(--border);border-radius:var(--radius);font-variant-numeric:tabular-nums;color:var(--dim);pointer-events:none;background:#ffffffe6;gap:14px;padding:3px 9px;font-size:11px;display:flex;position:absolute;bottom:8px;right:10px}.loading{z-index:2;background:#e5e7ebb3;place-items:center;display:grid;position:absolute;inset:0}.modal-backdrop{z-index:50;background:#0f172a73;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border-radius:10px;flex-direction:column;width:min(860px,92vw);height:min(80vh,900px);display:flex;box-shadow:0 20px 50px #00000040}.modal header,.modal footer{align-items:center;gap:8px;padding:10px 14px;display:flex}.modal header h2{flex:1;margin:0;font-size:14px}.modal footer{border-top:1px solid var(--border);justify-content:flex-end}.modal footer .hint{margin:0 auto 0 0}textarea.json{resize:none;tab-size:2;flex:1;margin:0 14px;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.5}.toasts{z-index:100;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.toast{color:#fff;cursor:pointer;background:#334155;border-radius:8px;max-width:620px;padding:8px 14px;line-height:1.4;box-shadow:0 6px 18px #0000002e}.toast.success{background:#15803d}.toast.error{background:#b91c1c}.list-page{max-width:1100px;margin:0 auto;padding:32px 24px}.list-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.list-header h1{margin:0 0 6px;font-size:22px}.list-header p{margin:0}.filters{gap:6px;margin-bottom:12px;display:flex}.tpl-table{border-collapse:collapse;background:var(--panel);border:1px solid var(--border);border-radius:8px;width:100%;overflow:hidden}.tpl-table th,.tpl-table td{text-align:left;border-bottom:1px solid var(--border);padding:9px 12px}.tpl-table th{color:var(--dim);background:var(--panel-2);font-size:11px;font-weight:600}.tpl-table tr:last-child td{border-bottom:0}.tpl-table tbody tr:hover{background:var(--panel-2)}.tpl-table a{color:var(--accent);font-weight:600;text-decoration:none}.row-actions{justify-content:flex-end;gap:4px;display:flex}.empty-state{background:var(--panel);border:1px dashed var(--border-strong);text-align:center;border-radius:8px;padding:40px}
