:root{font-family:'Segoe UI','Malgun Gothic',sans-serif;color:#28352f;background:#fafbf9;font-synthesis:none;--ink:#28352f;--muted:#748179;--line:#e5ebe6;--green:#346653;--soft:#edf4ef;--white:#fff;--warn:#865c23;--red:#a63737}*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.6}button,input,select,textarea{font:inherit}button,a,summary{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #6d9f86;outline-offset:3px}[hidden]{display:none!important}#topbar{height:76px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;padding:0 40px;gap:40px}.brand{font-size:23px;font-weight:750;letter-spacing:2px;color:var(--ink);display:flex;align-items:center;gap:10px}.brand:hover{text-decoration:none}.brand span{font-size:10px;letter-spacing:1px;font-weight:500;padding:2px 5px;border:1px solid var(--line);border-radius:4px;color:var(--muted)}nav{display:flex;gap:27px;align-items:center}nav a{color:var(--muted);padding:24px 0}nav a.active{color:var(--green);box-shadow:0 2px var(--green)}#session-info{margin-left:auto;display:flex;align-items:center;gap:13px;font-size:12px}#app{max-width:1420px;margin:auto;padding:44px 40px 60px;min-height:calc(100vh - 132px)}h1{font-size:27px;line-height:1.4;letter-spacing:-.9px;font-weight:600;margin:0 0 8px}h2{font-size:17px;font-weight:600;margin:0 0 14px}h3{font-size:14px;margin:0 0 12px}p{margin:0 0 12px}.muted,small{color:var(--muted)}small{font-size:12px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px}.heading p{margin:0;font-size:13px;color:var(--muted)}.button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 13px;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:7px}.button:hover{background:var(--soft);text-decoration:none}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.primary:hover{background:#28513f}.button.danger{color:var(--red)}.button.small{font-size:12px;padding:5px 9px}.text-button{background:none;border:0;padding:3px 0;font-size:12px;color:var(--muted)}.text-button:hover{color:var(--green)}.tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.tools input{width:260px;max-width:100%}.tools select{width:125px}.tools .spacer{flex:1}.table-wrap{width:100%;overflow-x:auto;border-top:1px solid var(--line)}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{color:var(--muted);font-weight:500;padding:13px 11px;background:#f2f5f2;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:20px 11px;border-bottom:1px solid var(--line);vertical-align:middle}td small{display:block}.projects-table{min-width:1100px}.projects-table th:nth-child(3){min-width:175px}.project-link{font-size:14px;font-weight:600;color:var(--ink);display:block}.project-link:hover{color:var(--green)}.numeric{text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}.nowrap{white-space:nowrap}.badge{display:inline-block;background:var(--soft);color:var(--green);padding:3px 9px;border-radius:5px;font-size:11px;white-space:nowrap}.badge.before{background:#f8f0df;color:#88672d}.badge.closed{background:#f8dedd;color:#873c3a}.subtle-note{margin:15px 0 0;font-size:12px;color:var(--muted)}input,select,textarea{border:1px solid #dce4dd;border-radius:6px;background:#fff;padding:9px 11px;color:var(--ink);width:100%;min-width:0}textarea{resize:vertical;min-height:90px}input:disabled,select:disabled{background:#f2f4f1;color:#738077}label{display:block;font-size:12px;color:var(--muted)}label input,label select,label textarea{margin-top:5px}label.check{display:flex;align-items:center;gap:8px;color:var(--ink);padding:4px 0}label.check input{width:auto;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;gap:9px;justify-content:flex-end;align-items:center;margin-top:25px}.form-actions .danger{margin-right:auto}.error{color:var(--red);background:#fff0ed;border-radius:6px;padding:10px 12px;font-size:13px;margin-top:16px}.empty{padding:32px 15px;color:var(--muted);text-align:center}.login{max-width:500px;margin:50px auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:34px}.login .button{width:100%;margin-top:18px}.login p{font-size:13px;color:var(--muted)}.test-label{font-size:11px;letter-spacing:1px;color:var(--green);margin-bottom:12px}.detail{max-width:1020px;margin:auto}.back{display:inline-block;font-size:12px;color:var(--muted);margin-bottom:24px}.project-facts{display:flex;gap:14px 28px;flex-wrap:wrap;padding-bottom:23px;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.project-facts strong{font-weight:500;color:var(--ink);margin-left:7px}.project-intro{padding:22px 0;color:var(--muted);font-size:13px;white-space:pre-wrap}.group{border:1px solid var(--line);border-radius:9px;background:#fff;margin:13px 0;overflow:hidden}.group summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:21px 23px;gap:20px;cursor:pointer;font-weight:500}.group summary::-webkit-details-marker{display:none}.group summary .summary-right{display:flex;align-items:center;gap:16px;font-size:12px;color:var(--muted);font-weight:400}.group summary .chevron{display:inline-block}.group[open] summary .chevron{transform:rotate(180deg)}.group-content{padding:0 23px 23px}.inline-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:12px 0 17px}.totals{display:flex;gap:20px 35px;flex-wrap:wrap;margin-bottom:22px}.totals small{display:block;font-size:11px}.totals strong{font-size:19px;font-weight:500;font-variant-numeric:tabular-nums}.section-gap{margin-top:25px}.line-item{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.line-item small{display:block}.file-list{margin:14px 0}.memo{padding:15px 0;border-top:1px solid var(--line)}.memo p{white-space:pre-wrap;margin:6px 0;font-size:13px}.memo small{font-size:11px}.api-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:15px 0}.admin-section{padding:24px 0;border-top:1px solid var(--line)}.admin-section .heading{margin-bottom:18px}.user-table{min-width:760px}.user-table select{min-width:100px;padding:6px 8px}.user-table td{padding:15px 10px}.admin-banner{background:var(--soft);color:#436352;padding:17px 20px;border-radius:8px;font-size:13px;margin-bottom:30px}.admin-banner p{margin:0}.audit-body{white-space:pre-wrap;font-size:11px;max-height:260px;overflow:auto;background:#f5f7f4;padding:12px}.app-footer{font-size:11px;color:var(--muted);padding:15px 25px;text-align:center;border-top:1px solid var(--line)}dialog{width:min(680px,calc(100% - 28px));max-height:90vh;overflow:auto;border:1px solid var(--line);border-radius:13px;padding:28px;color:var(--ink);box-shadow:0 24px 90px #172b2520}dialog::backdrop{background:#192c2455}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.dialog-heading h2{margin:0}.dialog-close{font-size:23px;background:none;border:0;color:var(--muted);padding:0 5px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);background:#284c3c;color:#fff;border-radius:8px;padding:12px 20px;font-size:13px;box-shadow:0 8px 30px #223e2422;z-index:100}.loading{padding:50px;text-align:center;color:var(--muted)}.members{display:grid;grid-template-columns:1fr 1fr;gap:5px 15px}.contract-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:10px 0}.contract-grid small{display:block}.contract-grid p{margin:0;white-space:pre-wrap}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:850px){#topbar{padding:0 22px;gap:25px}#app{padding:32px 22px 40px}.heading{align-items:flex-start}.project-facts{gap:12px 20px}.group summary{padding:18px}.group-content{padding:0 18px 20px}#session-info .role-name{display:none}}
@media(max-width:540px){#topbar{padding:0 16px;gap:20px;height:auto;min-height:70px;flex-wrap:wrap}.brand{font-size:20px}nav{gap:16px}nav a{padding:20px 0;font-size:13px}#session-info{gap:8px}.person-name{display:none}#app{padding:28px 16px 35px}h1{font-size:24px}.heading{gap:12px}.heading .button{font-size:12px;padding:7px 10px}.tools input{width:100%}.tools select{flex:1}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:1}.totals{gap:15px 24px}.totals strong{font-size:17px}.group summary{padding:17px 15px}.group-content{padding:0 15px 18px}.summary-right{max-width:60%;text-align:right}.contract-grid{grid-template-columns:1fr}.login{padding:25px;margin:25px auto}.members{grid-template-columns:1fr}.inline-actions{gap:7px}.line-item{align-items:flex-start}.form-actions{flex-wrap:wrap}dialog{padding:22px}.api-note{align-items:flex-start}.tools .spacer{display:none}}

.grant-form{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.grant-form label:first-child{flex:1;min-width:260px}.grant-form .error{flex-basis:100%}.projects-table{min-width:1480px}.login label{margin-bottom:16px}

/* 0.3: readable layouts without a horizontal dashboard scrollbar. */
:root{--muted:#586d64;--line:#d5e0da;background:#eff3f1;color:#243c31}
#app{max-width:1800px;padding:32px 28px 48px}#topbar{border-top:5px solid #285a45;height:80px}h1,h2,h3{font-weight:700}h1{color:#234e3b}.heading{margin-bottom:22px}.numeric,input[data-money]{text-align:left;font-variant-numeric:tabular-nums}
.projects-table{min-width:0;table-layout:fixed;background:#fff}.projects-table th,.projects-table td{padding:15px 7px;white-space:normal;overflow-wrap:anywhere}.projects-table th{background:#285a45;color:#fff;font-weight:600;font-size:12px}.projects-table th:nth-child(3){min-width:0;width:15%}.projects-table th:nth-child(1){width:7%}.projects-table th:nth-child(2){width:8%}.projects-table th:nth-child(4),.projects-table th:nth-child(5){width:7%}.projects-table th:nth-child(6),.projects-table th:nth-child(7){width:8%}.projects-table th:nth-child(8){width:6%}.projects-table th:nth-child(9),.projects-table th:nth-child(10),.projects-table th:nth-child(11){width:9%}.projects-table th:nth-child(12){width:7%}.projects-table .project-link{font-size:13px}.projects-table .badge{white-space:normal;padding:3px 6px}.projects-table tbody tr:nth-child(even){background:#f5f8f6}.projects-table tbody tr:hover{background:#eaf3ed}
.admin-section{background:#fff;border:1px solid var(--line);padding:22px;border-radius:10px;margin-bottom:20px}.admin-section .heading h2{margin:0}.text-button{color:#456454}.danger{color:#a63737}.group summary{background:#e8f0eb}.group-content{padding-top:20px}.detail{max-width:1240px}.totals>div{border-left:3px solid #3c7d5c;padding-left:13px}
.login-options{display:flex;gap:14px;flex-wrap:wrap;margin-top:18px}.login-options label{margin:0;font-size:12px}.login{border-top:5px solid #346653;box-shadow:0 10px 40px #234b3510}.login-options input{accent-color:#346653}
dialog{width:min(720px,calc(100% - 32px));padding:24px;background:#f4f7f5;border:1px solid #98b3a3}.project-editor{width:min(1120px,calc(100% - 40px));max-height:94vh}.dialog-heading{padding-bottom:15px;border-bottom:3px solid #346653}.dialog-heading h2{font-size:21px;color:#264e3b}.form-section{background:#fff;padding:18px;border:1px solid #d8e4dc;border-radius:8px;margin-bottom:15px}.form-section h3{color:#285a45;border-left:4px solid #4d8466;padding-left:10px;font-size:14px}.project-editor .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}.form-grid label{color:#3c5548;font-size:12px}.form-actions{position:sticky;bottom:-24px;background:#f4f7f5;padding:16px 0;margin:0;border-top:1px solid var(--line)}.form-section textarea{min-height:68px}.plan-grid{display:grid;grid-template-columns:70px 150px minmax(100px,1fr) 180px 40px;gap:12px;align-items:center}.plan-head{font-size:12px;color:#456454;background:#edf3ef;padding:8px 0}.plan-row{padding:9px 0;border-bottom:1px solid var(--line)}.plan-row label{font-size:0}.plan-row input{font-size:13px;margin:0}.plan-row input[readonly]{background:#f0f3f1}.directory-results{max-height:300px;overflow-y:auto;margin:14px 0;border:1px solid var(--line);background:#fff;border-radius:6px}.directory-person{display:flex;align-items:center;padding:11px;gap:12px;border-bottom:1px solid var(--line);cursor:pointer}.directory-person input{width:auto;flex:none}.directory-person small{display:block}.directory-person:has(input:checked){background:#e1eee6}.directory-person strong{color:#284c39}.admin-section .text-button{margin-right:10px}
@media(max-width:1000px){#app{padding:24px 16px}.project-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-grid{grid-template-columns:55px 130px minmax(90px,1fr) 135px 34px;gap:8px}}
@media(max-width:800px){.projects-table thead{display:none}.projects-table,.projects-table tbody{display:block;width:100%}.projects-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px;gap:12px;border-bottom:2px solid #b9d1c2}.projects-table td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}.projects-table td:before{content:attr(data-label);display:block;color:#597163;font-size:11px;margin-bottom:3px}.projects-table td:nth-child(3){font-weight:bold}.projects-table .empty{grid-column:1/-1}.plan-head{display:none}.plan-row{grid-template-columns:65px 1fr 1fr}.plan-row label{font-size:11px}.plan-row label:nth-child(3){grid-column:2/4}.plan-row label:nth-child(4){grid-column:2/3}.project-editor{width:calc(100% - 20px);padding:16px}.form-section{padding:12px}}
@media(max-width:520px){.projects-table tr{grid-template-columns:repeat(2,minmax(0,1fr))}.project-editor .form-grid{grid-template-columns:1fr}.plan-row{grid-template-columns:55px 1fr}.plan-row label:nth-child(3),.plan-row label:nth-child(4){grid-column:2/3}.plan-row .remove-plan{grid-column:1}.admin-section{padding:14px}}

/* Contract revisions, document labels and memo cards */
.login-id{display:flex;align-items:center;border:1px solid #cedbd5;border-radius:7px;overflow:hidden;background:#edf3ef}.login-id input{border:0;min-width:0;margin:0!important}.login-id span{padding:12px;white-space:nowrap;font-weight:600;color:#335c4a}
.version-box{margin:16px 0 22px;padding:14px 18px;background:#e4eee8;border:1px solid #b7cfc0;border-left:4px solid #386d51;border-radius:9px;max-width:640px;margin-left:auto}.version-box label{min-width:130px}.version-box small{display:block;margin-top:8px;color:#435c4e}
.contract-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px!important;margin-bottom:20px}.contract-grid>div{background:#f3f6f4;border:1px solid #d8e3dc;border-radius:9px;padding:17px 18px}.contract-grid small{font-size:13px;font-weight:600;color:#527060}.contract-grid p{font-size:17px!important;font-weight:600;color:#213d2d;margin:10px 0 0!important}.contract-grid>div:last-child{background:#dcece2;border-color:#a9cbb6}.contract-grid>div:last-child p{font-size:23px!important}.group>summary{font-weight:700;font-size:16px}.group-content{padding:24px!important}
.document-row{gap:14px;align-items:flex-start!important}.doc-category{flex:none;background:#e5eee9;border:1px solid #bdd2c4;color:#254f37;padding:6px 10px;border-radius:5px;font-size:12px;font-weight:700}.document-info{flex:1;min-width:0;overflow-wrap:anywhere}.document-memo{white-space:pre-wrap;background:#fff7d6;border-radius:5px;padding:9px 12px;margin:8px 0 0;color:#514b37}.document-row .inline-actions{margin:0}
.memo-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:22px}.sticky-note{background:#fff6cd!important;border:1px solid #ecdfa2!important;border-top:5px solid #e7d58d!important;box-shadow:1px 4px 8px #283d2712;padding:18px!important;border-radius:3px!important;margin:0!important;min-height:150px;overflow-wrap:anywhere}.sticky-note strong{display:block;margin-top:12px}.sticky-note p{white-space:pre-wrap;line-height:1.7;font-size:15px}.sticky-note small{font-size:11px}.progress-badge{display:inline-block;color:#1e362a;padding:5px 10px;border-radius:4px;font-size:12px;font-weight:700}.changed{background:#fff3cf}.scope-list{display:flex;flex-wrap:wrap;gap:8px;max-width:230px}.scope-list .check{margin:0}.scope-list small{width:100%}.user-table{min-width:1050px}.version-note{background:#fff4d7;padding:12px 16px;border-left:3px solid #c0983d;margin-bottom:16px;color:#675125}.contract-grid .contract-period{grid-column:span 2}
@media(max-width:900px){.contract-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.version-box{max-width:none}.document-row{flex-wrap:wrap}.memo-board{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}
@media(max-width:520px){.contract-grid{grid-template-columns:1fr}.contract-grid .contract-period{grid-column:auto}.version-box .inline-actions{flex-wrap:wrap}}

.portal-brand{display:flex;align-items:center;gap:14px;text-decoration:none}.portal-brand img{width:88px;height:auto}.portal-brand .portal-wordmark{border:0!important;border-left:1px solid #d4dfd9!important;border-radius:0!important;padding:0 0 0 14px!important;display:block;color:#294d3b!important}.portal-wordmark strong{display:block;font-size:11px;letter-spacing:1.25px}.portal-wordmark small{display:block;font-size:10px;letter-spacing:3px;margin-top:4px}.portal-wordmark i{font-style:normal;font-size:8px;letter-spacing:1px;color:#dd1760;margin-left:7px}@media(max-width:620px){.portal-brand img{width:68px}.portal-wordmark strong{font-size:9px;letter-spacing:.5px}.portal-wordmark small{font-size:8px}.portal-brand{gap:8px}}

.expand-project{border:1px solid #c2d3c8;border-radius:4px;background:#eef5f0;color:#315a43;font-weight:700;margin-right:5px;width:23px;height:23px;cursor:pointer;padding:0}.project-preview>td{padding:12px!important;background:#eaf1ed!important}.invoice-preview{border:1px solid #c9d9cf;border-radius:8px;background:#fff;overflow:hidden}.preview-head,.preview-row{display:grid;grid-template-columns:.9fr 1.2fr 1fr 1.1fr;gap:14px;padding:13px 18px;white-space:normal}.preview-head{background:#dbe9e0;font-weight:700;font-size:12px}.preview-row{border-top:1px solid #e1e9e4;font-size:13px}.preview-row small{display:block;margin-top:6px}.invoice-preview>p{padding:12px 18px}@media(max-width:800px){.projects-table .project-preview{display:block!important}.projects-table .project-preview>td{display:block!important}.project-preview td:before{display:none!important}.preview-head{display:none}.preview-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.preview-row>div{overflow-wrap:anywhere}}

@media(min-width:901px){.contract-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.contract-grid .contract-period{grid-column:auto}.contract-grid>div:last-child{grid-column:span 2}}

/* Compact contract revision tabs */
.version-control{display:flex;flex-direction:column;align-items:flex-end;gap:7px;margin:0;max-width:none}.version-tabs{display:flex;gap:8px;align-items:center}.version-tab,.older-version select{border:1px solid #b7c9be;background:#fff;color:#385b48;border-radius:6px;padding:7px 16px;font-family:inherit;font-size:13px;font-weight:600;min-width:67px;cursor:pointer;margin:0;box-shadow:0 1px 2px #27473409}.version-tab.selected,.older-version select.selected{background:#35644e;color:#fff;border-color:#35644e}.version-tab:hover{border-color:#35644e}.older-version{margin:0}.older-version select{min-width:106px;padding:7px 10px}.version-meta{font-size:11px;color:#758478;text-align:right;line-height:1.6}.version-meta .text-button{font-size:11px;padding:0 3px}.amend-button{margin-right:18px;background:#fff;border-color:#81a38e;color:#284c38;font-weight:600;white-space:nowrap}.amend-editor{width:min(860px,94vw)}.amend-editor .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.amend-intro{padding:12px 14px;background:#edf4ef;color:#47644f;border-radius:7px}.amend-documents{margin-bottom:18px}.amend-documents .check{padding:7px 0;align-items:center;overflow-wrap:anywhere}.amend-documents .doc-category{margin:0 7px}
@media(max-width:1000px){.version-control{max-width:100%;margin:12px 0 18px;align-items:flex-start}.version-meta{text-align:left}.amend-button{margin-right:8px}}@media(max-width:620px){.amend-editor .form-grid{grid-template-columns:1fr}.version-tab{padding:7px 12px}.group .summary-right{gap:7px}.amend-button{padding:6px 8px}}

/* Align project facts and version controls in an explicit shared row. */
.project-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:32px;row-gap:10px;padding:4px 0 18px;border-bottom:1px solid var(--line)}.project-summary .project-facts{padding:0;border:0;gap:10px 28px;align-items:center;min-height:38px}.project-summary .version-control{display:contents}.project-summary .version-tabs{grid-column:2;grid-row:1;justify-content:flex-end;align-self:center}.project-summary .version-meta{grid-column:1/-1;grid-row:2;margin:0;text-align:right;overflow-wrap:anywhere}.project-summary .version-tab,.project-summary .older-version select{height:38px;line-height:20px}.project-summary .version-tabs{flex-wrap:wrap}
@media(max-width:1100px){.project-summary{grid-template-columns:minmax(0,1fr);row-gap:14px}.project-summary .version-tabs{grid-column:1;grid-row:2;justify-content:flex-start}.project-summary .version-meta{grid-row:3;text-align:left}}

.group:not([open]) .amend-button{display:none}

.contract-actions{display:inline-flex;align-items:center;gap:8px}.contract-actions .amend-button{margin:0}.group:not([open]) .contract-actions{display:none}

/* Read-only detail mirrors the project editor fields. */
.contract-info-section{margin-bottom:22px}.contract-info-section h3{border-left:4px solid #4d8466;padding-left:10px;margin:0 0 12px;color:#285a45;font-size:14px}.contract-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.contract-info-cell{min-width:0;background:#f3f6f4;border:1px solid #d8e3dc;border-radius:8px;padding:13px 16px}.contract-info-cell dt{font-size:12px;color:#527060;margin:0 0 7px}.contract-info-cell dd{font-size:15px;font-weight:600;color:#213d2d;margin:0;overflow-wrap:anywhere}.contract-info-cell .badge{font-size:12px}.contract-info-amount{grid-column:span 2;background:#dcece2;border-color:#a9cbb6}.contract-info-amount dd{font-size:21px;font-variant-numeric:tabular-nums}.contract-info-note{white-space:pre-wrap;background:#f3f6f4;border:1px solid #d8e3dc;border-radius:8px;padding:14px 16px}.contract-info-section:last-child{margin-bottom:0}@media(max-width:700px){.contract-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-info-amount{grid-column:1/-1}}@media(max-width:440px){.contract-info-grid{grid-template-columns:1fr}.contract-info-amount{grid-column:auto}}

.memo-compose{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:start}.memo-compose label{color:#3c5548}.memo-compose textarea{min-height:100px}@media(max-width:620px){.memo-compose{grid-template-columns:1fr}.memo-compose>label:first-child{max-width:180px}}

/* Compact sticky notes with quiet bottom-right actions. */
.memo-board{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:14px;align-items:stretch}.sticky-note{display:flex;flex-direction:column;padding:11px 12px!important;min-height:0;border-top-width:3px!important;box-shadow:0 2px 4px #283d270c;border-radius:5px!important}.memo-card-top:empty{display:none}.memo-card-top .progress-badge{padding:2px 7px;font-size:10px;line-height:1.6;margin-bottom:6px}.memo-byline{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.sticky-note .memo-byline strong{display:inline;margin:0;font-size:12px;line-height:1.5}.sticky-note .memo-byline small{font-size:10px;white-space:nowrap;color:#77745e}.sticky-note p{font-size:13px;line-height:1.55;margin:7px 0 8px}.sticky-note .inline-actions{margin:0;padding-top:4px;gap:5px;justify-content:flex-end;margin-top:auto}.sticky-note .text-button{font-size:10px;line-height:1.5;padding:2px 7px;border:1px solid #d4ccb080;border-radius:4px;background:#ffffff38;color:#77745e}.sticky-note .text-button:hover{background:#ffffffa0;border-color:#b4ab88;color:#354b3e}.memo-compose textarea{min-height:72px}

.document-memo{padding:8px 11px}.document-memo>p{margin:0;white-space:pre-wrap;font-size:12px;line-height:1.6}.document-memo-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:5px;white-space:normal}.document-memo-footer small{font-size:10px;color:#85806b}.memo-delete-button{font-size:10px;padding:1px 6px;border:1px solid #d4ccb080;border-radius:4px;background:#ffffff38;color:#77745e}.memo-delete-button:hover{background:#fff8;border-color:#b4ab88}

.memo-compose{grid-template-columns:140px minmax(0,1fr) auto;align-items:start;gap:12px}.memo-compose .memo-submit{margin-top:24px;padding:8px 12px;min-height:38px}.memo-compose textarea{min-height:72px}@media(max-width:620px){.memo-compose{grid-template-columns:110px minmax(0,1fr)}.memo-compose .memo-compose-body{grid-column:1/-1;grid-row:2}.memo-compose .memo-submit{grid-column:2;grid-row:1;justify-self:end}.memo-compose>label:first-child{max-width:none}}

/* Monetary values align to the right edge; preserve thousands separators. */
.numeric,input[data-money],.contract-info-amount dd,.totals strong{ text-align:left;font-variant-numeric:tabular-nums }.totals strong{display:block}

.plan-grid{grid-template-columns:60px 150px minmax(100px,1fr) 180px 90px}.plan-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.plan-actions .button{font-size:11px;padding:3px 7px}.plan-editing{background:#f5faf7}.plan-row input[data-money]{text-align:right}@media(max-width:1000px){.plan-grid{grid-template-columns:50px 130px minmax(80px,1fr) 135px 85px;gap:8px}}@media(max-width:800px){.plan-row{grid-template-columns:55px 1fr 1fr}.plan-actions{grid-column:3}}@media(max-width:520px){.plan-row{grid-template-columns:50px 1fr}.plan-actions{grid-column:2}}

.default-access{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.default-access+.subtle-note{margin:8px 0 16px}

.finance-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.finance-box{min-width:0;padding:15px 16px;border:1px solid #cbdcd2;border-radius:8px;background:#f4f8f5}.finance-box.collection-box{background:#f2f6f8;border-color:#d1dce2}.finance-box h3{font-size:13px;color:#345b46;margin:0 0 13px;display:flex;align-items:center;justify-content:space-between;gap:8px}.finance-box h3 small{font-size:10px;font-weight:400}.finance-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.finance-values>div{min-width:0;border-left:1px solid #d7e3dc;padding-left:10px}.finance-values>div:first-child{border:0;padding-left:0}.finance-values small{display:block;font-size:11px;margin-bottom:7px}.finance-values strong{display:block;font-size:clamp(12px,1.2vw,18px);font-weight:650;text-align:left;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.finance-values strong span{font-size:10px;font-weight:400;white-space:nowrap}@media(max-width:850px){.finance-summary{gap:10px}.finance-box{padding:11px}.finance-values{gap:6px}.finance-values>div{padding-left:5px}.finance-values small{font-size:10px}.finance-box h3{flex-wrap:wrap}}

.preview-row>div:last-child{text-align:left;font-variant-numeric:tabular-nums}

.group summary>span:first-child{display:flex;align-items:center;gap:10px}.group summary>span:first-child .badge{font-weight:500}

.scope-dropdown{min-width:150px;font-size:12px}.scope-dropdown summary{list-style:none;border:1px solid #cedbd5;background:#fff;border-radius:6px;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer}.scope-dropdown summary::-webkit-details-marker{display:none}.scope-dropdown .scope-list{display:flex;flex-direction:column;gap:5px;padding:10px;background:#f5f8f6;border:1px solid #d7e3db;border-radius:6px;margin-top:5px}.scope-summary{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.projects-table th:nth-child(1){width:7%}.projects-table th:nth-child(2){width:6%}.projects-table th:nth-child(3){width:8%}.projects-table th:nth-child(4){width:15%}.projects-table th:nth-child(5){width:7%}.projects-table th:nth-child(6){width:7%}.projects-table th:nth-child(7),.projects-table th:nth-child(8){width:8%}

.audit-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:16px;font-size:12px}.audit-pagination>span{margin-right:8px;color:#64786b}

.badge.planned{background:#e7effa;color:#3c628b}.badge.issued{background:#dceee3;color:#2f694b}.badge.paid{background:#eae5f7;color:#64508c}

.badge.amount-mismatch{background:#f9dfdf;color:#a63737;border:1px solid #edb9b9}.plans-only .form-section:not(.invoice-plan-section){display:none}.plans-only #delete-project{display:none}

.invoice-table{table-layout:fixed;font-size:11px}.invoice-table th,.invoice-table td{padding:12px 6px;overflow-wrap:anywhere}.invoice-table th:nth-child(1){width:11%}.invoice-table th:nth-child(2){width:8%}.invoice-table th:nth-child(3){width:10%}.invoice-table th:nth-child(4),.invoice-table th:nth-child(5),.invoice-table th:nth-child(6){width:9%}.invoice-table th:nth-child(7){width:13%}.invoice-table th:nth-child(8){width:10%}.invoice-table th:nth-child(9){width:5%}.invoice-table th:nth-child(10){width:16%}.invoice-table .nowrap{white-space:normal}.invoice-table small{font-size:10px}.group[data-group="billing"],.group[data-group="billing"] .table-wrap{overflow:visible}.comment-chips{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.comment-popover{position:relative}.group .comment-popover summary{display:inline-block;padding:2px 6px;border:1px solid #c8d8ce;border-radius:5px;background:#f3f7f4;font-size:10px;line-height:1.7;white-space:nowrap;color:#385d48;cursor:pointer}.comment-bubble{position:absolute;right:0;top:calc(100% + 8px);width:290px;max-width:70vw;background:#fff;border:1px solid #bfd3c7;border-radius:9px;padding:13px;box-shadow:0 5px 20px #203d3026;z-index:20;text-align:left}.comment-bubble:before{content:'';position:absolute;right:16px;top:-6px;width:10px;height:10px;transform:rotate(45deg);background:#fff;border-top:1px solid #bfd3c7;border-left:1px solid #bfd3c7}.comment-byline{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.comment-byline small{font-size:10px}.comment-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;margin:8px 0}.comment-actions{display:flex;justify-content:flex-end;gap:5px}.comment-add{border:1px solid #d6e2da;border-radius:5px;background:#fff;font-size:11px;padding:2px 5px;color:#557260}

.notice-message{white-space:pre-line}

/* Shared actions and lifecycle layout */
[hidden]{display:none!important}#topbar{position:sticky;top:0;z-index:30;background:#fff}.text-button,.comment-add,.expand-project{border:1px solid #cbdcd2;border-radius:5px;background:#fff;padding:4px 9px;display:inline-flex;align-items:center;justify-content:center}.button.danger,.text-button.danger,.sticky-note .danger{background:#fff0f0;border:1px solid #e6aaaa;color:#a53030}.button.danger:hover,.text-button.danger:hover{background:#f9dede}.form-section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.form-section-heading h3{margin:0}.form-section-heading label{display:flex;align-items:center;gap:12px;min-width:200px}.form-section-heading select{min-width:160px}.member-chips,.member-results{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.member-chip{display:inline-flex;align-items:center;gap:8px;background:#eaf2ec;border:1px solid #ccdcd1;border-radius:5px;padding:5px 8px;font-size:12px}.remove-member{visibility:hidden;padding:0 5px!important}.member-chip:hover .remove-member,.member-chip:focus-within .remove-member{visibility:visible}.contract-detail-row{display:grid;grid-template-columns:1fr 2fr 1fr 2fr auto;gap:8px;align-items:end;margin-bottom:10px}.contract-split-card{display:grid;grid-template-rows:1fr 1fr;gap:5px}.contract-split-card .contract-info-cell{padding:6px 12px;display:flex;align-items:center;justify-content:space-between}.contract-split-card dt,.contract-split-card dd{margin:0}.plan-grid{grid-template-columns:50px 145px minmax(90px,1fr) 160px 185px}.plan-actions select{padding:5px;width:68px}.document-info .comment-chips{margin-top:8px}.group[data-group="records"],.group[data-group="contract"]{overflow:visible}.document-info .comment-bubble{left:0;right:auto}.projects-table th{width:auto!important}.projects-table th:nth-child(5){width:14%!important}.upload-preview{max-height:50vh;overflow:auto}.upload-warning{background:#fff0f0;color:#983434;border:1px solid #e6aaaa;border-radius:6px;padding:12px}.contract-entry-actions{margin-bottom:16px}@media(hover:none){.remove-member{visibility:visible}}@media(max-width:800px){.contract-detail-row{grid-template-columns:1fr 1fr}.plan-row{grid-template-columns:50px 1fr 1fr}.plan-actions{grid-column:1/-1}.form-section-heading{flex-wrap:wrap}}

/* Invoice plans: direct editing and a drag handle; one form save. */
.plan-grid{grid-template-columns:96px 150px minmax(100px,1fr) 180px 60px}.plan-order{display:flex;align-items:center;gap:6px;min-width:0}.plan-order label{min-width:0;flex:1}.plan-order input{padding:9px 6px;text-align:center}.plan-drag{cursor:grab;user-select:none;font-size:20px!important;line-height:1;padding:8px!important;min-width:30px}.plan-drag:active{cursor:grabbing}.plan-dragging{opacity:.55;background:#e2eee7;outline:2px dashed #62947a;outline-offset:-2px}.plan-row .plan-actions{justify-content:flex-end}.plan-row .remove-plan{padding:6px 9px}@media(max-width:800px){.plan-row{grid-template-columns:96px 1fr 1fr}.plan-actions{grid-column:3}}@media(max-width:520px){.plan-row{grid-template-columns:96px 1fr}.plan-actions{grid-column:2}}

/* Stage-specific workflow and consistent people chips. */
.plan-grid{grid-template-columns:90px 100px 145px minmax(110px,1fr) 210px 60px}
.plan-row select{font-size:13px;margin:0;min-height:40px}
.currency-input{display:flex;align-items:center;border:1px solid var(--border,#ccdcd3);border-radius:6px;background:white;overflow:hidden}
.currency-input>span{padding:0 10px;font-size:12px;color:#526e60}
.plan-row .currency-input input{border:0;min-width:0;text-align:left}
.person-chip,.comment-popover>summary.person-chip,.member-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#e8f4ed;border:1px solid #c8ded0;color:#285741;padding:5px 10px;line-height:1.2}
.person-avatar{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#c8e4d4;color:#427558;font-size:10px;flex-shrink:0}
.person-avatar{position:relative;font-size:0}
.person-avatar:before{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#527d65;top:4px;left:7px}
.person-avatar:after{content:'';position:absolute;width:11px;height:6px;border-radius:7px 7px 5px 5px;background:#527d65;bottom:3px;left:4.5px}
.projects-table .person-chip{font-size:11px;padding:3px 7px;white-space:normal}
.invoice-table th:nth-child(1){width:10%}.invoice-table th:nth-child(2){width:6%}.invoice-table th:nth-child(3){width:8%}.invoice-table th:nth-child(4){width:9%}.invoice-table th:nth-child(5),.invoice-table th:nth-child(6),.invoice-table th:nth-child(7){width:8%}.invoice-table th:nth-child(8){width:13%}.invoice-table th:nth-child(9){width:8%}.invoice-table th:nth-child(10){width:6%}.invoice-table th:nth-child(11){width:16%}
.tax-editor{width:min(1060px,calc(100% - 40px));max-height:94vh}.tax-editor .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tax-editor fieldset{border:1px solid var(--line);border-radius:8px}.tax-editor .check{margin:6px 0}.tax-editor .form-actions{gap:8px}
@media(max-width:700px){.tax-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:450px){.tax-editor .form-grid{grid-template-columns:1fr}}
.badge.unrequested{background:#eef0f2;color:#5c6470}.badge.requested{background:#fff0dc;color:#985d14}.badge.tax-issued{background:#e3efff;color:#315f96}.badge.part-paid{background:#f0e7fb;color:#765098}.badge.fully-paid{background:#e1f3e7;color:#2f704c}
.customer-contact-section>summary{cursor:pointer;padding:8px 0;font-weight:600}.customer-contact-section[open]>.form-grid{margin-top:14px}
.tax-item{border-bottom:1px solid #d7e3db;margin-bottom:12px;padding-bottom:12px}
.plans-only .customer-contact-section,.plans-only .sales-input-section{display:none}
@media(max-width:850px){.plan-row{grid-template-columns:90px 100px 1fr}.plan-row .plan-actions{grid-column:3}.plan-head{display:none}}
@media(max-width:520px){.plan-row{grid-template-columns:90px 1fr}.plan-row .plan-actions{grid-column:2}}

/* Contact actions appear only when the detail section is expanded. */
.group:not([open]) .contact-edit-action { display: none; }

.upload-dialog{width:min(1040px,94vw);max-height:90vh;padding:24px;border:1px solid #9ab9ac;border-radius:12px;background:#f4f8f5;}
.quotation-actions{margin:18px 0;}
/* Shared division navigation and in-place project editing. */
#division-navigation{display:inline-flex;align-items:center;gap:12px}#division-navigation[hidden]{display:none}
.division-nav{position:relative;display:inline-flex;align-items:center}.division-toggle{padding:4px 7px;margin-left:4px}
.division-menu{display:none;position:absolute;top:100%;left:0;min-width:170px;background:white;border:1px solid #c9dbd1;border-radius:8px;box-shadow:0 8px 24px #163d2420;padding:8px;z-index:110}
.division-menu a{display:block;padding:12px!important;border:0!important;border-radius:5px;white-space:nowrap}.division-menu a:hover{background:#edf4ef}
.division-nav:hover .division-menu,.division-nav:focus-within .division-menu,.division-nav.menu-open .division-menu{display:block}
.inline-project-editor.project-editor{width:100%;max-height:none;padding:0}.inline-project-editor .form-actions{bottom:0;z-index:10}
.editing-project .contract-actions,.editing-project .version-control,.editing-project .contract-entry-actions,.editing-project .contact-edit-action{visibility:hidden}
.editing-project .group:not([data-group="contract"]){pointer-events:none;opacity:.65}
.project-type-filter{min-width:145px}.project-type-filter>label{font-size:12px}
@media(max-width:1000px){#topbar{flex-wrap:wrap}#division-navigation{gap:4px}.division-nav>a{padding:12px 4px!important}}

.projects-table .column-sort{border:1px solid #ffffff45;border-radius:5px;background:transparent;color:inherit;text-align:inherit;padding:5px 4px;width:100%;font:inherit;white-space:normal}.projects-table .column-sort:hover{background:#ffffff18}.sort-indicator{font-size:10px;margin-left:3px}.projects-table th[aria-sort="ascending"],.projects-table th[aria-sort="descending"]{background:#1d4635}



.editing-card dd>label{font-size:0;margin:0}.editing-card input,.editing-card select{font-size:13px;height:29px;margin:0;padding:3px 6px;background:white}.editing-card .person-field{margin:0}.editing-card datalist{display:none}


.choice-options{display:flex;align-items:center;gap:8px 13px;flex-wrap:wrap}.choice-options label{display:inline-flex;align-items:center;gap:5px;font-size:12px;white-space:nowrap;color:inherit;margin:0}.choice-options input[type="checkbox"]{width:14px;height:14px;padding:0;margin:0;accent-color:#346653}.choice-options input:disabled{opacity:1}.choice-field>span{font-size:12px}.choice-field .choice-options{min-height:34px;margin-top:5px}



/* Invoice line items follow the official tax-invoice column order. */
.tax-editor{width:min(1160px,calc(100% - 32px))}
.tax-items-scroll{overflow-x:auto;margin-bottom:12px}
.tax-editor .tax-item.form-grid,.tax-item-head{display:grid;grid-template-columns:minmax(200px,2.3fr) minmax(80px,.9fr) 64px minmax(90px,1fr) minmax(135px,1.25fr) minmax(115px,1.1fr) 48px;gap:8px;min-width:850px;align-items:center}
.tax-item-head{background:#edf3ef;padding:9px 0;font-size:11px;color:#456454}
.tax-editor .tax-item{padding:8px 0;border-bottom:1px solid var(--line)}
.tax-editor .tax-item label{font-size:0;margin:0}.tax-editor .tax-item input{height:33px;margin:0;padding:5px 7px;font-size:12px}
.tax-editor .tax-item [name=item_quantity],.tax-editor .tax-item [name=item_unit_price],.tax-editor .tax-item [name=item_supply],.tax-editor .tax-item [name=item_vat]{text-align:right;font-variant-numeric:tabular-nums}
.tax-editor .tax-item>button{height:31px;width:48px;padding:4px;font-size:11px;margin:0}



.tax-editor .tax-item.form-grid,.tax-item-head{grid-template-columns:40px 40px minmax(160px,2fr) 70px 60px 90px 120px 105px minmax(90px,1fr) 46px;min-width:1030px}
.tax-settlement{display:grid;grid-template-columns:1.35fr repeat(4,1fr) .8fr;gap:0;border:1px solid var(--line);margin:12px 0;background:#f4f8f5}
.tax-settlement>div,.tax-settlement>label{padding:8px;border-right:1px solid var(--line);font-size:11px}
.tax-settlement strong{display:block;font-size:14px;margin-top:9px;text-align:right}.tax-settlement input{text-align:right;height:32px;font-size:12px;padding:5px}.tax-settlement select{height:32px;font-size:12px;padding:5px}
@media(max-width:700px){.tax-settlement{grid-template-columns:repeat(3,minmax(0,1fr))}}



/* Compact, consistently aligned list controls. */
.tools{gap:10px;margin-bottom:16px;align-items:center}
.tools>input,.tools>select,.tools .project-type-filter select{height:34px;margin:0;padding:6px 10px;font-size:12px;border-radius:6px}
.tools>input{width:250px}.tools>select{width:124px}
.tools .project-type-filter{display:flex;align-items:center;min-width:0;margin:0}
.tools .project-type-filter>label{display:flex;align-items:center;gap:9px;margin:0;font-size:12px;white-space:nowrap}
.tools .project-type-filter select{width:128px}
.tools>.text-button{height:34px;padding:6px 10px;margin:0}
#app{padding-top:30px}h1{font-size:24px}.heading{margin-bottom:20px}
.projects-table th,.projects-table td{padding:11px 7px;font-size:12px}
.projects-table .column-sort{padding:4px 3px}.projects-table .project-link{font-size:12px}
.button{padding:7px 11px}.button.small{padding:4px 8px}
.group summary{padding:17px 20px}.contract-info-cell{padding:12px 14px}
@media(max-width:600px){.tools>input{width:100%;order:2}.tools .project-type-filter{flex:1}.tools .project-type-filter select{width:120px}}

.tax-payment-conditions{grid-column:1/-1;display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,2fr);gap:18px}.tax-payment-conditions input::placeholder{color:#87928b;opacity:1}

/* Compact information cards, with the same footprint when editing. */
.contract-info-section{margin-bottom:16px}
.contract-info-section h3{margin-bottom:8px;padding-left:8px}
.contract-info-grid{gap:8px}
.contract-info-cell{padding:8px 12px;border-radius:6px;min-height:60px}
.contract-info-cell dt{margin-bottom:3px;font-size:11px;line-height:17px}
.contract-info-cell dd{font-size:14px;line-height:22px}
.contract-info-amount dd{font-size:18px;line-height:24px}
.contract-info-note{padding:10px 12px}
.contract-info-cell.editing-card{padding-top:6px;padding-bottom:6px}
.editing-card dt{line-height:14px}
.editing-card dd>label{display:block;line-height:0}
.editing-card input,.editing-card select{line-height:1.3}
.editing-card .choice-options{min-height:29px}
/* Collected tax invoices: compact query form with a readable financial table. */
.tax-sync-panel{display:flex;align-items:center;gap:24px;padding:16px 20px;background:#e3eee7;border:1px solid #c6dacf;border-radius:8px;margin-bottom:18px}.tax-sync-panel p{margin:5px 0 0;font-size:12px}.tax-sync-panel small{display:block;margin-top:5px}.tax-sync-panel #tax-sync-state{flex:1}.tax-query-panel{background:#fff;border:1px solid #d3dfd9;border-radius:8px;padding:18px;display:grid;gap:12px}.tax-date-row{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.tax-date-row label{min-width:140px}.tax-filter-label{align-self:center;font-weight:600;margin-right:10px}.tax-date-shortcuts{display:flex;gap:5px;align-items:center;padding-bottom:1px}.tax-filter-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.tax-query-panel label{font-size:12px;display:grid;gap:5px}.tax-query-panel input,.tax-query-panel select{height:34px;padding:6px 9px}.tax-query-actions{display:flex;align-items:end;justify-content:flex-end;gap:8px}.tax-list-tools{margin:18px 0 10px}.tax-list-tools label{display:flex;align-items:center;gap:8px;font-size:12px}.tax-list-tools select{height:32px}.tax-results table{min-width:1350px;width:100%;table-layout:auto;font-size:12px}.tax-results th{white-space:nowrap;padding:12px 10px}.tax-results td{padding:10px;white-space:nowrap}.tax-results td:nth-child(7){white-space:normal;min-width:150px}.tax-results .small{padding:4px 9px;font-size:11px}.tax-paging{display:flex;justify-content:center;gap:16px;align-items:center;margin:14px 0 24px}.tax-totals h2{font-size:16px}.tax-totals>div{display:grid;grid-template-columns:repeat(4,1fr);background:#f3f7f4;border:1px solid #d3dfd9;border-radius:8px}.tax-totals>div>div{padding:14px 18px;display:flex;justify-content:space-between;gap:12px;border-right:1px solid #d3dfd9}.tax-totals strong{font-size:16px}.tax-totals span{font-size:12px}.tax-history{margin:22px 0;font-size:12px}.tax-history summary{cursor:pointer;padding:10px 0}.tax-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tax-detail-grid>div{background:#f3f7f4;border:1px solid #d3dfd9;border-radius:6px;padding:12px}.tax-detail-grid small{color:#587568}.tax-detail-grid p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:800px){.tax-sync-panel{flex-wrap:wrap;gap:12px}.tax-filter-row{grid-template-columns:1fr}.tax-date-row label{flex:1}.tax-totals>div{grid-template-columns:1fr 1fr}.tax-totals>div>div{flex-direction:column}.tax-detail-grid{grid-template-columns:1fr 1fr}}

/* Collected tax originals, matching controls and complete attachment section. */
.tax-sort{font:inherit;color:inherit;border:0;background:transparent;padding:0;white-space:nowrap;cursor:pointer}.tax-list-tools .check{display:flex;align-items:center;gap:6px}.tax-list-tools .check input{width:auto}.tax-results input[type=checkbox]{width:16px;height:16px}.tax-document-dialog{width:min(1020px,calc(100% - 32px))}.tax-document{border:2px solid #9c4d53;background:#fff;color:#292929;font-size:12px}.tax-document header{display:flex;align-items:center;justify-content:space-between;padding:14px;gap:20px;border-bottom:1px solid #c78b90}.tax-document header h2{color:#8b3640;white-space:nowrap}.tax-document header p{margin:0;overflow-wrap:anywhere}.tax-parties{display:grid;grid-template-columns:1fr 1fr}.tax-party{min-width:0}.tax-party+section{border-left:1px solid #c78b90}.tax-party h3{margin:0;padding:8px;background:#fcf0f0;color:#8b3640;text-align:center}.tax-party dl{margin:0;display:grid;grid-template-columns:90px 1fr}.tax-party dt,.tax-party dd{margin:0;padding:7px 10px;border-top:1px solid #dfb5b8;overflow-wrap:anywhere;white-space:pre-wrap}.tax-party dt{background:#fff9f9;border-right:1px solid #dfb5b8}.tax-document table{width:100%;table-layout:fixed}.tax-document th,.tax-document td{padding:8px;border:1px solid #dfb5b8;white-space:normal;overflow-wrap:anywhere;color:#292929}.tax-document th{background:#fcf0f0;color:#8b3640}.tax-document-items th:nth-child(2){width:25%}.tax-document footer{display:flex;justify-content:space-between;padding:14px;border-top:1px solid #c78b90;gap:12px}.tax-document footer strong{font-size:15px;margin-left:12px}.tax-document-meta{font-size:12px;line-height:1.9;margin-top:12px;color:var(--muted)}.tax-attachments{min-height:64px;padding:10px 14px;margin:12px 0 16px;min-width:0}.tax-attachments .check{white-space:normal;overflow-wrap:anywhere}.tax-attachments p{margin:6px 0}.tax-editor fieldset.tax-attachments{flex-shrink:0}.tax-document-dialog .form-actions{margin-top:18px}
@media(max-width:640px){.tax-parties{grid-template-columns:1fr}.tax-party+section{border-left:0;border-top:1px solid #c78b90}.tax-document header{display:block}.tax-document-items{overflow-x:auto}.tax-document-items table{min-width:650px}.tax-document footer{flex-wrap:wrap}}
[data-contact-index][hidden],.contact-entry[hidden],[data-add-contact-form][hidden],#add-customer-contact[hidden]{display:none!important}
.contact-entry{margin-bottom:10px}
.tax-item-description{min-width:160px;max-width:320px;white-space:normal;overflow-wrap:anywhere}

/* Compact controls keep native select text and sort priorities on one line. */
.tax-list-tools select{height:34px;min-height:34px;padding:4px 28px 4px 10px;line-height:normal;min-width:84px;box-sizing:border-box}
.projects-table .column-sort{display:flex;align-items:center;justify-content:space-between;gap:3px;white-space:nowrap;font-size:11px;padding:5px 3px}
.projects-table .sort-indicator{flex:none;margin:0;font-size:10px;white-space:nowrap}
.projects-table th:last-child{width:132px!important;min-width:132px}
.projects-table th:last-child .column-sort{white-space:nowrap}
.sort-tools{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:12px;color:var(--muted)}
.session-mode{display:inline-flex;margin:0}.session-mode select{height:32px;min-width:116px;padding:4px 22px 4px 8px;line-height:normal;font-size:12px}
.tax-filter-options{grid-template-columns:1fr 1fr 1fr auto}
@media(max-width:800px){.tax-filter-options{grid-template-columns:1fr}.sort-tools{flex-wrap:wrap}}
:root{--required-ink:#9a4939;--required-line:#d9a99d;--required-bg:#fff4ef}
.required-marker{display:inline-flex!important;align-items:center;justify-content:center;width:17px;height:17px;min-width:17px;margin-left:5px;border:1px solid var(--required-line);border-radius:50%;background:var(--required-bg);color:var(--required-ink);font-size:10px!important;font-weight:600;line-height:1;vertical-align:middle;letter-spacing:0;white-space:nowrap}
.field-label{display:inline-flex;align-items:center;line-height:inherit;white-space:nowrap;flex-shrink:0}
.editing-card dt .required-marker{width:15px;height:15px;min-width:15px;font-size:9px!important}

/* Division is selected by navigation; the list begins with status. */
.projects-table th:nth-child(3){min-width:0}.projects-table th:nth-child(5){width:auto!important}.projects-table th:nth-child(4){width:17%!important}.projects-table td:first-child{white-space:nowrap}.show-closed-projects{white-space:nowrap}.tools .show-closed-projects input{width:14px;margin:0;accent-color:var(--green)}

/* Two private drafting templates with explicit approval order. */
.drafting-section .form-actions{position:static}.drafting-section .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:800px){.drafting-section .form-grid{grid-template-columns:1fr}}
.drafting-section h2{font-size:17px;margin:0 0 18px}.drafting-section h3{margin-top:20px}.drafting-section input[readonly]{background:#f1f5f3;color:#4c625a}.approval-line{list-style:none;padding:0;margin:12px 0}.approval-line li{display:flex;align-items:center;gap:12px;padding:9px 12px;border-bottom:1px solid var(--line)}.approval-order{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e0eee6;color:#285a47;flex-shrink:0}.approval-person{flex:1}.approval-picker{display:flex;align-items:flex-end;gap:12px}.approval-picker label{flex:1}.approval-picker select,.approval-picker input{width:100%}.approval-picker>.button{margin-bottom:0}@media(max-width:650px){.approval-picker{flex-wrap:wrap}.approval-picker label{flex-basis:100%}.approval-line li{flex-wrap:wrap}}

.approval-sheet{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;margin:16px 0}.approval-table-scroll{min-width:0;overflow-x:auto;flex:1}.approval-stamp-table{width:max-content;table-layout:fixed}.approval-stamp-table th,.approval-stamp-table td,.processing-stamp-table th,.processing-stamp-table td{border:1px solid #d4d9d6;text-align:center;padding:5px 8px;height:30px;background:#fff;color:var(--ink)}.approval-stamp-table th:not(.approval-vertical),.approval-stamp-table td{min-width:110px;width:110px;max-width:130px;overflow-wrap:anywhere}.approval-stamp-table .approval-vertical,.processing-stamp-table .approval-vertical{width:30px;min-width:30px;max-width:30px;padding:10px 6px;white-space:normal;writing-mode:vertical-rl;text-orientation:upright;background:#f5f6f5;font-weight:600}.approval-stamp-table .signature-space{height:64px}.approval-position{padding:2px 4px;border:0;border-radius:0;text-align:center;font-size:12px;max-width:110px;background:transparent}.approval-position:focus{background:#f3f7f4}.approval-cell-actions{display:flex;justify-content:center;gap:3px}.approval-cell-actions .button{padding:1px 5px;font-size:11px}.processing-stamp-table{width:150px;flex-shrink:0}.processing-stamp-table .processing-department{height:64px;font-weight:700;white-space:nowrap}.unavailable-approver{color:var(--red)}@media(max-width:650px){.approval-sheet{flex-wrap:wrap;gap:16px}.approval-table-scroll{flex-basis:100%}.processing-stamp-table{margin-left:auto}}

.compact-approval-picker{position:relative;display:block;width:max-content;max-width:100%}.approver-popover{position:absolute;top:calc(100% + 8px);left:0;width:340px;max-width:calc(100vw - 80px);padding:14px;border:1px solid #c8d8ce;border-radius:9px;background:#fff;box-shadow:0 8px 28px #203d3026;z-index:12}.approver-popover-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.approver-results{max-height:230px;overflow:auto;margin-top:10px}.approver-result{display:grid;grid-template-columns:1fr auto;gap:1px 8px;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);padding:9px 6px}.approver-result:hover{background:var(--soft)}.approver-result small{grid-row:2}.approver-result span{grid-row:1/3;grid-column:2;align-self:center}.approver-results p{padding:12px 0;font-size:12px}

.department-group-cell{vertical-align:middle!important;background:#edf4ef;font-weight:600;border-right:1px solid var(--line);min-width:130px}.draft-template-image{display:block;width:100%;height:auto;margin-top:15px}#master-settings .inline-actions select{min-width:230px}.user-table .badge{margin-left:5px}

/* Compact settings and native contract preview. */
.year-range{display:flex;align-items:end;gap:8px}.year-range select{min-width:85px}.year-range-label{font-size:12px;white-space:nowrap}.year-range>span{padding-bottom:10px}
.admin-group{margin-bottom:14px}.admin-group>.group-content{padding:18px}.admin-group .heading:empty{display:none}
#drafting-sections{max-width:1120px;margin:auto}.drafting-section{padding:18px}.drafting-section .heading{margin-bottom:12px}.drafting-form>.form-grid{grid-template-columns:repeat(5,minmax(100px,1fr));gap:10px}.drafting-form input[readonly]{height:32px;padding:5px 8px}.drafting-form .approval-sheet{justify-content:flex-start;gap:24px;margin:8px 0}.drafting-form .signature-space{height:26px}.drafting-form .approval-stamp-table td,.drafting-form .approval-stamp-table th{padding:5px}.drafting-form .processing-stamp-table{height:108px;align-self:flex-start}.drafting-form .processing-stamp-table tr:first-child,.drafting-form .processing-stamp-table tr:last-child{display:none}.drafting-form .form-actions{padding:8px 0;margin-top:8px}.drafting-form .subtle-note{margin:8px 0}.drafting-form h3{margin:12px 0 8px}
#contract-note-view h3{display:flex;align-items:center;justify-content:space-between}.contract-info-note{white-space:pre-wrap}
dialog.contract-preview-dialog{width:min(940px,96vw);max-width:96vw}.real-contract-form{background:white;color:#222;padding:20px;font-family:Arial,'Malgun Gothic',sans-serif}.real-contract-form h1{text-align:center;font-size:26px;margin:12px 0 30px}.real-contract-form table{width:100%;border-collapse:collapse;table-layout:fixed;margin:10px 0}.real-contract-form th,.real-contract-form td{border:1px solid #d4d4d4;padding:9px;font-size:12px;line-height:1.5;word-break:break-word;white-space:pre-wrap}.real-contract-form th{background:#f7f7f7;text-align:center}.real-contract-form .real-approval{display:flex;justify-content:space-between;gap:16px}.real-approval>table{width:auto;min-width:270px;text-align:center}.real-approval>table.real-processing{min-width:130px;width:130px}.real-signature{height:58px}.real-contract-form label{display:inline;font-size:12px;margin-right:6px}.draft-destination{background:#eaf3ed;padding:12px;line-height:1.7}.quotations-table th,.quotations-table td{width:auto!important}
@media(max-width:700px){.drafting-form>.form-grid{grid-template-columns:repeat(2,minmax(100px,1fr))}.drafting-form .approval-sheet{flex-wrap:wrap}.real-contract-form{padding:6px}.real-contract-form td,.real-contract-form th{padding:4px;font-size:10px}.year-range{flex-wrap:wrap}}

.drafting-form .approval-table-scroll{flex:0 1 auto}.processing-compact{border:1px solid #d4d9d6;border-radius:5px;padding:12px 16px;font-size:12px;align-self:flex-start}.processing-compact strong{display:block;margin-top:7px}.real-contract-form th,.real-contract-form td{white-space:normal;color:#222}.real-contract-form h1{color:#222}.real-contract-form .contract-basic col:nth-child(1){width:14%}.real-contract-form .contract-basic col:nth-child(2){width:33%}.real-contract-form .contract-basic col:nth-child(3){width:3%}.real-contract-form .contract-basic col:nth-child(4){width:14%}.real-contract-form .contract-basic col:nth-child(5){width:36%}.real-title th{width:12%}.real-approval>table{table-layout:auto}.real-approval>table th[rowspan]{width:30px;min-width:30px}.real-approval>table.real-processing th{width:30px}.real-approval>table.real-processing td{white-space:nowrap}.real-contract-form td>span{display:inline;white-space:normal}

#drafting-sections{max-width:1000px}.drafting-section .heading{min-height:0;align-items:center;margin:0 0 12px}.drafting-section .heading h2{margin:0}.drafting-section .form-grid{margin-top:0}.drafting-form .form-actions{background:transparent;border:0;padding:0;margin-top:0}.drafting-form .compact-approval-picker{display:inline-block}.drafting-form .subtle-note{font-size:11px}.real-contract-form .real-title th{width:12%}

/* Compact filters and administration, 0.20.0 */
#session-info select,#session-info button{height:32px;min-height:32px;padding:5px 10px;box-sizing:border-box;line-height:20px}#session-info .session-mode{margin:0}
.user-table label:has(select[name="role"])>.field-label,.user-table label:has(select[name="active"])>.field-label{display:none}
.tools .year-range input,.tools [name="project_type_filter"],.tools [name="quote_type"]{width:128px;min-width:128px;height:34px;padding:6px 10px;box-sizing:border-box}
.year-range{gap:8px}.year-range label{white-space:nowrap}.year-range-label:empty{display:none}
.tax-date-row input,.tax-date-row select,.tax-date-shortcuts .button{height:34px;min-height:34px;padding:6px 10px;box-sizing:border-box}
.admin-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}.admin-reference-grid .admin-group{min-width:0;margin:0}.admin-reference-grid .group-content{padding:16px}.admin-reference-grid .line-item{gap:8px;flex-wrap:wrap}.user-table td{padding-top:10px;padding-bottom:10px}.user-table td label:has(select[name="role"]),.user-table td label:has(select[name="active"]){gap:0}.user-table select[name="role"],.user-table select[name="active"]{height:34px;min-width:100px}
@media(max-width:900px){.admin-reference-grid{grid-template-columns:1fr}}

/* Align round preview headings, individual amounts and totals. */
.preview-head,.preview-row,.preview-total{grid-template-columns:minmax(100px,.8fr) minmax(220px,2fr) minmax(140px,1fr) minmax(120px,.9fr) minmax(120px,.9fr);gap:16px;padding:12px 18px}
.preview-money{text-align:left;font-variant-numeric:tabular-nums;white-space:nowrap}.preview-total{display:grid;border-top:2px solid #b9d0c3;background:#edf5f0;font-size:14px}.preview-total-label{grid-column:span 3}.preview-total-label small{font-size:11px;font-weight:normal;margin-left:8px}.invoice-preview .preview-note{font-size:12px;margin:0;padding:9px 18px;color:#5a6e64}
@media(max-width:800px){.preview-row,.preview-total{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preview-row>div:first-child{grid-column:1/-1}.preview-total-label{grid-column:1/-1}.preview-money:before{content:attr(data-label);display:block;font-size:11px;font-weight:normal;color:#5a6e64;margin-bottom:4px}.preview-row .preview-money{border-top:1px solid #e1e9e4;padding-top:8px}}

/* Six aligned columns keep billed, paid and receivable values directly under headings. */
.preview-head,.preview-row,.preview-total{grid-template-columns:minmax(90px,.65fr) minmax(210px,2fr) minmax(125px,1fr) repeat(3,minmax(110px,.8fr));gap:14px}
.preview-total-label{white-space:normal}
.receipt-upload-dialog{width:min(1100px,96vw);max-width:96vw}
.receipt-results td{vertical-align:middle}
.receipt-results td:nth-child(5){white-space:normal;min-width:160px;max-width:360px}
.receipt-results .numeric{font-variant-numeric:tabular-nums;white-space:nowrap}
#receipt-query .tax-filter-row{grid-template-columns:1fr 1.2fr 1fr auto;align-items:end}
#receipt-totals{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:800px){#receipt-query .tax-filter-row{grid-template-columns:1fr 1fr}#receipt-totals{grid-template-columns:1fr}}
@media(max-width:800px){.preview-row,.preview-total{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preview-row>div:first-child,.preview-total-label{grid-column:1/-1}.receipt-results{overflow-x:auto}}

/* Compact permission selectors; the list lives in the browser top layer. */
.user-table td select,.user-table .scope-dropdown{width:164px;min-width:164px}
.user-table td select,.scope-dropdown summary{height:34px;min-height:34px;box-sizing:border-box;padding:5px 10px}
.scope-dropdown{margin:0}.scope-dropdown summary .scope-summary{max-width:125px}
.scope-dropdown .scope-list[popover]{position:fixed;inset:auto;margin:0;padding:8px;box-sizing:border-box;max-width:none;max-height:240px;overflow:auto;box-shadow:0 4px 14px #173d2926}
.scope-dropdown .scope-list[popover]:not(:popover-open){display:none}
dialog.mode-dialog{width:min(560px,94vw);max-width:560px}
.mode-options{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;align-items:start}
.mode-options label{margin:0 0 5px}.mode-options select,.mode-options .scope-dropdown summary{height:34px;min-height:34px}
.mode-options .check{height:34px;display:flex;align-items:center}
@media(max-width:550px){.mode-options{grid-template-columns:1fr}}

.mode-options input[type=checkbox]{width:auto;min-width:0;flex:0 0 auto}.mode-options .check{justify-content:flex-start;gap:6px;white-space:nowrap}

/* Compact business layout, with room for terms, dates and comments. */
main#app,.detail{max-width:1840px}
.detail{width:100%;margin-inline:auto}
#session-info{display:flex;align-items:center;gap:10px;flex-shrink:0}
#session-info>*,#session-info label{margin:0!important}
#session-info button,#session-info select{height:32px!important;min-height:32px!important;line-height:20px!important;white-space:nowrap;flex-shrink:0}
#session-info .person-name{display:flex;align-items:center;height:32px}
.numeric,td.numeric,th.numeric,[data-money],.currency-input input,.finance-values strong,.contract-info-amount dd,.project-facts strong,.tax-totals strong{ text-align:left!important }
.invoice-table{min-width:1510px!important;table-layout:fixed!important;width:100%}
.invoice-table th,.invoice-table td{padding:10px 8px!important;white-space:normal!important;overflow-wrap:anywhere}
.invoice-table th:nth-child(1){width:116px}.invoice-table th:nth-child(2){width:66px}.invoice-table th:nth-child(3){width:116px}
.invoice-table th:nth-child(4){width:260px}.invoice-table th:nth-child(5),.invoice-table th:nth-child(6),.invoice-table th:nth-child(7),.invoice-table th:nth-child(8){width:100px}
.invoice-table th:nth-child(9),.invoice-table th:nth-child(10){width:125px}.invoice-table th:nth-child(11){width:64px}.invoice-table th:nth-child(12){width:190px}
.invoice-table .comment-chips{min-width:170px;flex-wrap:wrap}.paid-date{display:block;white-space:nowrap}
#contract-note-view dl{margin:0}#contract-note-view .contract-info-cell{min-height:0}
#contract-note-view textarea{min-height:80px;width:100%}
.document-row{padding:9px 0!important;gap:12px!important;align-items:start!important;min-height:0!important}
.document-row .document-info{min-width:0;flex:1}.document-row .document-info>a{overflow-wrap:anywhere}
.document-row small{margin:3px 0!important}.document-row .comment-chips{display:inline-flex;margin:3px 0 0;gap:5px}
.document-row .doc-category{padding:4px 7px!important}.document-row .inline-actions{margin:0;gap:5px}
.document-change{font-size:11px;color:#526b60;margin-top:3px}.audit-changes{font-size:12px;line-height:1.5;overflow-wrap:anywhere;margin-top:3px}
#project-history .line-item{padding:9px 0;min-height:0;align-items:start}.compare-selectors{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0}
.plan-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px 12px;background:#eaf3ee;border:1px solid #cbded3;border-radius:6px;margin-top:10px}
.plan-totals span{display:block;font-size:11px}.plan-totals strong{display:block;margin-top:4px;font-size:15px}.plan-totals.mismatch>div:last-child strong{color:#b44830}
.project-editor .plan-row{padding-block:7px!important;gap:9px!important;min-height:0}
.project-editor .plan-row input,.project-editor .plan-row select,.project-editor .plan-row .currency-input{height:32px!important;min-height:32px!important;box-sizing:border-box}
.project-editor .plan-row input,.project-editor .plan-row select{padding:5px 8px!important}
.project-editor .plan-row label{margin:0!important}
.project-editor .plan-grid{grid-template-columns:84px 95px 137px minmax(240px,1fr) 190px 48px!important}
.project-editor .plan-row .plan-drag{height:30px;padding:3px 8px}.project-editor .plan-row .plan-order input{width:36px}
.project-editor.plans-only .invoice-plan-section{padding:14px}.project-editor.plans-only .invoice-plan-section>.heading{margin-bottom:12px}
@media(max-width:900px){.invoice-plan-section{overflow-x:auto}.project-editor .plan-grid{min-width:850px}.plan-totals{min-width:650px}.document-row{flex-wrap:wrap}.compare-selectors{grid-template-columns:1fr 1fr}}

/* Compact billing round numbers and consistent money alignment. */
.plan-row [name=plan_round]{padding:4px;text-align:center}
.preview-money,.preview-row>div:last-child{text-align:right!important}

@media(max-width:1750px){.group[data-group="billing"] .table-wrap{overflow-x:auto}}

/* Header selects must not inherit the form-label top margin. */
#session-info .session-mode{display:inline-flex;align-items:center;height:32px;padding:0;gap:0}
#session-info .session-mode select{display:block;margin:0!important;vertical-align:middle}

/* Compact mode dialog: common label baseline and unclipped control text. */
.mode-options>label{display:flex;flex-direction:column;gap:5px;margin:0;line-height:20px}
.mode-options>div>label{margin:0 0 5px;line-height:20px}
.mode-options select,.mode-options .scope-dropdown summary{box-sizing:border-box;height:34px;min-height:34px;line-height:20px;padding:6px 10px;margin:0}
.mode-options .scope-dropdown summary{display:flex;align-items:center}
.mode-options .check{height:34px;min-height:34px;line-height:20px;padding:0;margin:0;box-sizing:border-box}
.mode-options .check input{margin:0}


/* Electronic invoice: proportions and two-party colors of the supplied form. */
dialog.tax-invoice-form-dialog{width:min(1240px,calc(100vw - 32px));max-width:1240px;padding:24px}
.tax-form-scroll{width:100%;overflow-x:auto}
.tax-form-sheet{min-width:980px;border:2px solid #546589;background:white;color:#171717;font-family:'Malgun Gothic','Segoe UI',sans-serif;font-size:12px;line-height:1.35}
.tax-form-title{display:grid;grid-template-columns:50% 12.5% 37.5%;min-height:46px;align-items:stretch;background:#f5f5fa}
.tax-form-title>*{margin:0;display:flex;align-items:center;justify-content:center;padding:6px 10px;min-width:0}
.tax-form-title h2{font-size:27px;letter-spacing:1px;font-weight:700;color:#111}
.tax-form-title span,.tax-form-title strong{border-left:2px solid #546589}
.tax-form-title span{font-size:15px;font-weight:700}.tax-form-title strong{font-size:19px;letter-spacing:-.5px;overflow-wrap:anywhere}
.tax-form-parties{display:grid;grid-template-columns:1fr 1fr}
.tax-form-party{display:grid;grid-template-columns:25px minmax(0,1fr);min-width:0;--party-line:#f08b93;--party-ink:#b9323c;--party-label:#fff0f1;--party-band:#ffc7cc;border-top:2px solid #d54150}
.tax-form-party.recipient{--party-line:#969df5;--party-ink:#1255be;--party-label:#f0f3ff;--party-band:#c9dcf4;border-top-color:#4762df;border-left:2px solid #546589}
.tax-form-party h3{margin:0;background:var(--party-band);color:var(--party-ink);writing-mode:vertical-rl;text-orientation:upright;letter-spacing:9px;display:flex;align-items:center;justify-content:center;font-size:14px;border-right:1px solid var(--party-line)}
.tax-form-sheet table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px;margin:0}
.tax-form-sheet th,.tax-form-sheet td{border:1px solid #bcc5d9;padding:6px 8px;white-space:normal;overflow-wrap:anywhere;color:#171717;vertical-align:middle;font-weight:400;line-height:1.35}
.tax-form-sheet th{background:#f5f5fa;text-align:center;font-weight:600}
.tax-form-sheet table tr>*:first-child{border-left:0}.tax-form-sheet table tr>*:last-child{border-right:0}
.tax-form-party th,.tax-form-party td{border-color:var(--party-line);padding:5px 9px;height:36px}
.tax-form-party th{color:var(--party-ink);background:var(--party-label);font-weight:500}
.tax-form-party table tr:first-child>*{border-top:0}
.tax-form-party .party-address>*{height:44px}
.tax-form-party .party-email>*{height:29px}
.tax-form-party .party-email{height:29px}
.tax-form-party .registration-number{font-size:19px;font-weight:600;letter-spacing:-.5px;white-space:nowrap}
.tax-form-sheet .tax-form-summary td{height:40px}
.tax-form-sheet .tax-form-items{border-top:2px solid #546589;border-bottom:2px solid #546589}
.tax-form-sheet .tax-form-items td{height:38px}
.tax-form-sheet .tax-form-items td:nth-child(1),.tax-form-sheet .tax-form-items td:nth-child(2){text-align:center}
.tax-form-sheet .tax-form-settlement td{height:39px}
.tax-form-sheet .tax-form-settlement .receipt-statement{text-align:center;font-weight:600;font-size:13px}
.tax-form-sheet .numeric{text-align:left!important;font-variant-numeric:tabular-nums}
.tax-form-sheet td.numeric,.tax-form-sheet .registration-number{text-align:left!important}
.tax-invoice-form-dialog .dialog-heading{justify-content:flex-start}
.tax-invoice-form-dialog .dialog-heading h2{margin-right:auto}
.tax-invoice-form-dialog .tax-pdf-download{order:1}
.tax-invoice-form-dialog .dialog-close{order:2}
.tax-invoice-form-dialog .tax-document-meta{margin-top:12px;font-size:11px}
@media(max-width:700px){dialog.tax-invoice-form-dialog{padding:16px}.tax-invoice-form-dialog .dialog-heading{margin-bottom:16px}}

.tax-form-party col:nth-child(1){width:20%}
.tax-form-party col:nth-child(2){width:20%}
.tax-form-party col:nth-child(3){width:16%}
.tax-form-party col:nth-child(4){width:16%}
.tax-form-party col:nth-child(5){width:14%}
.tax-form-party col:nth-child(6){width:14%}
.tax-form-summary col:nth-child(1){width:12.5%}
.tax-form-summary col:nth-child(2){width:18.75%}
.tax-form-summary col:nth-child(3){width:18.75%}
.tax-form-summary col:nth-child(4){width:12.5%}
.tax-form-summary col:nth-child(5){width:37.5%}
.tax-form-items col:nth-child(1){width:4%}
.tax-form-items col:nth-child(2){width:4%}
.tax-form-items col:nth-child(3){width:25%}
.tax-form-items col:nth-child(4){width:9%}
.tax-form-items col:nth-child(5){width:9%}
.tax-form-items col:nth-child(6){width:12%}
.tax-form-items col:nth-child(7){width:15%}
.tax-form-items col:nth-child(8){width:13%}
.tax-form-items col:nth-child(9){width:9%}
.tax-form-settlement col:nth-child(1){width:17%}
.tax-form-settlement col:nth-child(2){width:15%}
.tax-form-settlement col:nth-child(3){width:15%}
.tax-form-settlement col:nth-child(4){width:15%}
.tax-form-settlement col:nth-child(5){width:15%}
.tax-form-settlement col:nth-child(6){width:23%}

/* Keep project finance records scannable without clipping long terms or item names. */
.group[data-group="billing"] .project-finance-table{table-layout:auto;line-height:1.4}
.group[data-group="billing"] .project-finance-table th{padding:9px 10px}
.group[data-group="billing"] .project-finance-table td{padding:10px 10px;vertical-align:middle}
.group[data-group="billing"] .project-finance-table td:not(.numeric){overflow-wrap:anywhere}
.group[data-group="billing"] .project-finance-table .tax-item-name{min-width:180px;max-width:340px;white-space:pre-line}
.group[data-group="billing"] .project-finance-table .person-chip{white-space:nowrap}
.group[data-group="billing"] .project-finance-table .button{min-height:28px}
.group[data-group="billing"] .project-finance-table .empty{padding:18px 10px}
.group[data-group="billing"] .section-gap{margin-top:18px;margin-bottom:9px}
.contract-details-heading{margin:20px 0 8px}
.contract-details-heading h3{margin:0}
.contract-detail-head,.project-contract-detail{display:grid;grid-template-columns:64px minmax(180px,2fr) minmax(150px,1.2fr) minmax(120px,1.5fr) auto;gap:8px;align-items:end}
.contract-detail-head{padding:7px 0;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line)}
.project-contract-detail{padding:7px 0;border-bottom:1px solid var(--line)}
.project-contract-detail label{min-width:0}
.choice-required{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:5px;border:1px solid var(--required-line);border-radius:50%;background:var(--required-bg);color:var(--required-ink);font-size:9px;font-weight:600;line-height:1}
.project-contract-detail .detail-number{height:34px;display:flex;align-items:center;padding:0 8px;background:var(--soft);border:1px solid var(--line);border-radius:5px;font-size:12px}
@media(min-width:851px){.project-contract-detail .field-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.project-contract-detail label input{margin-top:0}}
.project-contract-detail input{height:34px;padding:6px 8px}
.project-contract-detail .button{height:34px}
@media(max-width:850px){.contract-detail-head{display:none}.project-contract-detail{grid-template-columns:repeat(2,minmax(0,1fr))}.project-contract-detail .detail-number{grid-column:1/-1;width:64px}.project-contract-detail .button{justify-self:start}}
#project-history .project-history-row{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr) minmax(145px,190px) auto;gap:12px;align-items:start;padding:8px 0}
.project-history-row .history-action{grid-column:1;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.project-history-row .audit-changes{grid-column:2;display:flex;flex-wrap:wrap;gap:2px 14px;margin:0;min-width:0}
.project-history-row .audit-changes span{overflow-wrap:anywhere}
.project-history-row .history-meta{grid-column:3;white-space:normal;text-align:right;margin:0}
.project-history-row [data-delete-history]{grid-column:4;justify-self:end;align-self:start;width:auto;min-width:44px;white-space:nowrap}
@media(max-width:760px){#project-history .project-history-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}.project-history-row .audit-changes{grid-column:1/-1;grid-row:2}.project-history-row .history-meta{grid-column:1;grid-row:3;text-align:left}.project-history-row [data-delete-history]{grid-column:2;grid-row:1}.project-history-row:not(:has(.audit-changes)) .history-meta{grid-row:2}}

/* Amounts align left; only monetary totals use emphasis. */
.preview-row .preview-money,.numeric,.numeric strong,.money-value,.contract-info-amount dd{font-weight:400}
.preview-total .preview-money strong,.totals strong,.tax-totals strong,.finance-values strong,tfoot .numeric{font-weight:700;text-align:left}

#contract-note-view dd{white-space:pre-wrap;overflow-wrap:anywhere;font-weight:400;line-height:1.65}#contract-note-view>button{float:right;margin-bottom:8px}

.invoice-table th.numeric,.invoice-table td.numeric,.project-finance-table th.numeric,.project-finance-table td.numeric,.invoice-table .numeric>*{text-align:left!important;justify-content:flex-start!important}

.numeric,td.numeric,th.numeric,.numeric>*,[data-money],.currency-input input,.money-value,.finance-values strong,.contract-info-amount dd,.preview-money,.preview-money strong,.tax-editor [name=item_quantity],.tax-editor [name=item_unit_price],.tax-editor [name=item_supply],.tax-editor [name=item_vat],.invoice-table th.numeric,.invoice-table td.numeric,.invoice-table .numeric>*,.project-finance-table th.numeric,.project-finance-table td.numeric{ text-align:right!important;justify-content:flex-end!important }

.editing-card textarea,#contract-note-view textarea{font:13px/1.6 "Malgun Gothic",sans-serif;color:#28352f;white-space:pre-wrap;text-align:left}

.tax-editor .tax-item.form-grid,.tax-editor .tax-item-head{grid-template-columns:64px 64px minmax(260px,2fr) 80px 70px 100px 130px 115px minmax(120px,1fr) 48px;min-width:1240px}.tax-editor .tax-item textarea[name="item_name"]{font:12px/1.5 "Malgun Gothic",sans-serif;min-height:54px;height:54px;padding:6px 8px;margin:0;width:100%;resize:vertical;white-space:pre-wrap;overflow-wrap:anywhere;text-align:left}.tax-editor .tax-item [name="item_month"],.tax-editor .tax-item [name="item_day"]{min-width:64px;text-align:right}

.tax-editor .tax-item.form-grid,.tax-editor .tax-item-head{grid-template-columns:42px 42px minmax(240px,1fr) 52px 48px 72px 118px 100px 70px 44px;min-width:982px;gap:6px;align-items:center}.tax-editor .tax-item label.full{grid-column:auto}.tax-editor .tax-item label{min-width:0}.tax-editor .tax-item input{min-width:0;width:100%}.tax-editor .tax-item [name="item_month"],.tax-editor .tax-item [name="item_day"]{min-width:0;width:100%;padding:5px;text-align:right;appearance:textfield}.tax-editor .tax-item input::-webkit-inner-spin-button,.tax-editor .tax-item input::-webkit-outer-spin-button{appearance:none;margin:0}.tax-editor .tax-item>button{width:44px}
/* Authenticated attachment preview uses the browser's PDF viewer. */
.attachment-preview-dialog{width:min(1100px,96vw);height:90vh;max-width:96vw;max-height:94vh;padding:16px;box-sizing:border-box}
.attachment-preview-dialog[open]{display:flex;flex-direction:column;gap:10px}
.attachment-preview-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.attachment-preview-dialog h2{margin:0;font-size:16px;overflow-wrap:anywhere;min-width:0}
.attachment-preview-dialog header .inline-actions{flex-shrink:0}
.attachment-preview-dialog p{margin:0}
.attachment-preview-dialog iframe{width:100%;flex:1;min-height:0;border:0;background:#eee}
.attachment-preview-dialog::backdrop{background:rgba(0,0,0,.45)}
.tax-source-item{min-width:180px;max-width:340px;white-space:normal;overflow-wrap:anywhere}

#release-status{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:8px 24px;background:#edf4ef;color:#326550;font-size:13px;border-bottom:1px solid #d5e4dc}#release-status[data-state="outdated"]{background:#fff1df;color:#885419}#release-status[data-state="unknown"]{background:#f3f5f4;color:#586963}#release-reload{border:1px solid currentColor;border-radius:5px;background:transparent;color:inherit;padding:3px 8px;cursor:pointer}@media(max-width:600px){#release-status{padding:8px 12px;justify-content:flex-start;flex-wrap:wrap}}
