:root{font-family:Segoe UI,system-ui,sans-serif;line-height:1.5;color:#1a1a1a;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}a{color:#0b5fff}button,input,select{font:inherit}button{cursor:pointer}.layout{max-width:1200px;margin:0 auto;padding:1rem 1.25rem 2rem}.appbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.menu{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;animation:fade-slide .24s ease}.card{background:#fff;border-radius:10px;padding:1.25rem 1.5rem;box-shadow:0 1px 3px #00000014;animation:fade-up .22s ease}.stack{display:flex;flex-direction:column;gap:.75rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.btn{border:none;border-radius:8px;padding:.55rem 1rem;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;font-weight:600;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;box-shadow:0 8px 20px #2563eb33}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secondary{background:#e8eef8;color:#0f172a;box-shadow:0 6px 16px #0f172a14}.btn.unrecognized-alert{background:#dc2626;color:#fff;box-shadow:0 8px 20px #dc262659;animation:pulse-alert 1s infinite}.tab-active{border:2px solid #4f7cff}.unknown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.unknown-card{width:100%;text-align:left;border:1px solid #e2e8f0;border-radius:10px;background:#fff;padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.unknown-reason-badge{display:inline-flex;align-self:flex-start;margin-top:.25rem;padding:.15rem .45rem;border-radius:999px;border:1px solid #f59e0b;background:#fffbeb;color:#92400e;font-size:.75rem;font-weight:600}.btn:hover{transform:translateY(-1px);filter:brightness(1.02)}.btn:active{transform:translateY(0)}.nav-pill{text-decoration:none;padding:.65rem .9rem;border-radius:12px;font-weight:700;color:#0f172a;background:#f0f4ff;border:1px solid #d6e2ff;transition:all .18s ease}.nav-pill.active,.nav-pill:hover{background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff;border-color:transparent;box-shadow:0 8px 18px #2563eb40}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,120px));gap:.6rem}.category-square{width:120px;height:120px;border-radius:12px;border:1px solid #d6e4ff;background:linear-gradient(180deg,#f8fbff,#eef5ff);color:#0f172a;font-weight:700;display:grid;place-items:center;text-align:center;padding:.5rem}.object-pills{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.65rem}.object-pill{border:1px solid #d6e4ff;border-radius:12px;background:linear-gradient(180deg,#f8fbff,#eef5ff);padding:.75rem .8rem;text-align:left;display:flex;flex-direction:column;gap:.2rem;color:#0f172a;transition:all .16s ease}.object-pill:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.object-pill.active{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb2e;background:linear-gradient(135deg,#2563eb,#0ea5e9);color:#fff}.object-pill-title{font-weight:700}.object-pill-sub{font-size:.82rem;opacity:.85}.greeting-wrap{display:grid;place-items:center;padding:.25rem 0 .6rem}.greeting-title{margin:0;font-size:clamp(1.4rem,2.8vw,2rem);font-weight:800;color:#0f172a;text-align:center;position:relative;animation:greet-in .75s ease both}.greeting-title:after{content:"";display:block;width:70%;height:3px;margin:.35rem auto 0;border-radius:999px;background:linear-gradient(135deg,#2563eb,#0ea5e9);transform-origin:center;animation:greet-line .85s ease both}.field{display:flex;flex-direction:column;gap:.25rem}.field label{font-size:.9rem;font-weight:600}.field input,.field select{padding:.5rem .65rem;border-radius:8px;border:1px solid #cfd6e4;min-width:200px}.tabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}.tab{border:1px solid #cfd6e4;background:#fff;border-radius:999px;padding:.45rem .85rem;display:inline-flex;align-items:center;gap:.4rem;font-weight:600}.tab.active{border-color:#0b5fff;background:#e8f0ff}.camera-page-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem}.camera-page-title{display:flex;flex-direction:column;gap:.2rem}.camera-page-stats{font-size:.92rem}.camera-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.5rem}.camera-view-switch{display:inline-flex;padding:.2rem;border-radius:999px;background:#e8eef8;gap:.15rem}.camera-view-btn{border:0;background:transparent;color:#475569;border-radius:999px;padding:.4rem .75rem;font-weight:600;font-size:.88rem}.camera-view-btn.active{background:#fff;color:#0f172a;box-shadow:0 1px 3px #0f172a1f}.camera-terminal-tabs .tab{position:relative}.camera-tab-badge{min-width:1.15rem;height:1.15rem;padding:0 .3rem;border-radius:999px;background:#22c55e;color:#fff;font-size:.72rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.camera-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.camera-card{background:#fff;border-radius:12px;padding:.65rem;box-shadow:0 1px 3px #00000014}.camera-list{display:flex;flex-direction:column;gap:.65rem}.camera-list-row{display:grid;grid-template-columns:minmax(140px,220px) 1fr auto;gap:.85rem;align-items:center;background:#fff;border-radius:12px;padding:.65rem;box-shadow:0 1px 3px #00000014}.camera-list-meta{display:flex;flex-direction:column;gap:.25rem}.camera-list-status{font-size:.88rem;color:#64748b}.camera-list-status.live{color:#15803d;font-weight:600}.camera-focus-layout{display:flex;flex-direction:column;gap:.75rem}.camera-focus-main{background:#fff;border-radius:12px;padding:.65rem;box-shadow:0 1px 3px #00000014}.camera-focus-strip{display:flex;gap:.65rem;overflow-x:auto;padding-bottom:.15rem}.camera-focus-thumb{flex:0 0 160px}.camera-preview-wrap{display:block}.camera-preview-embedded{flex:1;display:flex;min-height:0}.camera-preview-error{margin:.35rem 0 0;font-size:.85rem}.camera-viewport{position:relative;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;background:#0f172a}.camera-viewport-list{aspect-ratio:4 / 3}.camera-viewport-focus-main{aspect-ratio:16 / 9;min-height:320px}.camera-viewport-focus-thumb{aspect-ratio:16 / 10;cursor:pointer}.camera-viewport-focus-thumb.selected{outline:2px solid #2563eb;outline-offset:2px}.camera-viewport.is-streaming{cursor:pointer}.camera-viewport img,.camera-stream{width:100%;height:100%;object-fit:cover;display:block}.camera-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:.9rem}.camera-play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:.65rem 1.15rem;border-radius:999px;border:1px solid rgba(255,255,255,.55);background:#ffffff38;color:#fff;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2}.camera-play-btn:hover{background:#ffffff5c}.camera-overlay-bar{position:absolute;inset:auto 0 0 0;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1.6rem .65rem .55rem;background:linear-gradient(180deg,transparent,rgba(0,0,0,.72));z-index:2}.camera-overlay-info{display:flex;align-items:center;gap:.45rem;min-width:0;color:#fff;font-size:.86rem}.camera-overlay-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.camera-overlay-clock{opacity:.85;font-variant-numeric:tabular-nums;white-space:nowrap}.camera-live-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.12rem .45rem;border-radius:999px;background:#22c55e38;color:#bbf7d0;font-size:.72rem;font-weight:700;letter-spacing:.04em}.camera-live-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px #22c55e59}.camera-overlay-controls{display:flex;align-items:center;gap:.25rem;opacity:0;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease}.camera-viewport:hover .camera-overlay-controls,.camera-viewport:focus-within .camera-overlay-controls{opacity:1;transform:translateY(0)}.camera-icon-btn{width:2rem;height:2rem;border:0;border-radius:8px;background:#ffffff29;color:#fff;font-size:.95rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.camera-icon-btn:hover:not(:disabled){background:#ffffff47}.camera-icon-btn:disabled{opacity:.35;cursor:not-allowed}.camera-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#000;display:flex;flex-direction:column}.camera-fullscreen-top{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1rem;background:#0f172aeb;color:#fff;z-index:1001}.camera-fullscreen-meta{display:flex;align-items:center;gap:.55rem;min-width:0}.camera-fullscreen-clock{opacity:.8;font-variant-numeric:tabular-nums}.camera-fullscreen-actions{display:flex;align-items:center;gap:.35rem}.camera-fullscreen-close{padding:.45rem .85rem;border:0;border-radius:8px;background:#ffffff26;color:#fff;font-weight:600;cursor:pointer}.camera-fullscreen-close:hover{background:#ffffff47}.camera-fullscreen-stream{flex:1;width:100%;min-height:0;object-fit:contain;display:block}.camera-preview-embedded .camera-viewport{flex:1;width:100%;min-height:0;aspect-ratio:auto;height:100%;border-radius:0}.camera-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;border:0;background:#0f172a59;cursor:pointer}.camera-drawer{position:fixed;top:0;right:0;z-index:901;width:min(420px,100vw);height:100vh;background:#fff;box-shadow:-8px 0 30px #0f172a1f;display:flex;flex-direction:column}.camera-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.1rem;border-bottom:1px solid #e2e8f0}.camera-drawer-close{width:2rem;height:2rem;border:0;border-radius:8px;background:#f1f5f9;cursor:pointer}.camera-drawer-body{flex:1;overflow:auto;padding:1rem 1.1rem 1.5rem}.camera-drawer-section{padding-bottom:.5rem;border-bottom:1px solid #eef2f7}.camera-advanced-fields summary{cursor:pointer;font-weight:600;color:#334155}.camera-settings-accordion{border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.camera-settings-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem .85rem;cursor:pointer;font-weight:600;list-style:none}.camera-settings-accordion summary::-webkit-details-marker{display:none}.camera-settings-summary-actions{display:inline-flex;gap:.25rem}.camera-inline-btn{width:1.7rem;height:1.7rem;border:1px solid #dbe3ef;border-radius:6px;background:#fff;cursor:pointer}.camera-inline-btn:disabled{opacity:.45;cursor:not-allowed}.camera-settings-row{padding:0 .85rem .85rem}@media (max-width: 760px){.camera-list-row{grid-template-columns:1fr}.camera-toolbar{width:100%;justify-content:flex-start}.camera-overlay-controls{opacity:1;transform:none}}.camera-links{display:flex;flex-direction:column;gap:.25rem;word-break:break-all}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot.free{background:#22c55e}.dot.repair{background:#eab308}.dot.occupied{background:#ef4444}table.sales{width:100%;border-collapse:collapse;font-size:.92rem}table.sales th,table.sales td{border:1px solid #e2e8f0;padding:.45rem .5rem;text-align:left}table.sales th{background:#f1f5f9}tr.sale-in_progress{background:#fef9c3}tr.sale-completed{background:#dcfce7}.muted{color:#64748b;font-size:.9rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.stats{display:flex;gap:1.5rem;margin-bottom:1rem;font-size:1.05rem}.error{color:#b91c1c;font-weight:600}.sync-progress{border:1px solid #d6e2ff;border-radius:10px;background:#f8fbff;padding:.65rem .75rem}.sync-progress-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;font-size:.92rem;color:#0f172a;margin-bottom:.45rem}.sync-progress-track{width:100%;height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden}.sync-progress-fill{height:100%;border-radius:999px;background:linear-gradient(135deg,#2563eb,#0ea5e9);transition:width .3s ease}.sync-page{gap:.85rem}.sync-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;flex-wrap:wrap}.sync-title{margin:0;font-size:1.45rem}.sync-subtitle{margin:.2rem 0 0}.sync-hero-actions{align-self:center}.sync-stat strong{color:#0f172a}.sync-stat-ready strong{color:#15803d}.sync-stat-warn strong{color:#b45309}.sync-stat-bad strong{color:#b91c1c}.sync-ok{color:#166534;font-weight:600}.sync-toolbar-card{gap:.65rem}.sync-toolbar{display:grid;gap:.75rem}.sync-search input{width:100%;min-width:0}.sync-filter-block{display:grid;gap:.45rem}.sync-bulk-bar{justify-content:flex-start;align-items:center;padding:.75rem 1rem;gap:.65rem}.sync-table-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.sync-table-wrap{overflow:auto;border:1px solid #e2e8f0;border-radius:10px}.sync-table{width:100%;border-collapse:collapse;min-width:760px}.sync-table th,.sync-table td{border-bottom:1px solid #e2e8f0;padding:.65rem .75rem;text-align:left;vertical-align:middle}.sync-table th{background:#f8fafc;font-size:.82rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.02em}.sync-table tbody tr:last-child td{border-bottom:none}.sync-col-check{width:42px}.sync-col-action{width:1%;white-space:nowrap}.sync-object-cell{display:flex;align-items:flex-start;gap:.55rem}.sync-object-owner{font-size:.82rem;margin-top:.1rem}.sync-status-dot{width:8px;height:8px;border-radius:999px;margin-top:.45rem;flex-shrink:0;background:#94a3b8}.sync-status-dot.skipped,.sync-status-dot.updated{background:#22c55e}.sync-status-dot.error,.sync-status-dot.no_domain{background:#ef4444}.sync-status-dot.unknown{background:#cbd5e1}.sync-domain{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;padding:.15rem .4rem;border-radius:6px;background:#f1f5f9;color:#334155}.sync-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .55rem;font-size:.78rem;font-weight:700;white-space:nowrap}.sync-status-badge.skipped,.sync-status-badge.updated{background:#dcfce7;color:#166534}.sync-status-badge.error,.sync-status-badge.no_domain{background:#fee2e2;color:#b91c1c}.sync-status-badge.unknown{background:#f1f5f9;color:#64748b}.sync-result-cell{font-size:.88rem;color:#475569;max-width:280px}.sync-row-error{background:#fef2f2}.sync-row-updated{background:#f0fdf4}.sync-row-muted{background:#fafafa}.sync-last-run{gap:.75rem}.sync-run-summary{font-size:.9rem}.sync-run-bar{display:flex;width:100%;height:8px;border-radius:999px;overflow:hidden;background:#e2e8f0}.sync-run-bar-segment{height:100%}.sync-run-bar-segment.updated{background:#22c55e}.sync-run-bar-segment.skipped{background:#94a3b8}.sync-run-bar-segment.error{background:#ef4444}.sync-result-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.65rem}.sync-result-card{border:1px solid #e2e8f0;border-radius:12px;padding:.85rem .95rem;background:#f8fafc;display:grid;gap:.45rem}.sync-result-card.error{border-color:#fecaca;background:#fff7f7}.sync-result-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.sync-result-card-detail{margin:0;font-size:.88rem;line-height:1.45}@media (max-width: 720px){.sync-hero-actions{width:100%}.sync-hero-actions .btn{flex:1 1 auto}}.washer-page-title{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem}.washer-page-actions{align-self:center}.washer-section-title{margin:0;font-size:1.25rem}.washer-home-list{margin:0;padding-left:1.2rem;line-height:1.8}.washer-home-link{font-weight:600;font-size:1.05rem}.btn-lg{padding:.75rem 1.35rem;font-size:1.05rem}.washer-box-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.washer-box-card{border:1px solid #e2e8f0;border-radius:12px;padding:1rem 1.15rem;background:#fff;box-shadow:0 1px 3px #0000000f}.washer-box-card h3{margin:0 0 .5rem;font-size:1.1rem}.washer-box-card.free{border-color:#86efac;background:#f0fdf4}.washer-box-card.busy{border-color:#fcd34d;background:#fffbeb}.washer-box-card.repair{border-color:#fde047;background:#fefce8}.washer-dl{margin:.5rem 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.25rem .75rem;font-size:.92rem}.washer-dl dt{margin:0;color:#64748b;font-weight:600}.washer-dl dd{margin:0}.modal{max-width:520px;margin:2rem auto}@keyframes greet-in{0%{opacity:0;transform:translateY(10px) scale(.98)}70%{opacity:1;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes greet-line{0%{transform:scaleX(.1);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-slide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-alert{0%{opacity:1}50%{opacity:.55}to{opacity:1}}@media (min-width: 980px){.unknown-grid{display:flex;flex-direction:column}.unknown-card{flex-direction:row;align-items:center;gap:1rem}.unknown-card strong{min-width:220px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0f172a73;overflow-y:auto;padding:1rem}.modal{max-width:620px;margin:2rem auto}.legal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.8rem}.legal-card{min-height:180px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.legal-card-head{align-items:flex-start;justify-content:space-between}.legal-switch{position:relative;display:inline-block;width:46px;height:24px}.legal-switch input{opacity:0;width:0;height:0}.legal-slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background-color:#dc2626;transition:.2s;border-radius:999px}.legal-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background-color:#fff;transition:.2s;border-radius:50%}.legal-switch input:checked+.legal-slider{background-color:#16a34a}.legal-switch input:checked+.legal-slider:before{transform:translate(22px)}.legal-deleted-badge{display:inline-flex;align-items:center;border-radius:999px;background:#fef3c7;color:#92400e;font-size:.78rem;font-weight:700;padding:.2rem .55rem}.legal-card-deleted{border-color:#f59e0b;background:linear-gradient(180deg,#fff9e8,#fff4cf)}.legal-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.legal-card-selected{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb38}.legal-card-alert{border-color:#dc2626;background:linear-gradient(180deg,#fff5f5,#ffeaea)}.legal-page-head{gap:.65rem}.legal-toolbar{justify-content:space-between;align-items:flex-start;gap:.75rem}.legal-toolbar-actions{flex:1;justify-content:flex-end}.legal-track-wrap{position:relative}.legal-track-popover{position:absolute;top:calc(100% + .35rem);right:0;z-index:40;min-width:280px;padding:.85rem 1rem;box-shadow:0 12px 28px #0f172a24}.legal-page-body{display:grid;gap:1rem;align-items:start}.legal-list-panel{padding:0;overflow:hidden;gap:0}.legal-list-head{display:flex;flex-direction:column;gap:.15rem;padding:.85rem 1rem .5rem;border-bottom:1px solid #e8eef8}.legal-list-summary{font-size:.82rem}.legal-list-search{padding:.55rem 1rem 0;margin:0}.legal-list-search input{width:100%;min-width:0}.legal-filter-chips{display:flex;flex-wrap:wrap;gap:.35rem;padding:.55rem 1rem;border-bottom:1px solid #e8eef8}.legal-filter-chips .tab{margin:0;font-size:.82rem;padding:.35rem .7rem}.legal-list-scroll{max-height:min(70vh,640px);overflow-y:auto;padding:.35rem}.legal-list-empty{padding:1rem;margin:0;text-align:center}.legal-list-item{display:flex;gap:.65rem;align-items:flex-start;width:100%;text-align:left;border:1px solid transparent;border-radius:10px;background:#fff;padding:.65rem .55rem;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.legal-list-item:hover{background:#f8fbff;border-color:#dbeafe}.legal-list-item-selected{border-color:#2563eb;background:#eef5ff;box-shadow:0 0 0 2px #2563eb24}.legal-list-item-alert{border-left:3px solid #dc2626}.legal-list-item-deleted{opacity:.72;background:#fffbeb}.legal-list-avatar{flex:0 0 auto;width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;color:#1e40af;background:linear-gradient(135deg,#dbeafe,#e0f2fe)}.legal-list-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.legal-list-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.35rem}.legal-list-title-row strong{font-size:.92rem;line-height:1.25;word-break:break-word}.legal-list-sub{font-size:.78rem;line-height:1.3}.legal-list-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.15rem}.legal-money-badge{font-size:.76rem;font-weight:600;color:#166534;background:#ecfdf5;border-radius:999px;padding:.15rem .5rem}.legal-money-badge-alert{color:#b91c1c;background:#fee2e2}.legal-count-badge{font-size:.76rem;color:#475569;background:#f1f5f9;border-radius:999px;padding:.15rem .5rem}.legal-detail-panel{min-height:360px}.legal-detail-panel-empty{display:flex;align-items:center;justify-content:center}.legal-detail-placeholder{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:2rem 1rem}.legal-detail-mobile-bar{display:none}.legal-detail-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding-bottom:.25rem;border-bottom:1px solid #e8eef8}.legal-detail-title-block{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.legal-detail-title-block h3{word-break:break-word}.legal-status-pill{display:inline-flex;align-items:center;border-radius:999px;font-size:.78rem;font-weight:700;padding:.2rem .55rem}.legal-status-pill-active{background:#dcfce7;color:#166534}.legal-status-pill-inactive{background:#f1f5f9;color:#475569}.legal-status-pill-deleted{background:#fef3c7;color:#92400e}.legal-metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem}.legal-metric-tile{border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;padding:.65rem .75rem;text-align:left;display:flex;flex-direction:column;gap:.2rem;transition:border-color .15s ease,box-shadow .15s ease}.legal-metric-tile:hover{border-color:#93c5fd;box-shadow:0 4px 12px #2563eb1a}.legal-metric-tile strong{font-size:1rem;color:#0f172a}.legal-metric-tile-alert{border-color:#fecaca;background:#fff5f5}.legal-metric-tile-alert strong{color:#b91c1c}.legal-detail-tabs{margin-bottom:0}.legal-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;margin:0}.legal-overview-grid>div{display:flex;flex-direction:column;gap:.15rem}.legal-overview-grid dt{margin:0;font-size:.78rem;color:#64748b;font-weight:600}.legal-overview-grid dd{margin:0;font-weight:600;color:#0f172a;word-break:break-word}.legal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.legal-balance-panel{align-items:center;max-width:420px;margin:0 auto;width:100%}.legal-balance-amount{text-align:center;font-size:2rem;font-weight:700;color:#0f172a}.legal-table-wrap{overflow-x:auto}.legal-history-table{max-height:420px;overflow-y:auto}.legal-inline-form{background:#f8fafc}.legal-check-row{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.legal-drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:#0f172a59}.legal-drawer{position:fixed;top:0;right:0;bottom:0;z-index:111;width:min(420px,100vw);margin:0;border-radius:0;overflow-y:auto;padding:1.25rem 1.35rem;box-shadow:-8px 0 32px #0f172a2e;animation:legal-drawer-in .22s ease}@keyframes legal-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.legal-drawer-head{justify-content:space-between;align-items:center}.legal-create-steps{display:flex;gap:.5rem;font-size:.82rem;color:#94a3b8}.legal-create-steps span.active{color:#2563eb;font-weight:700}.legal-fab{display:none;position:fixed;right:1.25rem;bottom:1.25rem;z-index:50;width:52px;height:52px;border-radius:50%;padding:0;font-size:1.6rem;line-height:1}@media (min-width: 900px){.legal-page-body{grid-template-columns:minmax(280px,340px) 1fr}.legal-metrics{grid-template-columns:repeat(4,1fr)}.legal-toolbar-create{display:inline-flex}}@media (max-width: 899px){.legal-page-body{grid-template-columns:1fr}.legal-detail-panel,.legal-page--detail .legal-list-panel{display:none}.legal-page--detail .legal-detail-panel{display:flex}.legal-detail-mobile-bar{display:block}.legal-fab{display:inline-flex;align-items:center;justify-content:center}.legal-toolbar-create{display:none}.legal-overview-grid,.legal-form-grid{grid-template-columns:1fr}}.admin-page{display:grid;gap:1rem}@media (min-width: 900px){.admin-page{grid-template-columns:minmax(280px,340px) 1fr;align-items:start}.admin-create-card{position:sticky;top:1rem}}.admin-page-head{grid-column:1 / -1}.admin-page-head h2{margin:0 0 .25rem}.role-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.role-tile{border:1px solid #d6e4ff;border-radius:10px;background:#f8fbff;padding:.65rem .55rem;text-align:left;display:flex;flex-direction:column;gap:.15rem;transition:border-color .15s ease,box-shadow .15s ease}.role-tile:hover{border-color:#93b4ff}.role-tile.active{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb2e;background:#eef5ff}.role-tile-title{font-weight:700;font-size:.92rem}.role-tile-desc{font-size:.78rem;color:#64748b}.admin-preview{border:1px dashed #cbd5e1;border-radius:8px;padding:.55rem .65rem;font-size:.88rem;color:#475569;background:#f8fafc}.admin-preview strong{color:#0f172a}.password-row{display:flex;gap:.4rem;align-items:stretch}.password-row .field{flex:1;min-width:0}.password-row .field input{min-width:0;width:100%}.password-actions{display:flex;flex-direction:column;gap:.35rem;flex-shrink:0}.password-actions .btn.secondary{padding:.45rem .65rem;font-size:.82rem;white-space:nowrap}.admin-toast-ok{color:#166534;font-weight:600;font-size:.9rem}.admin-list-toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.admin-list-toolbar .field{flex:1;min-width:180px}.admin-list-toolbar .field input{min-width:0;width:100%}.admin-group{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.admin-group-head{width:100%;border:none;background:#f1f5f9;padding:.55rem .75rem;display:flex;justify-content:space-between;align-items:center;font-weight:700;text-align:left}.admin-group-head span{font-weight:600;color:#64748b;font-size:.88rem}.admin-user-list{display:flex;flex-direction:column}.admin-user-row{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-top:1px solid #e2e8f0}.admin-user-row:first-child{border-top:none}.admin-user-avatar{width:36px;height:36px;border-radius:50%;background:#dbeafe;color:#1e40af;font-weight:700;font-size:.82rem;display:grid;place-items:center;flex-shrink:0}.admin-user-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.admin-user-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-user-login{font-size:.85rem;color:#64748b}.role-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700;flex-shrink:0}.role-badge-admin{background:#ede9fe;color:#5b21b6}.role-badge-owner{background:#dbeafe;color:#1e40af}.role-badge-manager{background:#dcfce7;color:#166534}.role-badge-washer{background:#f1f5f9;color:#475569}.admin-user-actions{display:flex;gap:.35rem;flex-shrink:0}.field-error{color:#b91c1c;font-size:.82rem;font-weight:600}.field input.field-invalid,.field select.field-invalid{border-color:#dc2626}.admin-empty{padding:1rem;text-align:center;color:#64748b}.modal.admin-edit-modal{max-width:480px}@media (max-width: 640px){.admin-user-row{flex-wrap:wrap}.admin-user-actions{width:100%;justify-content:flex-end}}.object-selector{max-width:960px;margin:0 auto}.terminal-picker-subtitle{margin:0;text-align:center;font-size:1.05rem;font-weight:700;color:#334155}.terminal-search{display:block;position:relative}.terminal-search input{width:100%;padding:.7rem .85rem .7rem 2.35rem;border:1px solid #cfd6e4;border-radius:12px;background:#f8fafc;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.terminal-search input:focus{outline:none;border-color:#2563eb;background:#fff;box-shadow:0 0 0 4px #2563eb1f}.terminal-search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:#64748b;font-size:1.1rem;pointer-events:none}.legal-entity-tabs{display:flex;flex-wrap:nowrap;gap:.4rem;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:thin}.legal-entity-tab{flex:0 0 auto;border:1px solid #cfd6e4;background:#fff;border-radius:999px;padding:.45rem .9rem;font-weight:600;color:#334155;white-space:nowrap;transition:border-color .12s ease,background .12s ease,box-shadow .12s ease}.legal-entity-tab.active{border-color:#2563eb;background:#e8f0ff;color:#1d4ed8;box-shadow:0 0 0 3px #2563eb1f}.terminal-group{display:flex;flex-direction:column;gap:.75rem}.terminal-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:0 .1rem}.terminal-group-title{margin:0;font-size:1rem;font-weight:800;color:#0f172a}.terminal-group-count{font-size:.82rem;font-weight:600;color:#64748b;white-space:nowrap}.terminal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.85rem}.terminal-card{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1rem .9rem;border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 8px 24px #0f172a0d;position:relative;overflow:hidden;animation:fade-up .22s ease}.terminal-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#cbd5e1}.terminal-card-ready:before{background:linear-gradient(180deg,#22c55e,#16a34a)}.terminal-card-muted:before{background:#94a3b8}.terminal-card-body{display:flex;flex-direction:column;gap:.45rem;min-width:0}.terminal-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.65rem}.terminal-card-title{margin:0;font-size:1.05rem;font-weight:800;color:#0f172a;line-height:1.25}.terminal-status{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:700;white-space:nowrap;padding:.2rem .45rem;border-radius:999px;background:#f1f5f9;color:#64748b}.terminal-status.online{background:#ecfdf5;color:#15803d}.terminal-status-dot{width:.45rem;height:.45rem;border-radius:50%;background:currentColor}.terminal-card-domain{font-size:.82rem;color:#475569;word-break:break-all}.terminal-card-domain-missing{color:#b45309}.terminal-card-stats{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.82rem;color:#64748b}.terminal-card-stat-sep{opacity:.55}.terminal-card-stat-active{color:#2563eb;font-weight:700}.terminal-card-open{width:100%;justify-content:center;margin-top:auto}.terminal-card-open:disabled{background:#e2e8f0;color:#64748b;box-shadow:none}.terminal-picker-empty{display:flex;flex-direction:column;align-items:center;gap:.65rem;padding:1.25rem .5rem;text-align:center}@media (max-width: 640px){.terminal-grid{grid-template-columns:1fr}.terminal-card-head{flex-direction:column;align-items:flex-start}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.65rem}.stat-card{padding:.8rem 1rem;display:grid;gap:.25rem}.stat-card strong{font-size:1.2rem}.reports-page,.reports-hero{gap:.85rem}.reports-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;flex-wrap:wrap}.reports-title{margin:0;font-size:1.45rem}.reports-period-label{margin:.2rem 0 0;font-size:.9rem}.reports-period-toolbar{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem}.reports-period-btn{border:2px solid #e2e8f0;background:#fff;border-radius:10px;padding:.55rem .35rem;font-size:.9rem;font-weight:700;color:#64748b;text-align:center;transition:border-color .15s ease,background .15s ease,color .15s ease}.reports-period-btn.active{border-color:#2563eb;background:linear-gradient(135deg,#eff6ff,#e0f2fe);color:#1d4ed8;box-shadow:0 4px 14px #2563eb26}.reports-period-gear{display:inline-flex;align-items:center;justify-content:center}.reports-period-modal .field input{width:100%;min-width:0}.reports-stat strong{color:#0f172a}.reports-stat-revenue strong{color:#1d4ed8}.reports-section-title{margin:0;font-size:1.05rem}.reports-filters-head,.reports-sales-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.reports-filters-actions,.reports-sales-actions{display:flex;flex-wrap:wrap;gap:.4rem}.reports-filter-block{display:grid;gap:.45rem}.reports-filter-label{font-size:.78rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.04em}.reports-segments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.reports-segments-compact{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.reports-segment{border:2px solid #e2e8f0;background:#fff;border-radius:10px;padding:.5rem .55rem;font-size:.85rem;font-weight:700;color:#64748b;text-align:center;transition:border-color .12s ease,background .12s ease,color .12s ease}.reports-segment.active{border-color:#2563eb;background:#e8f0ff;color:#1d4ed8}.reports-legal-filter{padding-top:.25rem;border-top:1px solid #e2e8f0}.reports-payments{padding:.9rem 1rem}.reports-payment-chips{display:flex;flex-wrap:wrap;gap:.45rem}.reports-payment-chip{border-radius:999px;padding:.35rem .75rem;font-size:.85rem;font-weight:600}.reports-payment-chip.cash{background:#fef3c7;color:#92400e}.reports-payment-chip.card{background:#dbeafe;color:#1e40af}.reports-payment-chip.legal{background:#ede9fe;color:#5b21b6}.reports-payment-chip-table{padding:.2rem .55rem;font-size:.78rem;white-space:nowrap}.reports-chart-controls{display:grid;gap:.75rem}.reports-control-group{display:grid;gap:.4rem}.reports-chip-row{display:flex;flex-wrap:wrap;gap:.35rem}.reports-chip{border:1px solid #cfd6e4;background:#fff;border-radius:999px;padding:.35rem .7rem;font-size:.82rem;font-weight:700;color:#64748b}.reports-chip.active{border-color:#2563eb;background:#e8f0ff;color:#1d4ed8}.reports-date-range{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end}.reports-date-field input{width:100%;min-width:0}.reports-chart-canvas{width:100%}.reports-chart-note{margin:0;font-size:.85rem}.reports-day-list{display:grid;gap:.55rem}.reports-day-card{border:1px solid #e2e8f0;border-radius:10px;padding:.65rem .75rem;background:#f8fafc}.reports-object-card{background:#fff}.reports-day-head{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.35rem}.reports-day-date{font-weight:700;color:#0f172a}.reports-day-revenue{font-weight:700;color:#1d4ed8;white-space:nowrap}.reports-day-bar{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-bottom:.35rem}.reports-day-bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#0ea5e9);min-width:2%}.reports-day-meta{display:flex;flex-wrap:wrap;gap:.65rem;font-size:.82rem}.reports-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #e2e8f0;border-radius:10px}.reports-sales-table{min-width:980px;margin:0}.reports-sales-table th{position:sticky;top:0;z-index:1;background:#f1f5f9;font-size:.82rem;white-space:nowrap}.reports-services-cell{max-width:240px;white-space:normal;font-size:.85rem}.reports-amount-cell{font-weight:700;white-space:nowrap;color:#0f172a}.reports-status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .55rem;font-size:.78rem;font-weight:700;white-space:nowrap}.reports-status-badge.completed{background:#dcfce7;color:#166534}.reports-status-badge.in_progress{background:#fef9c3;color:#854d0e}.reports-modal{max-width:480px}.reports-column-list{max-height:320px;overflow:auto}.reports-column-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .7rem;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;cursor:grab}@media (max-width: 768px){.reports-period-toolbar{grid-template-columns:repeat(2,1fr)}.reports-segments{grid-template-columns:repeat(2,minmax(0,1fr))}}.payment-methods-page{gap:.85rem}.payment-methods-ok{color:#166534;font-weight:600}.payment-methods-object-tabs{margin-bottom:0}.payment-methods-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);gap:.85rem;align-items:start}.payment-methods-object-head{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;flex-wrap:wrap}.payment-methods-section{gap:.55rem}.payment-methods-section+.payment-methods-section{padding-top:.85rem;border-top:1px solid #e2e8f0}.payment-methods-section-title{margin:0;font-size:.82rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#64748b}.payment-methods-base-chips{margin-top:.1rem}.payment-methods-base-hint{margin:0;font-size:.88rem}.payment-methods-list{display:grid;gap:.55rem}.payment-method-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:.65rem;padding:.72rem .85rem;border:1px solid #e2e8f0;border-radius:12px;background:#fff}.payment-method-row-editing{grid-template-columns:1fr;background:#f8fafc}.payment-method-dot{width:.55rem;height:.55rem;border-radius:999px;background:#2563eb;flex-shrink:0}.payment-method-row-name{min-width:0}.payment-method-row-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.payment-method-badge{border-radius:999px;padding:.22rem .62rem;font-size:.78rem;font-weight:700;white-space:nowrap}.payment-method-badge.has-commission{background:#dbeafe;color:#1e40af}.payment-method-badge.no-commission{background:#f1f5f9;color:#64748b}.payment-method-row-actions{display:inline-flex;gap:.25rem}.payment-method-icon-btn{width:2rem;height:2rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#475569;font-size:.95rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:border-color .12s ease,background .12s ease,color .12s ease}.payment-method-icon-btn:hover:not(:disabled){border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.payment-method-icon-btn.danger:hover:not(:disabled){border-color:#fca5a5;background:#fef2f2;color:#dc2626}.payment-method-icon-btn:disabled{opacity:.45;cursor:not-allowed}.payment-method-add-trigger{width:100%;border:1px dashed #cbd5e1;border-radius:12px;background:#f8fafc;color:#2563eb;font-weight:700;padding:.75rem .85rem;transition:border-color .12s ease,background .12s ease}.payment-method-add-trigger:hover{border-color:#2563eb;background:#eff6ff}.payment-methods-empty{margin:0;text-align:center;font-size:.9rem}.payment-switch{display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;-webkit-user-select:none;user-select:none}.payment-switch input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.payment-switch-track{position:relative;width:2.5rem;height:1.45rem;border-radius:999px;background:#cbd5e1;transition:background .15s ease;flex-shrink:0}.payment-switch-track:after{content:"";position:absolute;top:.16rem;left:.16rem;width:1.13rem;height:1.13rem;border-radius:999px;background:#fff;box-shadow:0 1px 3px #0f172a2e;transition:transform .15s ease}.payment-switch input:checked+.payment-switch-track{background:#2563eb}.payment-switch input:checked+.payment-switch-track:after{transform:translate(1.05rem)}.payment-switch input:disabled+.payment-switch-track{opacity:.55}.payment-switch-label{font-size:.82rem;font-weight:600;color:#475569;white-space:nowrap}.payment-switch-compact .payment-switch-label{font-size:.78rem}.payment-method-create-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem}.payment-method-row-editing .field input{width:100%;min-width:0}.payment-methods-preview{position:sticky;top:1rem}.payment-methods-preview-title{font-size:.95rem}.payment-methods-preview-note{margin:0;font-size:.84rem}.payment-preview-segments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.payment-preview-segment{border:2px solid #e2e8f0;background:#fff;border-radius:10px;padding:.62rem .4rem;font-size:.8rem;font-weight:600;color:#64748b;text-align:center;transition:border-color .12s ease,background .12s ease,color .12s ease}.payment-preview-segment.active{border-color:#2563eb;background:#e8f0ff;color:#1d4ed8}.payment-preview-segment.custom{grid-column:span 1}.payment-preview-callout{border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;padding:.75rem .85rem;font-size:.88rem;font-weight:600;color:#1e3a8a;line-height:1.45}@media (max-width: 900px){.payment-methods-layout{grid-template-columns:1fr}.payment-methods-preview{position:static}}@media (max-width: 640px){.payment-method-row{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"dot name actions" "badge badge badge" "toggle toggle toggle";row-gap:.45rem}.payment-method-dot{grid-area:dot}.payment-method-row-name{grid-area:name}.payment-method-badge{grid-area:badge;justify-self:start}.payment-switch-compact{grid-area:toggle}.payment-method-row-actions{grid-area:actions;justify-self:end}}
