:root{--color-bg:#eef1f6;--color-surface:#fff;--color-surface-alt:#f7f9fc;--color-header:#0f1a2a;--color-header-alt:#17253a;--color-header-fg:#e6edf7;--color-header-fg-muted:#e6edf79e;--color-header-fg-faint:#e6edf75c;--color-primary:#2c5282;--color-primary-dark:#1e3a5f;--color-accent:#0e7490;--color-border:#d3dae4;--color-border-strong:#b8c1cf;--color-text:#101827;--color-text-muted:#57657a;--color-text-faint:#8592a5;--status-success:#2f7a4d;--status-success-bg:#e3f2e7;--status-danger:#b3392f;--status-danger-bg:#fbe7e5;--status-warning:#a8681c;--status-warning-bg:#f7ecd8;--status-info:#2c5282;--status-info-bg:#e5ecf4;--status-teal:#0e7490;--status-teal-bg:#e0f2f4;--status-neutral:#94a3b8;--row-awaiting-none-bg:var(--color-surface);--row-awaiting-none-accent:transparent;--row-awaiting-due-bg:#ece2f8;--row-awaiting-due-accent:#7c3aed;--row-awaiting-ahead-bg:#fdf1d6;--row-awaiting-ahead-accent:#d97706;--row-accepted-bg:#eef7f1;--row-accepted-accent:#5da177;--row-accepted-issues-bg:#a9d4b8;--row-accepted-issues-accent:#14532d;--row-rejected-bg:#f79289;--row-rejected-accent:#b91c1c;--row-rejected-resolved-bg:#fed7aa;--row-rejected-resolved-accent:#c2410c;--row-inactive-bg:#eef1f5;--row-inactive-accent:#94a3b8;--radius-sm:2px;--radius:2px;--shadow-sm:0 1px 0 #1722330a;--shadow-md:0 1px 4px #17223324;--shadow-sidebar:1px 0 0 #0f1a2a59;--shadow-topbar:0 1px 0 var(--color-border);--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Consolas, "Segoe UI Mono", monospace;--fs-scale:.9;--fs-2xs:calc(11px * var(--fs-scale));--fs-xs:calc(12px * var(--fs-scale));--fs-sm:calc(13px * var(--fs-scale));--fs-md:calc(14px * var(--fs-scale));--fs-base:calc(15px * var(--fs-scale));--fs-lg:calc(17px * var(--fs-scale));--fs-xl:calc(21px * var(--fs-scale));--fs-2xl:calc(27px * var(--fs-scale));--sidebar-w:208px;--sidebar-w-collapsed:56px;--topbar-h:44px;--tap-min:32px;font:var(--fs-base)/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-variant-numeric:tabular-nums}body{margin:0}#root{box-sizing:border-box;flex-direction:row;min-height:100svh;display:flex}h1,h2{font-family:var(--sans);color:var(--color-text);font-weight:600}h1{font-size:var(--fs-2xl);letter-spacing:-.3px;margin:0 0 16px}h2{font-size:var(--fs-lg);letter-spacing:-.1px;margin:0 0 8px;line-height:120%}p{margin:0}.tap-safe{position:relative}.tap-safe:after{content:"";width:max(100%, var(--tap-min));height:max(100%, var(--tap-min));pointer-events:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.issue-edit,.issue-delete,.edit-trigger,.edit-btn,.photo-gallery-icon-btn,.photo-gallery-btn,.stats-tooltip-close{position:relative}.issue-edit:after,.issue-delete:after,.edit-trigger:after,.edit-btn:after,.photo-gallery-icon-btn:after,.photo-gallery-btn:after,.stats-tooltip-close:after{content:"";width:max(100%, var(--tap-min));height:max(100%, var(--tap-min));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.filter-btn,.pagination-btn,.apart-form-button,.contractor-form-button,.complex-select,.stats-select,.stats-print-btn,.app-header_link,.app-header_logout{min-height:var(--tap-min)}.issue-check,.select-apart,input[type=checkbox]{flex-shrink:0;width:22px;height:22px}.tap-hit{width:var(--tap-min);height:var(--tap-min);margin:calc((22px - var(--tap-min)) / 2);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tap-hit:has(input:disabled){cursor:default}.app-footer_tg{min-height:var(--tap-min);align-items:center;display:inline-flex}.sched-chip_open,.sched-chip_remove,.sched-sheet-btn,.sched-slotrow_add{position:relative}.sched-chip_open:after,.sched-chip_remove:after,.sched-sheet-btn:after,.sched-slotrow_add:after{content:"";width:max(100%, var(--tap-min));height:max(100%, var(--tap-min));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sched-chip_remove:after{width:max(100%, calc(var(--tap-min) * .7))}@media print{.filter-btn,.pagination-btn,.apart-form-button,.contractor-form-button,.complex-select,.stats-select,.stats-print-btn{min-height:0}}code{font-family:var(--mono);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--fs-md);background:var(--color-border);padding:4px 8px;line-height:135%;display:inline-flex}@media print{.app-sidebar,.app-topbar,.app-header,.app-footer{display:none!important}}.loading-block{background:var(--color-surface);border:1px solid var(--color-border);pointer-events:none;animation:1s ease-in-out infinite loading-pulse;position:relative}.loading-block:before{content:"";z-index:100;background:#0000000f;width:100%;height:100%;position:absolute;top:0;left:0}.loading-block:after{content:"";border:3px solid var(--color-border);border-top-color:var(--color-primary);z-index:2;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;position:absolute;top:min(50%,60px);left:50%;transform:translate(-50%,-50%)}@keyframes spin{to{transform:translate(-50%,-50%)rotate(360deg)}}@keyframes rotate-360{to{transform:rotate(360deg)}}@keyframes loading-pulse{0%,to{opacity:1}50%{opacity:.7}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);font-family:var(--sans)}.root{flex-direction:row;align-items:stretch;width:100%;min-height:100svh;display:flex}.root.is-bare{display:block}.app-shell-main{background:var(--color-bg);flex-direction:column;flex:auto;min-width:0;display:flex}.app-shell-content{flex-direction:column;flex:auto;gap:10px;min-width:0;padding:12px 16px 24px;display:flex}.page-loading{text-align:center;width:100%;color:var(--color-text-muted);font-size:var(--fs-md);flex:auto;padding:60px 20px}.page-error{text-align:center;color:var(--color-text);padding:60px 20px}.page-error_title{font-size:var(--fs-lg);color:var(--status-danger);margin:0 0 8px}.page-error_text{max-width:420px;color:var(--color-text-muted);font-size:var(--fs-md);margin:0 auto 16px;line-height:145%}.page-error_retry{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:var(--fs-md);cursor:pointer;padding:8px 16px}.page-error_retry:hover{border-color:var(--color-primary);color:var(--color-primary)}.app-sidebar{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);background:var(--color-header);color:var(--color-header-fg);height:100svh;box-shadow:var(--shadow-sidebar);z-index:40;flex-direction:column;transition:flex-basis .15s,width .15s;display:flex;position:sticky;top:0}.app-sidebar.is-collapsed{flex:0 0 var(--sidebar-w-collapsed);width:var(--sidebar-w-collapsed)}.app-sidebar_toggle{width:100%;color:var(--color-header-fg-faint);cursor:pointer;font-size:var(--fs-sm);background:0 0;border:none;border-bottom:1px solid #ffffff0f;justify-content:center;align-items:center;padding:5px 0;line-height:1;transition:background .12s,color .12s;display:flex}.app-sidebar_toggle:hover{color:#fff;background:var(--color-header-alt)}.app-sidebar_brand{border-bottom:1px solid #ffffff0f;grid-template-columns:auto 1fr;align-items:baseline;column-gap:8px;padding:14px 14px 12px;display:grid}.app-sidebar_brand-mark{background:var(--color-primary);color:#fff;width:28px;height:28px;font-weight:700;font-size:var(--fs-sm);letter-spacing:.3px;border-radius:2px;grid-row:span 2;justify-content:center;align-items:center;display:inline-flex}.app-sidebar_brand-name{font-weight:700;font-size:var(--fs-base);color:#fff;letter-spacing:.2px;align-self:end}.app-sidebar_brand-sub{font-size:var(--fs-2xs);color:var(--color-header-fg-faint);text-transform:uppercase;letter-spacing:.6px;grid-column:2;align-self:start}.app-sidebar_nav{flex-direction:column;flex:auto;gap:1px;padding:10px 6px;display:flex;overflow-y:auto}.app-sidebar_section{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.7px;color:var(--color-header-fg-faint);padding:6px 10px 4px;font-weight:700}.app-sidebar_link{color:var(--color-header-fg-muted);font-size:var(--fs-md);min-height:var(--tap-min);border-left:2px solid #0000;border-radius:0;grid-template-columns:26px 1fr;align-items:center;gap:8px;padding:8px 10px;font-weight:500;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:grid}.app-sidebar_code{font-family:var(--mono);font-size:var(--fs-2xs);color:var(--color-header-fg-faint);letter-spacing:.4px}.app-sidebar_link:hover{color:#fff;background:var(--color-header-alt)}.app-sidebar_link.is-active{color:#fff;background:var(--color-header-alt);border-left-color:var(--color-primary)}.app-sidebar_link.is-active .app-sidebar_code{color:var(--color-primary)}.app-sidebar_footer{border-top:1px solid #ffffff0f;flex-direction:column;gap:6px;padding:10px 12px 12px;display:flex}.app-sidebar_user{flex-direction:column;gap:1px;display:flex}.app-sidebar_user-name{font-size:var(--fs-sm);color:#fff;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.app-sidebar_user-role{font-size:var(--fs-2xs);color:var(--color-header-fg-faint);text-transform:uppercase;letter-spacing:.5px}.app-sidebar_scroll-top{color:#ffffffd9;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);background:0 0;border:1px solid #ffffff2e;justify-content:center;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.app-sidebar_scroll-top:hover{background:#ffffff14;border-color:#ffffff5c}.app-sidebar_logout{color:#ffffffd9;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);background:0 0;border:1px solid #ffffff2e;justify-content:center;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-weight:500;transition:background .12s,border-color .12s;display:inline-flex}.app-sidebar_logout:hover{background:#ffffff14;border-color:#ffffff5c}.app-sidebar_tg{font-size:var(--fs-2xs);color:var(--color-header-fg-faint);align-items:center;gap:4px;margin-top:2px;text-decoration:none;display:inline-flex}.app-sidebar_tg:hover{color:#fff}.app-sidebar_copy{font-size:var(--fs-2xs);color:var(--color-header-fg-faint);flex-wrap:wrap;align-items:center;gap:2px 5px;line-height:1.4;display:flex}.flag-rt{shape-rendering:crispedges;flex-shrink:0;width:15px;height:8px}.app-sidebar.is-collapsed .app-sidebar_brand{grid-template-columns:1fr;justify-items:center;padding:14px 4px 12px}.app-sidebar.is-collapsed .app-sidebar_brand-mark{grid-row:auto}.app-sidebar.is-collapsed .app-sidebar_brand-name,.app-sidebar.is-collapsed .app-sidebar_brand-sub,.app-sidebar.is-collapsed .app-sidebar_section,.app-sidebar.is-collapsed .app-sidebar_label,.app-sidebar.is-collapsed .app-sidebar_user,.app-sidebar.is-collapsed .app-sidebar_tg,.app-sidebar.is-collapsed .app-sidebar_copy,.app-sidebar.is-collapsed .app-sidebar_scroll-top-label,.app-sidebar.is-collapsed .app-sidebar_logout-label{display:none}.app-sidebar.is-collapsed .app-sidebar_link{grid-template-columns:1fr;justify-items:center;padding:8px 4px}.app-sidebar.is-collapsed .app-sidebar_footer{align-items:center}.app-sidebar.is-collapsed .app-sidebar_scroll-top,.app-sidebar.is-collapsed .app-sidebar_logout{width:32px;height:32px;padding:0}.app-topbar{min-height:var(--topbar-h);background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-topbar);flex-wrap:wrap;align-items:center;gap:24px;padding:6px 16px;display:flex}.app-topbar_titles{flex:auto;grid-template-columns:auto auto;align-items:baseline;gap:0 10px;min-width:0;display:grid}.app-topbar_code{font-family:var(--mono);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);grid-column:1/-1;font-weight:700}.app-topbar_title{font-size:var(--fs-base);color:var(--color-text);letter-spacing:-.1px;white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.app-topbar_hint{font-size:var(--fs-xs);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app-topbar_meta{flex-wrap:nowrap;align-items:stretch;gap:0;display:flex}.app-topbar_meta-cell{border-left:1px solid var(--color-border);flex-direction:column;justify-content:center;min-width:0;padding:2px 14px;display:flex}.app-topbar_meta-cell:first-child{border-left:none}.app-topbar_meta-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-faint);font-weight:700}.app-topbar_meta-value{font-size:var(--fs-sm);color:var(--color-text);white-space:nowrap;font-weight:600}.login-page{background:var(--color-bg);flex:auto;justify-content:center;align-items:center;width:100%;min-height:100svh;padding:20px;display:flex}.login-card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow-md);width:380px;max-width:100%;padding:40px}.login-title{text-align:center;color:var(--color-text);margin-bottom:8px}.login-subtitle{text-align:center;color:var(--color-text-muted);font-size:var(--fs-md);margin-bottom:24px}.login-error{background:var(--status-danger-bg);color:var(--status-danger);border-radius:var(--radius-sm);text-align:center;font-size:var(--fs-md);margin-bottom:16px;padding:10px 14px}.login-input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:var(--fs-md);box-sizing:border-box;color:var(--color-text);background:var(--color-surface);margin-bottom:12px;padding:12px 16px;font-family:inherit;display:block}.login-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2c52821f}.login-submit{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);width:100%;font-size:var(--fs-base);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:12px;font-family:inherit;font-weight:500;transition:background .15s;display:inline-flex}.login-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite rotate-360}.login-submit:hover:not(:disabled){background:var(--color-primary-dark)}.login-submit:disabled{cursor:not-allowed;opacity:.7}.app-header{background:var(--color-header);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.app-header_nav{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.app-header_brand{color:#fff;font-weight:600;font-size:var(--fs-base)}.app-header_link{color:#ffffffad;font-size:var(--fs-md);text-decoration:none}.app-header_link:hover{color:#fff}.app-header_user{align-items:center;gap:12px;display:flex}.app-header_username{color:#ffffffad;font-size:var(--fs-md)}.app-header_logout{color:#ffffffd9;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm);background:0 0;border:1px solid #ffffff3d;padding:5px 14px}.app-header_logout:hover{background:#ffffff14}.search{position:relative}.search input{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;font-size:var(--fs-md);background:var(--color-surface);color:var(--color-text);padding:8px 30px 8px 36px;font-family:inherit}.search_clear{color:var(--color-text-muted);font-size:var(--fs-sm);cursor:pointer;border-radius:var(--radius-sm);min-width:var(--tap-min);min-height:var(--tap-min);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;line-height:1;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.search_clear:hover{background:var(--color-bg);color:var(--color-text)}.search input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2c52821f}.search:before{content:"";pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"%2364748b\" stroke-width=\"2\"><circle cx=\"11\" cy=\"11\" r=\"7\"/><path stroke-linecap=\"round\" d=\"M21 21l-4.35-4.35\"/></svg>");background-repeat:no-repeat;background-size:contain;width:14px;height:14px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.apart-list{flex-direction:column;gap:6px;min-height:100px;display:flex}.apart-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:7px 14px;position:relative;container:apart/inline-size}.apart-item.selected{box-shadow:inset 3px 0 var(--color-primary), var(--shadow-sm)}.apart-item.invited{background:var(--status-success-bg);border-color:var(--status-success)}.apart-item.selected.invited{box-shadow:inset 3px 0 var(--color-primary), var(--shadow-sm)}.apart-item.invited .apart-name{color:var(--status-success)}.apart-item.invited .apart-name small{color:var(--status-success);background:#2f7a4d1f}.apart-item.invited .apart-form-button.invite{background:var(--status-success-bg);border-color:var(--status-success);color:var(--status-success);font-weight:600}.apart-item.invited .apart-form-button.invite:hover{background:#2f7a4d2e}.apart-issues-head{border-bottom:2px solid var(--color-border);background:inherit;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.select-apart{cursor:pointer;width:18px;height:18px}.apart-name{font-size:var(--fs-base);color:var(--color-text);flex-wrap:wrap;flex:1;align-items:baseline;gap:6px 12px;font-weight:600;display:flex}.apart-name-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.apart-name .photo-gallery-btn,.apart-name .photo-gallery-icon-btn{align-self:center}.apart-name small{font-weight:400;font-size:var(--fs-sm);color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius-sm);padding:2px 8px}.apart-status-done{font-size:var(--fs-xs);border-radius:var(--radius-sm);background:var(--status-success-bg);color:var(--status-success);white-space:nowrap;text-transform:uppercase;letter-spacing:.3px;padding:2px 8px;font-weight:700}.apart-form{gap:6px;display:flex}.apart-form-button{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fs-sm);cursor:pointer;color:var(--color-text);white-space:nowrap;letter-spacing:.1px;padding:4px 12px;font-family:inherit;font-weight:600}.apart-form-button:hover{background:var(--color-border)}.apart-form-button.is-status{cursor:default;align-items:center;display:inline-flex}.apart-form-button.is-status:hover{background:var(--color-bg)}.apart-form-button.is-status.accept:hover{background:var(--status-success-bg)}.apart-form-button.accept{background:var(--status-success-bg);border-color:var(--status-success);color:var(--status-success)}.apart-form-button.naccept{background:var(--status-danger-bg);border-color:var(--status-danger);color:var(--status-danger)}.apart-form-button.zaccept{background:var(--status-warning-bg);border-color:var(--status-warning);color:var(--status-warning)}.apart-form-button.notsold{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text-muted)}.apart-form-button.notviewed{background:var(--status-info-bg);border-color:var(--status-info);color:var(--status-info)}.apart-form-button.dkp{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}.all-contractor-issues{grid-template-columns:1fr;gap:6px;margin-top:6px;display:grid}@container apart (width>=840px){.all-contractor-issues{grid-template-columns:repeat(2,minmax(0,1fr))}}@container apart (width>=1260px){.all-contractor-issues{grid-template-columns:repeat(3,minmax(0,1fr))}}@container apart (width>=1680px){.all-contractor-issues{grid-template-columns:repeat(4,minmax(0,1fr))}}@container apart (width>=2100px){.all-contractor-issues{grid-template-columns:repeat(5,minmax(0,1fr))}}@supports not (container-type:inline-size){.all-contractor-issues{grid-template-columns:repeat(auto-fit,minmax(min(412px,100%),1fr))}}.contractor-issues{background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-direction:column;min-width:0;padding:0 10px;display:flex}.contractor-issues.done{background:var(--status-success-bg);border-color:var(--status-success)}.contractor-issues-add{border-radius:var(--radius-sm);border:1px dashed var(--color-border);color:var(--color-text-muted);text-align:center;cursor:pointer;margin-top:4px;padding:8px 14px;display:grid}.contractor-issues-add-item{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;text-align:left;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-top:4px;padding:6px 10px;display:grid}.contractor-issues-add-item select{width:100%;height:25px;font-size:var(--fs-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;background:0 0;padding-left:10px;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.contractor-issues-add-item select:hover{background:var(--color-bg);border-color:var(--color-text-muted)}.contractor-issues-add-item select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2c52821f}.contractor-issues-add-button{height:26px;font-size:var(--fs-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;padding:0 12px;font-family:inherit;font-weight:600;display:inline-flex}.contractor-issues-add-button:hover{background:var(--color-bg);border-color:var(--color-border-strong)}.contractor-issues-add:hover{background:var(--color-bg)}.contractor-issues-head{border-bottom:1px solid var(--color-border);grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;min-height:34px;margin-bottom:0;padding:6px 0;display:grid}.contractor-name{font-weight:700;font-size:var(--fs-md);color:var(--color-text);text-transform:uppercase;letter-spacing:.3px;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.contractor-form{flex-wrap:nowrap;flex-shrink:0;gap:6px;display:flex}.contractor-form-button{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fs-sm);cursor:pointer;color:var(--color-text);white-space:nowrap;flex-shrink:0;padding:3px 10px;font-family:inherit;font-weight:600}.contractor-form-button:hover{background:var(--color-bg)}.contractor-form-button.done{background:var(--status-success-bg);border-color:var(--status-success);color:var(--status-success)}.issue{text-align:left;border-bottom:1px solid var(--color-border);grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;gap:8px;min-height:26px;padding:2px 10px;display:grid}.issue:last-child{border-bottom:none}.issue-column{grid-template-columns:1fr 1fr;display:grid}.add-issue{text-align:center;color:var(--color-text-muted);border-radius:var(--radius-sm);padding:4px 10px}.add-issue:hover{cursor:pointer;background:var(--color-surface)}.issue-check{cursor:pointer;width:16px;height:16px}.issue-item{font-size:var(--fs-md);color:var(--color-text);overflow-wrap:anywhere;min-width:0;padding-left:2px;line-height:1.4}input.issue-item{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}input.issue-item:focus{border-color:var(--color-primary);border-radius:var(--radius-sm);background:var(--color-surface);outline:none;box-shadow:0 0 0 3px #2c52821f}.issue.done .issue-item{color:var(--color-text-muted)}.issue-edit,.issue-delete{font-size:var(--fs-sm);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);text-align:center;padding:2px}.issue-edit:hover,.issue-delete:hover{background:var(--color-border);color:var(--color-text)}input[type=checkbox]{cursor:pointer}.modal{z-index:1000;cursor:pointer;background:#000000d9;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.modal.active{display:flex}.modal img{border-radius:var(--radius);max-width:90%;max-height:90%;box-shadow:0 4px 20px #0000004d}.filter-block{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-direction:column;padding:0;display:flex}.filter-block_head{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;min-height:34px;padding:8px 12px;display:flex}.filter-block_title{font-size:var(--fs-base);text-transform:uppercase;letter-spacing:.4px;color:var(--color-text);white-space:nowrap;font-weight:700}.filter-block_head-controls{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.filter-block_head-controls .search{width:200px;max-width:100%}.filter-block_body{flex-direction:column;gap:6px;padding:8px 12px;display:flex}.filter-block_body:empty{display:none}.filter-block:not(:has(.filter-block_head)){gap:8px;padding:8px 12px}.filter-block_group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-btn{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:var(--fs-md);cursor:pointer;-webkit-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;max-width:100%;padding:5px 12px;font-family:inherit;font-weight:500;line-height:normal;transition:background .12s,border-color .12s,color .12s;display:flex}.filter-btn:hover{background:var(--color-border)}.filter-btn:active{transform:scale(.97)}select.filter-btn{background:var(--color-surface)}select.filter-btn:hover{background:var(--color-surface);border-color:var(--color-primary)}select.filter-btn:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2c52821f}select.filter-btn:active{transform:none}.filter-btn.active{background:var(--status-info-bg);border-color:var(--color-primary);color:var(--color-primary-dark)}.filter-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.filter-dot.red{background:var(--status-danger)}.filter-dot.orange{background:var(--status-warning)}.filter-dot.green{background:var(--status-success)}.filter-dot.dark-green{background:var(--status-teal)}.filter-dot.gray{background:var(--status-neutral)}.filter-dot.blue{background:var(--color-primary)}.filter-check{font-size:var(--fs-sm);color:var(--color-primary);font-weight:700}.filter-clear{color:var(--color-text-muted);background:0 0;border-color:#0000}.filter-clear:hover{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text)}.add-block{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);z-index:20;grid-template-columns:1fr 1fr 1fr 1fr auto auto;align-items:center;gap:10px;padding:10px;display:grid}.add-block>*{min-width:0}.add_block_input{border:1px solid var(--color-border);border-radius:var(--radius-sm);height:34px;font-size:var(--fs-md);background:var(--color-surface);color:var(--color-text);box-sizing:border-box;width:100%;padding:0 10px;font-family:inherit}.add_block_input input[type=text]:focus,.add_block_input input[type=date]:focus,.add_block_input select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2c52821f}.add_block_input[type=text]::placeholder{color:var(--color-text-muted)}.add_block_file{cursor:pointer;color:var(--color-text-muted);align-items:center;gap:6px;display:flex}.add_block_file:hover{border-color:var(--color-primary)}.add_block_file.has-file{color:var(--color-text);border-color:var(--color-primary)}.add_block_file span{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.add_block_ai_inline{background:var(--color-bg);font-size:var(--fs-xs);color:var(--color-text-muted);cursor:pointer;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:2px 7px;display:flex}.add_block_ai_inline:hover{color:var(--color-text)}.add_block_ai_inline input[type=checkbox]{cursor:pointer;margin:0}.add_block_file_clear{cursor:pointer;font-size:var(--fs-sm);color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;padding:2px 4px}.add_block_file_clear:hover{background:var(--status-danger-bg);color:var(--status-danger)}.add_block_file_input{display:none}.add-block .add-button{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);height:34px;font-size:var(--fs-md);cursor:pointer;color:var(--color-text-muted);box-sizing:border-box;white-space:nowrap;justify-content:center;align-items:center;padding:0 14px;font-family:inherit;font-weight:500;display:flex}.add-block .add-button:hover{background:var(--color-border)}.add-block .add-button.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.add-block .add-button.primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.add-block .add-button.cancel{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text-muted)}.add-block .add-button.cancel:hover{background:var(--status-danger-bg);border-color:var(--status-danger);color:var(--status-danger)}.app-footer{background:var(--color-header);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;margin-top:8px;padding:12px 24px;display:flex}.app-footer_author{align-items:baseline;gap:8px;display:flex}.app-footer_name{color:#fffc;font-weight:600;font-size:var(--fs-md)}.app-footer_role{color:#fff6;font-size:var(--fs-sm)}.app-footer_meta{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.app-footer_tg{color:#ffffffad;font-size:var(--fs-sm);align-items:center;gap:6px;text-decoration:none;display:inline-flex}.app-footer_tg:hover{color:#fff}.app-footer_tg svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.app-footer_copy{color:#ffffff59;font-size:var(--fs-xs);white-space:nowrap}.rs{min-width:220px}.rs__control{border-radius:var(--radius-sm)!important;border:1px solid var(--color-border)!important;background:var(--color-surface)!important;min-height:34px!important;box-shadow:none!important;font-family:inherit!important;font-size:var(--fs-md)!important;transition:border-color .12s,box-shadow .12s!important}.rs__control:hover{border-color:var(--color-border-strong)!important}.rs__control--is-focused{border-color:var(--color-primary)!important;box-shadow:0 0 0 3px #2c52821f!important}.rs__value-container{padding:2px 8px!important}.rs__indicator-separator{background-color:var(--color-border)!important}.rs__indicator{color:var(--color-text-muted)!important;padding:4px!important}.rs__indicator:hover{color:var(--color-text)!important}.rs__placeholder{color:var(--color-text-faint)!important}.rs__single-value,.rs__input-container{color:var(--color-text)!important}.rs__menu{border-radius:var(--radius-sm)!important;border:1px solid var(--color-border)!important;box-shadow:var(--shadow-md)!important;background:var(--color-surface)!important;z-index:40!important;font-size:var(--fs-md)!important;margin-top:2px!important}.rs__menu-list{padding:2px 0!important}.rs__option{color:var(--color-text)!important;cursor:pointer!important;padding:6px 12px!important}.rs__option--is-focused{background:var(--color-surface-alt)!important}.rs__option--is-selected{background:var(--status-info-bg)!important;color:var(--color-primary-dark)!important;font-weight:600!important}.rs__no-options-message,.rs__loading-message{color:var(--color-text-muted)!important;font-size:var(--fs-sm)!important;padding:8px 12px!important}.error-banner{z-index:1000;background:var(--status-danger-bg);border:1px solid var(--status-danger);border-radius:var(--radius);max-width:360px;box-shadow:var(--shadow-md);align-items:flex-start;gap:10px;padding:12px 14px;animation:.15s ease-out error-banner-in;display:flex;position:fixed;bottom:16px;right:16px}.error-banner_text{color:var(--status-danger);font-size:var(--fs-md);flex:1;line-height:145%}.error-banner_close{color:var(--status-danger);cursor:pointer;font-size:var(--fs-md);opacity:.7;background:0 0;border:none;flex-shrink:0;padding:2px;line-height:1}.error-banner_close:hover{opacity:1}@keyframes error-banner-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1023px){.root{flex-direction:column}.app-sidebar{z-index:40;flex-direction:row;flex:none;align-items:center;width:100%;height:auto;padding:0 6px;position:sticky;top:0;box-shadow:0 1px #0f1a2a59}.app-sidebar_brand{border-bottom:none;grid-template-columns:auto auto;padding:8px 10px}.app-sidebar_brand-sub{display:none}.app-sidebar_nav{flex-direction:row;gap:0;padding:6px 4px;overflow:auto hidden}.app-sidebar_section{display:none}.app-sidebar_link{border-bottom:2px solid #0000;border-left:none;grid-template-columns:auto auto;padding:6px 10px}.app-sidebar_link.is-active{border-bottom-color:var(--color-primary);background:0 0}.app-sidebar_footer{border-top:none;flex-direction:row;align-items:center;gap:10px;margin-left:auto;padding:6px 10px}.app-sidebar_user,.app-sidebar_tg,.app-sidebar_copy,.app-sidebar_scroll-top,.app-sidebar_toggle{display:none}.app-sidebar.is-collapsed{flex:none;width:100%}.app-topbar{gap:12px;padding:6px 12px}.app-topbar_meta{flex-wrap:wrap}.app-topbar_meta-cell{padding:2px 10px}}@media (width<=768px){.apart-issues-head{flex-wrap:wrap}.select-apart{order:1}.apart-name{flex-direction:column;flex:auto;order:2;align-items:flex-start;gap:4px;min-width:0}.apart-form{flex-wrap:wrap;order:3;width:100%}.contractor-issues-head{grid-template-columns:1fr;row-gap:4px}.contractor-name{white-space:normal;text-overflow:clip;overflow:visible}.issue{grid-template-columns:auto 1fr auto auto auto;gap:8px}.issue-edit,.issue-delete{justify-self:end}.contractor-issues-add-item{grid-template-columns:auto}.filter-block_head{padding:6px 10px}.filter-block_body{padding:8px 10px}.filter-block:not(:has(.filter-block_head)){gap:8px;padding:8px 10px}.filter-btn{font-size:var(--fs-sm);padding:5px 10px}.add-block{grid-template-columns:1fr;gap:8px}}@media (width<=480px){.add-block{gap:6px;padding:8px}.app-topbar_hint,.app-topbar_meta{display:none}.app-footer{padding:12px 16px}.app-footer_meta{gap:12px}}.scroll-to-top-btn{z-index:900;border:1px solid var(--color-border);background:var(--color-surface);width:40px;height:40px;color:var(--color-primary);font-size:var(--fs-lg);cursor:pointer;box-shadow:var(--shadow-md);border-radius:50%;justify-content:center;align-items:center;line-height:1;transition:background .15s,transform .15s;animation:.15s ease-out scroll-to-top-in;display:flex;position:fixed;bottom:16px;left:16px}.scroll-to-top-btn:hover{background:var(--color-bg);transform:translateY(-2px)}@keyframes scroll-to-top-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.scroll-to-top-btn{width:36px;height:36px;font-size:var(--fs-base);bottom:12px;left:12px}}@media (width>=1024px){.scroll-to-top-btn--mobile-only{display:none}}
