:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#f4f7fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}#root{min-height:100vh}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.assistant-chat{position:fixed;right:24px;bottom:24px;z-index:30}.assistant-chat-trigger{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 17px;border:0;border-radius:8px;background:#2563eb;color:#fff;font-weight:750;box-shadow:0 10px 28px #2563eb47}.assistant-chat-trigger span{display:grid;width:20px;height:20px;place-items:center;border:1px solid currentColor;border-radius:50%;font-size:.8rem}.form-subsection{display:grid;gap:10px;padding:14px;border:1px solid #dbe3ef;border-radius:8px;background:#f8fafc}.form-subsection h4{margin:0;color:#253654;font-size:.95rem}.form-subsection small{display:block;margin-top:5px;color:#687894;line-height:1.35}.assistant-chat-panel{width:min(410px,calc(100vw - 32px));margin-bottom:12px;overflow:hidden;border:1px solid #d7deea;border-radius:10px;background:#fff;box-shadow:0 20px 50px #0f172a38}.assistant-chat-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 18px 14px;border-bottom:1px solid #e6ebf2}.assistant-chat-kicker{display:block;color:#2563eb;font-size:.75rem;font-weight:800;text-transform:uppercase}.assistant-chat-panel h2{margin:3px 0 0;color:#17223b;font-size:1.05rem}.assistant-chat-close{width:32px;height:32px;padding:0;border:0;border-radius:6px;background:#f2f5fa;color:#51627f;font-size:1.5rem;line-height:1}.assistant-chat-messages{display:grid;gap:10px;max-height:min(46vh,390px);padding:16px 18px;overflow-y:auto;background:#fbfcfe}.assistant-chat-message{width:fit-content;max-width:92%;margin:0;padding:10px 12px;overflow-wrap:anywhere;border-radius:8px;font-size:.92rem;line-height:1.45;white-space:pre-wrap}.assistant-chat-message.is-user{justify-self:end;background:#2563eb;color:#fff}.assistant-chat-message.is-assistant{justify-self:start;background:#edf3ff;color:#263551}.assistant-chat-suggestions{display:grid;gap:7px;padding:0 18px 14px;background:#fbfcfe}.assistant-chat-suggestions button{padding:9px 10px;overflow-wrap:anywhere;border:1px solid #cbd8ee;border-radius:6px;background:#fff;color:#315889;text-align:left;font-size:.85rem}.assistant-chat-error,.assistant-chat-note{margin:0;padding:0 18px 12px;color:#6b7890;font-size:.8rem;line-height:1.4}.assistant-chat-error{color:#b42318;font-weight:650}.assistant-chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:14px 18px 8px;border-top:1px solid #e6ebf2}.assistant-chat-form textarea{min-width:0;resize:vertical}.assistant-chat-form .primary-action{align-self:end;min-height:42px}@media(max-width:680px){.assistant-chat{right:16px;bottom:16px}.assistant-chat-panel{width:min(100vw - 24px,410px)}.assistant-chat-form{grid-template-columns:1fr}.assistant-chat-form .primary-action{width:100%}}.app-shell{max-width:min(100%,1920px);margin:0 auto;padding:28px clamp(12px,2vw,28px);overflow-x:clip}.app-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.login-shell{display:grid;min-height:100vh;place-items:center;padding:24px}.login-panel{display:grid;width:min(100%,380px);gap:14px;padding:24px;border:1px solid #d7deea;border-radius:8px;background:#fff}.login-panel label{display:grid;gap:6px;color:#53627c;font-size:.9rem;font-weight:700}.login-panel input{width:100%;min-height:40px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;font:inherit}.login-panel input:focus{border-color:#2f6fed;outline:2px solid #dbe8ff}.header-actions{display:flex;align-items:center;gap:12px}.user-menu{display:flex;align-items:center;gap:8px;color:#53627c;font-size:.9rem}.eyebrow{margin:0 0 6px;color:#53627c;font-size:.84rem;font-weight:700;letter-spacing:0;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;color:#172033;font-size:2rem;line-height:1.15}h2{margin-bottom:0;color:#172033;font-size:1rem}.health-badge{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid #d7deea;border-radius:999px;background:#fff;color:#53627c;font-size:.9rem;white-space:nowrap}.health-badge.is-ok{border-color:#b8dcc8;color:#17663a}.health-badge.is-loading{color:#53627c}.health-badge.is-error{border-color:#e7b8b8;color:#a12f2f}.health-dot{width:9px;height:9px;border-radius:50%;background:currentColor}.workspace{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.full-width-workspace{grid-template-columns:minmax(0,1fr)}.status-stack{display:grid;gap:10px;margin-bottom:16px}.main-nav{position:sticky;top:0;z-index:20;display:flex;align-items:stretch;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:8px;border:1px solid #d7deea;border-radius:12px;background:#fffffff5;box-shadow:0 12px 28px #0f172a0d;overflow:visible}.main-nav-single{display:flex;align-items:center;flex:0 0 auto;min-height:42px;padding:0 14px;border:1px solid transparent;border-radius:9px;background:transparent;color:#53627c;font-weight:800;line-height:1.15;text-align:left;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}.main-nav-group{position:relative;display:block;flex:0 0 auto;min-width:max-content}.main-nav-group.is-current{z-index:21}.main-nav-group:hover,.main-nav-group:focus-within{z-index:31}.main-nav-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:42px;padding:0 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:#53627c;font-size:.88rem;font-weight:800;letter-spacing:0;text-transform:none}.main-nav-summary i{color:#2f6fed;font-style:normal}.main-nav-items{position:absolute;top:100%;left:0;z-index:30;display:grid;gap:6px;width:max-content;min-width:220px;max-width:min(340px,calc(100vw - 32px));padding:8px;border:1px solid #d7deea;border-radius:10px;background:#fff;box-shadow:0 18px 42px #0f172a29}.main-nav-group:nth-last-child(-n+3) .main-nav-items{right:0;left:auto}.main-nav-items button{min-height:36px;padding:0 12px;border:1px solid transparent;border-radius:9px;background:#f8fafc;color:#53627c;font-weight:700;line-height:1.15;transition:background .15s ease,color .15s ease,box-shadow .15s ease;white-space:normal;width:100%;text-align:left}.main-nav-single:hover,.main-nav-single:focus-visible,.main-nav-items button:hover,.main-nav-items button:focus-visible,.main-nav-summary:hover,.main-nav-summary:focus-visible{background:#eef4ff;color:#1d4fb8}.main-nav-single.is-active,.main-nav-items button.is-active{border-color:#2f6fed;background:#2f6fed;color:#fff;box-shadow:0 7px 18px #2f6fed47}.main-nav-group.is-current>.main-nav-summary{border-color:#2f6fed;background:#eef4ff;color:#1d4fb8}.panel{min-width:0;min-height:420px;overflow:visible;padding:16px;border:1px solid #d7deea;border-radius:8px;background:#fff}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid #edf1f7}.panel-header span{color:#64748b;font-size:.86rem;overflow-wrap:break-word;text-align:right}.panel-header h2,.panel-header h3{min-width:0;overflow-wrap:anywhere}.panel>label,.delivery-section>label{display:grid;gap:5px;min-width:0;color:#53627c;font-size:.84rem;font-weight:700}.panel>label input,.panel>label select,.panel>label textarea,.delivery-section>label input,.delivery-section>label select,.delivery-section>label textarea{width:100%;min-width:0;min-height:38px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;font:inherit}.secondary-action,.primary-action,.danger-action{width:100%;min-height:38px;border:1px solid #2f6fed;border-radius:8px;font-weight:700}.secondary-action{margin-bottom:12px;background:#fff;color:#2f6fed}.secondary-action.no-margin{margin-bottom:0}.secondary-action:hover,.secondary-action:focus-visible{background:#f3f7ff}.primary-action{background:#2f6fed;color:#fff}.danger-action{border-color:#dc2626;background:#fff1f1;color:#9f1d1d}.primary-action:hover,.primary-action:focus-visible{background:#245bc8}.danger-action:hover,.danger-action:focus-visible{background:#fee2e2}.secondary-action:disabled,.primary-action:disabled,.danger-action:disabled{cursor:wait;opacity:.72}.create-form{display:grid;gap:10px;margin-bottom:14px;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.create-form.no-margin{margin-bottom:0}.create-form label{display:grid;gap:5px;color:#53627c;font-size:.84rem;font-weight:700}.settings-section>label{display:grid;gap:5px;min-width:0;color:#53627c;font-size:.84rem;font-weight:700}.create-form input,.create-form select,.create-form textarea,.settings-section>label input,.settings-section>label select,.settings-section>label textarea{width:100%;min-height:38px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;font:inherit}.period-box select{width:100%;min-height:38px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;font:inherit}.create-form input:focus,.create-form select:focus,.create-form textarea:focus{border-color:#2f6fed;outline:2px solid #dbe8ff}.period-box select:focus{border-color:#2f6fed;outline:2px solid #dbe8ff}.period-box{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #edf1f7}.period-box label,.select-block{display:grid;gap:5px;color:#53627c;font-size:.84rem;font-weight:700}.select-block select{width:100%;min-height:38px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;font:inherit}.select-block select:focus{border-color:#2f6fed;outline:2px solid #dbe8ff}.house-summary{display:grid;gap:6px;padding:12px;border:1px solid #edf1f7;border-radius:8px;background:#f8fafc;color:#53627c;font-size:.88rem}.house-tree{display:grid;gap:10px}.house-tree-node{display:grid;gap:8px;min-width:0}.house-tree-house,.house-tree-unit{width:100%;min-width:0;border:1px solid #d7deea;border-radius:8px;background:#fff;color:#172033;text-align:left}.house-tree-house{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px}.house-tree-house:hover,.house-tree-house:focus-visible,.house-tree-node.is-selected>.house-tree-house,.house-tree-unit:hover,.house-tree-unit:focus-visible,.house-tree-unit.is-selected{border-color:#2f6fed;background:#f3f7ff}.house-tree-house span,.house-tree-unit span{min-width:0}.house-tree-house strong,.house-tree-house small,.house-tree-unit strong,.house-tree-unit span{display:block}.house-tree-house small,.house-tree-unit span{margin-top:3px;color:#64748b;font-size:.82rem;overflow-wrap:break-word}.house-tree-children{display:grid;gap:8px;margin-left:16px;padding-left:12px;border-left:2px solid #d7deea}.house-tree-unit-row{display:grid;gap:7px}.house-tree-unit-actions{padding-left:4px}.house-tree-unit{padding:10px 12px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px}.form-row label,.billing-control-panel>label{display:grid;gap:5px;color:#53627c;font-size:.84rem;font-weight:700}.form-row input,.form-row select{width:100%;min-height:38px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#172033;font:inherit}.list,.tenancy-list{display:grid;gap:10px}.list-item{display:grid;width:100%;gap:4px;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#fff;color:#172033;text-align:left}.list-item:hover,.list-item:focus-visible,.list-item.is-selected{border-color:#2f6fed;background:#f3f7ff}.list-item strong,.tenancy-card strong{font-size:.95rem}.list-item span{color:#64748b;font-size:.86rem}.plain-list-button{padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.plain-list-button:focus-visible{outline:2px solid #dbe8ff;outline-offset:2px}.field-hint{color:#64748b;font-size:.78rem;font-weight:500}.field-error{color:#a12f2f;font-size:.78rem;font-weight:600}.tenancy-card{padding:12px;border:1px solid #d7deea;border-radius:8px;background:#fff}.tenancy-card.is-locked{border-color:#b8dcc8;background:#f7fcf9}.locked-note{display:inline-block;margin-top:8px;color:#17663a;font-size:.82rem;font-weight:700}.tenancy-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 0}.tenancy-card div{min-width:0}.tenancy-card dt{color:#64748b;font-size:.78rem}.tenancy-card dd{margin:2px 0 0;color:#172033;font-size:.9rem}.compact-action{margin:12px 0 0}.result-action{margin-top:14px}.billing-results{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(14px,1.3vw,22px);margin-top:16px;width:100%}.billing-control-panel{grid-column:1 / -1;display:grid;gap:12px}.billing-picker-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(420px,1.1fr);gap:12px}.billing-picker-grid section{display:grid;align-content:start;gap:10px;min-width:0;padding:12px;border:1px solid #edf1f7;border-radius:8px;background:#f8fafc}.billing-picker-grid h3{margin:0;color:#172033;font-size:.95rem}.compact-list,.compact-tenancy-list{max-height:360px;overflow:auto}.billing-actions,.form-actions,.row-actions{display:flex;flex-wrap:wrap;gap:8px}.billing-actions>*,.form-actions>*,.row-actions>*{flex:0 0 auto}.form-actions .primary-action,.form-actions .secondary-action,.delivery-actions>.secondary-action,.delivery-form .secondary-action{width:auto;min-width:min(180px,100%);margin-bottom:0}.result-panel{grid-column:span 6;min-width:0;overflow:visible;padding:clamp(16px,1.6vw,22px);border:1px solid #d7deea;border-radius:8px;background:#fff}.billing-control-panel,.billing-settlement-panel{width:100%}.billing-settlement-panel,.contracts-panel,.finance-panel{grid-column:1 / -1}.hkv-reading-list{display:grid;gap:8px}.hkv-reading-row{display:grid;grid-template-columns:minmax(160px,1fr) repeat(auto-fit,minmax(130px,.7fr)) auto;align-items:center;gap:8px;padding:10px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.hkv-reading-row strong,.hkv-reading-row span{display:block}.hkv-reading-row span{color:#64748b;font-size:.82rem}.hkv-reading-row input{min-height:34px;min-width:0;padding:6px 8px;border:1px solid #cbd5e1;border-radius:8px;font:inherit}.calculation-summary,.period-result{display:grid;gap:14px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px}.summary-grid div,.final-result,.calculation-row{padding:12px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.summary-grid span,.final-result span,.calculation-row span{display:block;color:#64748b;font-size:.8rem}.summary-grid strong,.final-result strong,.calculation-row strong{display:block;margin-top:3px;color:#172033;font-size:1rem;overflow-wrap:anywhere}.final-result{display:flex;align-items:center;justify-content:space-between;gap:12px}.final-result strong{margin-top:0;font-size:1.2rem}.final-result.is-credit{border-color:#b8dcc8;background:#f0fbf5}.final-result.is-payment{border-color:#eed0a3;background:#fff8eb}.warnings-list{display:grid;gap:8px;padding:12px;border:1px solid #eed0a3;border-radius:8px;background:#fff8eb;color:#7b4a05}.warnings-list p{margin:0;font-size:.9rem}.calculation-list{display:grid;gap:10px}.cost-overview-list{display:grid;gap:8px}.cost-overview-embedded{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #edf1f7}.cost-overview-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(220px,1.5fr) minmax(120px,.7fr) minmax(140px,.7fr);gap:10px;align-items:center;padding:10px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.cost-overview-row span{min-width:0;color:#64748b;font-size:.86rem;overflow-wrap:break-word;word-break:normal}.cost-overview-row strong{min-width:0;overflow-wrap:break-word;word-break:normal}.cost-overview-row span:nth-child(3),.cost-overview-row strong:last-child{text-align:right;white-space:nowrap}.cost-overview-head{background:#fff;font-weight:700}.cost-overview-total{grid-template-columns:minmax(0,1fr) auto;border-color:#b8dcc8;background:#f0fbf5}.finance-panel,.finance-card,.finance-grid,.finance-table,.pie-chart-wrap,.pie-legend{display:grid;gap:12px;min-width:0}.finance-panel{grid-column:1 / -1}.finance-grid{align-items:stretch;grid-template-columns:minmax(440px,1.2fr) minmax(360px,.8fr)}.finance-card{align-content:start;overflow:visible;padding:clamp(14px,1.4vw,20px);border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.finance-row{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(140px,.55fr) minmax(150px,.65fr);gap:10px;align-items:center;padding:9px;border:1px solid #d7deea;border-radius:8px;background:#fff}.finance-row span{min-width:0;color:#64748b;font-size:.86rem;overflow-wrap:break-word;word-break:normal}.finance-row strong{min-width:0;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.finance-row span:nth-child(2),.finance-row span:nth-child(3){text-align:right;white-space:nowrap}.finance-head{font-weight:700}.finance-total{grid-template-columns:minmax(0,1fr) minmax(140px,auto);border-color:#b8dcc8;background:#f0fbf5}.pie-chart-wrap{align-items:center;justify-items:center;overflow:hidden}.pie-chart{width:min(100%,340px);max-width:100%;height:auto}.pie-background{fill:none;stroke:#e2e8f0;stroke-width:8}.pie-segment{fill:none;stroke-width:8;transform:rotate(-90deg);transform-origin:50% 50%}.pie-empty-text{fill:#64748b;font-size:.35rem;text-anchor:middle}.pie-legend{justify-items:start;width:100%;overflow:hidden}.pie-legend span{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;color:#334155;font-size:.86rem;overflow-wrap:break-word;word-break:normal;max-width:100%}.pie-legend span{min-width:0}.pie-legend i{width:10px;height:10px;flex:0 0 auto;border-radius:999px}@media(max-width:1180px){.finance-grid{grid-template-columns:1fr}}.calculation-row,.settlement-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.settlements-section,.unit-reading-panel{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid #edf1f7}.meter-reading-group{display:grid;gap:10px}.meter-reading-card{display:grid;gap:10px;margin:0;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#fff}.meter-reading-card legend{padding:0 4px;color:#172033;font-weight:700}.meter-consumption{color:#17663a}.meter-consumption.is-invalid{color:#a12f2f}.compact-header{margin-bottom:0}.settlement-list,.attachment-list{display:grid;gap:10px;min-width:0}.attachment-card{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.attachment-card span{display:block;min-width:0;color:#64748b;font-size:.82rem;overflow-wrap:anywhere;word-break:normal}.receipt-section{display:grid;gap:8px;min-width:0;padding-top:10px;border-top:1px solid #d7deea}.receipt-header{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;flex-wrap:wrap}.receipt-header h3{margin:0;color:#172033;font-size:.92rem}.receipt-header span{color:#64748b;font-weight:700}.file-action{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 10px;border:1px solid #2f6fed;border-radius:8px;background:#fff;color:#2f6fed;font-size:.9rem;font-weight:700}.file-action input{display:none}.invoice-first-workflow,.draft-invoice-card{display:grid;gap:10px}.drop-upload{display:grid!important;gap:5px;justify-items:center;min-width:0;padding:18px;border:2px dashed #9db7ef;border-radius:8px;background:#f3f7ff;color:#1d4fb8;text-align:center;cursor:pointer}.drop-upload:hover,.drop-upload:focus-within{border-color:#2f6fed;background:#eef4ff}.drop-upload small{color:#64748b}.drop-upload input{display:none}.draft-invoice-card{min-width:0;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#fff}.attachment-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:12px;min-width:0;padding:10px;border:1px solid #d7deea;border-radius:8px;background:#fff}.attachment-row span{min-width:0;overflow-wrap:anywhere;word-break:normal}.attachment-main,.attachment-actions,.invoice-fields{display:grid;gap:8px;min-width:0}.attachment-actions{display:flex;flex-wrap:wrap;justify-items:start}.invoice-fields{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.invoice-fields label{min-width:0;color:#334155;font-size:.82rem;font-weight:700}.invoice-fields input{width:100%;min-width:0;margin-top:4px;padding:7px 8px;border:1px solid #cbd5e1;border-radius:8px;font:inherit}.confidence{display:block;margin-top:3px;color:#64748b;font-size:.72rem;font-weight:600}.confidence-high{color:#17663a}.confidence-medium{color:#7b4a05}.confidence-low{color:#a12f2f}.extraction-status{width:fit-content;padding:3px 8px;border-radius:999px;color:#334155;background:#e2e8f0;font-size:.78rem}.extraction-parsed{color:#17663a;background:#dcfce7}.extraction-pending{color:#7b4a05;background:#fef3c7}.extraction-failed{color:#a12f2f;background:#fee2e2}.settlement-row{width:100%;min-width:0;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));align-items:center;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc;cursor:pointer}.settlement-row:hover,.settlement-row:focus-within,.settlement-row.is-selected{border-color:#2f6fed;background:#f3f7ff}.settlement-row div{min-width:0;overflow-wrap:break-word;word-break:normal}.settlement-row span:not(.status-pill){display:block;color:#64748b;font-size:.78rem}.settlement-row strong{display:block;margin-top:3px;color:#172033;font-size:.88rem;overflow-wrap:break-word;word-break:normal;white-space:normal}.status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:0 8px;border-radius:999px;font-size:.78rem;font-weight:700;white-space:nowrap}.status-draft{background:#edf1f7;color:#53627c}.status-finalized{border:1px solid #d99933;background:#fff3d8;color:#6f4200}.status-sent{border:1px solid #7fc79d;background:#e6f8ee;color:#17663a}.status-pending{border:1px solid #b8c2d6;background:#f1f5f9;color:#475569}.status-failed{border:1px solid #e7b8b8;background:#fff5f5;color:#a12f2f}.status-pill.is-locked{width:fit-content;border:1px solid #d99933;background:#fff3d8;color:#6f4200}.mini-action{width:auto;min-height:30px;margin:0;padding:0 10px;white-space:nowrap}.settlement-detail{display:grid;gap:12px;margin-top:4px;min-width:0;padding:clamp(14px,1.4vw,20px);border:1px solid #d7deea;border-radius:8px;background:#fff}.delivery-section{display:grid;gap:10px;min-width:0;padding-top:12px;border-top:1px solid #edf1f7}.delivery-section h3{margin:0;font-size:1rem}.delivery-actions,.delivery-form{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.delivery-form{flex:1 1 520px}.delivery-form input,.delivery-form textarea{flex:1 1 150px;min-width:min(220px,100%);min-height:36px;padding:0 10px;border:1px solid #d7deea;border-radius:8px;font:inherit}.delivery-form textarea{flex-basis:100%;padding-top:8px;resize:vertical}.delivery-list{display:grid;gap:8px}.delivery-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));align-items:center;gap:10px;padding:10px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.delivery-row div{min-width:0;overflow-wrap:break-word;word-break:normal}.delivery-row span:not(.status-pill){display:block;color:#64748b;font-size:.78rem}.delivery-row strong{display:block;margin-top:3px;color:#172033;font-size:.88rem;overflow-wrap:break-word;word-break:normal;white-space:normal}.delivery-row p{grid-column:1 / -1;margin:0;color:#a12f2f;font-size:.88rem}.delivery-row-actions{display:flex;flex-wrap:wrap;gap:6px}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:10px}.detail-grid div{min-width:0;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.detail-grid strong{overflow-wrap:break-word;word-break:normal}.detail-grid span{display:block;color:#64748b;font-size:.78rem}.detail-grid strong{display:block;margin-top:3px;overflow-wrap:anywhere;color:#172033;font-size:.95rem}.empty-state,.loading-state,.error-state,.success-state{margin:0;padding:12px;border-radius:8px;font-size:.92rem}.empty-state,.loading-state{background:#f8fafc;color:#64748b}.error-state{border:1px solid #e7b8b8;background:#fff5f5;color:#a12f2f}.success-state{border:1px solid #b8dcc8;background:#f0fbf5;color:#17663a}.contracts-panel{grid-column:1 / -1;width:100%}.contract-section,.settings-panel{display:grid;gap:12px}.settings-panel{grid-column:span 2;align-content:start}.settings-shell-panel{grid-column:1 / -1;min-height:0;padding:0;overflow:hidden}.settings-shell-panel>.panel-header{margin:0;padding:16px}.settings-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);align-items:stretch;min-height:min(760px,calc(100vh - 190px));border-top:1px solid #edf1f7;background:#fff}.settings-sidebar{display:grid;align-content:start;gap:6px;min-width:0;padding:14px;border-right:1px solid #d7deea;border-radius:0;background:#f8fafc}.settings-sidebar-title{padding:4px 12px 8px;color:#64748b;font-size:.76rem;font-weight:800;letter-spacing:0;text-transform:uppercase}.settings-sidebar button{min-height:42px;padding:0 12px;border:1px solid transparent;border-radius:8px;background:transparent;color:#53627c;font-weight:700;text-align:left}.settings-sidebar button:hover,.settings-sidebar button:focus-visible{background:#eef4ff;color:#1d4fb8}.settings-sidebar button.is-active{border-color:#2f6fed;background:#eef4ff;color:#1d4fb8;box-shadow:inset 3px 0 #2f6fed}.settings-content,.settings-detail-form{display:grid;gap:16px;min-width:0}.settings-content{align-content:start;width:100%;padding:clamp(16px,2vw,24px)}.settings-detail-form{margin:0}.settings-save-actions{padding-top:4px}.settings-test-panel{grid-column:span 2}.settings-section{display:grid;gap:12px;min-width:0;width:100%;padding:clamp(16px,1.8vw,22px);border:1px solid #d7deea;border-radius:8px;background:#fff}.settings-section h3{margin:0;color:#172033;font-size:.95rem}.settings-section .form-row{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.radio-card-grid,.settings-status-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:10px}.radio-card{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.radio-card.is-selected{border-color:#2f6fed;background:#eef4ff}.radio-card input{width:auto;min-height:auto;margin-top:3px}.radio-card small,.settings-status-grid span{display:block;margin-top:4px;color:#64748b;font-size:.82rem;line-height:1.35}.settings-status-grid div{min-width:0;padding:10px;border:1px solid #edf1f7;border-radius:8px;background:#f8fafc}.settings-status-grid strong{display:block;min-width:0;overflow-wrap:break-word}.connection-status,.address-status{width:fit-content;max-width:100%;padding:8px 10px;border-radius:8px;font-size:.88rem;font-weight:700}.document-preview{display:grid;gap:8px;min-width:0;padding:14px;border:1px solid #d7deea;border-radius:8px;background:#fff;color:#172033}.document-preview h3,.document-preview p{margin:0;overflow-wrap:break-word}.no-margin{margin:0}.address-status{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;margin:0;line-height:1.35}.address-status span{display:inline-grid;flex:0 0 auto;width:20px;height:20px;place-items:center;border-radius:999px;font-size:.82rem;font-weight:900}.address-status strong,.address-status em,.address-status small{min-width:0;overflow-wrap:break-word}.address-status em,.address-status small{grid-column:2;display:block;font-style:normal;font-weight:600}.address-status small{font-size:.8rem;font-weight:700;opacity:.9}.connection-status.is-confirmed,.address-status.is-confirmed{border:1px solid #b8dcc8;background:#f0fbf5;color:#17663a}.address-status.is-confirmed span{background:#17663a;color:#fff}.connection-status.is-warning{border:1px solid #eed0a3;background:#fff8eb;color:#7b4a05}.address-status.is-warning{border:1px solid #ef9a9a;background:#fff1f1;color:#9f1d1d}.address-status.is-warning span{background:#dc2626;color:#fff}.address-status.is-checking{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4fb8}.address-status.is-checking span{background:#2f6fed;color:#fff}.contract-section{min-width:0;padding:clamp(14px,1.4vw,20px);border:1px solid #d7deea;border-radius:8px;background:#fff}.contract-section h3,.contract-section p{margin:0}.contract-section p{color:#64748b;font-size:.88rem;line-height:1.4;overflow-wrap:break-word;word-break:normal}.contract-type-grid,.contract-selection-grid,.contract-context-grid{display:grid;gap:10px}.contract-type-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}.contract-selection-grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}.contract-context-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.contract-type-card{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc}.contract-type-card.is-selected{border-color:#2f6fed;background:#eef4ff}.contract-type-card input{width:auto;min-height:auto;margin-top:3px}.contract-type-card small,.contract-context-grid span{display:block;margin-top:4px;color:#64748b;font-size:.82rem;line-height:1.35}.contract-context-grid div{min-width:0;padding:10px;border:1px solid #edf1f7;border-radius:8px;background:#f8fafc}.clause-picker{display:grid;gap:10px}.clause-group{display:grid;gap:8px;min-width:0;padding:12px;border:1px solid #d7deea;border-radius:8px;background:#fff}.clause-group h4{margin:0;color:#172033;font-size:.92rem}.checkbox-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px;border:1px solid #d7deea;border-radius:8px;background:#f8fafc;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.checkbox-row span,.checkbox-row strong{min-width:0;overflow-wrap:break-word;word-break:normal}.checkbox-row input{width:20px;height:20px;margin-top:3px}.checkbox-row:hover{border-color:#9db7ef;background:#f3f7ff}.checkbox-row.is-selected{border-color:#2f6fed;background:#eef4ff;box-shadow:inset 3px 0 #2f6fed}.checkbox-row em{align-self:start;padding:3px 8px;border-radius:999px;background:#2f6fed;color:#fff;font-size:.72rem;font-style:normal;font-weight:800;white-space:nowrap}.checkbox-row small{display:block;margin-top:4px;color:#64748b;line-height:1.35;overflow-wrap:break-word;word-break:normal}.contract-preview{display:grid;gap:8px}.contract-document{width:min(100%,840px);min-height:820px;margin:0 auto;padding:clamp(24px,4vw,44px);border:1px solid #d7deea;border-radius:4px;background:#fff;box-shadow:0 18px 45px #0f172a1f;color:#172033}.contract-document h1{margin:0 0 28px;font-size:1.6rem;text-align:center}.contract-document h2{margin:22px 0 8px;font-size:1.05rem}.contract-document p{margin:0 0 7px;line-height:1.55;overflow-wrap:break-word;word-break:normal}.contract-space{height:12px}.signature-line{margin-top:34px!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap}.checkbox-inline,.create-form label.checkbox-inline,.panel label.checkbox-inline,.delivery-section label.checkbox-inline{display:flex;align-items:center;gap:8px}.checkbox-inline input{width:auto;min-height:auto;padding:0}.create-form .checkbox-inline input,.panel .checkbox-inline input,.delivery-section .checkbox-inline input{width:auto;min-width:0;min-height:auto;padding:0}.inline-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.mini-input{max-width:220px;min-width:160px}@media(max-width:880px){.app-header,.header-actions,.user-menu{align-items:flex-start;flex-direction:column}.workspace,.billing-results{grid-template-columns:1fr}.result-panel,.settings-panel,.settings-shell-panel,.settings-test-panel{grid-column:1 / -1}.settings-layout{grid-template-columns:1fr;min-height:0}.settings-sidebar{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding:10px;border-right:0;border-bottom:1px solid #d7deea}.settings-sidebar-title{display:none}.settings-sidebar button{flex:0 0 auto;white-space:nowrap}.billing-picker-grid,.cost-overview-row,.finance-grid,.finance-row,.attachment-row,.invoice-fields,.hkv-reading-row,.contract-type-grid,.contract-selection-grid,.contract-context-grid{grid-template-columns:1fr}.cost-overview-row span:nth-child(3),.cost-overview-row strong:last-child,.finance-row span:nth-child(2),.finance-row span:nth-child(3){text-align:left;white-space:normal}.attachment-actions{justify-items:stretch}.settlement-row{grid-template-columns:1fr}.checkbox-row{grid-template-columns:auto minmax(0,1fr)}.checkbox-row em{grid-column:2;width:fit-content}.main-nav{position:static;align-items:stretch;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;padding:8px}.main-nav-group,.main-nav-single{min-width:max-content}.main-nav-items{position:static;width:100%;min-width:0;max-width:none;margin-top:6px;box-shadow:none}.main-nav-group:nth-last-child(-n+3) .main-nav-items{right:auto;left:auto}.detail-grid{grid-template-columns:1fr}.panel{min-height:0}.form-row{grid-template-columns:1fr}}.app-shell{display:grid;grid-template-columns:minmax(228px,260px) minmax(0,1fr);align-items:stretch;width:100%;max-width:none;min-height:100vh;margin:0;padding:0;background:#f4f7fb}.app-sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:22px;height:100vh;padding:22px 14px 16px;border-right:1px solid #d7deea;background:#fff;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 6px}.sidebar-brand-mark{display:grid;width:34px;height:34px;place-items:center;border-radius:9px;background:#2f6fed;color:#fff;font-size:1rem;font-weight:900}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand strong{color:#172033;font-size:.96rem}.sidebar-brand div>span{margin-top:2px;color:#64748b;font-size:.74rem}.app-sidebar .main-nav{position:static;display:grid;align-content:start;gap:4px;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}.app-sidebar .main-nav-single,.app-sidebar .main-nav-summary{min-height:40px;padding:0 12px;border-radius:8px;font-size:.86rem}.app-sidebar .main-nav-group{min-width:0}.app-sidebar .main-nav-summary{color:#475569}.app-sidebar .main-nav-items{position:static;width:auto;min-width:0;max-width:none;margin:3px 0 5px 8px;padding:2px 0 2px 8px;border:0;border-left:1px solid #d7deea;border-radius:0;box-shadow:none;background:transparent}.app-sidebar .main-nav-items button{min-height:35px;padding:0 10px;background:transparent;font-size:.82rem}.app-sidebar .main-nav-single.is-active,.app-sidebar .main-nav-items button.is-active{border-color:#2f6fed;background:#2f6fed;color:#fff;box-shadow:none}.app-sidebar .main-nav-group.is-current>.main-nav-summary{border-color:transparent;background:transparent;color:#1d4fb8}.sidebar-footer{display:grid;gap:12px;margin-top:auto;padding:12px 6px 0;border-top:1px solid #edf1f7}.sidebar-footer .health-badge{width:fit-content;min-height:30px;padding:0 9px;font-size:.76rem}.sidebar-user{display:grid;gap:3px;color:#64748b;font-size:.76rem}.sidebar-user-email{color:#334155;font-weight:700;overflow-wrap:anywhere}.sidebar-user .mini-action{justify-self:start;margin-top:5px}.app-main{min-width:0;padding:24px clamp(18px,3vw,52px) 44px}.workspace-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;min-width:0;margin:0 0 22px}.workspace-heading{min-width:0}.workspace-heading h1{margin:0;font-size:clamp(1.5rem,2vw,2rem)}.context-trail{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.context-trail span{min-width:0;padding:4px 8px;border:1px solid #d7deea;border-radius:999px;background:#fff;color:#64748b;font-size:.75rem;font-weight:700;overflow-wrap:anywhere}.quick-actions{position:relative;flex:0 0 auto}.quick-actions-trigger{width:auto;min-width:144px;padding:0 14px}.quick-actions-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:40;display:grid;gap:5px;width:218px;padding:8px;border:1px solid #d7deea;border-radius:10px;background:#fff;box-shadow:0 18px 42px #0f172a29}.quick-actions-menu button{min-height:36px;padding:0 10px;border:1px solid transparent;border-radius:8px;background:#f8fafc;color:#334155;font-weight:700;text-align:left}.quick-actions-menu button:hover,.quick-actions-menu button:focus-visible{background:#eef4ff;color:#1d4fb8}.quick-actions-menu button:disabled{cursor:not-allowed;opacity:.5}.app-page-content,.app-page-content>.workspace,.app-page-content>.billing-results{min-width:0;width:100%}.workspace{grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:clamp(14px,1.5vw,22px)}.workspace:has(.house-tree)>.panel:first-child{grid-column:span 2}.workspace:has(.house-tree)>.panel:nth-child(2){grid-column:span 2}.panel{min-height:0;padding:clamp(16px,1.5vw,22px)}.billing-results{margin-top:0}.billing-control-panel,.result-panel,.finance-panel,.contracts-panel{border-radius:10px}.billing-results>.billing-control-panel{grid-column:1 / -1}.billing-calculation-panel{grid-column:span 6}.finance-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.finance-row{grid-template-columns:minmax(220px,1.35fr) minmax(120px,.6fr) minmax(140px,.7fr)}.finance-row span:first-child,.pie-legend span,.cost-overview-row span,.cost-overview-row strong,.settlement-row,.delivery-row,.attachment-main,.contract-section{overflow-wrap:anywhere}.finance-card{overflow:hidden}.pie-legend span{grid-template-columns:auto minmax(0,1fr);align-items:start}.contract-document{width:min(100%,900px)}.shelly-direct-setup,.shelly-discovery-result{display:grid;gap:12px;min-width:0}.archive-scope-toggle,.archive-upload-form{margin:18px 0}.document-archive-list{display:grid;gap:10px;margin-top:18px}.document-archive-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid #d7deea;border-radius:8px;background:#fff}.document-archive-row>div:first-child{display:grid;gap:4px;min-width:0}.document-archive-row span,.document-archive-row small{color:#61718d;overflow-wrap:anywhere}@media(max-width:760px){.document-archive-row{align-items:stretch;flex-direction:column}}.shelly-direct-setup{margin-bottom:16px;padding:clamp(14px,1.4vw,20px);border:1px solid #bfdbfe;border-radius:10px;background:#f6f9ff}.shelly-direct-setup h3,.shelly-direct-setup p{margin:0}.shelly-direct-setup h3{color:#1d4fb8;font-size:1rem}.shelly-direct-setup p,.shelly-discovery-result span{color:#53627c;font-size:.88rem;line-height:1.45;overflow-wrap:anywhere}.shelly-discovery-result{padding:12px;border:1px solid #b8dcc8;border-radius:8px;background:#f0fbf5}@media(max-width:1080px){.app-shell{grid-template-columns:minmax(206px,224px) minmax(0,1fr)}.app-main{padding-right:22px;padding-left:22px}.workspace:has(.house-tree)>.panel:first-child,.workspace:has(.house-tree)>.panel:nth-child(2){grid-column:1 / -1}.billing-calculation-panel{grid-column:1 / -1}}@media(max-width:760px){.app-shell{display:block}.app-sidebar{position:static;height:auto;gap:12px;padding:12px;border-right:0;border-bottom:1px solid #d7deea}.sidebar-brand,.sidebar-footer{display:none}.app-sidebar .main-nav{display:flex;align-items:flex-start;overflow-x:auto;padding-bottom:3px}.app-sidebar .main-nav-single,.app-sidebar .main-nav-group{flex:0 0 auto}.app-sidebar .main-nav-items{position:absolute;top:calc(100% + 4px);left:0;width:max-content;min-width:190px;margin:0;padding:7px;border:1px solid #d7deea;border-radius:9px;background:#fff;box-shadow:0 12px 28px #0f172a29}.app-main{padding:18px 12px 32px}.workspace-header{align-items:stretch;flex-direction:column;gap:14px}.quick-actions,.quick-actions-trigger{width:100%}.quick-actions-menu{right:auto;left:0;width:100%}.workspace{grid-template-columns:1fr}.workspace:has(.house-tree)>.panel:first-child,.workspace:has(.house-tree)>.panel:nth-child(2){grid-column:1}.finance-grid,.billing-picker-grid,.finance-row,.cost-overview-row{grid-template-columns:1fr}.finance-row span:nth-child(2),.finance-row span:nth-child(3),.cost-overview-row span:nth-child(3),.cost-overview-row strong:last-child{text-align:left;white-space:normal}}.deadline-hint{margin:6px 0;color:#64748b;font-size:.85rem}.deadline-hint.is-warning{padding:8px 10px;border:1px solid #eed0a3;border-radius:8px;background:#fff8eb;color:#7b4a05}.reconciliation-table{width:100%;border-collapse:collapse;font-size:.85rem}.reconciliation-table caption{margin-bottom:6px;color:#64748b;text-align:left}.reconciliation-table th,.reconciliation-table td{padding:4px 6px;border-bottom:1px solid #d7deea;text-align:right}.reconciliation-table th:first-child,.reconciliation-table td:first-child{text-align:left}.reconciliation-table tr.is-warning td{background:#fff8eb}.organization-switcher{display:grid;gap:4px;color:#64748b;font-size:.76rem;font-weight:700}.organization-switcher select{min-width:180px}
