:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-surface-2:#f1f2f5;--color-border:#e3e5e9;--color-text:#1a1d23;--color-text-muted:#6b7280;--color-accent:#4f46e5;--color-accent-hover:#4338ca;--color-accent-bg:#4f46e51a;--color-danger:#dc2626;--color-danger-bg:#dc262614;--color-success:#16a34a;--color-success-bg:#16a34a14;--color-warning:#d97706;--color-warning-bg:#d977061a;--radius-sm:6px;--radius-md:12px;--shadow-sm:0 1px 2px #1018280d;--shadow-md:0 8px 24px #10182814;--sidebar-width:250px;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#101218;--color-surface:#181b24;--color-surface-2:#21242f;--color-border:#2c2f3b;--color-text:#e6e8ec;--color-text-muted:#9aa1ac;--color-accent:#818cf8;--color-accent-hover:#a5b0fb;--color-accent-bg:#818cf826;--color-danger:#f87171;--color-danger-bg:#f871711f;--color-success:#4ade80;--color-success-bg:#4ade801a;--color-warning:#fbbf24;--color-warning-bg:#fbbf241f;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 8px 24px #0006}}*{box-sizing:border-box}html,body{height:100%}body{font:15px/1.5 var(--sans);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#app{min-height:100svh}h1,h2,h3{color:var(--color-text);margin:0 0 .6rem;font-weight:600;line-height:1.25}h1{letter-spacing:-.02em;font-size:1.6rem}h2{letter-spacing:-.01em;font-size:1.2rem}h3{font-size:1rem}p{margin:0 0 .5rem}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--color-text-muted)}.error{color:var(--color-danger)}button{font:inherit;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-sm);padding:.45rem .9rem;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}button:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-accent)}button:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}button:disabled{opacity:.5;cursor:not-allowed}button[type=submit]{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}button[type=submit]:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}button.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}button.danger,.danger{color:var(--color-danger)}input,select,textarea{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:.45rem .65rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-accent);outline-offset:1px;border-color:var(--color-accent)}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-size:.75rem;font-weight:600}th,td{border-bottom:1px solid var(--color-border);padding:.6rem .8rem}tbody tr:hover{background:var(--color-surface-2)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.25rem}.page{max-width:1400px;margin:0 auto;padding:1.75rem 2rem 3rem}@media print{.sidebar,.toolbar{display:none!important}.content{padding:0!important}}@media (width<=600px){.page{padding:1.1rem .85rem 2.5rem}}@media (width<=700px){.table-wrap:not(.dense) table,.table-wrap:not(.dense) thead,.table-wrap:not(.dense) tbody,.table-wrap:not(.dense) th,.table-wrap:not(.dense) td,.table-wrap:not(.dense) tr{width:auto;display:block}.table-wrap:not(.dense) thead{display:none}.table-wrap:not(.dense) tr{border-bottom:1px solid var(--color-border);padding:.6rem .9rem}.table-wrap:not(.dense) tbody tr:last-child{border-bottom:none}.table-wrap.dense{overflow-x:auto}.table-wrap:not(.dense) td{text-align:right;border:none;justify-content:space-between;align-items:center;gap:.75rem;min-width:0;padding:.15rem 0;display:flex}.table-wrap td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);text-align:left;margin-right:auto;font-size:.7rem;font-weight:600}}.nag-overlay[data-v-84f7301e]{z-index:1000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.nag[data-v-84f7301e]{text-align:center;flex-direction:column;gap:.75rem;width:90%;max-width:420px;display:flex}.nag h2[data-v-84f7301e]{margin:0;font-size:1.1rem}.nag button[data-v-84f7301e]{margin-top:.5rem}.shell[data-v-ef70f579]{min-height:100svh;display:flex}.mobile-topbar-toggle[data-v-ef70f579],.mobile-nav-close[data-v-ef70f579]{display:none}.sidebar[data-v-ef70f579]{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;height:100svh;padding:1.25rem 1rem;display:flex;position:sticky;top:0;overflow-y:auto}.brand[data-v-ef70f579]{align-items:center;gap:.6rem;padding:.4rem .5rem 1.5rem;display:flex}.brand-mark[data-v-ef70f579]{background:var(--color-accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;font-weight:700;display:inline-flex}.brand-name[data-v-ef70f579]{font-size:1.05rem;font-weight:600}.back-link[data-v-ef70f579]{color:var(--color-text-muted);margin-bottom:.75rem;padding:0 .5rem;font-size:.8rem;display:inline-block}.back-link[data-v-ef70f579]:hover{color:var(--color-text)}.project-info[data-v-ef70f579]{margin-bottom:1rem;padding:0 .5rem}.project-info h3[data-v-ef70f579]{overflow-wrap:anywhere;margin-bottom:.2rem}.project-info .muted[data-v-ef70f579]{font-size:.8rem}.contact-line[data-v-ef70f579]{overflow-wrap:anywhere;align-items:center;gap:.35rem;margin:.15rem 0;font-size:.8rem;display:flex}.contact-line a[data-v-ef70f579]{color:var(--color-text)}.copy-btn[data-v-ef70f579]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;padding:0;font-size:.8rem;line-height:1}.copy-btn[data-v-ef70f579]:hover{color:var(--color-accent)}.edit-contact-link[data-v-ef70f579]{color:var(--color-accent);cursor:pointer;background:0 0;border:none;margin-top:.3rem;padding:0;font-size:.75rem}.contact-edit[data-v-ef70f579]{flex-direction:column;gap:.35rem;margin-top:.4rem;display:flex}.contact-edit input[data-v-ef70f579]{box-sizing:border-box;width:100%;font-size:.8rem}.contact-edit-actions[data-v-ef70f579]{gap:.4rem;display:flex}.nav[data-v-ef70f579]{flex-direction:column;flex:1;gap:.15rem;display:flex}.nav-link[data-v-ef70f579]{color:var(--color-text-muted);border-radius:var(--radius-sm);padding:.55rem .75rem;font-weight:500}.nav-link[data-v-ef70f579]:hover{background:var(--color-surface-2);color:var(--color-text);text-decoration:none}.nav-link.router-link-exact-active[data-v-ef70f579]{background:var(--color-accent-bg);color:var(--color-accent)}.sidebar-footer[data-v-ef70f579]{border-top:1px solid var(--color-border);flex-direction:column;gap:.6rem;padding-top:.9rem;display:flex}.user[data-v-ef70f579]{flex-direction:column;padding:0 .5rem;font-size:.85rem;display:flex}.user-email[data-v-ef70f579]{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.user-role[data-v-ef70f579]{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.storage-size[data-v-ef70f579]{color:var(--color-text-muted);padding:0 .5rem;font-size:.7rem}.system-stats[data-v-ef70f579]{color:var(--color-text-muted);flex-direction:column;gap:.1rem;padding:0 .5rem;font-size:.7rem;display:flex}.backup-status-link[data-v-ef70f579]{display:block}.backup-fail[data-v-ef70f579]{color:var(--color-danger);font-weight:600}.app-version[data-v-ef70f579]{color:var(--color-text-muted);padding:0 .5rem;font-size:.7rem}.version-row[data-v-ef70f579]{align-items:center;gap:.3rem;display:flex}.conn-dot[data-v-ef70f579]{cursor:default;font-size:.6rem}.conn-dot.offline[data-v-ef70f579]{filter:grayscale(.3)}.offline-banner[data-v-ef70f579]{z-index:100;background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-sm);margin-bottom:.75rem;padding:.6rem 1rem;font-size:.9rem;font-weight:600;position:sticky;top:0}.update-banner[data-v-ef70f579]{z-index:100;background:var(--color-accent-bg);color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-sm);align-items:center;gap:.6rem;margin-bottom:.75rem;padding:.6rem 1rem;font-size:.9rem;font-weight:600;display:flex;position:sticky;top:0}.update-banner button[data-v-ef70f579]{font-size:.85rem}.content[data-v-ef70f579]{flex-direction:column;flex:1;min-width:0;display:flex}@media (width<=900px){.mobile-topbar-toggle[data-v-ef70f579]{z-index:150;border-radius:var(--radius-md);width:2.5rem;height:2.5rem;box-shadow:var(--shadow-md);justify-content:center;align-items:center;font-size:1.2rem;display:flex;position:fixed;top:.75rem;left:.75rem}.mobile-nav-close[data-v-ef70f579]{justify-content:center;align-items:center;margin-left:auto;padding:.3rem .6rem;display:flex}.sidebar-backdrop[data-v-ef70f579]{z-index:190;background:#00000080;position:fixed;inset:0}.sidebar[data-v-ef70f579]{z-index:195;width:min(85vw,320px);box-shadow:var(--shadow-md);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open[data-v-ef70f579]{transform:translate(0)}.content[data-v-ef70f579]{padding-top:3.5rem}}.login-page[data-v-e53051aa]{background:var(--color-bg);justify-content:center;align-items:center;min-height:100svh;display:flex}.login[data-v-e53051aa]{flex-direction:column;gap:1.25rem;width:100%;max-width:360px;display:flex}.brand[data-v-e53051aa]{align-items:center;gap:.6rem;display:flex}.brand-mark[data-v-e53051aa]{background:var(--color-accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;font-weight:700;display:inline-flex}.brand-name[data-v-e53051aa]{font-weight:600}h1[data-v-e53051aa]{color:var(--color-text-muted);font-size:1.1rem;font-weight:500}form[data-v-e53051aa]{flex-direction:column;gap:.9rem;display:flex}label[data-v-e53051aa]{color:var(--color-text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.login-page[data-v-b442fb85]{background:var(--color-bg);justify-content:center;align-items:center;min-height:100svh;padding:1.5rem 0;display:flex}.login[data-v-b442fb85]{flex-direction:column;gap:1.25rem;width:100%;max-width:400px;display:flex}.brand[data-v-b442fb85]{align-items:center;gap:.6rem;display:flex}.brand-mark[data-v-b442fb85]{background:var(--color-accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;font-weight:700;display:inline-flex}.brand-name[data-v-b442fb85]{font-weight:600}h1[data-v-b442fb85]{color:var(--color-text-muted);margin-bottom:-.75rem;font-size:1.1rem;font-weight:500}form[data-v-b442fb85]{flex-direction:column;gap:.9rem;display:flex}label[data-v-b442fb85]{color:var(--color-text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}textarea[data-v-b442fb85]{resize:vertical;font-family:monospace;font-size:.75rem}.setup-license-hint[data-v-b442fb85]{margin-top:-.6rem;font-size:.8rem}.header[data-v-256e40bb]{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.search[data-v-256e40bb]{box-sizing:border-box;width:100%;max-width:360px;margin-bottom:1.25rem}.table-wrap[data-v-256e40bb]{padding:0;overflow:hidden}.table-wrap table[data-v-256e40bb]{margin:0}.table-wrap tr:last-child td[data-v-256e40bb]{border-bottom:none}.row[data-v-256e40bb]{cursor:pointer}.row-yellow[data-v-256e40bb]{background:var(--color-warning-bg)}.row-yellow[data-v-256e40bb]:hover{background:var(--color-warning-bg);filter:brightness(.97)}.row-green[data-v-256e40bb]{background:var(--color-success-bg)}.row-green[data-v-256e40bb]:hover{background:var(--color-success-bg);filter:brightness(.97)}.sortable[data-v-256e40bb]{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable[data-v-256e40bb]:hover{color:var(--color-text)}.sort-arrow[data-v-256e40bb]{color:var(--color-accent);margin-left:.2rem;font-size:.7rem}.meta[data-v-256e40bb]{margin-top:.15rem;font-size:.78rem}.status[data-v-256e40bb]{text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);font-size:.75rem}.status-dot[data-v-256e40bb]{vertical-align:middle;border-radius:50%;width:.6rem;height:.6rem;margin-right:.4rem;display:inline-block}.status-dot.yellow[data-v-256e40bb]{background:var(--color-warning)}.status-dot.green[data-v-256e40bb]{background:var(--color-success)}.contact-cell[data-v-256e40bb]{cursor:default}.contact-line[data-v-256e40bb]{white-space:nowrap;align-items:center;gap:.35rem;font-size:.8rem;display:flex}.copy-btn[data-v-256e40bb]{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;flex-shrink:0;padding:0;font-size:.8rem;line-height:1}.copy-btn[data-v-256e40bb]:hover{color:var(--color-accent)}@media (width<=700px){.row td[data-v-256e40bb]{align-items:flex-start}.row td[data-v-256e40bb]:first-child{display:block}.row td:first-child .status-dot[data-v-256e40bb]{margin-top:.3rem}.contact-line[data-v-256e40bb]{white-space:normal}}.onboarding[data-v-1a6eaf31]{max-width:460px;margin:1.5rem auto 0}form[data-v-1a6eaf31]{flex-direction:column;gap:.9rem;margin-top:1rem;display:flex}label[data-v-1a6eaf31]{color:var(--color-text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.project-detail[data-v-dda4b3e0]{flex-direction:column;height:100%;display:flex}.project-detail.wide[data-v-dda4b3e0]{max-width:none;padding-left:.75rem;padding-right:.75rem}.rotate-handle circle[data-v-ae93adba]{cursor:grab}.editor[data-v-ae93adba]{flex-direction:column;gap:.6rem;height:100%;display:flex}.toolbar[data-v-ae93adba]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;display:flex}.spacer[data-v-ae93adba]{flex:1}.zoom-controls[data-v-ae93adba]{align-items:center;gap:.2rem;display:flex}.zoom-level[data-v-ae93adba]{font-variant-numeric:tabular-nums;min-width:3.2rem}.layer-toggles[data-v-ae93adba]{flex-wrap:wrap;gap:.5rem 1rem;padding:.5rem .25rem 0;display:flex}.layer-toggle[data-v-ae93adba]{color:var(--color-text-muted);align-items:center;gap:.3rem;font-size:.8rem;display:flex}.hint[data-v-ae93adba]{margin:0}.phone-view-only-hint[data-v-ae93adba]{background:var(--color-accent-bg);color:var(--color-accent);border-radius:var(--radius-sm);margin-bottom:.5rem;padding:.5rem .75rem}.workspace[data-v-ae93adba]{flex:1;align-items:flex-start;gap:1rem;min-height:0;display:flex}.canvas-wrap[data-v-ae93adba]{-webkit-user-select:none;user-select:none;flex:1;min-width:0;display:flex;position:relative}.element-list[data-v-ae93adba]{flex-direction:column;flex-shrink:0;align-self:stretch;gap:.5rem;width:190px;min-width:0;display:flex}.element-list h3[data-v-ae93adba]{margin-bottom:0}.element-search[data-v-ae93adba]{width:100%}.element-filter[data-v-ae93adba]{flex-wrap:wrap;gap:.25rem;display:flex}.element-filter button[data-v-ae93adba]{opacity:.4;padding:.2rem .4rem}.element-filter button.active[data-v-ae93adba]{opacity:1}.element-items[data-v-ae93adba]{flex-direction:column;flex:1;gap:.1rem;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.element-items li[data-v-ae93adba]{border-radius:var(--radius-sm);cursor:pointer;overflow-wrap:anywhere;padding:.3rem .5rem;font-size:.8rem}.element-items li[data-v-ae93adba]:hover{background:var(--color-surface-2)}.element-items li.active[data-v-ae93adba]{background:var(--color-accent-subtle,var(--color-surface-2));font-weight:600}.new-room-toast[data-v-ae93adba]{background:var(--color-success-bg,var(--color-surface));color:var(--color-success);border:1px solid var(--color-success);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);pointer-events:none;padding:.4rem .8rem;font-size:.85rem;font-weight:600;position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.cost-total-badge[data-v-ae93adba]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);pointer-events:none;padding:.4rem .7rem;font-size:.85rem;font-weight:600;position:absolute;bottom:.75rem;right:.75rem}.canvas[data-v-ae93adba]{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);touch-action:none;flex:1;width:100%;min-width:0;height:calc(100vh - 110px);min-height:480px}.properties[data-v-ae93adba]{overflow-wrap:anywhere;flex-direction:column;flex-shrink:0;align-self:stretch;gap:.7rem;width:260px;min-width:0;display:flex}.properties-fieldset[data-v-ae93adba]{border:none;flex-direction:column;gap:.7rem;min-width:0;margin:0;padding:0;display:flex}.properties-fieldset[data-v-ae93adba]:disabled{opacity:.6}.properties h3[data-v-ae93adba]{margin-bottom:0}.properties label[data-v-ae93adba]{color:var(--color-text-muted);flex-direction:column;gap:.25rem;min-width:0;font-size:.8rem;display:flex}.properties .checkbox-label[data-v-ae93adba]{flex-direction:row;align-items:center;gap:.4rem}.properties .checkbox-label input[data-v-ae93adba]{width:auto}.input-with-button[data-v-ae93adba]{gap:.3rem;display:flex}.input-with-button input[data-v-ae93adba]{flex:1;min-width:0}.input-with-button button[data-v-ae93adba]{flex-shrink:0;padding:.3rem .5rem;font-size:.75rem}.tile-hint[data-v-ae93adba]{font-size:.78rem}.wall-side[data-v-ae93adba]{border-top:1px solid var(--color-border);flex-direction:column;gap:.5rem;margin-top:.25rem;padding-top:.5rem;display:flex}.wall-side h4[data-v-ae93adba]{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:.8rem}.properties input[data-v-ae93adba],.properties select[data-v-ae93adba],.properties textarea[data-v-ae93adba]{box-sizing:border-box;width:100%;min-width:0}.prop-grid[data-v-ae93adba]{grid-template-columns:1fr 1fr;gap:.4rem .6rem;min-width:0;display:grid}.note-attachments-label[data-v-ae93adba]{color:var(--color-text-muted);font-size:.85rem}.note-attachments[data-v-ae93adba]{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.note-attachments li[data-v-ae93adba]{align-items:center;gap:.4rem;font-size:.8rem;display:flex}.note-attachments a[data-v-ae93adba],.note-attachment-view[data-v-ae93adba]{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:.3rem;min-width:0;display:flex;overflow:hidden}.note-attachment-thumb[data-v-ae93adba]{cursor:zoom-in;object-fit:cover;border-radius:3px;flex-shrink:0;width:24px;height:24px}.note-attachment-download[data-v-ae93adba],.note-attachment-remove[data-v-ae93adba]{flex-shrink:0}.note-attachment-remove[data-v-ae93adba]{cursor:pointer;color:var(--color-danger);background:0 0;border:none}@media (width<=767px){.workspace[data-v-ae93adba]{flex-direction:column}.element-list[data-v-ae93adba],.properties[data-v-ae93adba]{width:100%}.canvas-wrap[data-v-ae93adba]{width:100%;min-height:60vh}.toolbar[data-v-ae93adba]{flex-wrap:wrap}}.note-lightbox[data-v-ae93adba]{z-index:1000;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.note-lightbox img[data-v-ae93adba]{object-fit:contain;cursor:default;max-width:95vw;max-height:95vh;box-shadow:var(--shadow-md)}.note-lightbox-close[data-v-ae93adba]{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:999px;width:2.25rem;height:2.25rem;font-size:1.1rem;position:fixed;top:1.25rem;right:1.5rem}.note-lightbox-close[data-v-ae93adba]:hover{background:#ffffff4d}.floor-tabs[data-v-11b7b098]{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.gantt[data-v-924d8693]{margin-bottom:1.5rem;overflow-x:auto}.axis-row[data-v-924d8693]{border-bottom:1px solid var(--color-border);height:1.4rem;margin-bottom:.5rem;margin-left:calc(200px + .75rem);margin-right:calc(150px + .75rem);position:relative}.tick[data-v-924d8693]{color:var(--color-text-muted);white-space:nowrap;font-size:.7rem;position:absolute;transform:translate(-50%)}.rows[data-v-924d8693]{flex-direction:column;gap:.5rem;display:flex;position:relative}.today-col[data-v-924d8693]{pointer-events:none;position:absolute;inset:0 calc(150px + .75rem) 0 calc(200px + .75rem)}.today-line[data-v-924d8693]{background:var(--color-danger);opacity:.6;width:2px;position:absolute;top:0;bottom:0}.today-label[data-v-924d8693]{color:var(--color-danger);white-space:nowrap;font-size:.7rem;position:absolute;top:-1.3rem;left:50%;transform:translate(-50%)}.row[data-v-924d8693]{grid-template-columns:200px 1fr 150px;align-items:start;gap:.75rem;display:grid}.label[data-v-924d8693]{padding-top:.1rem;font-size:.9rem}.done-toggle[data-v-924d8693]{cursor:pointer;align-items:center;gap:.4rem;display:inline-flex}.done-toggle input[data-v-924d8693]{cursor:pointer}.notes[data-v-924d8693]{color:var(--color-text-muted);white-space:pre-wrap;margin:.25rem 0 0;font-size:.78rem}.material-warning[data-v-924d8693]{color:var(--color-warning);margin:.15rem 0 0;font-size:.78rem;font-weight:600}.track[data-v-924d8693]{background:var(--color-surface-2);border-radius:4px;height:1.4rem;position:relative}.bar[data-v-924d8693]{background:var(--color-accent);cursor:pointer;border-radius:4px;height:100%;position:absolute}.bar.done[data-v-924d8693]{background:var(--color-success)}.bar.in_progress[data-v-924d8693]{background:var(--color-warning)}.bar.material-available[data-v-924d8693]{background:#eab308}.bar.material-unavailable[data-v-924d8693]{background:var(--color-danger)}.material-row-meta[data-v-924d8693]{margin:.15rem 0 0;font-size:.75rem}.material-marker[data-v-924d8693]{background:var(--color-accent);border-radius:2px;width:.8rem;height:.8rem;position:absolute;top:50%;transform:translate(-50%,-50%)rotate(45deg)}.material-marker.status-ordered[data-v-924d8693]{background:var(--color-warning)}.material-marker.status-in_transit[data-v-924d8693]{background:var(--color-accent)}.material-marker.status-delivered[data-v-924d8693]{background:var(--color-success)}.material-marker.status-delayed[data-v-924d8693]{background:var(--color-danger)}.actions[data-v-924d8693]{gap:.4rem;display:flex}.edit-panel[data-v-924d8693]{max-width:460px;margin-bottom:1.5rem}form[data-v-924d8693]{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.edit-panel form[data-v-924d8693]{flex-direction:column;align-items:stretch}.edit-buttons[data-v-924d8693]{gap:.5rem;display:flex}textarea[data-v-924d8693]{resize:vertical;flex:200px;min-width:180px;font-family:inherit}.dropzone[data-v-4f3ac3b8]{border:2px dashed var(--color-border);text-align:center;cursor:pointer;margin-bottom:1rem;transition:border-color .15s,background .15s}.dropzone.dragging[data-v-4f3ac3b8]{border-color:var(--color-accent);background:var(--color-accent-bg)}.dropzone p[data-v-4f3ac3b8]{color:var(--color-text-muted);margin:0 0 .75rem}.dropzone-controls[data-v-4f3ac3b8]{cursor:default;align-items:center;gap:.5rem;display:inline-flex}.hidden-input[data-v-4f3ac3b8]{display:none}.type-filter[data-v-4f3ac3b8]{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.filter-btn[data-v-4f3ac3b8]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:.4rem .7rem;font-size:.85rem}.filter-btn[data-v-4f3ac3b8]:hover{color:var(--color-text)}.filter-btn.active[data-v-4f3ac3b8]{background:var(--color-accent-bg);border-color:var(--color-accent);color:var(--color-accent)}.table-wrap[data-v-4f3ac3b8]{padding:0;overflow:hidden}.table-wrap table[data-v-4f3ac3b8]{margin:0}.table-wrap tr:last-child td[data-v-4f3ac3b8]{border-bottom:none}.filename-cell a[data-v-4f3ac3b8]{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;max-width:22rem;display:inline-block;overflow:hidden}.thumb[data-v-4f3ac3b8]{object-fit:cover;border-radius:var(--radius-sm);cursor:zoom-in;width:40px;height:40px;display:block}@media (width<=700px){.filename-cell a[data-v-4f3ac3b8]{max-width:55vw}}.actions[data-v-4f3ac3b8]{align-items:center;gap:.6rem;display:flex}.lightbox[data-v-4f3ac3b8]{z-index:1000;cursor:zoom-out;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox img[data-v-4f3ac3b8]{object-fit:contain;cursor:default;max-width:95vw;max-height:95vh;box-shadow:var(--shadow-md)}.lightbox-close[data-v-4f3ac3b8]{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:999px;width:2.25rem;height:2.25rem;font-size:1.1rem;position:fixed;top:1.25rem;right:1.5rem}.lightbox-close[data-v-4f3ac3b8]:hover{background:#ffffff4d}.download-link[data-v-4f3ac3b8]{font-size:1.1rem;line-height:1}.claim-link[data-v-4f3ac3b8]{white-space:nowrap;font-size:.85rem}.sortable[data-v-4f3ac3b8]{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.sortable[data-v-4f3ac3b8]:hover{color:var(--color-text)}.sort-arrow[data-v-4f3ac3b8]{color:var(--color-accent);margin-left:.2rem;font-size:.7rem}.page-header[data-v-55a896d9]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.print-only[data-v-55a896d9]{display:none}.controls[data-v-55a896d9]{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.latest[data-v-55a896d9]{margin-bottom:1.5rem}.latest ul[data-v-55a896d9]{margin:.5rem 0;padding-left:1.2rem}.breakdown-list>li[data-v-55a896d9]{margin-bottom:.5rem}.breakdown-line[data-v-55a896d9]{align-items:center;gap:.5rem;max-width:460px;display:flex}.breakdown-line span[data-v-55a896d9]{flex:1}.hide-toggle[data-v-55a896d9]{display:inline-flex}.breakdown-list>li.hidden[data-v-55a896d9]{opacity:.5}.breakdown-list>li.hidden .breakdown-line span[data-v-55a896d9],.breakdown-list>li.hidden .breakdown-line strong[data-v-55a896d9]{text-decoration:line-through}.breakdown-detail[data-v-55a896d9]{font-size:.78rem}.sub-breakdown[data-v-55a896d9]{color:var(--color-text-muted);margin:.2rem 0 0;padding-left:.8rem;font-size:.78rem;list-style:none}.table-wrap[data-v-55a896d9]{padding:0;overflow:hidden}.table-wrap table[data-v-55a896d9]{margin:0}.table-wrap tr:last-child td[data-v-55a896d9]{border-bottom:none}.table-wrap input[data-v-55a896d9]{box-sizing:border-box;width:100%}.table-wrap tfoot td[data-v-55a896d9]{border-top:2px solid var(--color-border);border-bottom:none}.actual-hint[data-v-55a896d9]{margin-top:-.5rem;margin-bottom:.75rem}.row-actions[data-v-55a896d9]{white-space:nowrap;gap:.4rem;display:flex}.table-wrap tr.installed td[data-v-55a896d9]{background:color-mix(in srgb, var(--color-success) 12%, transparent)}.grand-total[data-v-55a896d9]{justify-content:space-between;align-items:center;margin-top:1.25rem;font-size:1.1rem;display:flex}@media print{.print-only[data-v-55a896d9]{display:block}.print-heading[data-v-55a896d9]{margin-bottom:1.5rem}.latest[data-v-55a896d9],.table-wrap[data-v-55a896d9],.grand-total[data-v-55a896d9]{box-shadow:none;border:1px solid #ccc}}.new-note[data-v-e99aa91e]{flex-direction:column;gap:.6rem;margin-bottom:1.5rem;display:flex}.new-note textarea[data-v-e99aa91e],.note textarea[data-v-e99aa91e]{box-sizing:border-box;resize:vertical;width:100%;font-family:inherit}.new-note-footer[data-v-e99aa91e],.note-footer[data-v-e99aa91e]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.important-toggle[data-v-e99aa91e]{color:var(--color-text-muted);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.notes-list[data-v-e99aa91e]{flex-direction:column;gap:.75rem;display:flex}.note[data-v-e99aa91e]{flex-direction:column;gap:.5rem;display:flex}.note.important[data-v-e99aa91e]{border-color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 8%, var(--color-surface))}.badge[data-v-e99aa91e]{text-transform:uppercase;letter-spacing:.03em;color:#fff;background:var(--color-warning);border-radius:999px;align-self:flex-start;padding:.15rem .5rem;font-size:.7rem;font-weight:600}.note-body[data-v-e99aa91e]{white-space:pre-wrap;word-break:break-word;margin:0}.note-actions[data-v-e99aa91e]{gap:.4rem;display:flex}.meta[data-v-e99aa91e]{font-size:.75rem}.diary-header[data-v-4bf94c2a]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.print-only[data-v-4bf94c2a]{display:none}.new-entry[data-v-4bf94c2a]{flex-direction:column;gap:.6rem;margin-bottom:1.5rem;display:flex}.new-entry input[type=date][data-v-4bf94c2a]{align-self:flex-start}.new-entry textarea[data-v-4bf94c2a],.entry textarea[data-v-4bf94c2a]{box-sizing:border-box;resize:vertical;width:100%;font-family:inherit}.entries-list[data-v-4bf94c2a]{flex-direction:column;gap:.75rem;display:flex}.entry[data-v-4bf94c2a]{flex-direction:column;gap:.4rem;display:flex}.entry-date[data-v-4bf94c2a]{font-size:.9rem;font-weight:600}.entry-body[data-v-4bf94c2a]{white-space:pre-wrap;word-break:break-word;margin:0}.entry-footer[data-v-4bf94c2a]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.entry-actions[data-v-4bf94c2a]{gap:.4rem;display:flex}.meta[data-v-4bf94c2a]{font-size:.75rem}@media print{.no-print[data-v-4bf94c2a]{display:none!important}.print-only[data-v-4bf94c2a]{display:block}.print-heading[data-v-4bf94c2a]{margin-bottom:1.5rem}.entry[data-v-4bf94c2a]{break-inside:avoid;border:none;border-bottom:1px solid #ccc;border-radius:0;padding:.5rem 0}}.new-claim[data-v-a949b3e1]{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.new-claim-row[data-v-a949b3e1]{flex-wrap:wrap;gap:.5rem;display:flex}.new-claim-row input[data-v-a949b3e1]{flex:160px}.new-claim textarea[data-v-a949b3e1],.claim textarea[data-v-a949b3e1]{box-sizing:border-box;resize:vertical;width:100%;font-family:inherit}.type-filter[data-v-a949b3e1]{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.filter-btn[data-v-a949b3e1]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:.4rem .7rem;font-size:.85rem}.filter-btn[data-v-a949b3e1]:hover{color:var(--color-text)}.filter-btn.active[data-v-a949b3e1]{background:var(--color-accent-bg);border-color:var(--color-accent);color:var(--color-accent)}.claims-list[data-v-a949b3e1]{flex-direction:column;gap:.75rem;display:flex}.claim[data-v-a949b3e1]{border-left:4px solid var(--color-border);flex-direction:column;gap:.5rem;display:flex}.claim.status-open[data-v-a949b3e1]{border-left-color:var(--color-warning)}.claim.status-in_progress[data-v-a949b3e1]{border-left-color:var(--color-accent)}.claim.status-resolved[data-v-a949b3e1]{border-left-color:var(--color-success);opacity:.75}.claim-header[data-v-a949b3e1]{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.claim-title[data-v-a949b3e1]{margin:0}.kind-badge[data-v-a949b3e1]{color:var(--color-text-muted);background:var(--color-surface-2);white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.75rem}.claim-body[data-v-a949b3e1]{white-space:pre-wrap;word-break:break-word;margin:0}.claim-footer[data-v-a949b3e1]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.claim-actions[data-v-a949b3e1]{gap:.4rem;display:flex}.meta[data-v-a949b3e1]{font-size:.75rem}.claim-attachments[data-v-a949b3e1]{flex-direction:column;gap:.4rem;display:flex}.attachment-list[data-v-a949b3e1]{flex-direction:column;gap:.25rem;margin:0;padding:0;font-size:.85rem;list-style:none;display:flex}.attachment-list li[data-v-a949b3e1]{align-items:center;gap:.5rem;display:flex}.attach-btn[data-v-a949b3e1]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;align-self:flex-start;padding:.3rem .6rem;font-size:.8rem}.attach-btn[data-v-a949b3e1]:hover{color:var(--color-text)}.hidden-input[data-v-a949b3e1]{display:none}.link-btn[data-v-a949b3e1]{cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.download-link[data-v-a949b3e1]{font-size:1rem;line-height:1}.new-item[data-v-2190be18]{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.new-item-row[data-v-2190be18]{flex-wrap:wrap;gap:.5rem;display:flex}.new-item-row input[data-v-2190be18],.new-item-row select[data-v-2190be18]{flex:140px}.new-item textarea[data-v-2190be18],.item textarea[data-v-2190be18]{box-sizing:border-box;resize:vertical;width:100%;font-family:inherit}.type-filter[data-v-2190be18]{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.filter-btn[data-v-2190be18]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;padding:.4rem .7rem;font-size:.85rem}.filter-btn[data-v-2190be18]:hover{color:var(--color-text)}.filter-btn.active[data-v-2190be18]{background:var(--color-accent-bg);border-color:var(--color-accent);color:var(--color-accent)}.items-list[data-v-2190be18]{flex-direction:column;gap:.75rem;display:flex}.item[data-v-2190be18]{border-left:4px solid var(--color-border);flex-direction:column;gap:.5rem;display:flex}.item.status-ordered[data-v-2190be18]{border-left-color:var(--color-warning)}.item.status-in_transit[data-v-2190be18]{border-left-color:var(--color-accent)}.item.status-delivered[data-v-2190be18]{border-left-color:var(--color-success);opacity:.75}.item.status-delayed[data-v-2190be18]{border-left-color:var(--color-danger)}.item-header[data-v-2190be18]{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.item-title[data-v-2190be18]{margin:0}.status-badge[data-v-2190be18],.direction-badge[data-v-2190be18]{color:var(--color-text-muted);background:var(--color-surface-2);white-space:nowrap;border-radius:999px;padding:.15rem .5rem;font-size:.75rem}.item-notes[data-v-2190be18]{white-space:pre-wrap;word-break:break-word;margin:0}.item-footer[data-v-2190be18]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.item-actions[data-v-2190be18]{gap:.4rem;display:flex}.meta[data-v-2190be18]{font-size:.75rem}.admin h2[data-v-e25d2f03]{margin-top:2rem}.table-wrap[data-v-e25d2f03]{margin-bottom:1rem;padding:0;overflow:hidden}.table-wrap table[data-v-e25d2f03]{margin:0}.table-wrap tr:last-child td[data-v-e25d2f03]{border-bottom:none}form[data-v-e25d2f03]{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.inline-label[data-v-e25d2f03]{color:var(--color-text-muted);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.tls-info[data-v-e25d2f03]{flex-direction:column;align-items:flex-start;gap:.4rem;margin-bottom:1rem;display:flex}.tls-info button[data-v-e25d2f03]{margin-top:.4rem}.tls-form[data-v-e25d2f03]{flex-direction:column;align-items:stretch}.tls-form label[data-v-e25d2f03]{color:var(--color-text-muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.tls-form textarea[data-v-e25d2f03]{resize:vertical;font-family:ui-monospace,monospace;font-size:.78rem}.storage-hint[data-v-e25d2f03]{font-size:.8rem}.backup-actions[data-v-e25d2f03]{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1rem;display:flex}.backup-status[data-v-e25d2f03]{flex-direction:column;gap:.3rem;margin-bottom:1rem;font-size:.9rem;display:flex}.backup-status-line.ok[data-v-e25d2f03]{color:var(--color-success)}.backup-status-line.warn[data-v-e25d2f03]{color:var(--color-danger)}.row-actions[data-v-e25d2f03]{gap:.4rem;display:flex}.warn[data-v-e25d2f03]{color:var(--color-warning);font-weight:600}.mono[data-v-e25d2f03]{font-family:ui-monospace,monospace;font-size:.78rem}.meta[data-v-d19a4f32]{font-size:.85rem}.search[data-v-d19a4f32]{width:100%;max-width:24rem;margin-bottom:.5rem}.table-wrap[data-v-d19a4f32]{max-height:420px;margin-bottom:1.5rem;padding:0;overflow:hidden auto}.table-wrap table[data-v-d19a4f32]{margin:0}.table-wrap tr:last-child td[data-v-d19a4f32]{border-bottom:none}.mono[data-v-d19a4f32]{font-family:var(--mono,monospace);font-size:.8rem}.severity[data-v-d19a4f32]{white-space:nowrap;border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.severity.sev-critical[data-v-d19a4f32],.severity.sev-high[data-v-d19a4f32]{background:var(--color-danger-bg);color:var(--color-danger)}.severity.sev-moderate[data-v-d19a4f32],.severity.sev-medium[data-v-d19a4f32]{background:var(--color-warning-bg,var(--color-danger-bg));color:var(--color-warning,var(--color-danger))}.severity.sev-low[data-v-d19a4f32],.severity.sev-info[data-v-d19a4f32]{background:var(--color-surface-2);color:var(--color-text-muted)}
