:root{color:#18181b;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f7f7f5;font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}h1,h2,h3{letter-spacing:-.01em;font-weight:600}.app{flex-direction:column;width:100vw;height:100vh;display:flex}.app-header{background:#fff;border-bottom:1px solid #e4e4e7;align-items:center;gap:24px;padding:12px 20px;display:flex}.app-header h1{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}.template-picker{color:#52525b;align-items:center;gap:8px;font-size:13px;display:inline-flex}.template-picker select{cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:6px 10px;font-size:13px}.workspace{flex:1;grid-template-columns:1fr 320px;min-height:0;display:grid}.design-canvas{background:#f7f7f5;width:100%;height:100%;display:block}.design-canvas .region{stroke:#0000;stroke-width:0;cursor:pointer;transition:stroke .1s}.design-canvas .region:hover{stroke:#3478f68c;stroke-width:1.4px}.design-canvas .region.is-selected{stroke:#3478f6;stroke-width:2.5px}.design-canvas.is-drawing .region{cursor:crosshair}.design-canvas.is-drawing .region:hover{stroke:#0000}.inspector{background:#fff;border-left:1px solid #e4e4e7;padding:20px;overflow-y:auto}.inspector h2{margin:0 0 4px;font-size:16px}.inspector label{flex-direction:column;gap:6px;margin-top:16px;font-size:13px;display:flex}.inspector input[type=color]{cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;width:100%;height:36px}.inspector select{cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:8px 10px;font-size:13px}.swatch-row{gap:8px;margin-top:16px;display:flex}.swatch{cursor:pointer;border:2px solid #d4d4d8;border-radius:6px;width:40px;height:40px;padding:0;transition:border-color .12s}.swatch.is-selected{border-color:#3478f6;box-shadow:inset 0 0 0 2px #3478f6}.auth-loading{color:#71717a;place-items:center;height:100vh;display:grid}.auth-screen{background:#f7f7f5;place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{background:#fff;border:1px solid #e4e4e7;border-radius:10px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:28px;display:flex}.auth-card h1{text-align:center;margin:0 0 8px;font-size:20px}.auth-tabs{background:#f4f4f5;border-radius:8px;gap:2px;padding:3px;display:flex}.auth-tab{cursor:pointer;color:#52525b;background:0 0;border:0;border-radius:6px;flex:1;padding:8px 12px;font-size:13px}.auth-tab.is-active{color:#18181b;background:#fff;box-shadow:0 1px 3px #0000000f}.auth-card label{color:#52525b;flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-card input{background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:9px 11px;font-size:14px}.auth-card input:focus{outline-offset:1px;outline:2px solid #3478f6}.auth-submit{color:#fff;cursor:pointer;background:#18181b;border:0;border-radius:6px;margin-top:4px;padding:10px 16px;font-size:14px}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#b91c1c;background:#fef2f2;border-radius:6px;margin:0;padding:8px 10px;font-size:13px}.app-header{flex-wrap:wrap}.designs-menu{flex-wrap:wrap;align-items:center;gap:12px;margin-left:auto;display:flex}.design-label{color:#52525b;padding-right:4px;font-size:13px}.design-label strong{color:#18181b;font-weight:600}.designs-menu button{cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:6px 12px;font-size:13px}.designs-menu button:hover{background:#f4f4f5}.designs-menu button:disabled{opacity:.6;cursor:not-allowed}.user-chip{color:#52525b;border-left:1px solid #e4e4e7;align-items:center;gap:8px;margin-left:4px;padding-left:12px;font-size:13px;display:inline-flex}.designs-menu button.danger{color:#b91c1c;border-color:#fca5a5}.designs-menu button.danger:hover{background:#fef2f2}.dirty-dot{color:#b45309;margin-left:4px;font-weight:700}.modal-backdrop{z-index:50;background:#0f0f1473;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal-card{background:#fff;border-radius:10px;flex-direction:column;gap:14px;width:100%;max-width:420px;padding:24px;display:flex;box-shadow:0 20px 50px #00000038}.modal-card h2{margin:0;font-size:16px}.modal-card label{color:#52525b;flex-direction:column;gap:6px;font-size:13px;display:flex}.modal-card input{border:1px solid #d4d4d8;border-radius:6px;padding:9px 11px;font-size:14px}.modal-card input:focus{outline-offset:1px;outline:2px solid #3478f6}.modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions button{cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:8px 16px;font-size:13px}.modal-actions button:hover:not(:disabled){background:#f4f4f5}.modal-actions .auth-submit{color:#fff;background:#18181b;border-color:#18181b;margin-top:0;padding:8px 18px}.inspector-empty{color:#71717a;font-size:13px}.muted{color:#71717a;margin:0;font-size:12px}.trim-toggle{cursor:pointer;background:#fff;border:1px solid #d4d4d8;border-radius:6px;padding:6px 12px;font-size:13px}.trim-toggle:hover{background:#f4f4f5}.trim-toggle.is-active{color:#fff;background:#3478f6;border-color:#3478f6}.design-canvas.is-drawing{cursor:crosshair}.inspector-delete{color:#b91c1c;cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:6px;margin-top:20px;padding:8px 12px;font-size:13px}.inspector-delete:hover{background:#fef2f2}.preset-block{flex-direction:column;gap:6px;margin-top:16px;display:flex}.preset-label{color:#52525b;font-size:13px}.preset-row{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.preset-swatch{aspect-ratio:1;cursor:pointer;border:1px solid #d4d4d8;border-radius:4px;width:100%;padding:0;transition:transform 80ms}.preset-swatch:hover{transform:scale(1.08)}.preset-swatch.is-selected{border-color:#3478f6;box-shadow:inset 0 0 0 2px #3478f6}.mullion-row{grid-template-columns:1fr 1fr;gap:6px;margin-top:4px;margin-bottom:12px;display:grid}.mullion-option{cursor:pointer;text-align:center;color:#3f3f46;background:#fff;border:1px solid #d4d4d8;border-radius:4px;padding:6px 8px;font-size:12px}.mullion-option:hover{color:#3478f6;border-color:#3478f6}.mullion-option.is-selected{color:#fff;background:#3478f6;border-color:#3478f6}
