@font-face{font-family:system-local;src:local('Segoe UI')}*{box-sizing:border-box}html{font-size:16px;background:#f3f5f6}body{margin:0;color:#172c34;font-family:system-local,system-ui,-apple-system,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #d78125;outline-offset:3px}a{color:inherit}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #d5dde1;background:white;border-radius:10px;min-height:46px;padding:10px 16px;color:#18313c;font-weight:600}button:hover{background:#edf2f4}button.primary{background:#156b67;color:white;border-color:#156b67}button.primary:hover{background:#105854}button.danger{color:#a02d32;border-color:#ebc6c8}.icon-button{padding:10px;width:46px;flex-shrink:0}.text-button{border:0;background:none;padding:7px;min-height:44px}.muted{color:#63767f}.small{font-size:.875rem}.eyebrow{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#789198}.sidebar{background:#142d36;color:#d3dfe3;position:fixed;inset:0 auto 0 0;width:238px;padding:32px 22px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;color:white;font-size:1.22rem;font-weight:700;letter-spacing:-.03em}.brand-mark{width:40px;height:40px;background:#d8ee8a;color:#18343b;display:grid;place-items:center;border-radius:11px}.brand-mark svg{width:26px;height:26px}.sidebar .eyebrow{margin:45px 12px 13px}.nav{display:flex;flex-direction:column;gap:8px}.nav button{justify-content:flex-start;border:0;background:none;color:#adbec5;padding:13px 14px;font-weight:500}.nav button.active{background:#2a424b;color:#fff}.nav .count{margin-left:auto;color:#d8ee8a}.sidebar-bottom{margin-top:auto;padding:25px 10px 0;border-top:1px solid #36505a;color:#9eb4bd}.sidebar-bottom p{margin:8px 0 0;font-size:.875rem}.local-label{display:flex;gap:8px;align-items:center;color:#d3e6eb}.local-label svg{width:18px;height:18px}.workspace{margin-left:238px;max-width:1450px;padding:36px 46px 90px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:32px}.breadcrumb{font-size:.875rem;color:#6c7d84}.top-status{display:flex;align-items:center;gap:8px;font-size:.875rem;color:#5c716d}.top-status svg{width:17px;height:17px}.mobile-brand{display:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.page-heading h1{font-size:2rem;line-height:1.2;letter-spacing:-.04em;margin:0 0 8px}.page-heading p{margin:0;color:#61757e}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0}.stat{background:#fff;border:1px solid #dce3e6;border-radius:14px;padding:20px 24px;display:flex;justify-content:space-between;align-items:center}.stat strong{font-size:1.85rem;line-height:1.2;font-weight:650}.stat p{margin:5px 0 0;color:#637780;font-size:.875rem}.stat-icon{background:#edf4f3;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:#2d7770}.stat.attention .stat-icon{color:#a36d26;background:#fcf3e5}.toolbar{display:flex;gap:12px;margin:26px 0 18px}.search{flex:1;position:relative}.search svg{position:absolute;left:15px;top:13px;color:#71828b}.search input{padding-left:46px;width:100%}input,select,textarea{border:1px solid #cdd8dd;border-radius:9px;background:#fff;color:#172f3a;padding:11px 12px;min-height:46px;min-width:0;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #43938a;outline-offset:1px}textarea{resize:vertical;min-height:110px}.toolbar select{max-width:220px}.chips{display:flex;gap:8px;overflow:auto;padding-bottom:8px;margin-bottom:14px}.chip{font-size:.875rem;white-space:nowrap;border-radius:99px;min-height:40px;padding:8px 15px;font-weight:500}.chip.active{background:#193c44;color:#fff;border-color:#193c44}.list-head{display:flex;align-items:center;justify-content:space-between;color:#75868d;font-size:.875rem;margin:16px 2px}.equipment-list{display:flex;flex-direction:column;gap:10px}.equipment-card{display:flex;align-items:center;text-align:left;width:100%;padding:20px;background:#fff;border:1px solid #dce3e6;border-radius:13px;gap:18px;font-weight:400;min-width:0}.equipment-card:hover{border-color:#8eb3ae;background:#fcfefe}.category-icon{width:48px;height:48px;border-radius:12px;background:#eaf1f4;display:grid;place-items:center;flex-shrink:0;color:#426c7d}.category-icon.cooling{background:#eaf2fb;color:#477aac}.category-icon.ventilation{background:#eaf4f1;color:#498779}.category-icon.water{background:#e9f1f9;color:#5089af}.category-icon.household{background:#f1edf8;color:#8269a5}.card-info{flex:1;min-width:0}.card-info h3{font-size:1.03rem;margin:0 0 5px;overflow-wrap:anywhere}.card-info p{font-size:.875rem;color:#6a7d87;margin:0}.card-meta{display:flex;align-items:center;gap:22px}.tag{display:inline-flex;gap:6px;align-items:center;font-size:.8125rem;font-weight:500;padding:5px 10px;border-radius:6px;background:#edf3f1;color:#33796a;white-space:normal}.tag.attention{background:#fff1d8;color:#916020}.tag.broken{background:#fbeaec;color:#a63a48}.tag.retired{background:#edf0f2;color:#65757d}.empty{background:#fff;border:1px dashed #c6d4da;border-radius:16px;text-align:center;padding:55px 24px}.empty .empty-icon{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 20px;background:#edf4f3;border-radius:22px;color:#477c77}.empty-icon svg{width:34px;height:34px}.empty h2{font-size:1.25rem;margin:10px 0}.empty p{color:#6c7d85;max-width:430px;margin:0 auto 23px}.backup-banner{display:flex;align-items:center;gap:15px;border:1px solid #d9e3dd;border-radius:12px;background:#edf4ef;padding:18px 20px;margin-top:26px}.backup-banner p{margin:0;font-size:.875rem;color:#4d685b}.backup-banner div{flex:1}.backup-banner strong{display:block;margin-bottom:3px;font-size:.9375rem}.backup-banner button{background:transparent;border-color:#c2d5c9;font-size:.875rem}.panel{background:#fff;border:1px solid #dce3e6;border-radius:15px;padding:26px;margin:0 0 20px}.panel h2{font-size:1.125rem;margin:0 0 20px;display:flex;align-items:center;gap:10px}.panel h2 svg{color:#5e827e}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label,.field-label{display:block;font-size:.875rem;color:#526c76;font-weight:500}.form-grid label input,.form-grid label select,.form-grid label textarea{margin-top:7px}.span-2{grid-column:1/-1}.form-note{font-size:.875rem;margin:0 0 20px;color:#6b7e87}.form-actions{display:flex;justify-content:flex-end;gap:12px;position:sticky;bottom:12px;background:#f3f5f6ed;backdrop-filter:blur(8px);padding:14px 0;border-top:1px solid #d5dfe3;z-index:2}.field-row{display:grid;grid-template-columns:1.25fr 1fr 90px 46px;gap:10px;align-items:end;margin-bottom:14px}.field-row label{font-size:.8125rem;color:#6b7e85}.field-row input,.field-row select{margin-top:5px}.field-row .unit{font-size:.875rem}.field-editor{border-bottom:1px solid #e3e9eb;padding-bottom:12px;margin-bottom:15px}.field-editor .field-row{margin-bottom:8px}.field-type{display:flex;align-items:center;gap:8px;color:#75848a;font-size:.8125rem}.field-type select{width:auto;min-height:34px;padding:4px 9px;font-size:.8125rem}.back{margin:0 0 20px;padding-left:0;color:#58747b;font-weight:500}.detail-title{display:flex;align-items:center;gap:18px}.detail-title h1{margin-bottom:8px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.tabs{display:flex;border-bottom:1px solid #d4dee2;gap:25px;margin:27px 0 24px;overflow:auto}.tabs button{background:none;border:0;border-radius:0;border-bottom:3px solid transparent;color:#6a7e87;white-space:nowrap;padding:12px 3px}.tabs button.active{border-bottom-color:#17736b;color:#1c645e}.kv{display:grid;grid-template-columns:1fr 1fr;gap:22px}.kv dt{font-size:.875rem;color:#6d8088;margin-bottom:5px}.kv dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.kv div.full{grid-column:1/-1}.section-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.section-row h2{margin:0}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.attachment{border:1px solid #dce3e6;border-radius:12px;overflow:hidden}.attachment img{display:block;width:100%;height:175px;object-fit:cover;background:#eaf0f2}.attachment-body{padding:12px}.attachment-body p{font-size:.875rem;margin:0 0 7px;overflow-wrap:anywhere}.attachment-body .row{display:flex;align-items:center;justify-content:space-between;gap:7px}.attachment-body a{font-size:.875rem}.attachment-body button{width:36px;min-height:36px;padding:6px}.file-preview{height:120px;display:grid;place-items:center;background:#eef3f4;color:#648089}.file-preview svg{width:40px;height:40px}.upload-box{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:15px 0}.upload-box label{display:inline-flex;align-items:center;gap:9px;padding:11px 15px;border:1px dashed #8eaaa8;border-radius:9px;cursor:pointer;font-size:.875rem;color:#2e6d66;background:#f1f7f5}.upload-box label:focus-within{outline:3px solid #43938a}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.timeline-item{padding:20px 0;border-top:1px solid #e0e7ea}.timeline-item:first-child{border-top:0}.timeline-item h3{margin:5px 0;font-size:1rem}.timeline-item p{white-space:pre-wrap;margin:7px 0;overflow-wrap:anywhere}.event-head{display:flex;justify-content:space-between;align-items:center}.event-date{font-size:.875rem;color:#67818b}.notice{padding:15px 18px;border-radius:10px;background:#f4f6e9;color:#62692f;font-size:.875rem;margin:16px 0}.settings-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0;border-top:1px solid #e2e8eb}.settings-row p{margin:4px 0 0;color:#687b84;font-size:.875rem}.settings-row:first-of-type{border-top:0}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#183f3b;color:white;padding:14px 22px;border-radius:12px;box-shadow:0 8px 35px #102a352e;z-index:100;max-width:calc(100vw - 32px);width:max-content;font-size:.9375rem}.toast.error{background:#8d3038}dialog{border:0;border-radius:18px;padding:28px;max-width:550px;width:calc(100% - 32px);box-shadow:0 20px 100px #142d3655;color:#18323b;max-height:90dvh;overflow:auto}dialog::backdrop{background:#10262b77;backdrop-filter:blur(3px)}dialog h2{margin:0 0 13px;font-size:1.35rem}dialog p{color:#607780}dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}dialog label{display:block;margin:14px 0;font-size:.875rem}dialog input,dialog textarea{margin-top:6px}.loading{padding:50px;text-align:center}.mobile-nav{display:none}.empty-small{padding:25px 0;text-align:center;color:#758990}.error-screen{max-width:600px;margin:60px auto;padding:25px}.nowrap{white-space:nowrap}.progress{font-size:.875rem;color:#437b70;margin:10px 0}.subheading{margin:0 0 15px;color:#6b7e86;font-size:.875rem}
@media(min-width:1450px){.workspace{margin-right:auto}}
@media(max-width:1100px){.sidebar{width:208px;padding:28px 16px}.workspace{margin-left:208px;padding:30px}.card-meta{gap:12px}.gallery{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{display:none}.workspace{margin:0;padding:20px 18px 105px}.topbar{margin-bottom:28px}.breadcrumb{display:none}.mobile-brand{display:flex;font-size:1.06rem;gap:9px;align-items:center;font-weight:700}.mobile-brand .brand-mark{width:33px;height:33px;border-radius:9px}.mobile-brand svg{width:22px}.top-status{font-size:.75rem;gap:5px}.page-heading{align-items:flex-start;margin-bottom:22px;gap:10px}.page-heading h1{font-size:1.7rem}.page-heading p{font-size:.875rem}.page-heading>.primary{padding:11px 13px}.stats{gap:9px;margin:23px 0}.stat{padding:15px 12px;display:block;border-radius:12px}.stat strong{font-size:1.65rem}.stat p{font-size:.75rem;line-height:1.3;margin-top:7px}.stat-icon{display:none}.toolbar{flex-wrap:wrap;gap:9px;margin-top:20px}.search{flex-basis:100%}.toolbar select{max-width:none;flex:1;font-size:.875rem;width:calc(50% - 5px)}.chips{margin-right:-18px;padding-right:18px}.equipment-card{padding:15px 12px;gap:12px;align-items:flex-start}.category-icon{width:40px;height:40px;border-radius:10px}.card-info h3{font-size:.9375rem}.card-info p{font-size:.8125rem}.card-meta{flex-direction:column;align-items:flex-end;gap:8px;max-width:115px}.card-meta>svg{display:none}.tag{font-size:.75rem;padding:4px 7px}.list-head{font-size:.8125rem}.backup-banner{align-items:flex-start;flex-wrap:wrap;padding:16px;gap:10px}.backup-banner>svg{width:20px}.backup-banner div{flex-basis:80%}.backup-banner button{margin-left:30px}.empty{padding:35px 18px}.empty p{font-size:.9375rem}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #dce4e7;padding:5px 10px calc(5px + env(safe-area-inset-bottom));z-index:10;justify-content:space-around}.mobile-nav button{border:0;background:none;display:flex;flex-direction:column;gap:3px;font-size:.6875rem;padding:5px 20px;min-height:55px;font-weight:500;color:#75888f;border-radius:10px}.mobile-nav button.active{color:#176e63;background:#edf5f2}.panel{padding:20px 16px;border-radius:12px}.form-grid{grid-template-columns:1fr;gap:16px}.span-2{grid-column:auto}.form-actions{bottom:70px;gap:10px}.form-actions button{flex:1}.field-row{grid-template-columns:1fr 85px 40px;gap:8px}.field-row>label:first-child{grid-column:1/-1}.field-row .icon-button{width:40px}.detail-title{align-items:flex-start;gap:12px}.detail-title .category-icon{display:none}.detail-actions button{font-size:.875rem;padding:10px 13px}.tabs{gap:20px;margin-top:20px}.tabs button{font-size:.9375rem}.kv{gap:18px}.kv dt{font-size:.8125rem}.kv dd{font-size:.9375rem}.gallery{gap:10px}.attachment img{height:135px}.attachment-body{padding:9px}.section-row{flex-wrap:wrap}.section-row button{font-size:.875rem}.settings-row{align-items:flex-start;flex-direction:column;gap:13px}.settings-row button{width:100%}.toast{bottom:85px}.back{margin-bottom:12px}.top-status span{max-width:135px;text-align:right}.empty-small{font-size:.875rem}}
.component-editor{border:1px solid #d6e3e0;border-radius:12px;padding:20px;margin:0 0 22px;min-width:0;background:#fbfdfc}.component-editor legend{font-weight:600;font-size:.9375rem;padding:0 8px;color:#416963}.component-editor>.text-button{margin-top:14px}.component-detail{border-top:1px solid #dfe7e5;padding:18px 0}.component-detail h3{margin:0 0 15px;font-size:1.05rem}.component-note{white-space:pre-wrap;overflow-wrap:anywhere}.toolbar{flex-wrap:wrap}.toolbar .search{min-width:220px}.toolbar select{flex:1;min-width:145px}.update-banner{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:90;display:flex;align-items:center;gap:14px;background:#142d36;color:#fff;padding:12px 18px;border-radius:12px;box-shadow:0 5px 30px #142d3633;max-width:calc(100vw - 24px);font-size:.875rem}.update-banner button{white-space:nowrap;min-height:38px;padding:7px 12px}.update-banner[hidden]{display:none}
.detail-footer{border-top:1px solid #d5dfe3;padding-top:20px}.maintenance-toolbar,.maintenance-actions,.maintenance-tags{display:flex;gap:8px;flex-wrap:wrap}.maintenance-toolbar{margin-bottom:20px}.maintenance-toolbar button{min-width:0;max-width:100%}.maintenance-actions{margin-top:16px}.maintenance-actions button{font-size:.875rem}.maintenance-tags{margin:10px 0}.maintenance-history{margin-top:14px;font-size:.875rem;color:#526c76}.maintenance-history summary{cursor:pointer;padding:8px 0}.maintenance-history p{border-left:2px solid #d6e3e0;padding-left:12px}.maintenance-item h3{overflow-wrap:anywhere}.maintenance-item .event-head{flex-wrap:wrap;gap:6px}.maintenance-item .event-head>div{display:flex}.maintenance-item .event-date{flex:1;min-width:135px}
@media(max-width:760px){.mobile-nav button{flex:1;min-width:0;padding:5px 3px;font-size:.6875rem}.component-editor{padding:16px 12px}.toolbar select{min-width:130px}.update-banner{width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}.panel,.equipment-list{animation:appear .2s ease-out}@keyframes appear{from{opacity:.6;transform:translateY(4px)}to{opacity:1;transform:none}}}
.review-banner,.review-panel{border:1px solid #d9a845;background:#fff9eb}
.review-banner{margin-bottom:18px}
.review-banner button{display:block;width:100%;margin-top:8px;text-align:left;white-space:normal;overflow-wrap:anywhere}
.planned-task{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0;border-top:1px solid #e0e7ea}
.planned-task:first-of-type{border-top:0}.planned-task h3{margin:9px 0 4px}.planned-task p{margin:3px 0}
.planned-task.is-overdue{border-left:4px solid #c75b66;padding-left:14px}
.planned-task-actions,.planned-action-grid{display:flex;gap:8px;flex-wrap:wrap}.planned-task-actions{justify-content:flex-end}
.planned-task-actions button{font-size:.875rem}.planned-action-grid button{flex:1;min-width:135px}
.calendar-event-copy .calendar-task-comment{color:#294f4b;background:#edf6f3;border-radius:6px;padding:6px 8px;white-space:pre-wrap}
.backup-save-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:180px}.backup-save-actions .small{flex-basis:100%}
.sync-conflict{border-top:1px solid #dce3e6;padding:18px 0}.sync-conflict pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;background:#f3f5f6;padding:12px;border-radius:8px}.sync-conflict p{overflow-wrap:anywhere}#sync-login{max-width:440px}#sync-login label{display:block;margin-bottom:12px}.sync-status-button{font-size:.8rem;font-weight:400;text-align:right;max-width:320px}
@media(max-width:760px){.planned-task{align-items:flex-start;flex-direction:column}.planned-task-actions{width:100%}.planned-task-actions button{flex:1;padding:9px}.mobile-nav button{padding-inline:9px}}
