:root{--color-primary:#1e3a5f;--color-primary-light:#2d5182;--color-primary-lighter:#e8edf4;--color-primary-hover:#152d4a;--color-bg:#f4f5f7;--color-chrome:#f4f6fb;--color-surface:#fff;--color-text:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-success:#16a34a;--color-success-light:#f0fdf4;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-light:#fef2f2;--color-warning:#f59e0b;--color-warning-light:#fffbeb;--color-tag-bg:#f0f4f8;--color-tag-text:#1e3a5f;--color-highlight:#fef9c3;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 10px 15px #0000001a;--shadow-glow:0 0 0 3px #1e3a5f1f;--shadow-save-bar:0 -4px 12px #0000000f;--overlay:#0006;--overlay-sheet:#00000052;--navbar-height:64px;--gradient-header:linear-gradient(180deg, var(--color-primary-lighter) 0%, var(--color-border-light) 100%);--gradient-brand:linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);--ease-out:cubic-bezier(.2, .8, .2, 1);--plan-bg:#fafaf9;--plan-floor:#f5f0e8;--plan-fixture:#e4e9ef;--plan-fixture-line:#cfd8e3;--plan-outdoor:#e6f0de;--plan-deck:#d3e3c7;--plan-railing:#8fae7f;--plan-wall:#3f3a36;--plan-open:#a8a29e;--plan-grid:#e7e5e4;--plan-grid-meter:#d6d3d1;--plan-structure:#1d4ed8;--plan-structure-soft:#e3ecfa;--plan-structure-line:#bfd2f0;--plan-bg-structure:#f0f5fc;--plan-grid-structure:#dbe5f3;--plan-grid-meter-structure:#c4d4ea;--plan-select:#2563eb;--plan-select-soft:#2563eb0f;--plan-accent:#f97316;--plan-accent-soft:#f973161a;--plan-accent-tint:#fef0e6;--plan-entrance:#15803d;--plan-glass:#eaf4fb;--plan-glass-line:#6b9ac0;--plan-swing:#b6aea6;--plan-ink:#57534e;--plan-label:#292524;--plan-label-fixture:#475569;--plan-piece:#fff;--plan-soft:#e9e2d6;--plan-linen:#f3eee6;--plan-wood:#f1e4cc;--plan-glow:#fdf3c7;--plan-bulb:#fbd769;--plan-water:#dcecf7;--plan-leaf:#cfe6c4;--plan-leaf-dark:#8fbf7a;--plan-rug:#efe2d0;--plan-dashed:#78716c;--plan-badge:#44403c;--plan-guide:#db2777;--plan-measure:#0f766e;--plan-tooltip:#1c1917e6;--plan-tooltip-text:#fff;--plan-tooltip-muted:#d6d3d1;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--font-sans:var(--font-nunito-sans), "Nunito Sans", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%}body{min-height:100vh;color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;flex-direction:column;display:flex}a{color:inherit;text-decoration:none}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:inherit;font-size:.8125rem;font-weight:500;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-surface)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border-light)}.btn-danger{color:var(--color-danger);background:0 0}.btn-danger:hover:not(:disabled){background:var(--color-danger-light)}.btn-danger-fill{background:var(--color-danger);color:var(--color-surface)}.btn-danger-fill:hover:not(:disabled){background:var(--color-danger-hover)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-border-light)}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);width:100%;padding:.5rem .75rem;font-family:inherit;font-size:.875rem;transition:all .15s}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:var(--shadow-glow);outline:none}input[readonly],textarea[readonly]{background:var(--color-border-light);box-shadow:none;cursor:default;border-color:#0000}@supports (-webkit-touch-callout:none){input[type=date]{appearance:none;min-width:0;max-width:100%}input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}}input[type=checkbox]{width:auto;accent-color:var(--color-primary)}label{color:var(--color-text-secondary);margin-bottom:.25rem;font-size:.8125rem;font-weight:500;display:block}label .required{color:var(--color-danger);margin-left:.15rem}.field{flex-direction:column;display:flex}.field-hint,.field-error{margin-top:.3rem;font-size:.75rem}.field-hint{color:var(--color-text-secondary)}.field-error{color:var(--color-danger)}input[aria-invalid=true]{border-color:var(--color-danger)}.status-dot{background:var(--color-warning);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.empty-state{text-align:center;color:var(--color-text-secondary);flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;font-size:.875rem;display:flex}.empty-state.compact{padding:1rem}.empty-state-title{color:var(--color-text);font-size:.9375rem;font-weight:600}.empty-state .btn{margin-top:.4rem}.card{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all .18s var(--ease-out)}a.card:hover,button.card:not(:disabled):hover{border-color:var(--color-primary-lighter);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card:has(>a):hover{border-color:var(--color-primary-lighter);box-shadow:var(--shadow-md);transform:translateY(-2px)}a.card:active,button.card:not(:disabled):active{box-shadow:var(--shadow-sm);transform:translateY(0)}a.card:focus-visible,button.card:focus-visible{box-shadow:var(--shadow-glow);outline:none}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.badge-tag{background:var(--color-tag-bg);color:var(--color-tag-text)}.modal-overlay{z-index:100;background:var(--overlay);justify-content:center;align-items:center;padding:1rem;animation:.18s ui-fade-in;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:90vh;box-shadow:var(--shadow-lg);animation:ui-pop-in .18s var(--ease-out);flex-direction:column;display:flex;overflow:hidden}.modal-wide{max-width:760px}.modal-header{border-bottom:1px solid var(--color-border-light);background:var(--gradient-header);justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.modal-header h2{font-size:1rem;font-weight:700}.modal-heading{flex-direction:column;gap:.15rem;min-width:0;display:flex}.modal-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.modal-subtitle{color:var(--color-text-secondary);font-size:.8125rem}.modal:focus{outline:none}.modal-body{padding:1.25rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--color-border-light);flex-wrap:wrap;justify-content:flex-end;gap:.5rem;padding:.9rem 1.25rem;display:flex}.modal-footer-status{color:var(--color-text-secondary);align-items:center;gap:.4rem;margin-right:auto;font-size:.8125rem;display:inline-flex}.modal-footer-status.problem{color:var(--color-danger);font-weight:600}.modal-footer-status.ok{color:var(--color-success);font-weight:600}.modal-confirm{max-width:480px}.confirm-body{align-items:flex-start;gap:.75rem;font-size:.875rem;line-height:1.5;display:flex}.confirm-icon{color:var(--color-danger);flex-shrink:0;font-size:1.4rem;display:inline-flex}.confirm-message p+p{margin-top:.5rem}.confirm-error{border-radius:var(--radius-md);background:var(--color-danger-light);color:var(--color-danger);margin-top:.75rem;padding:.6rem .75rem;font-size:.8125rem}.leave-guard-error{color:var(--color-danger);margin-top:.75rem;font-size:.8125rem}.tabs{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:.25rem;padding:.2rem;display:inline-flex}.tab{border-radius:var(--radius-sm);color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;padding:.35rem .75rem;font-size:.8125rem;transition:all .15s}.tab:hover:not(.active){background:var(--color-border-light);color:var(--color-primary)}.tab.active{background:var(--gradient-brand);color:var(--color-surface);box-shadow:var(--shadow-sm)}.tab-count{opacity:.8;margin-left:.2rem;font-size:.6875rem}.popover{z-index:150;visibility:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:ui-pop-in .14s var(--ease-out);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:auto}@keyframes ui-pop-in{0%{opacity:0;transform:translateY(-6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes ui-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ui-slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes ui-rise-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.page{width:100%;max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.page-title{font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--color-text-secondary);margin-top:.25rem;font-size:.9375rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}@media (max-width:640px){:root{--navbar-height:56px}.hide-mobile{display:none}.page{padding:1rem 1rem 2.5rem}.modal{max-height:100vh}}
