
:root{--ink:#193731;--muted:#667971;--paper:#f4f5f0;--line:#dce3db;--green:#24674f;--light:#e7eee6;--white:#fff;--orange:#986123;--danger:#a43e3e;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--paper);font-size:15px}*{box-sizing:border-box}body{margin:0}a{color:var(--green)}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);padding:10px 15px;font-weight:600}button:hover{background:var(--light)}button:disabled{opacity:.55;cursor:wait}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:#1d533f}button.danger{color:var(--danger)}button.text-button{border:0;background:none;padding:8px 0;font-weight:400;color:var(--muted)}input,select,textarea{display:block;width:100%;padding:11px 12px;margin-top:7px;border:1px solid #cbd6cc;border-radius:8px;background:white;color:var(--ink)}textarea{min-height:105px;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid #7ead8e;outline-offset:2px}label{display:block;font-size:.9rem;font-weight:600;margin-bottom:18px}label small{display:block;font-weight:400;line-height:1.5;color:var(--muted);margin-top:7px}h1,h2,h3,p{margin-top:0}h1{font-size:2rem;font-weight:600;letter-spacing:-1px;margin-bottom:0}h2{font-size:1.4rem;font-weight:600;letter-spacing:-.3px}h3{font-size:1.04rem}p{line-height:1.6}.muted,.footnote{color:var(--muted)}.footnote{font-size:.8rem;margin-top:25px}.eyebrow{font-size:.7rem;letter-spacing:1.8px;font-weight:700;color:var(--muted)}.brand{display:flex;align-items:center;gap:10px;letter-spacing:3px;text-decoration:none;font-size:1rem;font-weight:700}.brand small{font-size:.65rem;letter-spacing:0;font-weight:400}.brand-icon{display:grid;place-items:center;background:var(--green);color:#fff;border-radius:13px;width:39px;height:39px;font-family:Georgia,serif;font-size:1.6rem;letter-spacing:-2px;padding-bottom:4px}.gate{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;max-width:1400px;margin:auto}.gate-intro{padding:55px 12%;background:#e7eddf;display:flex;flex-direction:column;justify-content:center}.gate-intro .brand{margin-bottom:85px}.gate-intro h1{font-size:3.2rem;line-height:1.17;margin:15px 0 25px;letter-spacing:-2px}.gate-intro em{font-family:Georgia,serif;font-weight:400;color:var(--green)}.gate-intro p:not(.eyebrow){max-width:365px;color:var(--muted)}.local-note{margin-top:55px;font-size:.8rem}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#579963;margin-right:7px}.gate-panel{padding:70px max(35px,15%);align-self:center}.gate-panel h2{font-size:1.8rem}.gate-panel button{width:100%;display:flex;justify-content:space-between}.workspace{display:grid;grid-template-columns:245px 1fr;min-height:100vh}aside{padding:32px 22px;background:#fff;border-right:1px solid var(--line);position:sticky;top:0;height:100vh;display:flex;flex-direction:column}aside .brand{padding-left:8px}.nav-label{font-size:.62rem;letter-spacing:1.5px;color:#87958b;margin:45px 12px 13px}nav a{display:flex;gap:12px;align-items:center;padding:12px 14px;margin:4px 0;text-decoration:none;color:var(--muted);border-radius:9px;font-size:.9rem}nav a.active{background:var(--light);color:var(--green);font-weight:600}nav a:hover{background:var(--paper)}nav .nav-icon{width:19px;font-size:1rem;text-align:center}.aside-bottom{margin-top:auto;padding:24px 12px 0;font-size:.85rem;color:var(--muted)}.aside-bottom small{font-size:.72rem}#identity{padding-top:23px;color:var(--ink);font-weight:600}main{padding:40px 48px;min-width:0;max-width:1550px;width:100%}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}header h1{margin-top:10px}.pill,.badge{display:inline-block;padding:6px 10px;border-radius:6px;font-size:.73rem;background:#e8eee4;color:var(--green);white-space:nowrap}.badge.warn{background:#fff1d9;color:var(--orange)}.badge.bad{background:#fbe6e4;color:var(--danger)}.lead{padding:28px 30px;background:#e6eddf;border:1px solid #d5dfcf;border-radius:14px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.lead p{margin-bottom:0;color:#5e7061;max-width:640px}.lead h2{margin-bottom:8px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:25px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.card .number{font-size:2.2rem;display:block;margin:10px 0}.card p{font-size:.8rem;margin-bottom:0;color:var(--muted)}.panel{margin-bottom:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-head h2{margin:0;font-size:1.1rem}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.wide{grid-column:1/-1}.info{padding:14px 17px;background:#eef3ed;border-radius:9px;font-size:.87rem;line-height:1.6;margin-bottom:20px}.info.warn{background:#fff3df;color:#775a31}.empty{padding:35px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:10px}.empty h3{color:var(--ink)}.empty p{font-size:.87rem;margin-bottom:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.87rem}th{font-weight:500;color:var(--muted);text-align:left;padding:11px 12px;background:#f7f8f4;font-size:.75rem}td{padding:14px 12px;border-bottom:1px solid #ecf0e9;vertical-align:top}tr:last-child td{border-bottom:0}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.actions button,.actions a{font-size:.82rem}.actions a{padding:10px 13px;border:1px solid var(--line);border-radius:8px;text-decoration:none}.checklist{list-style:none;padding:0;margin:0}.checklist li{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #eef1eb}.checklist li:last-child{border:0}.check{background:var(--light);border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-size:.8rem;flex-shrink:0}.code{font-family:Consolas,monospace;font-size:.83rem;word-break:break-word}.run-body{white-space:pre-wrap;padding:20px;background:#f7f8f4;line-height:1.65;border-radius:9px;max-height:400px;overflow:auto}.stat-line{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}#notice{position:fixed;right:24px;bottom:24px;max-width:500px;padding:16px 22px;border-radius:10px;background:var(--ink);color:white;z-index:20;box-shadow:0 6px 25px #0002}#notice.error{background:#963e3e}[hidden]{display:none!important}@media(max-width:1050px){main{padding:30px 25px}.workspace{grid-template-columns:205px 1fr}.grid-two{grid-template-columns:1fr}.gate-intro h1{font-size:2.5rem}}@media(max-width:700px){.gate{grid-template-columns:1fr}.gate-intro{padding:25px}.gate-intro .brand{margin-bottom:25px}.gate-intro h1{font-size:2rem}.local-note{margin-top:15px}.gate-panel{padding:30px}.workspace{display:block}aside{position:static;width:auto;height:auto;padding:20px}aside nav{display:flex;flex-wrap:wrap;margin-top:15px}nav a{padding:9px;font-size:.8rem}.nav-label{display:none}.aside-bottom{padding:8px 10px 0}.aside-bottom #identity{padding-top:8px}.cards{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.lead{align-items:flex-start;flex-direction:column}header{align-items:flex-start;gap:12px}header .pill{font-size:.6rem}main{padding:25px 18px}h1{font-size:1.7rem}}


.discussion{max-height:440px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:20px;background:var(--paper)}.discussion-message{padding:14px 18px;background:white;border-radius:10px;margin-bottom:12px;max-width:90%}.discussion-message.from-user{margin-left:auto;background:var(--light)}.discussion-message strong{font-size:.75rem;color:var(--muted)}.discussion-message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}
.signature-preview{display:block;max-width:min(100%,360px);max-height:180px;object-fit:contain;border:1px solid #d9dfd9;border-radius:8px;padding:16px;background:#fff;margin:16px 0}

#identity.account-link{display:block;margin-top:16px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;text-decoration:none;overflow-wrap:anywhere}
#identity.account-link:hover,#identity.account-link.active{background:var(--light);color:var(--green)}
.account-link:focus-visible,.logout-button:focus-visible{outline:2px solid #7ead8e;outline-offset:3px}
.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:14px}
#company-switch-label{margin:0;font-size:.75rem;color:var(--muted)}
#company-switch{min-width:175px;margin-top:3px;padding:7px 9px;font-size:.85rem}
.company-grants{display:grid;gap:5px}.company-grants .checkbox-label{margin:0}
.logout-button{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;padding:9px;color:var(--green);background:transparent}
.logout-button:hover{color:var(--danger);background:#fbe6e4}
@media(max-width:700px){.header-actions{gap:8px;flex-wrap:wrap}.header-actions .pill{display:none}}
aside{overflow-y:auto}
/* Editable project hierarchy and immutable skill versions. */
.tree-preview { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 32rem; overflow: auto; padding: 1rem; background: #f5f7fa; border-radius: .5rem; font-size: .88rem; }
.tree-version { padding: 1rem 0; border-bottom: 1px solid #e4e8ed; }

/* Contact editor: native modal keeps keyboard focus inside the form. */
.contact-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);box-shadow:0 20px 70px #19373140;overflow-y:auto}
.contact-modal::backdrop{background:rgb(15 35 28 / 45%)}
.user-edit-button{display:inline-grid;place-items:center;width:36px;height:36px;padding:0;font-size:1.2rem;color:var(--green)}
.contact-modal .panel-head{gap:16px}.contact-modal .panel-head h2{margin-bottom:0}
.contact-modal #contact-error{color:var(--danger);background:#fbe6e4;padding:12px;border-radius:8px;margin-top:16px}
.contact-modal #contact-csv{display:inline-block;margin-bottom:18px}.contact-modal #contact-csv[hidden]{display:none}
body:has(.contact-modal[open]){overflow:hidden}
.project-settings-button{font-size:1.5rem;min-width:48px;min-height:48px;padding:6px 12px}
.project-settings-modal{width:min(1180px,calc(100vw - 32px))}
.project-settings-modal>.panel{margin-bottom:16px}
.project-settings-modal>#project-tree-preview{margin-bottom:0}
.cdpgf-import-modal{width:min(1180px,calc(100vw - 32px))}
.cdpgf-preview-grid{display:grid;grid-template-columns:100px minmax(220px,2fr) 130px 90px 145px 145px auto;gap:8px;align-items:end;margin-bottom:8px}
.cdpgf-preview-grid label{margin:0}.cdpgf-preview-grid input{margin-top:4px}
.fee-row-actions{display:flex;gap:5px;flex-wrap:nowrap}.fee-row-actions button{padding:7px 9px}
.fee-item-grid [data-fixed],.fee-item-grid [data-quantity],.fee-item-grid [data-item-period]{grid-column:1/-1}
.fee-item-grid [data-quantity],.fee-item-grid [data-item-period]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.fee-item-grid [data-quantity]>div,.fee-item-grid [data-quantity]>label{min-width:0}
.fee-vat-control>label:first-child{margin-bottom:7px}.fee-vat-control .checkbox-label{margin-bottom:12px;font-size:.82rem}
#fee-item.is-editing [data-item-contract-duration]{grid-column:1/-1}
@media(max-width:600px){.fee-item-grid [data-quantity],.fee-item-grid [data-item-period]{grid-template-columns:1fr}}
.fee-export-link{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border:1px solid #24674f;border-radius:9px;background:#24674f;color:#fff;text-decoration:none;font-size:.85rem;font-weight:600;white-space:nowrap}.fee-export-link:hover{background:#1d533f;color:#fff}
@media(max-width:900px){.cdpgf-preview-grid{grid-template-columns:1fr 1fr}.cdpgf-preview-grid .wide-mobile{grid-column:1/-1}}
@media(max-width:600px){.contact-modal{padding:18px}.contact-modal .form-grid{grid-template-columns:1fr}.contact-modal .actions{flex-wrap:wrap}}

.contacts-table td{vertical-align:top;overflow-wrap:anywhere;min-width:110px}.contacts-table .contact-address{white-space:pre-line;min-width:190px}.contacts-table .contact-note{white-space:pre-wrap;min-width:180px;max-width:300px;margin:8px 0 0}.contacts-table th:last-child,.contacts-table td:last-child{position:sticky;right:0;background:var(--white)}

/* Keep checkbox controls beside their labels instead of full-width form inputs. */
.checkbox-label{display:flex;align-items:center;gap:10px;line-height:1.5}
.checkbox-label input[type="checkbox"]{display:inline-block;flex:0 0 auto;width:16px;height:16px;margin:0;padding:0;accent-color:var(--green)}
.payment-document-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:430px}
.payment-document-actions a{display:inline-flex;align-items:center;padding:10px 13px;border:1px solid var(--line);border-radius:9px;text-decoration:none;font-size:.82rem;font-weight:600;white-space:nowrap}
.payment-document-actions button{font-size:.82rem;white-space:nowrap}
.project-delete-button{background:var(--danger);border-color:var(--danger);color:#fff}
.project-delete-button:hover{background:#842f2f;color:#fff}
.lot-row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:390px}
.lot-row-actions button{white-space:nowrap;font-size:.82rem}
.payment-lot-modal{width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--white);color:var(--ink);box-shadow:0 20px 70px #19373140;overflow-y:auto}
.payment-lot-modal::backdrop{background:rgb(15 35 28 / 55%)}
body:has(.payment-lot-modal[open]){overflow:hidden}
.payment-lot-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.payment-lot-modal .lead{margin-bottom:18px}
.payment-lot-modal .panel{margin-bottom:16px}
@media(max-width:700px){.payment-lot-modal{padding:16px}.payment-lot-modal .form-grid{grid-template-columns:1fr}}
@media print {
  body { background: white !important; }
  #workspace > aside, #workspace header, #notice, .no-print { display: none !important; }
  #workspace { display: block !important; }
  #workspace main { margin: 0 !important; padding: 0 !important; }
  .fee-print { box-shadow: none; border: none; }
  .fee-print .table-wrap { overflow: visible; }
}

.fee-planning-grid tbody th:first-child,.fee-planning-grid thead th[rowspan]:first-child { position: sticky; left: 0; background: var(--panel, #fff); min-width: 220px; z-index: 1; }
.fee-planning-grid td, .fee-planning-grid th { min-width: 130px; }
.fee-planning-grid thead th:not(:last-child),.fee-planning-grid tbody tr:not(.fee-planning-group):not(.fee-insert-row)>td:not(:last-child),.fee-planning-grid tbody tr:not(.fee-planning-group):not(.fee-insert-row)>th:not(:last-child){border-right:1px dotted #d5ddd7}
.fee-planning-grid small { color: #18705b; white-space: nowrap; }
.fee-planning-grid .fee-planning-group th { background:#eaf2ed; color:#28554a; padding:12px; text-align:left; border-top:2px solid #b8d2c3; }
.fee-planning-grid .fee-planning-subtotal th, .fee-planning-grid .fee-planning-subtotal td { background:#f4f8f5; font-weight:600; border-bottom:2px solid #d3e1d7; }
.fee-planning-grid .fee-planning-total th, .fee-planning-grid .fee-planning-total td { background:#e4efe8; font-weight:700; }
.fee-planning-grid .fee-planning-group th:first-child { position:static; }
.fee-group-title { display:flex; align-items:center; gap:10px; }
.fee-group-title strong { flex:1; }
.fee-group-title button { background:#fff; color:#28554a; border:1px solid #b8d2c3; border-radius:7px; padding:5px 9px; cursor:pointer; }
.fee-group-title button[data-fee-edit-group] { order:-1; flex:none; }
.fee-planning-item th { text-align:left; font-weight:500; }
.fee-planning-item th small { display:block; margin-top:4px; font-size:.74rem; color:#62756c; white-space:normal; font-weight:400; }
.fee-planning-item td.fee-realization { background:#fff2dc; }
.fee-planning-item td small { display:block; margin-top:4px; }
.fee-realization-key { display:inline-block; width:15px; height:15px; margin-right:4px; vertical-align:-3px; background:#fff2dc; border:1px solid #eacb97; border-radius:4px; }
.fee-plan-value { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.fee-billed-check { display:inline-grid; place-items:center; width:17px; height:17px; border-radius:50%; background:#2f8b59; color:white; font-size:.7rem; font-weight:700; cursor:help; }
.fee-billed-check.is-pending { background:#c77724; }
.fee-preparation-dialog { width:min(1000px,calc(100vw - 32px)); }
.fee-preparation-dialog .review-filters { grid-template-columns:repeat(2,minmax(0,220px)); margin-bottom:20px; }
.fee-preparation-dialog .cards { gap:10px; margin-bottom:16px; }
.fee-preparation-dialog .card { padding:12px 16px; }
.fee-preparation-dialog .card .number { font-size:1.35rem; margin:4px 0; }
.fee-preparation-dialog .review-affair summary { padding:12px 16px; }
@media(max-width:600px) { .fee-preparation-dialog .review-filters { grid-template-columns:1fr; } }
.fee-planning-item .fee-row-actions { display:flex; gap:4px; margin-top:7px; }
.fee-planning-item .fee-row-actions button { padding:4px 7px; min-width:26px; }
.fee-planning-item .fee-row-actions .fee-drag-handle { cursor:grab; color:#28554a; background:#eaf2ed; touch-action:none; }
.fee-planning-item .fee-row-actions .fee-drag-handle:active { cursor:grabbing; }
.fee-planning-item.drag-source { opacity:.55; }
.fee-planning-item .fee-row-actions button.danger { color:#b32630; border-color:#e2b8bc; }
.fee-insert-row td { height:31px; min-width:0; padding:2px 9px!important; background:#f3faf5; border:0; }
.fee-insert-row td:first-child { position:sticky; left:0; z-index:2; min-width:220px; }
.fee-insert-row td:first-child::after { content:""; position:absolute; left:43px; right:0; top:50%; border-top:1px dashed #8ac5a2; }
.fee-insert-line { display:block; width:100%; border-top:1px dashed #8ac5a2; }
.fee-insert-row button { position:relative; z-index:1; display:grid; place-items:center; width:25px; height:25px; padding:0; border:1px solid #79b992; border-radius:50%; background:#fff; color:#236547; font-size:1.15rem; line-height:1; }
.fee-insert-row:hover td,.fee-insert-row:focus-within td,.fee-insert-row.drag-target td { background:#def3e5; }
.fee-insert-row:hover .fee-insert-line,.fee-insert-row:focus-within .fee-insert-line,.fee-insert-row.drag-target .fee-insert-line { border-top:2px solid #3b9b64; }
.fee-insert-row:hover td:first-child::after,.fee-insert-row:focus-within td:first-child::after,.fee-insert-row.drag-target td:first-child::after { border-top:2px solid #3b9b64; }
.fee-insert-row.drag-target button { background:#2f8b59; color:#fff; }
#fee-plan-months { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; max-height: 42vh; overflow-y: auto; }
#fee-plan-months .fee-plan-month{min-width:0;margin:0;padding:8px 10px;border:1px solid #e1e8e0;border-radius:8px}
#fee-plan-months .fee-plan-month input{margin-top:6px}
#fee-plan-months .fee-plan-month-inactive{background:#f0f2ef;border-color:#e1e5e0;color:#75817a}
#fee-plan-months .fee-plan-month-inactive small{display:block;margin-top:7px;color:#75817a;font-weight:400}
#fee-plan-balance { font-weight: 600; }
.fee-realization-editor { margin:14px 0 20px; padding:16px; background:#fffaf2; border:1px solid #ead8b8; border-radius:10px; }
.fee-realization-editor .panel-head { margin-bottom:8px; }
.fee-realization-editor h3,.fee-realization-editor p { margin-bottom:4px; }
.fee-realization-row { display:grid; grid-template-columns:1fr 1fr auto; gap:12px; align-items:end; }
.fee-realization-row label { margin:0 0 10px; }
.fee-realization-row button { margin-bottom:10px; }
@media(max-width:600px) { .fee-realization-row { grid-template-columns:1fr 1fr; }.fee-realization-row button { grid-column:1/-1; justify-self:start; } }

/* Monthly review: a focused work list and a readable invoice document. */
.review-filters { display:grid; grid-template-columns:180px minmax(190px,1fr) minmax(240px,1.5fr); gap:20px; align-items:end; }
.review-filters label { margin:0; }
.review-affair { padding:0; overflow:hidden; }
.review-affair summary { display:flex; gap:20px; align-items:center; cursor:pointer; padding:22px 26px; list-style:none; }
.review-affair summary::after { content:'+'; font-size:24px; color:var(--green); }
.review-affair[open] summary::after { content:'−'; }
.review-affair summary>div { flex:1; }
.review-affair small { display:block; margin-top:6px; color:var(--muted); font-weight:400; }
.review-state { background:#eef3ed; color:#28554a; padding:6px 12px; border-radius:20px; font-size:.76rem; white-space:nowrap; }
.review-content { padding:0 26px 24px; border-top:1px solid var(--line); }
.review-content .actions { margin-bottom:20px; }
.review-content input[type=checkbox] { width:18px; height:18px; accent-color:var(--green); }
.review-content input[data-review-amount] { min-width:130px; max-width:170px; text-align:right; margin:0; }
.review-footer { display:flex; flex-wrap:wrap; align-items:end; gap:18px; padding-top:20px; }
.review-footer label { margin:0; }
.review-footer [data-review-total] { flex:1; min-width:200px; font-weight:600; padding:12px 0; }
.review-error { color:var(--danger); }
.fee-print { max-width:960px; margin:0 auto 24px; padding:38px 44px 44px; border-top:5px solid #28554a; background:white; }
.invoice-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:30px; margin:26px 0 30px; padding-bottom:22px; border-bottom:1px solid #dce6dc; }
.invoice-eyebrow { font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; color:#28554a; }
.invoice-title { text-align:right; }
.invoice-title h2 { font-size:2.1rem; letter-spacing:-.04em; margin:0 0 7px; }
.invoice-ref { display:block; font-size:1rem; letter-spacing:.02em; color:#28554a; }
.invoice-address { white-space:pre-line; color:#56645e; line-height:1.65; margin:12px 0 0; }
.invoice-parties { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:18px; margin-bottom:32px; }
.invoice-client,.invoice-meta { min-width:0; padding:18px 20px; background:#f6f8f5; border-radius:10px; }
.invoice-client { text-align:right; }
.invoice-client h3 { margin:12px 0 8px; font-size:1.15rem; }
.invoice-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 15px; align-content:start; }
.invoice-meta>div { min-width:0; }
.invoice-meta span { display:block; margin-bottom:5px; color:#68776e; font-size:.73rem; }
.invoice-meta strong { display:block; font-size:.86rem; line-height:1.4; overflow-wrap:anywhere; }
.invoice-meta-period { grid-column:1/-1; padding:8px 0; border-top:1px solid #dce6dc; border-bottom:1px solid #dce6dc; }
.invoice-lines th { background:white; border-bottom:2px solid #28554a; text-transform:uppercase; letter-spacing:.05em; }
.invoice-lines td { padding-top:17px; padding-bottom:17px; }
.invoice-lines td:last-child,.invoice-lines th:last-child { text-align:right; white-space:nowrap; }
.invoice-lines { table-layout:fixed; width:100%; }
.invoice-lines th:first-child,.invoice-lines td:first-child { width:12%; white-space:pre-line; overflow-wrap:anywhere; }
.invoice-lines .invoice-number{text-align:right;white-space:nowrap}.invoice-lines th:nth-child(2),.invoice-lines td:nth-child(2){width:46%;white-space:pre-line;overflow-wrap:anywhere}.invoice-lines th:nth-child(n+3),.invoice-lines td:nth-child(n+3){width:14%}
.invoice-lines .invoice-vat-note{font-size:.73rem;color:#7b8981}
.invoice-sections{overflow-x:auto}.invoice-section-block{min-width:620px;margin-bottom:18px}.invoice-section-block h3{margin:0;padding:14px 12px;background:#eef3ed;color:#28554a;font-size:.77rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.invoice-section-block .invoice-lines{margin:0}.invoice-section-block .invoice-lines+.invoice-lines{margin-top:14px}
.invoice-kind-heading{margin:16px 0 5px;padding:0 12px;color:#65766c;font-size:.76rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.invoice-section-block h3+.invoice-kind-heading{margin-top:14px}
.invoice-lines-fixed th:nth-child(2),.invoice-lines-fixed td:nth-child(2){width:32%}.invoice-lines-fixed th:nth-child(n+3),.invoice-lines-fixed td:nth-child(n+3){width:14%}.invoice-lines-fixed th.invoice-number{white-space:normal;line-height:1.35}.invoice-lines-fixed td strong{display:block}.invoice-lines-fixed td small{margin-top:5px}.invoice-subtotal{display:flex;justify-content:space-between;gap:16px;padding:12px;background:#f8faf7;border-bottom:2px solid #d3e1d7;font-size:.85rem;font-weight:600}.invoice-subtotal strong{white-space:nowrap}
.invoice-lines-fixed .invoice-subtotal-row th,.invoice-lines-fixed .invoice-subtotal-row td{background:#f8faf7;border-top:1px solid #d3e1d7;border-bottom:2px solid #d3e1d7;padding:12px;font-size:.82rem;font-weight:700}.invoice-lines-fixed .invoice-subtotal-row th{text-transform:none;letter-spacing:0;color:var(--ink)}.invoice-lines-fixed .invoice-subtotal-row td{text-align:right;white-space:nowrap}
.invoice-lines-fixed .invoice-subtotal-row small{color:#69776f;font-weight:400}
.invoice-bottom { display:flex; justify-content:flex-end; margin-top:28px; }
.invoice-totals { width:min(100%,430px); }
.invoice-totals>div { display:flex; justify-content:space-between; gap:20px; padding:12px 0; border-bottom:1px solid #e3e9e3; }
.invoice-totals small { display:block; font-size:.72rem; color:#69776f; margin-top:5px; }
.invoice-totals .invoice-grand-total { background:#28554a; color:white; border-radius:9px; padding:18px; margin-top:12px; font-size:1.1rem; }
@media(max-width:800px) { .review-filters { grid-template-columns:1fr; }.review-affair summary { flex-wrap:wrap; padding:18px; }.review-affair summary>div { flex-basis:100%; }.review-content { padding:0 16px 20px; }.fee-print { padding:24px; }.invoice-parties { grid-template-columns:1fr; }.invoice-heading { gap:15px; } }
@media print { @page { size:A4; margin:15mm; }.fee-print { max-width:none; padding:0; margin:0; border-top:4px solid #28554a; print-color-adjust:exact; -webkit-print-color-adjust:exact; }.invoice-heading,.invoice-parties,.invoice-bottom,tr { break-inside:avoid; }.invoice-parties { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }.invoice-sections{overflow:visible}.invoice-section-block{min-width:0}.invoice-section-block h3,.invoice-kind-heading{break-after:avoid}.invoice-lines thead { display:table-header-group; }.invoice-lines td { padding:12px; } }
.review-filters { grid-template-columns:160px 160px minmax(180px,1fr) minmax(200px,1fr); }
.invoice-lines small { display:block; margin-top:7px; color:#69776f; }
@media(max-width:1100px) { .review-filters { grid-template-columns:1fr 1fr; } }
@media(max-width:600px) { .review-filters { grid-template-columns:1fr; } }
.review-cdpgf th { background:#eaf2ed; color:#28554a; padding:13px 12px; text-align:left; border-top:2px solid #b8d2c3; }
.review-cdpgf th small { display:block; margin-top:3px; font-weight:400; color:#865e3b; }
.review-cdpgf-subtotal th,.review-cdpgf-subtotal td { background:#f5f8f5; font-weight:600; border-bottom:2px solid #d3e1d7; }
.review-cdpgf-subtotal td:last-child { text-align:right; }
.fee-summary{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.fee-summary .card{padding:20px}.fee-summary .number{font-size:1.65rem}.fee-summary small{display:block;color:var(--muted);font-size:.75rem}.panel-head>label{flex:1;min-width:220px}.panel-head .actions{flex-wrap:wrap}

@media(min-width:1100px){.fee-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.fee-summary .card{padding:16px}.fee-summary .number{font-size:1.4rem}}

.contact-company-picker{display:flex;align-items:center;gap:8px}.contact-company-picker select{flex:1;min-width:0}.contact-company-picker button{flex:none;font-size:1.3rem;padding:6px 12px}

/* Shared directory tables: identities, relationship badges and readable row states. */
.directory-table{border-collapse:separate;border-spacing:0 7px}
.directory-table th{background:transparent;padding:10px 14px;font-size:.72rem;letter-spacing:.045em;text-transform:uppercase}
.directory-table td{background:#f7f9f6;border-top:1px solid #e8eee6;border-bottom:1px solid #e8eee6;padding:16px 14px;vertical-align:middle;transition:background .15s ease}
.directory-table tr:last-child td{border-bottom:1px solid #e8eee6}
.directory-table td:first-child{border-left:1px solid #e8eee6;border-radius:12px 0 0 12px}
.directory-table td:last-child{border-right:1px solid #e8eee6;border-radius:0 12px 12px 0}
.directory-table tbody tr:hover td,.directory-table tbody tr:focus-within td{background:#edf4ed}
.directory-identity{display:flex;align-items:center;gap:12px;min-width:170px}
.directory-identity strong{display:block;line-height:1.4;color:var(--ink)}
.directory-identity small{display:block;margin-top:3px;color:var(--muted);font-size:.72rem}
.directory-avatar{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:14px;font-size:.85rem;font-weight:700;letter-spacing:.04em}
.directory-avatar.tone-0{background:#dcece1;color:#245c43}.directory-avatar.tone-1{background:#e1e9f7;color:#345480}.directory-avatar.tone-2{background:#f3e7d4;color:#775329}.directory-avatar.tone-3{background:#ece3f1;color:#6c477d}
.directory-tags{display:flex;flex-wrap:wrap;gap:6px;min-width:120px}
.directory-chip{display:inline-block;padding:5px 9px;border-radius:8px;background:#e6eee5;color:#35583d;font-size:.75rem;line-height:1.5;overflow-wrap:anywhere}
.directory-empty{color:var(--muted);font-size:.78rem}
.directory-table td button{white-space:nowrap;border-radius:20px;background:#fff;padding:8px 13px;font-size:.75rem}
.contacts-table.directory-table td:last-child{background:#f7f9f6}
.contacts-table.directory-table tr:hover td:last-child,.contacts-table.directory-table tr:focus-within td:last-child{background:#edf4ed}
@media(prefers-reduced-motion:reduce){.directory-table td{transition:none}}

.fee-calendar-grid thead th:not(:last-child),.fee-calendar-grid tbody tr:not(.fee-planning-group):not(.fee-insert-row)>td:not(:last-child),.fee-calendar-grid tbody tr:not(.fee-planning-group):not(.fee-insert-row)>th:not(:last-child){border-right:1px dotted #d5ddd7}
.fee-calendar-grid thead .fee-calendar-year{text-align:center;background:#eaf2ed;color:#28554a;border-bottom:1px solid #d5ddd7;font-weight:600}
.fee-calendar-grid thead tr:nth-child(2) th{text-align:center;white-space:nowrap}
.fee-calendar-grid td{min-width:130px}

.fee-calendar-grid colgroup.fee-year-boundary{border-right:2px solid #6b897c}
.fee-calendar-grid thead th.fee-calendar-year:not(:last-child){border-right:2px solid #6b897c}

.invoice-seller{min-width:0;overflow-wrap:anywhere}.invoice-company-logo{display:block;max-width:180px;max-height:85px;object-fit:contain;object-position:left center;margin-bottom:14px}.invoice-company-detail{margin:5px 0 0;color:#56645e;font-size:.85rem;line-height:1.5}

.invoice-seller>.invoice-eyebrow{display:block;font-size:1.25rem;font-weight:700;letter-spacing:.02em;line-height:1.35}

.fee-invoice-table{table-layout:fixed;min-width:860px;width:100%}.fee-invoice-table th,.fee-invoice-table td{padding:12px 8px;overflow-wrap:anywhere}.fee-invoice-table th:first-child,.fee-invoice-table td:first-child{width:18%;min-width:0}.fee-invoice-table th:nth-child(2){width:14%}.fee-invoice-table th:nth-child(3){width:10%}.fee-invoice-table th:nth-child(4){width:9%}.fee-invoice-table td:nth-child(n+5):nth-child(-n+7){white-space:nowrap;overflow-wrap:normal}.fee-invoice-table button{padding:8px;font-size:.85rem}.fee-invoice-overdue td{background:#fcebea}.fee-invoice-overdue td:first-child{box-shadow:inset 3px 0 #c86565}
.fee-invoice-table th:last-child,.fee-invoice-table td:last-child{width:54px;min-width:54px;text-align:center}
.fee-pdf-download{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--ink);text-decoration:none}.fee-pdf-download:hover{background:var(--light)}.fee-pdf-download:focus-visible{outline:2px solid var(--green);outline-offset:2px}.fee-pdf-download svg{width:18px;height:18px}

.invoice-signature{max-width:35%;max-height:120px;object-fit:contain;align-self:center;margin-right:auto}

.workload-controls,.workload-legend,.workload-legend-item,.workload-row-actions{display:flex;align-items:center;gap:9px}.workload-controls{flex:none}.workload-controls button{padding:6px 10px}.workload-legend{flex-wrap:wrap;gap:12px 20px;margin:0 0 18px;font-size:.8rem}.workload-legend-item i{display:inline-block;width:17px;height:17px;border-radius:4px}.workload-hatch,.workload-table td.workload-cell.absent:not(.replaced){background-color:#e5e9e4!important;background-image:repeating-linear-gradient(135deg,transparent 0 5px,#84948b 5px 8px)!important}.workload-scroll{border:1px solid var(--line);border-radius:9px;max-height:70vh}.workload-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.workload-table th,.workload-table td{border-right:1px solid #e2e9e1;border-bottom:1px solid #e2e9e1;padding:0}.workload-table thead th{height:28px;min-width:22px;text-align:center;font-size:.67rem;position:sticky;top:0;z-index:2;background:#f3f7f0}.workload-table thead tr:nth-child(2) th{top:28px}.workload-table .workload-affair-head{min-width:235px;text-align:left;padding:8px;z-index:4}.workload-table tbody th{position:sticky;left:0;z-index:1;min-width:235px;max-width:235px;padding:9px 11px;background:#fff;font-size:.8rem}.workload-table tbody th small{display:block;color:var(--muted);font-weight:400;margin-top:3px}.workload-table td{min-width:22px;width:22px;height:35px}.workload-empty{background:#fafbf8}.workload-affair-list{border:1px solid var(--line);border-radius:9px;margin-bottom:18px}.workload-affair-list legend{padding:0 7px;font-weight:600}.workload-affair-list label{display:flex;align-items:center;gap:10px;margin:8px 0;font-weight:400}.workload-affair-list input{width:auto;margin:0}.workload-mail{font-size:.8rem;margin-top:8px}.workload-mail pre{white-space:pre-wrap;font:inherit;background:#f4f6f2;padding:10px}.workload-row-actions{flex-wrap:wrap}.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}

.workload-table thead tr:nth-child(3) th{top:56px}
.workload-table thead .workload-year{background:#e6f0e8;color:#28554a;font-weight:700;font-size:.78rem;border-bottom:2px solid #6b897c}
.workload-table thead tr:nth-child(2) th{background:#eff5ef;font-size:.7rem;text-transform:capitalize;border-bottom:1px solid #b8cabd}
.workload-table thead tr:nth-child(3) th{min-width:25px;font-variant-numeric:tabular-nums}



.workload-table .workload-person-row th{background:#eaf1eb;text-align:left;padding:5px 10px;font-size:.78rem;height:27px;border-bottom:1px solid #c8d8cc}
.workload-person-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:8px;vertical-align:-1px}
.workload-table .workload-person-row small{font-weight:400;color:var(--muted)}
.workload-table .workload-affair-row th{padding:3px 10px;font-size:.75rem;height:24px;line-height:1.2}
.workload-table .workload-affair-row td{height:24px}

.workload-scroll{overflow-x:auto;overflow-y:auto;position:relative}
.workload-table .workload-affair-head{position:sticky;left:0;top:0;z-index:5;background:#f3f7f0}
.workload-table .workload-person-row th{position:sticky;left:0;z-index:3;min-width:235px;max-width:235px;background:#eaf1eb}
.workload-table .workload-person-row td{background:#eaf1eb;border-bottom:1px solid #c8d8cc}
.workload-table .workload-affair-row th{position:sticky;left:0;z-index:2;background:#fff}
.workload-tone-0{background-color:#327e68}.workload-tone-1{background-color:#5577b9}
.workload-tone-2{background-color:#b1744a}.workload-tone-3{background-color:#8a65a1}
.workload-tone-4{background-color:#b45173}.workload-tone-5{background-color:#66853a}
.workload-tone-6{background-color:#ad8650}.workload-tone-7{background-color:#3e899c}
.workload-tone-none{background-color:#7b8981}
.workload-table td.workload-cell.absent.replaced{background-image:repeating-linear-gradient(135deg,transparent 0 5px,#fff9 5px 8px)!important}
.dashboard-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.project-fees-total th,.project-fees-total td{background:var(--light);border-top:2px solid var(--green);font-weight:700;color:var(--ink)}
@media(max-width:1050px){.dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.dashboard-cards{grid-template-columns:1fr}}

/* Folder tabs share their palette with the content below them. */
.folder-theme-blue{--folder-accent:#5689dc;--folder-ink:#2454a0;--folder-soft:#edf4ff;--folder-line:#bfd4fa}
.folder-theme-mint{--folder-accent:#3a9d79;--folder-ink:#18694d;--folder-soft:#eaf8f1;--folder-line:#a9dfc8}
.folder-theme-violet{--folder-accent:#9472d4;--folder-ink:#69449c;--folder-soft:#f4efff;--folder-line:#d9c8f5}
.folder-theme-amber{--folder-accent:#d29643;--folder-ink:#865514;--folder-soft:#fff6e9;--folder-line:#efd4ac}
.folder-tabs{display:flex;align-items:flex-end;gap:5px;margin:0 0 -1px;padding:0 16px;position:relative;z-index:1;overflow-x:auto;scrollbar-width:thin}
.folder-tabs :is([role="tab"],a){display:flex;align-items:center;flex:none;min-height:44px;margin:0;padding:10px 18px;border:1px solid var(--folder-line);border-bottom-color:var(--folder-accent);border-radius:12px 12px 0 0;background:var(--folder-soft);color:var(--folder-ink);font-size:.88rem;font-weight:600;text-decoration:none;box-shadow:none;white-space:nowrap}
.folder-tabs :is([role="tab"],a):hover{background:#fff;color:var(--folder-ink)}
.folder-tabs :is([role="tab"][aria-selected="true"],a[aria-current="page"]){position:relative;z-index:2;background:#fff;border-color:var(--folder-accent);border-bottom-color:#fff;color:var(--folder-ink);font-weight:700}
.folder-tabs :is([role="tab"],a):focus-visible{outline:2px solid var(--folder-accent);outline-offset:-4px}
.folder-panel{min-width:0;padding:20px;border:1px solid var(--folder-accent);border-radius:12px;background:#fff;box-shadow:0 5px 22px #1937310a}
.folder-panel:focus-visible{outline:2px solid var(--folder-accent);outline-offset:3px}
.folder-panel h2,.folder-panel .panel-head h2{color:var(--folder-ink)}
.folder-panel .panel{border-color:var(--folder-line)}
.folder-panel th{background:var(--folder-soft);color:var(--folder-ink)}
.folder-panel .info:not(.warn){background:var(--folder-soft)}
@media(max-width:700px){.folder-tabs{padding:0 6px}.folder-tabs :is([role="tab"],a){padding:10px 12px}.folder-panel{padding:14px}}

.invoice-meta-contract { grid-column:1/-1; }
.invoice-payment-terms { width:100%; margin-top:24px; }
.invoice-payment-terms h3 { color:#244d42; font-size:14px; border-bottom:1px solid #244d42; padding-bottom:6px; margin:18px 0 8px; }
.invoice-payment-terms p { font-size:12px; line-height:1.5; margin:5px 0; }
.invoice-legal-footer { margin-top:28px; padding-top:10px; border-top:1px solid #244d42; text-align:center; color:#56645e; font-size:11px; }

.invoice-client { text-align:right; }

.invoice-client-wrapper { min-width:0; width:100%; justify-self:end; }
.invoice-client-label { display:block; font-size:.72rem; font-style:italic; color:#56645e; margin-bottom:5px; }
.invoice-client-wrapper .invoice-client { border:1px solid #dce6dc; }
.invoice-client-wrapper .invoice-client h3 { margin-top:0; }

.invoice-parties { align-items:stretch; }
.invoice-client-wrapper { display:flex; flex-direction:column; }
.invoice-client-wrapper .invoice-client { flex:1; }
.invoice-parties .invoice-meta { margin-top:calc(.72rem * 1.5 + 5px); }
.invoice-client-label { line-height:1.5; }

.invoice-heading .invoice-title { align-self:end; }

.commercial-lines input{min-width:90px;width:100%}.commercial-lines [data-line-field="label"]{min-width:200px}.commercial-description{white-space:pre-wrap}.commercial-totals{text-align:right;margin:24px 0}.commercial-quote table{width:100%}
.commercial-lines{table-layout:fixed;width:100%;min-width:900px}.commercial-lines .commercial-code{width:55px}.commercial-lines .commercial-quantity{width:65px}.commercial-lines .commercial-unit{width:125px}.commercial-lines .commercial-rate{width:75px}.commercial-lines .commercial-price{width:95px}.commercial-lines .commercial-total{width:110px}.commercial-lines .commercial-remove{width:40px}.commercial-lines input,.commercial-lines select{min-width:0;width:100%;padding:7px;margin-top:0}.commercial-lines [data-line-field="label"]{min-width:0}.commercial-lines th,.commercial-lines td{padding:9px 5px}.commercial-lines [data-commercial-line] td{vertical-align:middle}.commercial-lines .commercial-insert td:first-child{min-width:0;position:relative}.commercial-internal{border-top:1px solid #d9e2dd;margin-top:16px;padding-top:8px}.commercial-preview-dialog{width:min(1100px,95vw);max-width:95vw;height:90vh}.commercial-preview-dialog iframe{border:0;width:100%;height:calc(100% - 65px)}#commercial-related p{margin:8px 0}

.commercial-preview-pages{height:calc(100% - 65px);overflow:auto;background:#e8ece9;padding:16px}.commercial-preview-pages img{display:block;width:100%;max-width:850px;height:auto;margin:0 auto 16px;box-shadow:0 2px 8px #0002}

.commercial-dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}.commercial-dashboard-cards a.card{text-decoration:none;color:inherit}.commercial-urgent{background:#fff4df;border:2px solid #d68a18;color:#714d12}.commercial-overdue{background:#fcebea;border:2px solid #b32630;color:#84252b}.commercial-deadline-alert{padding:16px 20px;border-radius:10px;margin-top:18px}.commercial-deadline-alert h3{margin-top:0}.commercial-deadline-alert li{margin:10px 0}.commercial-deadline-alert a{color:inherit}@media(max-width:700px){.commercial-dashboard-cards{grid-template-columns:1fr}}

.dashboard-overview{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:start;margin-bottom:20px}.dashboard-overview .panel{margin-bottom:0;min-width:0}.dashboard-team{display:grid;gap:20px;min-width:0}.dashboard-finance .dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-finance .card:last-child{grid-column:1/-1}.dashboard-leave-cards{display:grid;gap:12px}.dashboard-person{color:#fff;text-decoration:none}.dashboard-person ul{padding-left:20px;margin-bottom:0}.dashboard-person li{margin-top:8px}.dashboard-person:hover{filter:brightness(.96)}@media(max-width:1050px){.dashboard-overview{grid-template-columns:1fr}}@media(max-width:700px){.dashboard-finance .dashboard-cards{grid-template-columns:1fr}}

.dashboard-overview .card{padding:16px}.dashboard-overview .card .number{font-size:1.7rem;margin:7px 0}.dashboard-overview .cards{gap:12px}.dashboard-finance .dashboard-cards{margin-bottom:0}.dashboard-overview .panel{padding:20px}.dashboard-overview h2{font-size:1.2rem;margin-bottom:16px}.dashboard-forecast{width:100%;min-width:0}

.commercial-lines tfoot th,.commercial-lines tfoot td{font-weight:700;font-size:.95rem;text-align:right;vertical-align:middle;background:#e7eee6;border-top:2px solid #9bb4a3;padding:13px 10px;color:var(--ink)}.commercial-lines tfoot [data-group-total]{white-space:nowrap}

.commercial-add-group-actions{margin-bottom:20px}

.commercial-pdf-view .commercial-preview-pages{height:auto;margin-top:16px}

.commercial-lines thead th:nth-child(n+3):nth-child(-n+7),.commercial-lines [data-commercial-line] td:nth-child(n+3):nth-child(-n+7){text-align:center}.commercial-lines [data-line-field="quantity"],.commercial-lines [data-line-field="unit"],.commercial-lines [data-line-field="unit_price"]{text-align:center}.commercial-lines tfoot [data-group-total]{text-align:center}
.report-work-overlay{position:fixed;inset:0;z-index:90;background:rgba(15,23,42,.58);display:grid;place-items:center}
.report-work-overlay[hidden]{display:none}
.report-work-card{max-width:480px;background:#fff;border-radius:16px;padding:2rem;text-align:center;box-shadow:0 16px 48px rgba(0,0,0,.24)}
.report-work-card small{display:block;color:#52635f;margin:0 0 1rem}
.report-work-card button{margin-top:.5rem}
.report-spinner{width:42px;height:42px;margin:0 auto 1rem;border:4px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:report-spin .8s linear infinite}
@keyframes report-spin{to{transform:rotate(360deg)}}
.report-pdf-label{display:inline-block;font-size:.85em;margin-top:.5rem}
.report-pdf-label input{max-width:180px}
#report-charter-rules{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:1rem}
#report-summary-dialog{width:min(720px,calc(100vw - 32px));max-height:85vh;overflow:auto;padding:28px}
#report-summary-content{line-height:1.65;overflow-wrap:anywhere}
#report-summary-content p{margin:0 0 1em;max-width:68ch}
.report-list{display:grid;gap:10px;margin-top:18px}
.report-item{border:1px solid #d7e2df;border-radius:12px;background:#fff;overflow:hidden}
.report-item[open]{border-color:#87b5a9;box-shadow:0 4px 14px #193b3620}
.report-item-head{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,1fr) minmax(140px,.8fr);gap:14px;align-items:center;padding:14px 18px;cursor:pointer;list-style:none}
.report-item-head::-webkit-details-marker{display:none}
.report-item-head::before{content:'▸';color:#236b58;position:absolute;margin-left:-12px}
.report-item[open] .report-item-head::before{content:'▾'}
.report-item-title small{display:block;color:#5b6773;margin-top:3px}
.report-item-scope{font-size:.86rem;color:#52635f}
.report-item-status{font-size:.86rem}
.report-item-body{padding:0 18px 18px;border-top:1px solid #ecf1ee}
#report-create-form textarea[name="plan"]{min-height:245px;line-height:1.45;resize:vertical}
.report-action-group{padding-top:16px}
.report-action-group>strong{display:block;margin-bottom:8px;color:#315d50}
.report-action-group .actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.report-action-group .report-pdf-label{margin:0}
@media(max-width:700px){.report-item-head{grid-template-columns:1fr;gap:6px}.report-item-status{justify-self:start}}
.report-model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0 22px}
.report-model-card{min-width:0;margin:0;padding:14px 16px;border:1px solid #dce2e9;border-radius:17px;background:#fff;box-shadow:0 7px 20px #102a4310}
.report-model-card legend{padding:0 5px;color:var(--ink);font-weight:700;font-size:.9rem}
.report-model-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:60px;text-align:center}
.report-model-icon,.report-model-refresh-icon{color:#8996a6;font-size:1.1rem;line-height:1}
.report-model-choice{min-width:0;flex:1}.report-model-choice strong{display:block;color:#2776e4;font-size:1.05rem}
.report-model-choice select{display:block;width:100%;max-width:100%;margin:2px 0 0;padding:3px 18px 3px 4px;border:0;background:transparent;color:#667180;text-align:center;text-align-last:center;font-size:.83rem;cursor:pointer}
.report-model-choice select:focus-visible{outline:2px solid #2f80fa;border-radius:6px}
.report-model-range{display:block;width:100%;height:24px;margin:10px 0 0;appearance:none;border-radius:99px;background:linear-gradient(to right,#2f80fa var(--progress,0%),#e6e8eb var(--progress,0%));cursor:pointer}
.report-model-range::-webkit-slider-thumb{appearance:none;width:27px;height:27px;border:1px solid #e7ebf0;border-radius:50%;background:white;box-shadow:0 1px 4px #172b4740}
.report-model-range::-moz-range-thumb{width:27px;height:27px;border:1px solid #e7ebf0;border-radius:50%;background:white;box-shadow:0 1px 4px #172b4740}
.report-model-range:focus-visible{outline:2px solid #2f80fa;outline-offset:3px}
.report-model-ticks{display:flex;justify-content:space-between;padding:0 12px;margin-top:-15px;pointer-events:none;position:relative}.report-model-ticks span{width:4px;height:4px;border-radius:50%;background:#aab2bb}
.report-model-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;margin-top:12px}.report-model-bottom small{color:#667180;font-size:.74rem}.report-model-bottom label{display:flex;align-items:center;gap:6px;color:#667180;font-size:.78rem;white-space:nowrap}.report-model-bottom select{width:auto;max-width:125px;margin:0;padding:5px 22px 5px 6px;font-size:.78rem}
@media(max-width:1050px){.report-model-grid{grid-template-columns:1fr}}
