:root{
  --navy:#0b2f55; --navy2:#143f69; --blue:#2f6f9d; --ink:#102943; --muted:#6f8198;
  --bg:#f3f6fa; --card:#fff; --line:#dde5ee; --green:#14805e; --red:#bd4c4c; --amber:#b47919;
  --shadow:0 10px 30px rgba(22,45,75,.08); --radius:18px;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit} button{cursor:pointer}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px;background:linear-gradient(145deg,#f7f9fc,#eef3f8)}
.login-card{width:min(440px,100%);background:white;border:1px solid var(--line);border-radius:24px;padding:42px;box-shadow:var(--shadow)}
.brand-mark{display:flex;align-items:center;gap:14px;margin-bottom:28px}.brand-icon{width:42px;height:42px;border-radius:12px;background:var(--navy);display:grid;place-items:center;color:white;font-weight:800;letter-spacing:.08em}.brand-name{font-weight:700;color:var(--navy);font-size:20px}.brand-sub{font-size:12px;color:var(--muted);margin-top:3px}
.login-card h1{font-size:28px;margin:0 0 8px}.login-card p{color:var(--muted);margin:0 0 28px}.field{display:grid;gap:7px;margin:14px 0}.field label{font-size:13px;font-weight:600}.field input,.field select{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;outline:none}.field input:focus,.field select:focus{border-color:#86aac7;box-shadow:0 0 0 3px rgba(47,111,157,.1)}.btn-primary{border:0;background:var(--navy);color:#fff;border-radius:12px;padding:13px 16px;font-weight:700}.btn-secondary{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:11px;padding:10px 13px}.login-switch{display:block;margin:17px auto 0;border:0;background:transparent;color:var(--blue);font-weight:700}.error{color:var(--red);font-size:13px;margin-top:10px}.success{color:var(--green);font-size:13px;margin-top:10px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:var(--navy);padding:24px 18px;color:white;display:flex;flex-direction:column}.side-brand{padding:8px 10px 22px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:18px}.side-brand .brand-title{font-size:17px;font-weight:700;letter-spacing:.02em}.side-brand .brand-sub{color:#b9cadd}.nav{display:grid;gap:5px}.nav button{display:flex;align-items:center;gap:11px;border:0;background:transparent;color:#c9d7e5;padding:11px 12px;border-radius:11px;text-align:left;font-weight:600}.nav button:hover,.nav button.active{background:rgba(255,255,255,.11);color:#fff}.nav .count{margin-left:auto;background:rgba(255,255,255,.13);border-radius:99px;padding:2px 7px;font-size:11px}.side-footer{margin-top:auto;font-size:11px;color:#9bb0c4;padding:10px}
.main{min-width:0}.topbar{height:74px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 30px;position:sticky;top:0;z-index:20;backdrop-filter:blur(10px)}.search{flex:1;max-width:580px;position:relative}.search input{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}.user-chip{margin-left:auto;display:flex;gap:10px;align-items:center}.avatar{width:36px;height:36px;border-radius:50%;background:#e7eef6;display:grid;place-items:center;font-weight:700;color:var(--navy)}.user-meta{font-size:12px}.user-meta strong{display:block;font-size:13px}.user-meta span{color:var(--muted)}
.content{padding:30px;max-width:1600px;margin:0 auto}.eyebrow{font-size:12px;letter-spacing:.17em;font-weight:700;color:var(--blue);text-transform:uppercase}.page-head{display:flex;gap:20px;justify-content:space-between;align-items:flex-end;margin-bottom:26px}.page-head h1{font-size:38px;letter-spacing:-.04em;margin:5px 0 5px}.page-head p{margin:0;color:var(--muted)}.head-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.select,.input{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 12px;color:var(--ink)}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.cards.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);min-height:112px}.metric .label{font-size:12px;letter-spacing:.09em;font-weight:700;color:var(--muted);text-transform:uppercase}.metric .value{font-size:28px;font-weight:750;margin-top:12px;letter-spacing:-.04em}.metric .hint{color:var(--muted);font-size:12px;margin-top:5px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;justify-content:space-between}.panel-head h2{font-size:17px;margin:0}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.panel-body{padding:18px 20px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:13px 14px;border-bottom:1px solid #edf1f5;font-size:13px;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table tr.clickable:hover{background:#f8fafc}.link-btn{border:0;background:transparent;color:#1b628f;font-weight:700;padding:0}.note-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:360px;color:#51677e}.subtle{color:var(--muted)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#edf3f8;color:#466079;font-size:11px;font-weight:700;white-space:nowrap}.chip.green{background:#e9f5f0;color:var(--green)}.chip.red{background:#fbeeee;color:var(--red)}.chip.amber{background:#fff5df;color:var(--amber)}.chip.blue{background:#eaf3fa;color:#27678f}
.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 11px;font-size:12px;font-weight:700;color:#57708a}.tab.active{background:var(--navy);color:white;border-color:var(--navy)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-group{display:flex;gap:5px;align-items:center;flex-wrap:wrap}.filter-group .label{font-size:11px;color:var(--muted);font-weight:700;margin-right:2px}
.project-grid,.budget-grid,.team-grid,.sample-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.project-card,.budget-card,.team-card,.sample-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 7px 24px rgba(22,45,75,.05)}.project-card:hover,.team-card:hover{border-color:#bdcddd}.project-card h3,.budget-card h3,.team-card h3,.sample-card h3{margin:0 0 5px;font-size:16px}.project-card .meta,.budget-card .meta,.team-card .meta,.sample-card .meta{font-size:12px;color:var(--muted)}.project-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:16px}.mini{background:#f7f9fc;border-radius:10px;padding:10px}.mini span{display:block;font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700}.mini strong{display:block;margin-top:5px;font-size:14px}.margin-pos{color:var(--green)}.margin-neg{color:var(--red)}
.split{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,.7fr);gap:18px}.empty{padding:46px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);margin-bottom:6px}
.review{display:grid;grid-template-columns:8px 1fr auto;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.review:last-child{border-bottom:0}.priority{border-radius:99px;background:#d2dce6}.priority.Alta{background:#d46060}.priority.Media{background:#dfa53e}.priority.Baja{background:#6fa0c2}.review h3{font-size:14px;margin:0 0 5px}.review p{font-size:12px;margin:0;color:var(--muted)}
.person-head{display:flex;align-items:center;gap:15px}.person-avatar{width:54px;height:54px;border-radius:16px;background:#e8eff7;color:var(--navy);display:grid;place-items:center;font-size:18px;font-weight:800}.person-head h2{margin:0}.person-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.commission-group{border:1px solid var(--line);border-radius:14px;margin-bottom:11px;overflow:hidden}.commission-group summary{list-style:none;padding:14px 15px;font-weight:700;display:flex;justify-content:space-between;cursor:pointer;background:#fafbfd}.commission-group summary::-webkit-details-marker{display:none}.commission-group .rows{padding:0 14px 12px}
.project-team{display:flex;gap:14px;flex-wrap:wrap}.team-summary{display:flex;align-items:center;gap:11px;min-width:210px;padding:10px 12px;border:1px solid var(--line);border-radius:13px}.team-summary strong,.team-summary span{display:block}.team-summary span{font-size:11px;color:var(--muted);margin-top:3px}.person-avatar.small{width:38px;height:38px;border-radius:11px;font-size:12px}.commission-editor{margin-top:20px;border:1px solid var(--line);border-radius:14px;background:#f8fafc;padding:16px}.commission-editor h3{margin:0 0 5px}.commission-editor p{margin:0 0 12px;color:var(--muted);font-size:12px}.commission-form{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(110px,.6fr);gap:10px;align-items:end}.commission-form .field{margin:0}.commission-actions{display:flex;align-items:center;gap:10px;margin-top:13px}.commission-amount{font-weight:750;color:var(--green);margin-left:auto}
.drawer-backdrop{position:fixed;inset:0;background:rgba(3,18,34,.25);z-index:50;display:flex;justify-content:flex-end}.drawer{height:100%;width:min(680px,100%);background:#fff;box-shadow:-14px 0 40px rgba(3,18,34,.18);overflow:auto}.drawer-head{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);padding:20px 22px;display:flex;justify-content:space-between;align-items:center;z-index:2}.drawer-head h2{margin:0}.icon-btn{width:36px;height:36px;border:1px solid var(--line);border-radius:10px;background:#fff}.drawer-body{padding:22px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail{border:1px solid var(--line);border-radius:12px;padding:12px}.detail span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.detail strong{display:block;margin-top:5px;font-size:13px}.detail.full{grid-column:1/-1}.history{margin-top:20px}.history-item{border-left:2px solid #dce5ee;padding:4px 0 12px 13px;font-size:12px;color:#556c84}.mobile-menu{display:none}
.invoice-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.invoice-toolbar .input{min-width:280px;flex:1}.btn-danger{border:1px solid #edcaca;background:#fff6f6;color:var(--red);border-radius:11px;padding:10px 13px;font-weight:700}.active-danger{border-color:#e7bcbc;color:var(--red)}.record-actions{display:flex;justify-content:flex-end;gap:9px;margin-bottom:16px}
.modal-backdrop{position:fixed;inset:0;background:rgba(3,18,34,.38);z-index:70;display:grid;place-items:center;padding:20px}.modal{width:min(820px,100%);max-height:calc(100vh - 40px);background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(3,18,34,.28);overflow:auto}.modal-head{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);padding:18px 22px;display:flex;align-items:center;justify-content:space-between;z-index:2}.modal-head h2{margin:3px 0 0}.modal-body{padding:20px 22px}.modal-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:14px 22px;display:flex;justify-content:flex-end;gap:9px}.action-spacer{flex:1}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.form-grid .field.full{grid-column:1/-1}.field textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;outline:none;resize:vertical}.calculated-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:14px 16px;border-radius:12px;background:#eef5fa}.calculated-total span{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase}.calculated-total strong{font-size:20px;color:var(--navy)}
@media (max-width:1100px){.cards,.cards.dashboard-metrics{grid-template-columns:repeat(2,1fr)}.project-grid,.budget-grid,.team-grid,.sample-grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}
@media (max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{display:none;position:fixed;z-index:40;width:250px}.sidebar.open{display:flex}.mobile-menu{display:block}.topbar{padding:0 12px;gap:8px}.topbar .search{display:none}.topbar #newDoc,.topbar #newProject{font-size:0;padding:9px 10px}.topbar #newDoc::after{content:'+ Doc.';font-size:12px}.topbar #newProject::after{content:'+ Proyecto';font-size:12px}.user-chip{margin-left:auto;gap:6px}.user-chip .avatar,.user-meta{display:none}.content{padding:18px 14px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:30px}.cards,.cards.dashboard-metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{min-height:95px;padding:15px}.metric .value{font-size:21px}.project-grid,.budget-grid,.team-grid,.sample-grid{grid-template-columns:1fr}.table{min-width:620px}.detail-grid,.commission-form,.form-grid{grid-template-columns:1fr}.detail.full,.form-grid .field.full{grid-column:auto}.login-card{padding:30px 24px}.modal-backdrop{padding:0}.modal{max-height:100vh;height:100vh;border-radius:0}.invoice-toolbar .input{min-width:100%}}
@media (max-width:520px){.cards.dashboard-metrics{grid-template-columns:1fr}.dashboard-metrics .metric{min-height:104px}.page-head{gap:14px}.modal-actions{padding:12px;flex-wrap:wrap}.modal-actions .action-spacer{display:none}.modal-actions button{flex:1}}




/* Astra V3 additions */
.v3-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.v3-project-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}.v3-project-summary-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important}.v3-period-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important}.v3-metric .value{font-size:22px}.v3-na{color:var(--muted);font-weight:600}.v3-warning{padding:12px 14px;border:1px solid #e6bf6b;background:#fff8e8;border-radius:12px;margin:12px 0;font-size:12px;color:#6f5315}.v3-bad{font-size:11px;color:#a63b35;font-weight:700}.v3-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.v3-switch-row{display:flex;gap:10px;align-items:center;font-size:12px;font-weight:650}.v3-switch-row input{width:18px;height:18px}.v3-notes-list{display:flex;flex-direction:column;gap:9px}.v3-note{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 12px;font-size:12px;line-height:1.5}.v3-note span{display:block;margin-top:5px;color:var(--muted);font-size:10px}.v3-history-details{margin-top:10px}.v3-history-details summary{cursor:pointer;font-size:12px;font-weight:700;color:var(--navy)}.v3-history-details>.v3-note{margin-top:8px}.v3-note-compose{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px;align-items:end}.v3-note-compose textarea{min-height:70px;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;resize:vertical}.v3-budget-list{display:flex;flex-direction:column;gap:8px}.v3-budget-row{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:11px 12px}.v3-budget-row>div:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.v3-budget-row>div:last-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.v3-budget-row span,.v3-budget-row small{color:var(--muted);font-size:11px}.v3-filter-stack{display:flex;flex-direction:column;gap:10px}.v3-filter-group{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.v3-filter-group .label{font-size:10px;color:var(--muted);font-weight:800;min-width:70px}.v3-filter-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px;font-size:11px;cursor:pointer}.v3-filter-chip.active{background:var(--navy);border-color:var(--navy);color:#fff}.v3-invoice-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid var(--line);font-size:11px;background:#fbfcfd}.v3-invoice-summary strong{font-size:12px}.v3-invoice-summary .btn-secondary{margin-left:auto}.v3-toolbar{margin-top:12px}.v3-pdf-mini{border:0;background:#eef4f8;color:var(--navy);font-size:9px;font-weight:800;border-radius:6px;padding:3px 5px;cursor:pointer}.v3-review-row{background:#fffaf0}.v3-bulk-table{min-width:1600px}.v3-bulk-table input,.v3-bulk-table select{min-width:110px;border:1px solid var(--line);border-radius:7px;padding:6px 7px;font-size:11px;background:#fff}.v3-bulk-table input[type=checkbox]{min-width:18px;width:18px;height:18px}.v3-sticky-save{position:sticky;bottom:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);box-shadow:0 -4px 18px rgba(12,47,85,.08);border-radius:12px;padding:12px 14px;margin-top:12px}.v3-drawer{width:min(680px,95vw)!important}.v3-notes-section{margin-top:18px}.v3-calculated{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px;padding:11px;border-radius:10px;background:#f7f9fb}.v3-calculated strong{font-size:18px}.v3-wide-modal{width:min(900px,95vw)!important}.v3-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;border:1px solid var(--line);border-radius:10px;padding:10px}.v3-check-grid label{font-size:12px;display:flex;align-items:center;gap:7px}.v3-check-grid input{width:17px;height:17px}.detail-grid .detail.full{grid-column:1/-1}.v3-project-summary-cards .metric,.v3-period-cards .metric{min-width:0}.table td.num,.table th.num{white-space:nowrap}.table .note-clamp{max-width:260px}.record-actions{flex-wrap:wrap}
@media(max-width:1100px){.v3-project-summary-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}.v3-period-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v3-project-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.v3-two-col{grid-template-columns:1fr}.v3-project-summary-cards,.v3-period-cards{grid-template-columns:1fr!important}.v3-project-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v3-note-compose{grid-template-columns:1fr}.v3-budget-row{align-items:flex-start;flex-direction:column}.v3-budget-row>div:last-child{justify-content:flex-start}.v3-filter-group .label{width:100%;min-width:0}.v3-check-grid{grid-template-columns:1fr}.v3-invoice-summary .btn-secondary{margin-left:0}.v3-wide-modal{width:100vw!important;height:100vh!important;max-height:100vh!important;border-radius:0!important}.v3-sticky-save{border-radius:0;margin-left:-16px;margin-right:-16px}}




/* Astra V4 additions */
.v4-brand-lockup{display:flex;align-items:center;gap:10px;color:#fff}.v4-logo-mark{width:36px;height:40px;border:2px solid rgba(255,255,255,.95);display:grid;place-items:center;font-family:Georgia,serif;font-size:25px;line-height:1;font-weight:500;clip-path:polygon(0 0,100% 0,100% 78%,50% 100%,0 78%)}.v4-logo-word{font-family:Georgia,'Times New Roman',serif;font-size:24px;line-height:1;color:#fff;letter-spacing:-.03em}.v4-logo-tag{font-size:7px;letter-spacing:.25em;color:#d8e3ed;margin-top:4px;white-space:nowrap}.v4-control-sub{margin-top:9px;font-size:10px}.v4-commission-row{padding:9px 0;border-top:1px solid var(--line);font-size:12px;display:flex;justify-content:space-between;gap:12px}.v4-history-toolbar{display:flex;align-items:center;gap:10px}.v4-history-toolbar label{font-size:11px;font-weight:800;color:var(--muted)}
.v3-bulk-table select[data-bulk-field="bank"],.v3-bulk-table select[data-bulk-field="method"]{min-width:145px}
@media(max-width:760px){.v4-logo-word{font-size:21px}.v4-logo-tag{font-size:6px}.v4-logo-mark{width:32px;height:36px;font-size:22px}}






/* Astra V5 documents */
.v5-hidden{display:none!important}
.v5-doc-library{width:min(1180px,94vw);max-width:1180px}
.v5-doc-filters{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(170px,.7fr) minmax(220px,1fr);gap:10px;margin-bottom:14px}
.v5-doc-table-wrap{max-height:62vh;overflow:auto;border:1px solid var(--line);border-radius:14px}
.v5-doc-line{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line)}
.v5-doc-line:first-child{border-top:0}
.v5-doc-line>div{min-width:0}
.v5-doc-line strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v5-doc-line span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.v5-doc-panel{margin-top:18px}
@media(max-width:780px){
  .v5-doc-filters{grid-template-columns:1fr}
  .v5-doc-library{width:100vw;max-width:none;height:100vh;border-radius:0}
  #v5DocumentsButton{display:none}
}




/* Astra V7 · Project cards spacing */
.project-grid{gap:20px}
.project-card{padding:22px;border-radius:18px}
.project-card h3{font-size:18px;line-height:1.25}
.project-card .meta{font-size:13px;line-height:1.45;margin-top:4px}
.v3-project-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin-top:20px!important}
.project-card .mini{padding:14px 16px;min-height:88px;border-radius:12px;display:flex;flex-direction:column;justify-content:center}
.project-card .mini span{font-size:11px;line-height:1.25;letter-spacing:.02em}
.project-card .mini strong{margin-top:8px;font-size:18px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
@media (max-width:1400px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.project-grid{grid-template-columns:1fr}.project-card{padding:18px}.v3-project-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}.project-card .mini strong{font-size:17px}}
@media (max-width:430px){.v3-project-kpis{grid-template-columns:1fr!important}.project-card .mini{min-height:auto}.project-card .mini strong{white-space:normal}}




/* ASTRA V8 */
.v8-project-table{min-width:980px}
.v8-project-table th,.v8-project-table td{padding-top:15px;padding-bottom:15px}
.v8-project-sub{font-size:10px;margin-top:4px}
.v8-margin-review{color:#a26700;font-weight:800}
.v8-review-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.v8-review-table{min-width:980px}
.v8-review-desc{font-weight:650;margin-bottom:4px;max-width:520px}
.v8-review-modal{max-width:820px}
.v8-action-box,.v8-merge-box{margin-top:18px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fafbfd}
.v8-action-box h3,.v8-merge-box strong{margin:0 0 8px}
.v8-inline-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 16px}
.v8-inline-kpis span{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;font-size:10px;color:var(--muted);text-transform:uppercase;font-weight:700}
.v8-inline-kpis strong{display:block;color:var(--ink);font-size:14px;margin-top:5px;text-transform:none}
.v8-review-actions{display:flex;gap:8px;flex-wrap:wrap}
.v8-readonly-disabled{opacity:.65;pointer-events:none}
@media(max-width:1100px){.v8-review-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:760px){.v8-review-cards{grid-template-columns:1fr 1fr!important}.v8-inline-kpis{grid-template-columns:1fr 1fr}}




/* Astra V9 Samples */
.v9-sample-type-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 14px}
.v9-material-tab{border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink);cursor:pointer;font:inherit}
.v9-material-tab strong{font-size:14px}.v9-material-tab span{display:grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:#f0f5f9;color:var(--muted);font-size:12px;font-weight:800}
.v9-material-tab.active{background:var(--navy);border-color:var(--navy);color:#fff}.v9-material-tab.active span{background:rgba(255,255,255,.16);color:#fff}
.v9-sample-subfilters{margin-bottom:14px}.v9-sample-table td,.v9-sample-table th{vertical-align:middle}.v9-sample-table td{white-space:nowrap}.v9-sample-table td:first-child{white-space:normal;min-width:190px}
.v9-existing-photos{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:760px){.v9-sample-type-tabs{grid-template-columns:1fr}.v9-sample-table{min-width:940px}}




/* ASTRA V10 CRM */
.v10-crm-cards{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.v10-crm-table td:first-child{min-width:210px}
.v10-contact-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}
.v10-contact-row:last-child{border-bottom:0}.v10-contact-row strong,.v10-contact-row span{display:block}.v10-contact-row span{font-size:11px;color:var(--muted);margin-top:3px}
.v10-project-relations{margin-top:16px}
@media(max-width:1000px){.v10-crm-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:600px){.v10-crm-cards{grid-template-columns:1fr!important}}




/* Astra V11 final visual polish */
.v11-login-brand{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:24px;width:100%}.v11-login-brand img{display:block;width:min(320px,90%);height:auto!important;max-height:none!important;object-fit:contain;object-position:center}.v11-login-sub{font-size:11px;letter-spacing:.04em;text-transform:none;color:var(--muted);font-weight:700}.v11-sidebar-brand{display:flex;align-items:center;gap:12px}.v11-sidebar-brand img{width:42px;height:42px;object-fit:contain;display:block}.v11-sidebar-brand span{font-size:11px;line-height:1.3;color:rgba(255,255,255,.72);letter-spacing:.02em}.v11-sidebar-brand b{color:#fff;font-weight:800}.v11-crm-filter-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.v11-tax-pending{margin-top:3px;color:#a66b16}.v11-panel-totals{display:flex;align-items:center;gap:12px}.v11-panel-totals strong{font-size:14px;color:var(--ink)}.v11-history-toggle,.v11-commission-actions{display:flex;justify-content:flex-end;margin:12px 0 18px}.v11-commission-cards{grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px}.v11-team-history{margin-top:18px}.v11-team-add-row{display:flex;align-items:center;gap:12px;margin-top:14px}.v11-team-manager-table{margin-top:22px;border-top:1px solid var(--line);padding-top:10px}.side-brand{padding-top:2px;padding-bottom:18px}.team-card{transition:transform .16s ease,box-shadow .16s ease}.team-card:hover{transform:translateY(-1px)}
@media(max-width:760px){.v11-commission-cards{grid-template-columns:1fr}.v11-login-brand img{width:min(230px,85%)}.v11-sidebar-brand img{width:36px;height:36px}.v11-crm-filter-row{display:block}.v11-crm-filter-row .tabs+ .tabs{margin-top:10px}}




/* ASTRA V12 · AI import */
.v12-ai-button{white-space:nowrap}
.v12-ai-modal{max-width:980px}
.v12-ai-upload{padding:4px 0 18px;border-bottom:1px solid var(--line)}
.v12-ai-actions{display:flex;gap:10px;align-items:center;margin-top:12px}
.v12-ai-result{padding-top:20px}
.v12-ai-result-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}
.v12-ai-result-head h3{margin:0 0 4px}
.v12-ai-result-head p{margin:0;color:var(--muted)}
.v12-fx{background:rgba(229,174,66,.08);padding:10px;border-radius:10px}
@media(max-width:720px){.v12-ai-result-head{flex-direction:column}.v12-ai-actions{flex-wrap:wrap}.v12-ai-button{width:100%}}




The requested file reference is not currently visible. Use files.search or files.list to rediscover the file, then retry with a returned ref_id or file_id.




/* ASTRA V15 · unified upload page */
.v15-upload-page{max-width:1500px;margin:0 auto}.v15-upload-summary{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.v15-doc-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;margin:16px 0;box-shadow:0 8px 28px rgba(13,42,74,.04)}.v15-doc-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:16px}.v15-doc-head>div:first-child{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center}.v15-doc-head .v13-confirm{grid-row:1/3}.v15-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.v15-grid .field.full{grid-column:1/-1}.v15-sticky-confirm{position:sticky;bottom:14px;z-index:8;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:16px;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px;box-shadow:0 12px 34px rgba(13,42,74,.12);margin-top:18px}@media(max-width:1100px){.v15-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.v15-grid{grid-template-columns:1fr}.v15-doc-head,.v15-sticky-confirm{flex-direction:column;align-items:stretch}.v15-doc-head>div:first-child{grid-template-columns:1fr}.v15-doc-head .v13-confirm{grid-row:auto}.v15-upload-summary{align-items:flex-start;flex-direction:column;gap:7px}}




.v16-intake-panel{margin-bottom:18px}
.v16-progress{margin-top:12px}
.v16-project-warning{margin-top:10px}
.v16-project-warning-box{margin:0}
.v16-confirm-mismatch{display:block;margin-top:8px;font-weight:600;color:var(--ink)}
.v16-confirm-mismatch input{margin-right:8px}
.v16-access-chip{display:inline-flex;margin-top:6px;font-size:11px}
@media (max-width:700px){.v16-upload-page .page-head{gap:14px}.v16-upload-page .head-actions{width:100%}.v16-upload-page .head-actions .btn-primary{width:100%}}




/* ASTRA V17 · Project visual hierarchy */
.v17-project-hero-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}
.v17-hero-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:25px 28px;min-height:150px;box-shadow:0 8px 24px rgba(13,42,74,.04);display:flex;flex-direction:column;justify-content:center}
.v17-hero-card.primary{background:#0d2a4a;border-color:#0d2a4a;color:#fff;box-shadow:0 14px 34px rgba(13,42,74,.16)}
.v17-hero-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--muted);margin-bottom:14px}
.v17-hero-card.primary .v17-hero-label,.v17-hero-card.primary .v17-hero-sub{color:rgba(255,255,255,.72)}
.v17-hero-value{font-size:34px;font-weight:800;line-height:1.05;letter-spacing:-.03em}
.v17-hero-sub{margin-top:12px;font-size:13px;color:var(--muted);line-height:1.45}
.v17-economy-panel{margin-bottom:20px}
.v17-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.v17-info-item{padding:20px 22px;background:#fff;min-height:105px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.v17-info-item:nth-child(3n){border-right:0}.v17-info-item:nth-last-child(-n+3){border-bottom:0}
.v17-info-item>span{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.v17-info-item>strong{font-size:22px;line-height:1.1;color:var(--text)}
.v17-info-item>small{font-size:12px;color:var(--muted);margin-top:7px;line-height:1.4}
.v17-more-finance{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.v17-more-finance>summary{cursor:pointer;font-weight:750;color:#295f8c;list-style:none}.v17-more-finance>summary::-webkit-details-marker{display:none}
.v17-more-finance>summary:after{content:' +';font-weight:800}.v17-more-finance[open]>summary:after{content:' −'}
.v17-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.v17-more-grid .v17-info-item{border:1px solid var(--line);border-radius:14px;min-height:90px;padding:15px 17px}.v17-more-grid .v17-info-item>strong{font-size:18px}
.v17-contact-lines{font-size:13px;line-height:1.55}.v17-contact-lines strong{font-size:14px}.v17-contact-lines a{color:#295f8c;text-decoration:none}.v17-contact-lines a:hover{text-decoration:underline}
.v17-contact-editor{border:1px solid var(--line);border-radius:16px;padding:16px 18px;background:#f8fafc}.v17-contact-editor h3{margin:0 0 13px;font-size:14px}.v17-contact-editor-grid{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:12px}
@media(max-width:1050px){.v17-project-hero-grid{grid-template-columns:1fr}.v17-info-grid,.v17-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.v17-info-item:nth-child(3n){border-right:1px solid var(--line)}.v17-info-item:nth-child(2n){border-right:0}.v17-info-item:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.v17-info-item:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:720px){.v17-info-grid,.v17-more-grid,.v17-contact-editor-grid{grid-template-columns:1fr}.v17-info-item,.v17-info-item:nth-child(n){border-right:0;border-bottom:1px solid var(--line)}.v17-info-item:last-child{border-bottom:0}.v17-hero-value{font-size:30px}.v17-hero-card{padding:22px}}




/* ASTRA V18 · VAT display toggle */
.v18-project-actions{align-items:flex-start;flex-wrap:wrap;justify-content:flex-end}
.v18-vat-control{display:flex;flex-direction:column;gap:6px;min-width:235px;padding:10px 12px;border:1px solid var(--line);border-radius:16px;background:#fff}
.v18-vat-title{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.v18-vat-toggle{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;background:#eef3f8;border-radius:11px}
.v18-vat-toggle button{border:0;background:transparent;color:#526b86;border-radius:9px;padding:8px 12px;font:inherit;font-size:12px;font-weight:750;cursor:pointer}
.v18-vat-toggle button.active{background:#0c3a64;color:#fff;box-shadow:0 1px 4px rgba(12,58,100,.18)}
.v18-vat-control small{font-size:10px;line-height:1.3;color:var(--muted);max-width:250px}
.v18-economic-head{align-items:center}
.v18-invoice-summary{align-items:center}
@media(max-width:900px){.v18-project-actions{width:100%;justify-content:flex-start}.v18-vat-control{width:100%;max-width:420px}.v18-vat-control small{max-width:none}}
/* ASTRA V19.1 · document intake + related proforma */
.v191-intake-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.v191-intake-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;flex-wrap:wrap}
.v191-intake-actions .v13-progress{margin:0;flex:1}
.v191-proforma-link select{border-color:#b8cce3;background:#f8fbff}
.v191-related-document{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;margin:0 0 16px;border:1px solid var(--line);border-radius:14px;background:#f8fbff}
.v191-related-document>div{display:flex;flex-direction:column;gap:3px}.v191-related-document strong{font-size:14px}.v191-related-document small{color:var(--muted)}
@media(max-width:760px){.v191-intake-grid{grid-template-columns:1fr}.v191-related-document{align-items:flex-start;flex-direction:column}.v191-related-document .btn-secondary{width:100%}}
.v193-pending-card{padding-bottom:18px}.v193-pending-card>.subtle{padding:0 2px 2px}


/* ASTRA V19.4 · related document controls */
.v194-multi{min-height:118px;padding:8px 10px}.v194-related-documents{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:0 0 16px;background:var(--panel,#fff)}.v194-related-head{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.v194-related-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0;border-top:1px solid var(--line)}.v194-related-row:first-of-type{border-top:0}.v194-related-row div{display:flex;flex-direction:column;gap:3px;min-width:0}.v194-related-row small{color:var(--muted);white-space:normal}

/* ASTRA V19.6 · Full Donato sidebar logo */
.v196-sidebar-brand{display:flex;flex-direction:column;align-items:flex-start;width:100%;gap:10px}
.v196-sidebar-brand img{display:block;width:min(100%,195px);height:auto;object-fit:contain;object-position:left center;filter:brightness(0) invert(1);}
.v196-sidebar-sub{font-size:10px;line-height:1.25;letter-spacing:.04em;text-transform:none;color:rgba(255,255,255,.68);font-weight:700}
.side-brand:has(.v196-sidebar-brand){padding-top:4px;padding-bottom:20px}
@media(max-width:760px){.v196-sidebar-brand img{width:min(100%,180px)}.v196-sidebar-sub{font-size:9px}}
