*{box-sizing:border-box}
body{margin:0;background:#f5f7fb;color:#0f172a;font-family:Manrope,Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
.layout{min-height:100vh;display:grid;grid-template-columns:17rem minmax(0,1fr)}
.layout.is-collapsed{grid-template-columns:4.75rem minmax(0,1fr)}
.side{position:sticky;top:0;height:100vh;overflow:auto;background:#0b1220;color:#e5edf8;padding:1rem;border-right:1px solid #1e293b}
.brand{display:flex;align-items:center;justify-content:center;min-height:4.25rem}
.brand img{width:100%;height:auto;max-width:14.25rem;object-fit:contain}
.role{margin:.75rem 0 0;color:#94a3b8;font-size:.78rem;line-height:1.35;word-break:break-word}
.tenant-context{margin:.85rem 0 0;border:1px solid #263449;background:#111a2d;border-radius:8px;padding:.65rem .7rem}
.tenant-context span{display:block;color:#94a3b8;font-size:.68rem;font-weight:850;text-transform:uppercase}
.tenant-context strong{display:block;margin-top:.2rem;color:#fff;font-size:.88rem;word-break:break-word}
.nav{display:grid;gap:.25rem;margin-top:1.25rem}
.nav a,.logout,.toggle{width:100%;border:0;border-radius:8px;padding:.68rem .72rem;background:transparent;color:#cbd5e1;text-align:left;font:inherit;font-size:.88rem;font-weight:750;cursor:pointer}
.nav a.active,.nav a:hover,.logout:hover,.toggle:hover{background:#1e293b;color:#fff}
.toggle{margin-top:1rem;background:#172033;color:#f8fafc;text-align:center}
.short-label{display:none}
.layout.is-collapsed .side{padding:.85rem .55rem}
.layout.is-collapsed .side-label,.layout.is-collapsed .role,.layout.is-collapsed .tenant-context{display:none}
.layout.is-collapsed .short-label{display:inline}
.layout.is-collapsed .brand{justify-content:center}
.layout.is-collapsed .brand img{height:1.75rem;max-width:3rem}
.layout.is-collapsed .nav a,.layout.is-collapsed .logout{padding:.68rem .3rem;text-align:center}
.main{padding:1.75rem clamp(1rem,3vw,2.5rem);max-width:none;width:100%}
.page-head,.top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.breadcrumb{margin:0 0 .65rem;color:#64748b;font-size:.84rem;font-weight:800}
.eyebrow{margin:0 0 .25rem;color:#64748b;text-transform:uppercase;font-size:.74rem;font-weight:850;letter-spacing:.02em}
.title{margin:0;font-size:clamp(1.55rem,2vw,2rem);line-height:1.15}
.sub,.muted{color:#64748b;line-height:1.5}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;margin-top:1rem}
.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.panel,.metric,.card,.tenant,.filters,.empty{background:#fff;border:1px solid #dbe3ec;border-radius:8px;box-shadow:0 12px 30px rgba(15,23,42,.055)}
.panel,.card,.tenant,.metric{padding:1rem}
.panel{margin-top:1rem}
.panel h2,.card h2,.tenant h3{margin:0 0 .7rem;font-size:1rem}
.tenant p,.card p{margin:.4rem 0 0;color:#64748b;font-size:.9rem;line-height:1.45}
.tenants{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1rem}
.metric span,.fact span,.field label{display:block;color:#64748b;font-size:.74rem;text-transform:uppercase;font-weight:850}
.metric strong,.fact strong{display:block;margin-top:.25rem;font-size:1.25rem;word-break:break-word}
.actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.85rem;align-items:center}
.tenant-tabs{display:flex;gap:.35rem;flex-wrap:wrap;margin:1rem 0 1.2rem;border-bottom:1px solid #dbe3ec}
.tenant-tabs a{border:1px solid transparent;border-bottom:0;border-radius:8px 8px 0 0;padding:.68rem .85rem;color:#64748b;font-size:.86rem;font-weight:850;background:transparent}
.tenant-tabs a:hover{color:#0f172a;background:#f8fafc}
.tenant-tabs a.active{color:#0f172a;background:#fff;border-color:#dbe3ec;box-shadow:0 -8px 20px rgba(15,23,42,.035)}
.back{display:inline-flex;margin-bottom:.75rem;color:#475569;font-weight:850}
.btn,button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:#0f172a;color:#fff;padding:.62rem .82rem;font:inherit;font-size:.84rem;font-weight:850;line-height:1.2;cursor:pointer}
.btn:hover,button:hover{filter:brightness(1.05)}
.btn.orange,button.orange,.btn.primary,button.primary{background:#f97316;color:#fff}
.btn.dark,button.dark{background:#0f172a;color:#fff}
.btn.secondary,button.secondary{background:#475569;color:#fff}
.btn.light,button.light{background:#e2e8f0;color:#0f172a}
.btn.danger,button.danger{background:#fee2e2;color:#991b1b}
.btn.ghost,button.ghost{background:transparent;color:#475569;border:1px solid #cbd5e1}
button:disabled{opacity:.5;cursor:not-allowed}
.badge,.pill{display:inline-flex;align-items:center;border-radius:999px;background:#f1f5f9;color:#334155;padding:.24rem .55rem;font-size:.74rem;font-weight:850}
.badge.ok,.pill:not(.off),.ok{background:#ecfdf5;color:#047857}
.badge.warn,.warn{background:#fff7ed;color:#c2410c}
.badge.blocked,.blocked{background:#fee2e2;color:#b91c1c}
.notice,.alert{border-radius:8px;padding:.8rem .95rem;margin-top:1rem;font-weight:800}
.notice.ok,.alert.ok{background:#ecfdf5;color:#047857}
.notice.err,.alert.error{background:#fee2e2;color:#991b1b}
.notice.info{background:#eff6ff;color:#1d4ed8}
.table{width:100%;border-collapse:collapse}
.table th,.table td{border-bottom:1px solid #e2e8f0;padding:.78rem;text-align:left;font-size:.9rem;vertical-align:top}
.table th{color:#64748b;font-size:.72rem;text-transform:uppercase;font-weight:850}
.tenant-table td:first-child strong{display:block}
.tenant-table td:first-child span{display:block;margin-top:.2rem;color:#64748b;font-size:.84rem;line-height:1.35}
.table-actions{text-align:right;white-space:nowrap}
.issues{width:100%;border-collapse:collapse;margin-top:1rem}
.issues th,.issues td{border-bottom:1px solid #e2e8f0;padding:.55rem;text-align:left;font-size:.85rem}
.table-wrap{overflow:auto}
.field{display:grid;gap:.35rem;margin-top:.85rem}
.field input,.field select,.field textarea,.input,.select,.textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:.68rem .75rem;background:#fff;color:#0f172a;font:inherit}
.field textarea,.textarea{min-height:8rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem;line-height:1.55}
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) 10rem auto;gap:.75rem;align-items:end}
.edit{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.85rem}
.form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.module-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:1rem;margin-top:1rem}
.module-card{padding:1rem}
.module-card.is-basic{background:#f8fafc}
.module-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin-top:.85rem}
.module-summary .fact{border:1px solid #e2e8f0;border-radius:8px;padding:.65rem;background:#fff}
.module-compact-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.module-compact-form .wide{grid-column:1/-1}
.module-compact-form .checks{grid-column:1/-1}
.module-compact-form .actions{grid-column:1/-1;justify-content:flex-end}
.textarea{grid-column:span 2}
.module-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.module-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.module-plan-table{width:100%;min-width:1180px}
.module-plan-table tr.is-basic{background:#f8fafc}
.module-plan-table td:first-child strong{display:block}
.module-key{display:block;margin-top:.2rem;color:#64748b;font-size:.8rem}
.module-plan-table .badges{margin-top:.45rem}
.module-plan-table th:nth-child(1){width:19rem}
.module-plan-table th:nth-child(2){width:7.5rem}
.module-plan-table th:nth-child(3){width:9rem}
.module-plan-table th:nth-child(4){width:8rem}
.module-plan-table th:nth-child(5){width:6rem}
.module-plan-table th:nth-child(6){width:13rem}
.module-plan-table th:nth-child(7){width:12rem}
.module-plan-table th:nth-child(8){width:8rem}
.input.compact,.select.compact{padding:.52rem .55rem;min-width:6.8rem}
.input.compact.tiny{min-width:4.4rem}
.switch-check,.mini-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:850;color:#334155}
.switch-check input,.mini-check input{width:1rem;height:1rem;accent-color:#f97316}
.module-details-row td{background:#fbfdff;padding-top:.45rem;padding-bottom:.85rem}
.module-details-row details{border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:.7rem .85rem}
.module-details-row summary{cursor:pointer;color:#475569;font-weight:850}
.module-details-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(18rem,.8fr);gap:.85rem;margin-top:.8rem}
.module-details-grid .textarea{grid-column:auto;min-height:5.8rem}
.module-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:.75rem;margin-top:1rem}
.module-catalog article{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:.85rem}
.module-catalog strong{display:block}
.module-catalog span:not(.badge){display:block;margin-top:.2rem;color:#64748b;font-size:.82rem}
.module-config-table{width:100%;min-width:1120px}
.module-config-table td:first-child strong{display:block}
.compact-checks{max-height:7.2rem;overflow:auto;align-content:flex-start}
.compact-checks .check{padding:.3rem .42rem;font-size:.76rem}
.compact-textarea{min-height:3.2rem;margin-top:.38rem;font-size:.76rem}
.inline-actions{display:flex;gap:.35rem;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.tenant-workspace{display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:1rem;margin-top:1rem}
.tenant-task{display:flex;flex-direction:column;align-items:flex-start;min-height:13rem}
.tenant-task h2{margin:.75rem 0 .35rem;font-size:1.2rem}
.tenant-task .actions{margin-top:auto}
.tenant-dashboard{width:100%}
.tenant-status-list{display:grid;gap:.6rem;margin-top:1rem}
.tenant-status-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:.85rem .95rem}
.tenant-status-row strong{display:block}
.tenant-status-row span:not(.badge){display:block;margin-top:.2rem;color:#64748b;font-size:.86rem;line-height:1.4}
.tenant-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.8rem;margin:1rem 0 0}
.tenant-info-grid div{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:.85rem}
.tenant-info-grid dt{color:#64748b;font-size:.72rem;text-transform:uppercase;font-weight:850}
.tenant-info-grid dd{margin:.25rem 0 0;font-weight:850;word-break:break-word}
.workflow-panel{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.workflow-panel h2{margin:0 0 .25rem}
.workflow-panel .actions{margin-top:0;justify-content:flex-end}
.publication-status{position:sticky;top:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid #fed7aa;border-radius:8px;background:#fff7ed;box-shadow:0 14px 30px rgba(15,23,42,.08)}
.publication-status strong{display:block;margin-top:.25rem;color:#0f172a}
.publication-status p{margin:.2rem 0 0}
.guide-list{margin:.75rem 0 0;padding-left:1.25rem;color:#475569;line-height:1.55}
.guide-list li{margin:.35rem 0}
.backoffice-loading{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:rgba(15,23,42,.42);backdrop-filter:blur(3px)}
.backoffice-loading-box{display:grid;justify-items:center;gap:.85rem;border-radius:8px;background:#fff;color:#0f172a;padding:1.2rem 1.35rem;box-shadow:0 24px 70px rgba(15,23,42,.24);font-weight:850}
.spinner{width:2.1rem;height:2.1rem;border-radius:50%;border:3px solid #fed7aa;border-top-color:#f97316;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.checks{grid-column:1/-1;display:flex;gap:.55rem;flex-wrap:wrap}
.check{display:inline-flex;align-items:center;gap:.35rem;border:1px solid #dbe3ec;border-radius:8px;padding:.45rem .6rem;font-size:.84rem;background:#fff}
.actions{grid-column:auto}
.form>.actions{grid-column:1/-1;justify-content:flex-end}
.filters{display:grid;grid-template-columns:minmax(0,1fr) 14rem auto;gap:.75rem;margin-top:1rem;padding:1rem}
.badges,.meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.facts{display:grid;gap:.8rem}
.empty,.empty-state{border:1px dashed #cbd5e1;background:#f8fafc;color:#64748b;border-radius:8px;padding:1rem}
.section-list{display:grid;gap:1.15rem;margin-top:1rem}
.section-editor{padding:1.15rem}
.section-editor-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.section-editor-head h2{margin-bottom:.25rem}
details.editor{margin-top:.85rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:.8rem}
details.editor>summary{cursor:pointer;font-weight:850;color:#0f172a}
details.editor textarea{margin-top:.75rem}
details.json-editor{background:#fff;border-color:#cbd5e1;padding:1rem}
.json-edit{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.95fr);gap:1rem;margin-top:.75rem}
.json-field textarea{min-height:26rem;resize:vertical;font-size:.88rem;line-height:1.6;background:#0f172a;color:#e5edf8;border-color:#1e293b;tab-size:2}
.json-field textarea:focus{outline:3px solid rgba(249,115,22,.25);border-color:#f97316}
.json-field textarea.is-expanded{min-height:72vh}
.calculator-admin .sub{margin:.45rem 0 0}
.calculator-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.calculator-toolbar .actions{margin-top:0}
.calculator-editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:1rem;margin-top:1rem}
.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.calculator-list{display:grid;gap:.65rem;margin-top:1rem}
.calculator-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:.85rem}
.calculator-item strong{display:block}
.calculator-generated-json textarea{min-height:18rem;width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;color:#e5edf8;background:#0f172a;border-color:#1e293b}
.modal[hidden]{display:none!important}
.modal{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:1rem;background:rgba(15,23,42,.55);backdrop-filter:blur(4px)}
.modal-dialog{width:min(100%,46rem);max-height:88vh;overflow:auto;border-radius:8px;background:#fff;border:1px solid #dbe3ec;box-shadow:0 28px 90px rgba(15,23,42,.34);padding:1rem}
.modal-dialog.wide{width:min(100%,62rem)}
body.has-modal{overflow:hidden}
.calculator-preview-card{border:1px solid #dbe3ec;border-radius:8px;background:#f8fafc;padding:1.1rem}
.calculator-preview-card h3{margin:.25rem 0 0;font-size:1.5rem}
.preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:1rem 0}
.preview-grid label{display:grid;gap:.35rem;font-weight:850;color:#334155;font-size:.86rem}
.preview-grid label.wide{grid-column:1/-1}
.preview-grid input,.preview-grid select,.preview-grid textarea{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:.7rem .78rem;background:#fff;font:inherit}
.preview-grid textarea{min-height:6rem}
.preview-check{display:flex!important;align-items:center;gap:.5rem}
.asset-upload-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(18rem,1.35fr) auto;gap:.75rem;align-items:end}
.asset-usage-field .checks{margin-top:0;max-height:none}
.asset-usage-field .check{padding:.36rem .5rem}
.asset-usage-field input[type="text"]{margin-top:.45rem}
.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;margin-top:1rem}
.asset-card{overflow:hidden;border:1px solid #dbe3ec;border-radius:8px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.055)}
.asset-card img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#e2e8f0}
.asset-card-body{display:grid;gap:.45rem;padding:.85rem}
.asset-card-body strong{line-height:1.25}
.asset-card-body span{color:#64748b;font-size:.82rem}
.asset-card-body code{display:block;overflow:hidden;text-overflow:ellipsis;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#334155;padding:.45rem .5rem;font-size:.74rem;white-space:nowrap}
.asset-helper{background:#fbfdff}
.asset-strip{display:flex;gap:.65rem;overflow:auto;padding:.35rem 0 .15rem}
.asset-pick{flex:0 0 9.5rem;display:grid;gap:.35rem;padding:.35rem;border:1px solid #dbe3ec;background:#fff;color:#0f172a;text-align:left}
.asset-pick img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:6px;background:#e2e8f0}
.asset-pick span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;color:#475569}
.budget-actions-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.budget-actions-panel .actions{margin-top:0}
.budget-revision-form{margin-top:1rem}
.budget-lines-editor{min-width:760px}
.budget-lines-editor th:first-child{width:46%}
.budget-lines-editor th:last-child{width:10rem}
.budget-lines-editor .compact-action{padding:.5rem .6rem}
.budget-revision-options{display:grid;grid-template-columns:minmax(0,1fr) 13rem;gap:.75rem;margin-top:1rem}
.budget-revision-options .wide{grid-column:1/-1}
.contract-create-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.contract-create-form .wide{grid-column:1/-1}
.contract-editor{margin-top:1rem}
.contract-editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem}
.contract-editor-grid .wide{grid-column:1/-1}
.contract-conditions-textarea{min-height:18rem!important;font-family:inherit!important;font-size:.9rem!important}
.inline-form{display:inline-flex;margin:.7rem 0 0}
.html-editor[hidden]{display:none}
.html-editor-surface{min-height:18rem;background:#fff;color:#172033}
.ql-toolbar.ql-snow{margin-top:.55rem;border-color:#cbd5e1;border-radius:8px 8px 0 0;background:#f8fafc}
.ql-container.ql-snow{border-color:#cbd5e1;border-radius:0 0 8px 8px;font-family:inherit;font-size:1rem}
.ql-editor{min-height:18rem;line-height:1.65}
.invoice-milestone-list{display:grid;gap:1rem;margin-top:1rem}
.invoice-milestone{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:1rem}
.invoice-create-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.invoice-create-form .wide{grid-column:1/-1}
.payment-table .input.compact,.payment-table .select.compact{min-width:9rem;padding:.48rem .55rem}
.payment-table td{vertical-align:middle}
.partial-payment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:.75rem}
.partial-payment-form .wide{grid-column:1/-1}
.invoice-form-section{margin-top:.35rem;padding:.7rem .8rem;border-left:3px solid #f97316;background:#fff}
.invoice-form-section h4{margin:0 0 .2rem;font-size:.95rem}.invoice-form-section p{margin:0;color:#64748b;font-size:.82rem}
.invoice-total-preview{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid #cbd5e1;border-radius:8px;background:#fff}
.invoice-total-preview span{color:#64748b}.invoice-total-preview strong{font-size:1.25rem;color:#0f172a}
.budget-invoice-form{margin-top:1rem}
.compact-head{align-items:flex-end}
.invoice-line-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.55rem}
.invoice-line-selector label{display:flex;align-items:center;gap:.7rem;border:1px solid #dbe3ec;border-radius:8px;background:#fff;padding:.75rem;cursor:pointer}
.invoice-line-selector label span{display:grid;gap:.1rem;flex:1}.invoice-line-selector small{color:#64748b}
.invoice-line-selector em{font-size:.72rem;color:#64748b;font-style:normal}
.invoice-line-selector .is-disabled{background:#f1f5f9;cursor:not-allowed;opacity:.7}
.budget-table-tools{display:grid;grid-template-columns:minmax(240px,1.8fr) repeat(3,minmax(130px,.7fr)) auto;gap:.65rem;align-items:end;margin-bottom:1rem}
.budget-table-tools label{display:grid;gap:.3rem;font-size:.76rem;font-weight:800;color:#475569}
.budget-result-count{padding-bottom:.7rem;white-space:nowrap}
.budget-empty-filter{padding:1rem 0;text-align:center}
@media(max-width:900px){.budget-table-tools{grid-template-columns:1fr 1fr}.budget-table-tools .search-field{grid-column:1/-1}}
.invoice-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}
.invoice-summary div{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;padding:.85rem}
.invoice-summary span{display:block;color:#64748b;font-size:.76rem;text-transform:uppercase;font-weight:850}
.invoice-summary strong{display:block;margin-top:.25rem}
.invoice-update-grid{display:grid;grid-template-columns:12rem 14rem minmax(0,1fr);gap:.75rem}
.invoice-update-grid .wide{grid-column:auto}
@media(max-width:980px){
  .layout,.layout.is-collapsed{display:block}
  .side{position:relative;height:auto}
  .nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .layout.is-collapsed .side-label,.layout.is-collapsed .role{display:inline}
  .layout.is-collapsed .tenant-context{display:block}
  .layout.is-collapsed .short-label{display:none}
  .toggle{width:auto}
  .main{padding:1rem}
  .page-head,.top,.workflow-panel{display:block}
  .grid.cols-2,.grid.cols-3,.grid.cols-4,.filters,.form-grid,.edit,.form,.module-compact-form,.module-summary,.module-details-grid,.json-edit,.calculator-editor-grid,.compact-grid,.preview-grid,.asset-upload-form,.budget-revision-options,.contract-create-form,.contract-editor-grid,.invoice-create-form,.invoice-summary,.invoice-update-grid,.partial-payment-form{grid-template-columns:1fr}
  .textarea{grid-column:auto}
  .module-head{display:block}
  .section-editor-head{display:block}
  .calculator-toolbar,.calculator-item{display:block}
  .budget-actions-panel{display:block}
  .json-field textarea{min-height:20rem}
  .table{min-width:720px}
}

.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(26rem,34rem);background:#0b1220;color:#f8fafc}
.auth-brand{position:relative;overflow:hidden;padding:clamp(2rem,6vw,5rem);display:flex;flex-direction:column;justify-content:center;isolation:isolate}
.auth-brand:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(249,115,22,.34),transparent 38%),radial-gradient(circle at 72% 24%,rgba(20,184,166,.28),transparent 32%);z-index:-2}
.auth-hex-field{position:absolute;inset:0;z-index:-1;opacity:.26}
.auth-hex-field span{position:absolute;width:7rem;aspect-ratio:1;clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0 50%);border:1px solid rgba(255,255,255,.42)}
.auth-hex-field span:nth-child(1){left:8%;top:12%}.auth-hex-field span:nth-child(2){left:22%;top:38%;width:10rem}.auth-hex-field span:nth-child(3){left:58%;top:8%;width:8rem}.auth-hex-field span:nth-child(4){left:68%;top:48%;width:13rem}.auth-hex-field span:nth-child(5){left:12%;bottom:8%;width:8rem}.auth-hex-field span:nth-child(6){left:45%;bottom:16%;width:6rem}.auth-hex-field span:nth-child(7){right:8%;bottom:6%;width:9rem}
.auth-logo img{height:4.8rem;width:auto;max-width:18rem;object-fit:contain}
.auth-title{margin:3rem 0 0;font-size:clamp(2.7rem,6vw,5.8rem);line-height:.94;letter-spacing:0;font-weight:900}
.auth-copy{max-width:42rem;margin:1.25rem 0 0;color:#dbeafe;font-size:1.15rem;line-height:1.65}
.auth-signals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:3rem;max-width:54rem}
.auth-signal{border:1px solid rgba(255,255,255,.18);background:rgba(15,23,42,.48);border-radius:8px;padding:1rem;backdrop-filter:blur(10px)}
.auth-signal strong{display:block}.auth-signal span{display:block;margin-top:.35rem;color:#cbd5e1;font-size:.88rem;line-height:1.45}
.auth-card{display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#f8fafc;color:#0f172a}
.auth-card-inner{width:min(100%,28rem);background:#fff;border:1px solid #dbe3ec;border-radius:8px;padding:1.35rem;box-shadow:0 22px 70px rgba(15,23,42,.18)}
.auth-card-top{display:flex;align-items:center;gap:.65rem;color:#475569;font-size:.84rem;font-weight:850}
.auth-mark{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:8px;background:#fff7ed;color:#f97316}
.auth-status{text-transform:uppercase;font-size:.72rem;letter-spacing:.03em}
.auth-card h1{margin:1.25rem 0 0;font-size:2rem}.auth-card-lead{color:#64748b;line-height:1.5}
.auth-alert{border-radius:8px;padding:.75rem .85rem;font-weight:800}.auth-alert--error{background:#fee2e2;color:#991b1b}.auth-alert--ok{background:#ecfdf5;color:#047857}
.auth-form,.auth-field{display:grid;gap:.75rem}.auth-field span{font-size:.78rem;font-weight:850;color:#475569;text-transform:uppercase}
.auth-input{border:1px solid #cbd5e1;border-radius:8px;padding:.82rem .9rem;font:inherit}
.auth-button{width:100%;gap:.55rem;margin-top:.3rem;padding:.9rem 1rem}.auth-button--primary{background:#f97316}.auth-button--google{background:#fff;color:#0f172a;border:1px solid #cbd5e1}
.auth-divider{display:flex;align-items:center;gap:.65rem;margin:1.1rem 0;color:#94a3b8;font-weight:850}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:#e2e8f0}
.auth-footnote{display:flex;gap:.55rem;margin:1rem 0 0;color:#64748b;font-size:.85rem;line-height:1.45}
@media(max-width:980px){
  .auth-shell{display:block}
  .auth-brand{min-height:42vh}
  .auth-signals{grid-template-columns:1fr}
  .auth-card{padding:1rem}
}
