:root{
  --bg:#222;--bg2:#1b1b1b;--panel:#171717;--field:#111;--field-focus:#000;
  --purple:#390053;--purple2:#570078;--purple3:#7b1fa2;--text:#fff;--muted:#b9b9b9;
  --line:#383838;--green:#2ecc71;--red:#d43b3b;--amber:#e7a52a;--radius:6px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Tahoma,"Segoe UI",Arial,sans-serif}body{font-size:15px}.hidden{display:none!important}button,input,select,textarea{font:inherit}.app{min-height:100vh;display:grid;grid-template-columns:220px 1fr;background:var(--bg)}
.sidebar{background:#101010;border-inline-end:1px solid #303030;min-height:100vh;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:12px 9px}.brand{display:flex;align-items:center;gap:9px;padding:8px 8px 16px;border-bottom:1px solid #2c2c2c;margin-bottom:8px}.brand strong{display:block;font-size:15px}.brand small{display:block;color:#aaa;margin-top:3px;font-size:11px}.brand-mark{width:48px;height:48px;border-radius:5px;background:var(--purple);display:grid;place-items:center;color:#fff;font-weight:800;letter-spacing:1px}.brand-mark.small{width:36px;height:36px;font-size:12px}.sidebar nav{display:grid;gap:3px;overflow:auto;padding:4px 0}.nav-btn{border:0;background:transparent;color:#ddd;display:flex;align-items:center;gap:9px;text-align:start;padding:9px 10px;border-radius:5px;cursor:pointer;transition:.15s}.nav-btn:hover{background:#1d1d1d;color:#fff}.nav-btn.active{background:var(--purple);color:#fff}.nav-btn .ico{width:22px;text-align:center;color:#c99be0}.nav-btn.active .ico{color:#fff}.sidebar-foot{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:6px;border-top:1px solid #2c2c2c;padding-top:8px}.ghost{background:#1b1b1b;border:1px solid #333;color:#fff;border-radius:5px;padding:8px;cursor:pointer}.ghost:hover{background:#292929}.main{min-width:0}.topbar{height:64px;background:#171717;border-bottom:1px solid #333;display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:20}.topbar>div:first-child{display:flex;align-items:center;gap:10px}.topbar h2{font-size:19px;margin:0}.topbar p{font-size:11px;color:#aaa;margin:2px 0 0}.top-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:36px;height:36px;background:#111;border:1px solid #3a3a3a;border-radius:5px;color:#fff;cursor:pointer}.icon-btn:hover{background:var(--purple)}.user-chip{background:#111;border:1px solid #333;border-radius:5px;padding:6px 10px;min-width:120px}.user-chip span,.user-chip small{display:block}.user-chip small{font-size:10px;color:#70e2a9;margin-top:2px}.content{width:min(94%,1500px);margin:0 auto;padding:18px 0 34px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:5px 0 13px}.section-title h2{font-size:20px;margin:0;text-transform:uppercase;letter-spacing:.2px}.toolbar{display:flex;flex-wrap:wrap;gap:7px}.btn{border:0;border-radius:18px;min-height:34px;padding:7px 15px;background:var(--purple);color:#fff;cursor:pointer;transition:.2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:5px}.btn:hover{background:var(--purple2);letter-spacing:.25px}.btn.primary{background:var(--purple)}.btn.soft{background:#2a1133}.btn.dark{background:#0f0f0f;border:1px solid #444}.btn.teal{background:#126d55}.btn.danger{background:#6f1f1f}.btn.sm{min-height:28px;padding:5px 10px;font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.kpi,.card,.project-card{background:#181818;border:1px solid #343434;border-radius:6px;box-shadow:none}.kpi{padding:14px}.kpi span{font-size:12px;color:#b8b8b8}.kpi strong{display:block;font-size:22px;margin-top:6px;color:#fff}.grid-2{display:grid;grid-template-columns:1.25fr .75fr;gap:10px;margin-top:10px}.card{padding:14px}.card h3,.card-head h3{margin:0;font-size:16px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.project-card{padding:13px;cursor:pointer}.project-card:hover{border-color:#70358a;background:#1c1c1c}.project-card h3{margin:7px 0;font-size:16px}.project-card p{margin:4px 0;color:#bbb}.project-meta{display:flex;justify-content:space-between;color:#bbb;font-size:12px;margin-top:8px}.progress{height:6px;background:#0d0d0d;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;background:var(--purple3)}.facts{display:grid;grid-template-columns:1fr 1fr;gap:6px}.facts>div,.quick-item{background:#111;border:1px solid #333;border-radius:5px;padding:9px}.facts span,.facts b{display:block}.facts span{font-size:11px;color:#aaa}.quick-list{display:grid;gap:6px}.quick-item{display:flex;align-items:center;justify-content:space-between;gap:10px}.money.pos{color:#61dca4}.money.neg{color:#ff7777}.table-wrap{overflow:auto;border:1px solid #3a3a3a;border-radius:5px;background:#121212}.data-table{width:100%;border-collapse:collapse;min-width:780px;text-align:center}.data-table th{background:#0c0c0c;color:#fff;text-transform:uppercase;font-size:12px}.data-table th,.data-table td{padding:8px 7px;border-bottom:1px solid #303030;text-align:center;white-space:nowrap}.data-table tbody tr:hover td{background:#202020}.data-table td:first-child{font-weight:600}.pill{display:inline-block;border-radius:12px;padding:4px 8px;background:#333;color:#ddd;font-size:11px}.pill.active,.pill.running,.pill.posted,.pill.approved,.pill.paid,.pill.completed,.pill.received{background:#123d30;color:#7ee0b7}.pill.draft,.pill.new,.pill.pending,.pill.unpaid,.pill.submitted{background:#493411;color:#ffd276}.pill.cancelled,.pill.stopped,.pill.inactive{background:#4a1818;color:#ff9999}.pill.linked{background:#2c1b45;color:#d7baff}.hash-chip{display:block;margin:4px auto 0;border:0;background:#0c0c0c;color:#b882dc;border-radius:4px;padding:3px 6px;font:10px Consolas,monospace;cursor:pointer}.hash-chip:hover{background:var(--purple);color:#fff}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.form-grid .full{grid-column:1/-1}.stack{display:grid;gap:9px}label{display:grid;gap:5px;color:#ddd;font-size:13px}input,select,textarea{width:100%;background:#111;border:0;border-radius:4px;color:#fff;padding:9px 10px;outline:1px solid #333;transition:.15s}input:focus,select:focus,textarea:focus{background:#000;outline:1px solid #78418f;box-shadow:0 0 0 2px rgba(123,31,162,.15)}textarea{min-height:88px;resize:vertical}select option{background:#111;color:#fff}.modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;padding:12px;z-index:100}.modal-card{width:min(760px,96vw);max-height:92vh;overflow:auto;background:#1b1b1b;border:1px solid #444;border-radius:7px}.modal-card.wide{width:min(1120px,97vw)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #3c3c3c;background:#151515;position:sticky;top:0;z-index:5}.modal-head h3{margin:0;font-size:17px}.modal #modalBody{padding:13px}.modal-actions{margin-top:12px;padding-top:10px;border-top:1px solid #333}.line-editor{background:#111;border:1px solid #3c3c3c;border-radius:5px;padding:9px}.line-editor-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.items-table{width:100%;min-width:720px;border-collapse:collapse;background:#101010}.items-table th{background:#080808;color:#ddd;font-size:11px}.items-table td,.items-table th{padding:5px;border-bottom:1px solid #303030;text-align:center}.items-table input{padding:7px;outline:1px solid #333}.items-table .item-name{min-width:210px}.items-table .item-unit{min-width:90px}.items-table .item-qty,.items-table .item-price{width:100px}.items-table .line-total{font-weight:700}.row-remove{width:28px;height:28px;border:0;border-radius:4px;background:#5c1818;color:#fff;cursor:pointer}.line-summary,.doc-total{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:8px 10px;margin-top:8px;background:#120b16;border:1px solid #3d2148;border-radius:5px}.line-summary b,.doc-total strong{font-size:18px;color:#d7a3ef}.linked-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#101010;border:1px solid #333;border-radius:5px;padding:8px}.linked-summary>div{display:flex;justify-content:space-between;gap:10px;padding:4px 6px}.full-card{grid-column:1/-1}.split{display:flex;gap:5px;align-items:center}.empty{text-align:center;color:#aaa;padding:30px}.toast{position:fixed;bottom:18px;left:18px;z-index:200;background:#080808;border:1px solid #444;color:#fff;border-radius:5px;padding:10px 13px;opacity:0;transform:translateY(8px);pointer-events:none;transition:.18s}.toast.show{opacity:1;transform:none}.toast.danger{background:#601919}.error{color:#ff8585;font-size:12px}.login-shell{min-height:100vh;background:#222;display:grid;place-items:center;padding:18px}.login-card{width:min(420px,94vw);background:#171717;border:1px solid #3d3d3d;border-radius:7px;padding:22px}.login-card .brand-mark{margin:auto}.login-card h1{text-align:center;text-transform:uppercase;margin:12px 0 3px;font-size:24px}.login-card p{text-align:center;color:#aaa;margin:0 0 17px}.login-card .btn{width:100%}.portal-body{background:#222}.portal-wrap{width:min(92%,1100px);margin:auto;padding:18px 0}.portal-hero{background:#111;border:1px solid #3a3a3a;border-radius:6px;padding:18px}.portal-hero h1{margin:8px 0}.progress-big{height:8px;background:#090909;border-radius:10px;overflow:hidden;margin:12px 0}.progress-big div{height:100%;background:var(--purple3)}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.portal-grid .wide{grid-column:1/-1}.stage,.update{padding:9px 0;border-bottom:1px solid #333}.stage>div:first-child,.update>div{display:flex;justify-content:space-between;gap:8px}.update small{color:#aaa}.portal-tools{display:flex;justify-content:flex-end;gap:7px;margin-bottom:7px}.live-dot{color:#67e8b4;font-weight:700;font-size:11px}.portal-brand{display:flex;justify-content:space-between;color:#c4c4c4}.portal-progress-label{display:flex;justify-content:space-between;align-items:center}.portal-progress-label b{font-size:22px}.mobile-only{display:none}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.projects{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.app{grid-template-columns:205px 1fr}}
@media(max-width:760px){body{font-size:16px}.app{display:block}.sidebar{position:fixed;right:-255px;top:0;width:235px;z-index:60;transition:.18s}.sidebar.open{right:0}.mobile-only{display:inline-grid}.topbar{height:62px;padding:0 10px}.content{width:94%;padding:12px 0 24px}.kpis{grid-template-columns:1fr 1fr;gap:7px}.kpi{padding:10px}.kpi strong{font-size:19px}.projects{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.modal{padding:5px;align-items:end}.modal-card,.modal-card.wide{width:100%;max-height:94vh;border-radius:7px 7px 0 0}.items-table{min-width:680px}.linked-summary{grid-template-columns:1fr}.portal-grid{grid-template-columns:1fr}.portal-grid .wide{grid-column:auto}.portal-wrap{width:94%;padding:10px 0}input,select,textarea{font-size:16px;min-height:42px}.btn{min-height:38px}.facts{grid-template-columns:1fr 1fr}}

/* ==========================================================
   V1.3.0 — Modern Dynamic Workspace
   Curved, compact, bilingual desktop-first design.
   ========================================================== */
:root{
  --bg:#0b1020;--bg2:#0f1628;--panel:#121a2d;--panel2:#172238;--panel3:#0f1728;
  --text:#f6f7fb;--muted:#94a3b8;--line:rgba(255,255,255,.085);
  --brand:#8b5cf6;--brand2:#6d5dfc;--teal:#14b8a6;--good:#22c55e;--warn:#f59e0b;--bad:#ef4444;
  --shadow:0 18px 48px rgba(0,0,0,.24);--shadow-soft:0 10px 30px rgba(0,0,0,.14);
  --radius:20px;--radius-sm:14px;
}
html{background:var(--bg)}
body{background:radial-gradient(circle at 90% -10%,rgba(139,92,246,.16),transparent 28%),radial-gradient(circle at -8% 92%,rgba(20,184,166,.08),transparent 24%),var(--bg);color:var(--text);font-family:Tahoma,"Segoe UI",Arial,sans-serif;font-size:14px;letter-spacing:0;min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.012) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.4),transparent 70%)}
.hidden{display:none!important}
.app{grid-template-columns:238px minmax(0,1fr);min-height:100vh;background:transparent}
.sidebar{height:calc(100vh - 24px);top:12px;right:12px;position:sticky;margin:12px 0 12px 12px;padding:16px 12px;background:rgba(15,22,40,.86);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);backdrop-filter:blur(18px);overflow:auto}
html[dir="ltr"] .sidebar{right:auto;left:12px;margin:12px 12px 12px 0}
.brand{padding:4px 5px 15px;margin-bottom:10px;border-bottom:1px solid var(--line);gap:10px}.brand strong{font-size:14px}.brand small{color:var(--muted);font-size:10px}.brand-mark{background:linear-gradient(145deg,var(--brand),var(--brand2));border-radius:17px;box-shadow:0 10px 24px rgba(139,92,246,.28);border:0}.brand-mark.small{width:38px;height:38px;border-radius:13px;font-size:12px}
#nav{display:grid;gap:3px}.nav-btn{border-radius:13px;padding:9px 10px;color:#aab5c9;transition:.18s;border:1px solid transparent}.nav-btn:hover{background:rgba(255,255,255,.045);border-color:var(--line);transform:translateX(-2px)}html[dir="ltr"] .nav-btn:hover{transform:translateX(2px)}.nav-btn.active{background:linear-gradient(135deg,rgba(139,92,246,.24),rgba(109,93,252,.13));border-color:rgba(139,92,246,.22);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}.nav-btn .ico{width:25px;color:#a78bfa;font-size:15px}.nav-btn.active .ico{color:#d7ccff}.sidebar-foot{border-color:var(--line);gap:7px}.ghost{background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:13px;color:#c8d0df}.ghost:hover{background:rgba(139,92,246,.14);border-color:rgba(139,92,246,.22)}
.main{min-width:0;padding-right:0}.topbar{height:72px;margin:12px 12px 0 0;border:1px solid var(--line);border-radius:20px;background:rgba(15,22,40,.76);backdrop-filter:blur(18px);box-shadow:var(--shadow-soft);padding:0 18px;top:12px}html[dir="ltr"] .topbar{margin:12px 0 0 12px}.topbar h2{font-size:18px;font-weight:750}.topbar p{color:#7f8da6;font-size:10px;letter-spacing:.5px;text-transform:uppercase}.icon-btn{width:38px;height:38px;border-radius:13px;background:rgba(255,255,255,.045);border:1px solid var(--line);color:#d8deea}.icon-btn:hover{background:rgba(139,92,246,.15);border-color:rgba(139,92,246,.28);transform:translateY(-1px)}.user-chip{border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line);padding:7px 11px}.user-chip span{font-weight:750}.user-chip small{color:#5ee2c4}
.content{width:min(calc(100% - 24px),1560px);margin:0 auto;padding:18px 0 38px}.section-title{margin:2px 0 13px}.section-title h2{font-size:19px;letter-spacing:-.2px;text-transform:none}.toolbar{gap:7px}.btn{border-radius:13px;min-height:36px;padding:8px 14px;font-weight:720;letter-spacing:0;transition:.18s}.btn:hover{letter-spacing:0;transform:translateY(-1px);filter:brightness(1.08)}.btn.primary{background:linear-gradient(135deg,var(--brand),var(--brand2));box-shadow:0 8px 20px rgba(139,92,246,.20)}.btn.soft{background:rgba(139,92,246,.13);border:1px solid rgba(139,92,246,.17);color:#ded7ff}.btn.dark,.btn.glass,.ghost-btn{background:rgba(255,255,255,.045);border:1px solid var(--line);color:#dde4ef}.btn.teal{background:linear-gradient(135deg,#0f927e,var(--teal))}.btn.danger{background:rgba(239,68,68,.14);border:1px solid rgba(239,68,68,.18);color:#fecaca}.btn.sm{border-radius:10px;min-height:29px;padding:5px 9px;font-size:11px}
.card,.kpi,.project-card{background:linear-gradient(145deg,rgba(23,34,56,.92),rgba(16,24,42,.92));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.card{padding:16px}.card.elevated{box-shadow:var(--shadow);position:relative;overflow:hidden}.card.elevated:before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(139,92,246,.04);left:-100px;top:-100px;pointer-events:none}.card-head{margin-bottom:13px}.card-head h3{font-size:16px}.eyebrow{display:block;color:#9d8af2;font-size:9px;font-weight:850;letter-spacing:1.25px;margin-bottom:4px}.grid-2,.dashboard-grid,.report-grid{gap:12px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.65fr);gap:12px;margin-top:12px}.dashboard-grid.lower{grid-template-columns:1.2fr .8fr}.full-card{grid-column:1/-1}
.kpis{gap:9px}.modern-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:12px}.kpi{padding:14px;position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;width:64px;height:64px;border-radius:50%;right:-24px;bottom:-30px;background:rgba(139,92,246,.08)}html[dir="ltr"] .kpi:after{right:auto;left:-24px}.kpi span{font-size:11px;color:#9aa7bc}.kpi strong{font-size:19px;letter-spacing:-.4px;margin-top:5px}.kpi small{display:block;margin-top:5px;color:#66758d;font-size:9px}.kpi-wallet:before,.kpi-in:before{content:"";position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,var(--teal),transparent)}.kpi-debt:before,.kpi-out:before{content:"";position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,#fb7185,transparent)}.kpi-contracts:before,.kpi-po:before,.kpi-budget:before{content:"";position:absolute;top:0;right:0;left:0;height:2px;background:linear-gradient(90deg,var(--brand),transparent)}
.dash-hero{min-height:190px;border:1px solid rgba(255,255,255,.09);border-radius:26px;background:linear-gradient(125deg,rgba(22,32,55,.98),rgba(16,23,41,.96));box-shadow:var(--shadow);padding:24px 27px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden}.dash-hero:before{content:"";position:absolute;inset:auto -100px -150px auto;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.23),transparent 68%)}.dash-hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;left:-110px;top:-120px;background:rgba(20,184,166,.06)}.dash-copy{position:relative;z-index:2;max-width:720px}.dash-copy h1{font-size:30px;letter-spacing:-.8px;margin:5px 0 7px}.dash-copy p{color:#a0aec2;line-height:1.75;margin:0;max-width:650px}.hero-actions{display:flex;gap:8px;margin-top:16px}.hero-orb{position:relative;z-index:2}.donut{--deg:180deg;width:118px;height:118px;border-radius:50%;background:conic-gradient(var(--teal) var(--deg),rgba(255,255,255,.06) 0);display:grid;place-items:center;box-shadow:0 15px 40px rgba(0,0,0,.24)}.donut:before{content:"";position:absolute;width:91px;height:91px;border-radius:50%;background:#111a2d;border:1px solid var(--line)}.donut div{position:relative;z-index:2;text-align:center}.donut b{display:block;font-size:23px}.donut span{font-size:9px;color:var(--muted)}
.projects{gap:9px}.modern-projects{grid-template-columns:repeat(2,minmax(0,1fr))}.project-card{border-radius:17px;padding:13px;box-shadow:none;transition:.18s}.project-card:hover{background:linear-gradient(145deg,rgba(31,44,70,.95),rgba(18,28,47,.95));border-color:rgba(139,92,246,.22);transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,0,0,.15)}.project-card h3{font-size:14px}.project-card p{font-size:11px;color:#8e9cb2}.progress{height:7px;background:rgba(255,255,255,.055)}.progress i{background:linear-gradient(90deg,var(--teal),var(--brand));box-shadow:0 0 12px rgba(20,184,166,.22)}.project-meta{font-size:10px;color:#8492a8}
.insight-list{display:grid;gap:9px;margin-top:3px}.insight{padding:11px 12px;border:1px solid var(--line);background:rgba(255,255,255,.028);border-radius:15px;display:grid;grid-template-columns:1fr auto;gap:5px 10px;align-items:center}.insight span{font-size:11px;color:#a6b1c3}.insight b{font-size:13px}.insight em{grid-column:1/-1;height:5px;background:rgba(255,255,255,.055);border-radius:99px;overflow:hidden}.insight em:before{content:"";display:block;width:var(--w);height:100%;background:linear-gradient(90deg,var(--teal),var(--brand));border-radius:99px}.insight.alert em:before{background:linear-gradient(90deg,#f59e0b,#ef4444)}
.cashflow-mini,.cashflow-chart{height:170px;display:flex;align-items:end;gap:8px;padding:10px 5px 2px;direction:ltr}.cashflow-mini>div,.cash-month{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.cashflow-mini span,.cash-month span{font-size:8px;color:#6f7c91}.cash-columns{height:125px;display:flex;align-items:end;justify-content:center;gap:3px;width:100%}.cash-columns.tall{height:170px}.cash-columns i{display:block;width:min(14px,36%);min-height:4px;border-radius:5px 5px 2px 2px;transition:height .45s ease}.cash-columns .in{background:linear-gradient(180deg,#2dd4bf,#0f766e)}.cash-columns .out{background:linear-gradient(180deg,#a78bfa,#6d28d9)}.chart-legend{display:flex;justify-content:center;gap:17px;margin-top:8px;color:#8794a9;font-size:9px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-inline-end:5px}.dot.in{background:#2dd4bf}.dot.out{background:#8b5cf6}.flow-steps{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:7px;align-items:center;padding:18px 4px}.flow-steps div{padding:15px 8px;border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:16px;text-align:center}.flow-steps b{display:block;font-size:23px;color:#c8b8ff}.flow-steps span{display:block;color:#8593a9;font-size:9px;margin-top:5px}.flow-steps>i{font-style:normal;color:#56647a;font-size:24px}
.table-wrap{border-radius:17px;background:rgba(12,18,32,.70);border:1px solid var(--line);box-shadow:none}.data-table{min-width:760px}.data-table th{background:rgba(8,13,24,.88);color:#9fabbd;font-size:10px;letter-spacing:.2px;text-transform:none;position:sticky;top:0;z-index:2}.data-table th,.data-table td{padding:9px 8px;border-color:rgba(255,255,255,.055)}.data-table tbody tr{transition:.12s}.data-table tbody tr:hover td{background:rgba(139,92,246,.055)}.data-table td{font-size:11.5px}.cell-sub{display:block;color:#6e7d93;font-size:9px;margin-top:3px}.overdue-row td{background:rgba(239,68,68,.035)}.pill{border-radius:99px;padding:4px 8px;font-size:9px;border:1px solid rgba(255,255,255,.055);background:rgba(255,255,255,.07)}.pill.active,.pill.running,.pill.posted,.pill.approved,.pill.paid,.pill.completed,.pill.received{background:rgba(34,197,94,.11);color:#86efac;border-color:rgba(34,197,94,.13)}.pill.draft,.pill.new,.pill.pending,.pill.unpaid,.pill.submitted{background:rgba(245,158,11,.10);color:#fcd34d;border-color:rgba(245,158,11,.14)}.pill.cancelled,.pill.stopped,.pill.inactive{background:rgba(239,68,68,.10);color:#fca5a5;border-color:rgba(239,68,68,.13)}.pill.partial,.pill.linked{background:rgba(139,92,246,.11);color:#c4b5fd;border-color:rgba(139,92,246,.14)}.hash-chip{border-radius:8px;background:#0a1020;border:1px solid var(--line);color:#a78bfa}
.form-grid{gap:11px}.stack{gap:11px}label{font-size:11px;color:#b2bdce;font-weight:650}input,select,textarea{background:#0d1525;border:1px solid var(--line);outline:0;border-radius:13px;padding:10px 11px;color:#f3f5fa;min-height:39px;transition:.16s}input:focus,select:focus,textarea:focus{background:#0b1322;border-color:rgba(139,92,246,.56);outline:0;box-shadow:0 0 0 3px rgba(139,92,246,.08)}textarea{min-height:90px}.modal{background:rgba(2,6,15,.67);backdrop-filter:blur(8px)}.modal-card{background:linear-gradient(145deg,#151e32,#101827);border:1px solid var(--line);border-radius:23px;box-shadow:0 28px 90px rgba(0,0,0,.48)}.modal-head{padding:13px 15px;background:rgba(11,17,30,.88);border-color:var(--line);border-radius:23px 23px 0 0;backdrop-filter:blur(15px)}.modal-head h3{font-size:15px}.modal #modalBody{padding:15px}.modal-actions{border-color:var(--line)}.line-editor{background:rgba(8,14,25,.60);border-color:var(--line);border-radius:17px;padding:10px}.items-table{background:transparent}.items-table th{background:rgba(5,10,20,.8);color:#8e9bb0}.items-table td,.items-table th{border-color:var(--line)}.items-table input{border-radius:10px}.row-remove{border-radius:9px;background:rgba(239,68,68,.16);color:#fca5a5}.line-summary,.doc-total{border-radius:14px;background:rgba(139,92,246,.07);border-color:rgba(139,92,246,.14)}.linked-summary{border-radius:14px;background:rgba(255,255,255,.025);border-color:var(--line)}
.login-shell{background:radial-gradient(circle at 78% 0%,rgba(139,92,246,.22),transparent 32%),radial-gradient(circle at 0% 100%,rgba(20,184,166,.10),transparent 26%),#09101e}.login-card{width:min(440px,92vw);background:rgba(16,24,42,.92);border:1px solid var(--line);border-radius:28px;padding:26px;box-shadow:0 30px 90px rgba(0,0,0,.42);backdrop-filter:blur(18px)}.login-card .brand-mark{width:64px;height:64px;border-radius:20px;font-size:16px}.login-card h1{font-size:24px;text-transform:none}.login-card p{color:#8492a8}.login-card .btn{min-height:44px;border-radius:14px}
.portal-body{background:radial-gradient(circle at 90% 0%,rgba(139,92,246,.15),transparent 30%),var(--bg)}.portal-hero,.portal-grid>.card{border-radius:24px;background:linear-gradient(145deg,rgba(23,34,56,.94),rgba(16,24,42,.94));border:1px solid var(--line);box-shadow:var(--shadow)}.progress-big{background:rgba(255,255,255,.055)}.progress-big div{background:linear-gradient(90deg,var(--teal),var(--brand))}

/* Reports */
.report-hero{display:flex;justify-content:space-between;align-items:end;gap:20px;padding:21px 23px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(125deg,rgba(23,34,58,.96),rgba(15,23,40,.96));box-shadow:var(--shadow);margin-bottom:12px}.report-hero h2{margin:2px 0 5px;font-size:24px}.report-hero p{margin:0;color:#8e9bb0}.report-tabs{display:flex;gap:6px;overflow:auto;padding:5px 1px 11px;scrollbar-width:none}.report-tabs::-webkit-scrollbar{display:none}.report-tab{white-space:nowrap;border:1px solid var(--line);background:rgba(255,255,255,.035);color:#a6b2c5;border-radius:12px;padding:8px 12px;font-size:11px;font-weight:700}.report-tab:hover{background:rgba(255,255,255,.06)}.report-tab.active{background:linear-gradient(135deg,rgba(139,92,246,.30),rgba(109,93,252,.18));border-color:rgba(139,92,246,.25);color:#fff}.report-content{animation:reportIn .18s ease}@keyframes reportIn{from{opacity:.25;transform:translateY(5px)}to{opacity:1;transform:none}}.report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:11px}.report-kpis article{padding:15px;border-radius:17px;background:linear-gradient(145deg,rgba(23,34,56,.94),rgba(16,24,42,.94));border:1px solid var(--line)}.report-kpis span{display:block;font-size:10px;color:#8997ad}.report-kpis b{display:block;font-size:18px;margin-top:5px}.report-kpis .danger b{color:#fda4af}.report-grid{display:grid;grid-template-columns:1.2fr .8fr}.aging-bars{display:grid;gap:11px;margin-top:5px}.aging-bars>div label{display:flex;justify-content:space-between;align-items:center}.aging-bars label span{color:#9aa7bb;font-size:10px}.aging-bars label b{font-size:11px}.aging-bars em{display:block;height:6px;background:rgba(255,255,255,.055);border-radius:99px;margin-top:5px}.aging-bars em i{display:block;height:100%;background:linear-gradient(90deg,#f59e0b,#ef4444);border-radius:99px}.aging-bars small{display:block;color:#64748b;font-size:8px;margin-top:3px}.aging-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.aging-cards article{padding:17px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,rgba(23,34,56,.94),rgba(16,24,42,.94));text-align:center}.aging-cards span{display:block;color:#f59e0b;font-weight:850}.aging-cards strong{display:block;margin:9px 0;font-size:17px}.aging-cards small{color:#7c899f}.account-report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.account-report-card{padding:16px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(23,34,56,.94),rgba(16,24,42,.94));box-shadow:var(--shadow-soft)}.account-report-card h3{margin:5px 0 2px}.account-report-card p{margin:0;color:#69788f;font-size:10px}.account-report-card>strong{display:block;font-size:23px;margin:14px 0}.account-type{font-size:8px;color:#a78bfa;text-transform:uppercase;letter-spacing:.8px}.account-flows{display:flex;justify-content:space-between;margin-bottom:12px;font-size:10px}.usage-cell{min-width:110px}.usage-cell b{font-size:9px}.usage-cell em{display:block;height:5px;background:rgba(255,255,255,.06);border-radius:99px;margin-top:4px}.usage-cell i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--brand));border-radius:99px}.statement-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.statement-summary>div{background:rgba(255,255,255,.035);border:1px solid var(--line);border-radius:15px;padding:11px}.statement-summary span{display:block;color:#8391a6;font-size:9px}.statement-summary b{display:block;font-size:16px;margin-top:4px}.subhead{font-size:14px;margin:18px 0 8px}.statement-modal .report-print{justify-content:flex-end;margin-bottom:8px}
.toast{border-radius:14px;background:rgba(10,16,29,.96);border:1px solid var(--line);box-shadow:var(--shadow);padding:11px 14px}.toast.danger{background:rgba(80,16,24,.96)}

@media(max-width:1200px){.modern-kpis{grid-template-columns:repeat(2,1fr)}.dashboard-grid,.dashboard-grid.lower,.report-grid{grid-template-columns:1fr}.account-report-grid{grid-template-columns:repeat(2,1fr)}.aging-cards{grid-template-columns:repeat(3,1fr)}.app{grid-template-columns:215px minmax(0,1fr)}.sidebar{width:auto}.dash-copy h1{font-size:26px}}
@media(max-width:760px){body{font-size:14px}.app{display:block}.sidebar{position:fixed;right:-260px;top:0;width:238px;height:calc(100vh - 16px);margin:8px;z-index:80}.sidebar.open{right:0}html[dir="ltr"] .sidebar{left:-260px;right:auto;margin:8px}html[dir="ltr"] .sidebar.open{left:0}.topbar,html[dir="ltr"] .topbar{height:62px;margin:7px 7px 0;border-radius:17px;padding:0 10px}.content{width:calc(100% - 14px);padding:10px 0 25px}.dash-hero{padding:18px;min-height:auto;border-radius:21px}.dash-copy h1{font-size:22px}.dash-copy p{font-size:11px}.hero-orb{display:none}.hero-actions{flex-wrap:wrap}.modern-kpis,.report-kpis{grid-template-columns:1fr 1fr}.kpi{padding:11px;border-radius:16px}.kpi strong{font-size:16px}.modern-projects{grid-template-columns:1fr}.account-report-grid{grid-template-columns:1fr}.aging-cards{grid-template-columns:1fr 1fr}.report-hero{align-items:flex-start;flex-direction:column;padding:16px;border-radius:20px}.report-hero h2{font-size:20px}.statement-summary{grid-template-columns:1fr}.flow-steps{grid-template-columns:1fr}.flow-steps>i{transform:rotate(90deg);text-align:center}.modal-card,.modal-card.wide{border-radius:22px 22px 0 0}.form-grid{grid-template-columns:1fr}.data-table{min-width:720px}input,select,textarea{font-size:16px}.btn{min-height:39px}.cashflow-mini{height:140px}.cash-columns{height:100px}}
@media print{.sidebar,.topbar,.report-tabs,.report-hero .toolbar,.toolbar.report-print{display:none!important}.app{display:block}.main{padding:0}.content{width:100%;padding:0}.card,.table-wrap,.report-kpis article,.account-report-card{box-shadow:none!important;background:#fff!important;color:#111!important;border-color:#ddd!important}.data-table th{background:#f1f3f5!important;color:#111!important}.data-table td{color:#111!important}.report-hero{box-shadow:none;background:#fff;color:#111;border-color:#ddd}.report-hero p{color:#555}.report-content{color:#111}}
.finance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:9px;align-items:stretch;margin-bottom:12px}.finance-summary article{padding:13px 14px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,rgba(23,34,56,.94),rgba(16,24,42,.94));box-shadow:var(--shadow-soft)}.finance-summary span{display:block;font-size:9px;color:#8997ad}.finance-summary b{display:block;font-size:17px;margin-top:5px}.finance-summary>.btn{align-self:stretch;min-width:190px}
@media(max-width:950px){.finance-summary{grid-template-columns:1fr 1fr}.finance-summary>.btn{grid-column:1/-1}}@media(max-width:560px){.finance-summary{grid-template-columns:1fr 1fr}.finance-summary>.btn{grid-column:1/-1}.finance-summary b{font-size:14px}}
.payment-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pay-status{padding:19px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,rgba(23,34,56,.94),rgba(16,24,42,.94));position:relative;overflow:hidden}.pay-status:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#64748b}.pay-status.approved:before{background:#f59e0b}.pay-status.paid:before{background:#22c55e}.pay-status.cancelled:before{background:#ef4444}.pay-status span{display:block;text-transform:uppercase;letter-spacing:.7px;font-size:9px;color:#8795aa}.pay-status strong{display:block;font-size:21px;margin:9px 0}.pay-status small{color:#69788f}@media(max-width:800px){.payment-status-grid{grid-template-columns:1fr 1fr}}

/* V1.3.1 readability upgrade: reports and statements */
.report-hero h2{font-size:26px}.report-hero p{font-size:13px}.report-tab{font-size:13px;padding:10px 14px}.report-kpis span{font-size:12px}.report-kpis b{font-size:22px}.report-content .data-table{font-size:14px}.report-content .data-table th{font-size:13px;padding:10px 9px}.report-content .data-table td{font-size:14px;padding:10px 9px}.statement-modal .data-table{font-size:14px}.statement-modal .data-table th{font-size:13px;padding:10px 9px}.statement-modal .data-table td{font-size:14px;padding:10px 9px}.statement-summary span{font-size:12px}.statement-summary b{font-size:21px}.subhead{font-size:17px}.account-report-card h3{font-size:17px}.account-report-card p{font-size:12px}.account-report-card>strong{font-size:26px}.account-flows{font-size:12px}.aging-bars label span,.aging-bars label b{font-size:12px}.aging-bars small{font-size:10px}.aging-cards strong{font-size:20px}.pay-status span{font-size:11px}.pay-status strong{font-size:24px}.pay-status small{font-size:11px}.usage-cell b{font-size:11px}.finance-summary span{font-size:11px}.finance-summary b{font-size:20px}
@media(max-width:760px){.report-content .data-table td,.statement-modal .data-table td{font-size:13px}.report-content .data-table th,.statement-modal .data-table th{font-size:12px}.report-tab{font-size:12px}.report-kpis b{font-size:19px}}

/* ==========================================================
   V1.3.2 — Global screen readability upgrade
   Larger typography and financial numbers across ALL screens.
   ========================================================== */
body{font-size:16px;line-height:1.48}
body,input,select,textarea,button,.btn,.data-table{font-variant-numeric:tabular-nums lining-nums}
.brand strong{font-size:16px}.brand small{font-size:12px;line-height:1.4}
.nav-btn{font-size:14.5px;padding:10px 11px;min-height:43px}.nav-btn .ico{font-size:17px}
.ghost{font-size:13.5px;min-height:39px}
.topbar h2{font-size:21px}.topbar p{font-size:12px}.user-chip span{font-size:14px}.user-chip small{font-size:11.5px}.icon-btn{font-size:15px}
.section-title h2{font-size:23px}.eyebrow{font-size:11px}.card-head h3,.card h3{font-size:18px}
.btn{font-size:14.5px;min-height:40px;padding:9px 16px}.btn.sm{font-size:13px;min-height:34px;padding:6px 11px}
.kpi span{font-size:13px}.kpi strong{font-size:25px}.kpi small{font-size:11px}
.dash-copy h1{font-size:32px}.dash-copy p{font-size:14px}.donut b{font-size:27px}.donut span{font-size:11px}
.project-card h3{font-size:17px}.project-card p{font-size:13.5px;line-height:1.6}.project-meta{font-size:12.5px}
.insight span{font-size:13px}.insight b{font-size:15px}.flow-steps b{font-size:26px}.flow-steps span{font-size:11.5px}
.facts span{font-size:13px}.facts b,.quick-item b,.quick-item strong{font-size:15px}.quick-item{font-size:14px}
.data-table{font-size:14.5px}.data-table th{font-size:13.5px;padding:11px 10px}.data-table td{font-size:14.5px;padding:11px 10px}.data-table td:first-child{font-weight:700}.cell-sub{font-size:11.5px}.pill{font-size:11.5px;padding:5px 9px}.hash-chip{font-size:11px;padding:4px 7px}
label{font-size:14px;gap:7px}input,select,textarea{font-size:15px;min-height:44px;padding:11px 12px}textarea{min-height:102px}
.modal-head h3{font-size:19px}.modal #modalBody{font-size:15px}.modal-card{line-height:1.5}.line-editor-head{font-size:15px}
.items-table{font-size:14px}.items-table th{font-size:13px;padding:8px 7px}.items-table td{font-size:14px;padding:7px}.items-table input{font-size:14px;min-height:40px}.line-summary,.doc-total{font-size:14px}.line-summary b,.doc-total strong{font-size:22px}.linked-summary{font-size:14px}
.empty{font-size:15px}.toast{font-size:14px}.error{font-size:13px}
.finance-summary span{font-size:12px}.finance-summary b{font-size:23px}.pay-status span{font-size:12px}.pay-status strong{font-size:27px}.pay-status small{font-size:12px}
.report-hero h2{font-size:28px}.report-hero p{font-size:14px}.report-tab{font-size:14px}.report-kpis span{font-size:13px}.report-kpis b{font-size:25px}
.report-content .data-table,.statement-modal .data-table{font-size:14.5px}.report-content .data-table th,.statement-modal .data-table th{font-size:13.5px;padding:11px 10px}.report-content .data-table td,.statement-modal .data-table td{font-size:14.5px;padding:11px 10px}
.statement-summary span{font-size:13px}.statement-summary b{font-size:24px}.subhead{font-size:19px}.account-report-card h3{font-size:18px}.account-report-card p{font-size:13px}.account-report-card>strong{font-size:29px}.account-type{font-size:10.5px}.account-flows{font-size:13px}.aging-bars label span,.aging-bars label b{font-size:13px}.aging-bars small{font-size:11px}.aging-cards span{font-size:13px}.aging-cards strong{font-size:23px}.aging-cards small{font-size:12px}.usage-cell b{font-size:12px}
.chart-legend{font-size:11px}.cashflow-mini span,.cash-month span{font-size:10px}
.login-card h1{font-size:27px}.login-card p{font-size:14px}.login-card label{font-size:14px}
.portal-wrap{font-size:16px}.portal-hero h1{font-size:29px}.portal-brand{font-size:14px}.portal-progress-label{font-size:15px}.portal-progress-label b{font-size:27px}.stage,.update{font-size:14.5px}.stage small,.update small{font-size:12.5px}

@media(max-width:760px){
  body{font-size:15px}
  .nav-btn{font-size:14px}
  .topbar h2{font-size:18px}.topbar p{font-size:11px}
  .section-title h2{font-size:20px}
  .dash-copy h1{font-size:25px}.dash-copy p{font-size:13px}
  .kpi span{font-size:12px}.kpi strong{font-size:21px}.kpi small{font-size:10.5px}
  .data-table{font-size:14px}.data-table th{font-size:13px}.data-table td{font-size:14px}
  .report-content .data-table th,.statement-modal .data-table th{font-size:13px}.report-content .data-table td,.statement-modal .data-table td{font-size:14px}
  .btn{font-size:14px}.btn.sm{font-size:12.5px}
  label{font-size:13.5px}input,select,textarea{font-size:16px}
  .report-tab{font-size:13px}.report-kpis b{font-size:22px}
  .finance-summary b{font-size:19px}.pay-status strong{font-size:23px}
}

/* V1.4.1 - stable sidebar + inline attachment previews + communications */
html,body,#appView,.app-shell{max-width:100%;overflow-x:hidden}
.sidebar{overflow-y:auto!important;overflow-x:hidden!important;scrollbar-gutter:stable;contain:layout paint}
#nav{width:100%;max-width:100%;overflow:hidden;padding-inline:2px}
.nav-btn,.nav-btn:hover,html[dir="ltr"] .nav-btn:hover{transform:none!important;max-width:100%;min-width:0}
.nav-btn:hover{box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 7px 18px rgba(0,0,0,.18)}

.attachment-preview{display:grid;gap:12px}
.attachment-preview img{display:block;max-width:100%;max-height:68vh;margin:auto;border-radius:18px;object-fit:contain;background:#0b0d13;border:1px solid var(--line)}
.attachment-preview iframe{width:100%;height:68vh;border:1px solid var(--line);border-radius:18px;background:#fff}
.attachment-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--line)}

.comm-status{display:inline-flex;gap:7px;align-items:center;font-weight:800}.comm-status:before{content:"";width:9px;height:9px;border-radius:50%;background:#9ca3af}.comm-status.sent:before{background:#34d399}.comm-status.failed:before{background:#fb7185}.comm-status.queued:before{background:#fbbf24}
.comm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.comm-card{border:1px solid var(--line);border-radius:22px;padding:18px;background:linear-gradient(155deg,rgba(255,255,255,.055),rgba(255,255,255,.018));box-shadow:0 15px 35px rgba(0,0,0,.13)}
.comm-card h3{margin:0 0 4px;font-size:20px}.comm-card .hint{color:var(--muted);font-size:14px;margin-bottom:14px}.comm-card .form-grid{margin-top:12px}
.comm-secret{display:flex;align-items:center;gap:8px}.comm-secret .saved{font-size:12px;border-radius:999px;padding:4px 8px;background:rgba(52,211,153,.12);color:#6ee7b7;border:1px solid rgba(52,211,153,.25)}
.comm-toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.channel-pill{font-weight:800;border-radius:999px;padding:5px 9px;font-size:12px}.channel-pill.whatsapp{background:rgba(37,211,102,.14);color:#63ef9b}.channel-pill.email{background:rgba(96,165,250,.14);color:#93c5fd}
.send-preview{border-radius:16px;padding:13px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-size:14px;line-height:1.8}
@media(max-width:900px){.comm-grid{grid-template-columns:1fr}}

.portal-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:12px}.portal-photo{position:relative;overflow:hidden;border-radius:18px;background:#0b0d12;border:1px solid rgba(255,255,255,.10);aspect-ratio:4/3;cursor:pointer}.portal-photo img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .22s ease}.portal-photo:hover img{transform:scale(1.035)}.portal-photo span{position:absolute;inset:auto 0 0;padding:9px 11px;background:linear-gradient(transparent,rgba(0,0,0,.78));color:#fff;font-size:13px}
.portal-inline-media{margin-top:12px}.portal-inline-media img{max-width:100%;max-height:480px;display:block;border-radius:18px;object-fit:cover;cursor:pointer;border:1px solid rgba(255,255,255,.10)}
.portal-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.88);display:grid;place-items:center;padding:24px}.portal-lightbox.hidden{display:none}.portal-lightbox img{max-width:94vw;max-height:90vh;object-fit:contain;border-radius:16px}.portal-lightbox button{position:fixed;top:18px;left:18px;border:0;border-radius:999px;width:44px;height:44px;font-size:24px;cursor:pointer}

/* V1.4.1 inline attachment cards */
.attachment-empty{color:var(--muted)}
.attachment-thumb{position:relative;width:86px;height:62px;padding:0;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#0a0c12;cursor:pointer;box-shadow:0 5px 16px rgba(0,0,0,.14)}
.attachment-thumb img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}
.attachment-thumb:hover img{transform:scale(1.045)}
.attachment-thumb span{position:absolute;inset:auto 0 0;padding:4px 6px;background:linear-gradient(transparent,rgba(0,0,0,.8));color:white;font-size:10px;text-align:center}
.attachment-file{display:inline-flex;align-items:center;gap:8px;max-width:180px;border:1px solid var(--line);border-radius:12px;padding:7px 9px;background:rgba(255,255,255,.035);color:var(--text);cursor:pointer;text-align:start}
.attachment-file b{font-size:11px;border-radius:7px;padding:4px 6px;background:rgba(148,163,184,.14)}
.attachment-file.pdf b{background:rgba(239,68,68,.14);color:#fda4af}
.attachment-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;max-width:120px}

/* V1.4.2 - preparation / approval / protected official stamp */
.approval-panel{border:1px solid rgba(139,92,246,.22);background:linear-gradient(145deg,rgba(20,26,45,.94),rgba(14,20,35,.94));border-radius:18px;padding:14px 15px;display:grid;gap:11px}
.approval-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.approval-head b{font-size:15px}.approval-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stamp-toggle{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px;background:rgba(37,99,235,.07);border:1px dashed rgba(96,165,250,.25);border-radius:13px;padding:10px 12px;color:#dbeafe}.stamp-toggle input{width:18px;height:18px;accent-color:#7c3aed;outline:none;box-shadow:none}.stamp-pin{max-width:340px}.stamp-warning{font-size:12px;line-height:1.7;color:#fcd34d;background:rgba(245,158,11,.07);border:1px solid rgba(245,158,11,.16);padding:8px 10px;border-radius:11px}.settings-subcard{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid rgba(96,165,250,.16);background:rgba(15,23,42,.66);border-radius:18px}.settings-subcard p{margin:5px 0 0;color:#8ea0b8;font-size:12px}.settings-stamp-preview{width:118px;height:118px;object-fit:contain;background:#fff;border-radius:16px;padding:7px;border:1px solid rgba(255,255,255,.12)}
@media(max-width:720px){.approval-grid{grid-template-columns:1fr}.settings-subcard{align-items:flex-start;flex-direction:column}.settings-stamp-preview{width:100px;height:100px}}

/* V1.4.3 - bottom-sheet forms, hidden sidebar scrollbars, automatic VAT */
.sidebar,.sidebar nav{scrollbar-width:none!important;-ms-overflow-style:none!important}
.sidebar::-webkit-scrollbar,.sidebar nav::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
.modal{place-items:end center!important;padding:0 12px!important;overflow:hidden}
.modal-card,.modal-card.wide{border-radius:28px 28px 0 0!important;border-bottom:0!important;max-height:91vh!important;animation:cmSheetUp .26s cubic-bezier(.2,.8,.2,1);box-shadow:0 -18px 52px rgba(0,0,0,.42)!important}
.modal-head{border-radius:28px 28px 0 0}
@keyframes cmSheetUp{from{opacity:.2;transform:translateY(70px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.tax-panel{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(150px,.55fr) minmax(170px,.6fr);gap:10px;align-items:end;padding:12px 13px;border:1px solid rgba(139,92,246,.20);border-radius:18px;background:linear-gradient(135deg,rgba(139,92,246,.08),rgba(255,255,255,.018))}
.tax-switch{display:flex!important;align-items:center;gap:10px;min-height:42px;cursor:pointer}.tax-switch input{position:absolute;opacity:0;pointer-events:none}.tax-switch span{width:44px;height:24px;border-radius:99px;background:#343844;position:relative;flex:0 0 auto;transition:.2s}.tax-switch span:after{content:"";position:absolute;width:18px;height:18px;top:3px;right:3px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 2px 6px rgba(0,0,0,.28)}html[dir="ltr"] .tax-switch span:after{right:auto;left:3px}.tax-switch input:checked+span{background:linear-gradient(135deg,var(--purple3),#6d5dfc)}.tax-switch input:checked+span:after{transform:translateX(-20px)}html[dir="ltr"] .tax-switch input:checked+span:after{transform:translateX(20px)}.tax-switch b{font-size:14px}.tax-amount{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.18)}.tax-amount span{font-size:12px;color:var(--muted)}.tax-amount b{font-size:16px}.tax-total{justify-content:space-between!important;flex-wrap:wrap}.tax-total>span:first-child{color:var(--muted)}.tax-total>span:first-child b{margin-inline-start:7px;color:#fff}.receipt-callout{display:grid;gap:5px;padding:13px 14px;border-radius:16px;border:1px solid rgba(45,212,191,.18);background:rgba(45,212,191,.06)}.receipt-callout span{color:var(--muted);font-size:13px}
@media(max-width:760px){.modal{padding:0 7px!important}.modal-card,.modal-card.wide{width:100%!important;max-height:94vh!important}.tax-panel{grid-template-columns:1fr}.tax-switch input:checked+span:after{transform:translateX(-20px)}html[dir="ltr"] .tax-switch input:checked+span:after{transform:translateX(20px)}}
.modal-card{scrollbar-width:none!important;-ms-overflow-style:none!important}.modal-card::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}


/* V1.4.4 - finance layout containment and clean no-horizontal-scroll tables */
.finance-page{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
.finance-page .finance-summary{min-width:0}
.finance-page .grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-width:0}
.finance-page .card{min-width:0;max-width:100%;overflow:hidden}
.finance-page .table-wrap{width:100%;max-width:100%;overflow-x:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}
.finance-page .table-wrap::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
.finance-page .data-table{width:100%!important;min-width:0!important;table-layout:fixed}
.finance-page .data-table th,.finance-page .data-table td{white-space:normal!important;overflow-wrap:anywhere;word-break:normal;padding:9px 6px}
.finance-page .data-table .split{flex-wrap:wrap;justify-content:center}
@media(max-width:1250px){.finance-page .grid-2{grid-template-columns:1fr}}

.finance-page .finance-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.finance-page .finance-summary>.btn{grid-column:1/-1;min-width:0!important}
@media(max-width:760px){.finance-page .finance-summary{grid-template-columns:1fr!important}}

/* V1.4.5 — reconciliation & additional works */
.sheet-toolbar{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:0 0 14px}.recon-head{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin-bottom:12px}.recon-head>div,.recon-kpis article{background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:13px 15px}.recon-head span,.recon-kpis span{display:block;color:var(--muted);font-size:.85rem;margin-bottom:4px}.recon-head b,.recon-kpis b{font-size:1.08rem;font-variant-numeric:tabular-nums}.recon-kpis{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:10px;margin:0 0 14px}.recon-kpis article.ok{border-color:rgba(34,197,94,.45)}.recon-kpis article.warn{border-color:rgba(239,68,68,.5);background:rgba(127,29,29,.13)}.recon-kpis article.warn b{color:#fca5a5}.recon-attachment{margin:0 0 14px}.notes-box{margin-top:12px;border:1px solid rgba(255,255,255,.1);border-radius:15px;padding:12px 14px;color:var(--muted);white-space:pre-wrap}.btn:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.25)}@media(max-width:900px){.recon-head{grid-template-columns:1fr}.recon-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.recon-kpis{grid-template-columns:1fr}}

/* V1.4.6 - contract clauses, reference prices and client price differences */
.contract-price-head{padding:12px 14px;border:1px solid rgba(139,92,246,.25);border-radius:16px;background:rgba(139,92,246,.07)}
.contract-price-head h3,.contract-clause-picker h3,.contract-custom-terms h3{margin:0 0 5px}.contract-price-head p,.contract-clause-picker p{margin:0;color:var(--muted)}
.contract-clause-picker{border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.025)}
.clause-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.clause-option{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(0,0,0,.13);cursor:pointer}.clause-option input{width:auto;margin-top:4px}.clause-option b,.clause-option small{grid-column:2}.clause-option small{color:var(--muted);line-height:1.6}.clause-option:has(input:checked){border-color:rgba(139,92,246,.7);box-shadow:0 0 0 2px rgba(139,92,246,.10) inset}
.custom-term-row{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.custom-term-row textarea{min-height:74px}.custom-term-row .ct-content-ar{grid-column:1}.custom-term-row .ct-content-en{grid-column:2}.custom-term-row .ct-remove{grid-row:1/3;grid-column:3;align-self:center}.signed-upload{border:1px dashed rgba(20,184,166,.5);padding:12px;border-radius:14px;background:rgba(20,184,166,.06)}
.diff-hero{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:22px 24px;border-radius:24px;background:linear-gradient(135deg,rgba(139,92,246,.16),rgba(20,184,166,.08));border:1px solid rgba(139,92,246,.24);margin-bottom:14px}.diff-hero h2{margin:4px 0;font-size:26px}.diff-hero p{max-width:850px;margin:0;color:var(--muted)}.diff-hero>div:last-child{text-align:center;min-width:220px;padding:14px;border-radius:18px;background:rgba(0,0,0,.16)}.diff-hero>div:last-child b{display:block;font-size:25px;font-variant-numeric:tabular-nums}.diff-hero>div:last-child small{color:var(--muted)}
.diff-positive td{background:rgba(239,68,68,.035)}.diff-saving td{background:rgba(16,185,129,.035)}.diff-unmatched td{opacity:.78}.diff-select{width:18px;height:18px}
@media(max-width:900px){.clause-grid{grid-template-columns:1fr}.custom-term-row{grid-template-columns:1fr auto}.custom-term-row .ct-title-en,.custom-term-row .ct-content-en{grid-column:1}.custom-term-row .ct-remove{grid-column:2;grid-row:1/5}.diff-hero{flex-direction:column;align-items:stretch}.diff-hero>div:last-child{min-width:0}}
/* V1.4.7 - separate customer collection paths */
.collection-kpis article{min-width:0}.collection-kpis article b{font-variant-numeric:tabular-nums}.collection-kpis article small{display:block;margin-top:6px;color:var(--muted,#94a3b8);font-size:12px}.collection-tabs{margin:16px 0}.collection-source{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px 16px;border:1px solid rgba(139,92,246,.25);border-radius:16px;background:rgba(139,92,246,.07)}.collection-source strong{font-size:23px;font-variant-numeric:tabular-nums}.collection-source small{grid-column:2/-1;color:var(--muted,#94a3b8)}@media(max-width:760px){.collection-source{grid-template-columns:1fr}.collection-source small{grid-column:auto}.collection-source strong{font-size:20px}}

/* V1.4.9 - sidebar safe footer + project labor accounts */
.sidebar{overflow:hidden!important;min-height:0!important}
.sidebar nav{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;padding-bottom:14px!important;align-content:start}
.sidebar-foot{flex:0 0 auto!important;margin-top:8px!important;position:relative!important;z-index:6;background:rgba(15,22,40,.96)!important;padding:9px 0 max(2px,env(safe-area-inset-bottom));box-shadow:0 -12px 20px rgba(15,22,40,.92)}
.sidebar .brand{flex:0 0 auto}
.labor-page{width:100%;max-width:100%;min-width:0;overflow-x:hidden}
.labor-hero{margin-bottom:12px}.labor-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:12px 14px;border:1px solid rgba(139,92,246,.18);border-radius:16px;background:rgba(255,255,255,.025)}.labor-filter label{min-width:min(430px,100%);flex:1}.labor-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.labor-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.labor-grid>.card{min-width:0;overflow:hidden}.labor-page .table-wrap{max-width:100%}.labor-page .data-table th,.labor-page .data-table td{vertical-align:middle}.labor-form-hint{padding:11px 13px;border:1px dashed rgba(45,212,191,.28);border-radius:14px;background:rgba(45,212,191,.06);color:#bfece1;line-height:1.7}.labor-cancelled td{opacity:.5;text-decoration:line-through}.cell-sub{display:block;margin-top:3px;color:var(--muted);font-size:11px;font-weight:400}
@media(max-width:1200px){.labor-grid{grid-template-columns:1fr}.labor-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.labor-kpis{grid-template-columns:1fr 1fr}.sidebar nav{padding-bottom:18px!important}}
@media(max-width:520px){.labor-kpis{grid-template-columns:1fr}}

/* V1.5.0 - grouped sidebar navigation */
.sidebar nav{display:block;overflow-y:auto;overflow-x:hidden;padding:4px 0 10px;scrollbar-width:none;-ms-overflow-style:none;min-height:0;flex:1}
.sidebar nav::-webkit-scrollbar{width:0;height:0;display:none}
.nav-home{margin-bottom:6px}
.nav-group{border-top:1px solid rgba(255,255,255,.055);padding-top:4px;margin-top:2px}
.nav-group-toggle{width:100%;border:0;background:transparent;color:#c7cbd4;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:start;padding:10px 10px;border-radius:9px;cursor:pointer;font:inherit;transition:background .16s ease,color .16s ease}
.nav-group-toggle:hover,.nav-group.open>.nav-group-toggle{background:#1a1a1d;color:#fff}
.nav-group-title{display:flex;align-items:center;gap:9px;min-width:0;font-size:13.5px;font-weight:800}
.nav-group-title .ico{width:22px;text-align:center;color:#c99be0;font-weight:400}
.nav-group-toggle .chev{font-size:16px;color:#8d93a1;transition:transform .18s ease;line-height:1}
.nav-group.open>.nav-group-toggle .chev{transform:rotate(180deg);color:#d5a4eb}
.nav-group-items{display:grid;gap:2px;max-height:0;opacity:0;overflow:hidden;transition:max-height .22s ease,opacity .16s ease,padding .2s ease;padding:0}
.nav-group.open>.nav-group-items{max-height:360px;opacity:1;padding:2px 0 5px}
.nav-group.open>.nav-group-items>.nav-btn{display:flex}
.nav-child{display:none;margin-inline-start:10px;width:calc(100% - 10px);padding:8px 10px;border-radius:8px;font-size:13px;border-inline-start:1px solid #30323a}
.nav-child.active{border-inline-start-color:#d19ae8}
@media (max-width:900px){.nav-group-title{font-size:14px}.nav-child{font-size:13.5px}}

/* V1.5.1 - compact supplier discount without crowding invoice forms */
.invoice-discount{border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.018);overflow:hidden}
.invoice-discount>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:42px;padding:9px 12px;cursor:pointer;color:#dce2ee;font-weight:800}
.invoice-discount>summary::-webkit-details-marker{display:none}
.invoice-discount>summary:after{content:'+';color:#9ba7ba;font-size:18px;font-weight:500;order:-1}.invoice-discount[open]>summary:after{content:'−'}
.invoice-discount>summary b{font-size:12.5px;color:#9ba7ba;font-weight:700}.invoice-discount[open]>summary b{color:#f0c77d}
.invoice-discount-fields{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(180px,1fr) auto;align-items:end;gap:9px;padding:0 12px 11px;border-top:1px solid rgba(255,255,255,.055)}
.invoice-discount-fields label{margin-top:9px}.inv-discount-clear{min-height:42px;white-space:nowrap}
#invDiscountTotalLine{color:#f0c77d}.tax-total>span[hidden]{display:none!important}
@media(max-width:720px){.invoice-discount-fields{grid-template-columns:1fr}.inv-discount-clear{width:100%}}

/* V1.5.4 — one project budget with live commitments and actual cost */
.finance-page .finance-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.project-budget-card .data-table th:nth-child(1),.project-budget-card .data-table td:nth-child(1){width:20%}
.project-budget-card .data-table th:last-child,.project-budget-card .data-table td:last-child{width:15%}
.project-budget-card tr.budget-warn td{background:rgba(245,158,11,.055)}
.project-budget-card tr.budget-over td,.report-content tr.budget-over td{background:rgba(239,68,68,.065)}
.project-budget-card tr.budget-warn td:first-child,.report-content tr.budget-warn td:first-child{box-shadow:inset 3px 0 0 rgba(245,158,11,.65)}
html[dir="rtl"] .project-budget-card tr.budget-warn td:first-child,html[dir="rtl"] .report-content tr.budget-warn td:first-child{box-shadow:inset -3px 0 0 rgba(245,158,11,.65)}
.project-budget-card tr.budget-over td:first-child,.report-content tr.budget-over td:first-child{box-shadow:inset 3px 0 0 rgba(239,68,68,.7)}
html[dir="rtl"] .project-budget-card tr.budget-over td:first-child,html[dir="rtl"] .report-content tr.budget-over td:first-child{box-shadow:inset -3px 0 0 rgba(239,68,68,.7)}
.project-budget-details{grid-template-columns:repeat(3,minmax(0,1fr))}
.budget-note{margin:10px 0 0;padding:10px 12px;border:1px solid rgba(139,92,246,.18);border-radius:14px;background:rgba(139,92,246,.055);color:var(--muted);line-height:1.7;font-size:12px}
.budget-form-info{display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);color:var(--muted)}
.budget-form-info b{color:#fff;margin-inline-start:5px}
.finance-summary article.warn{border-color:rgba(239,68,68,.38);background:rgba(127,29,29,.10)}
@media(max-width:1050px){.finance-page .finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.project-budget-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.finance-page .finance-summary{grid-template-columns:1fr!important}.project-budget-details{grid-template-columns:1fr}}

.po-link-info{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}.po-link-info b{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}


/* V1.5.9 - reliable site-photo previews */
.site-media-filters{display:grid;grid-template-columns:minmax(200px,1fr) minmax(160px,.7fr) auto;gap:10px;align-items:end;margin-bottom:14px}.site-media-filters label{margin:0}.site-mobile-link{min-height:44px}.site-media-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.site-media-card{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:linear-gradient(150deg,rgba(23,34,56,.96),rgba(15,23,40,.96));box-shadow:var(--shadow-soft)}.site-media-card.media-progress{border-color:rgba(34,197,94,.28)}.site-media-card.media-defect{border-color:rgba(239,68,68,.35)}.site-media-card.media-material{border-color:rgba(245,158,11,.32)}.site-media-photo{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:220px;min-height:220px;border:0;padding:0;background:#090e19;cursor:pointer;overflow:hidden}.site-media-photo img{width:100%;height:100%;min-height:220px;display:block;object-fit:contain;background:#090e19;transition:transform .2s}.site-media-photo:hover img{transform:scale(1.018)}.site-media-photo.image-error:after{content:'تعذر عرض معاينة الصورة';position:absolute;inset:0;display:grid;place-items:center;padding:18px;color:#9aa8bd;font-size:12px;background:#0b1020}.site-media-info{padding:12px}.site-media-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.site-media-top time{font-size:11px;color:#8491a5}.site-type{font-size:11px;font-weight:800;padding:5px 9px;border-radius:999px;background:#263249}.site-type.media-progress{background:rgba(34,197,94,.14);color:#78e6a0}.site-type.media-defect{background:rgba(239,68,68,.14);color:#ff9292}.site-type.media-material{background:rgba(245,158,11,.14);color:#ffc562}.site-media-info h3{margin:10px 0 5px;font-size:17px}.site-media-info p{margin:0 0 10px;min-height:38px;color:#b7c0cf;font-size:13px;line-height:1.5}.site-media-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;color:#8290a5;font-size:11px;margin-bottom:10px}.site-media-meta b{margin-inline-start:auto;color:#d8e2f0;font-size:14px}.site-media-empty{grid-column:1/-1}
@media(max-width:1150px){.site-media-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.site-media-grid{grid-template-columns:repeat(2,1fr)}.site-media-filters{grid-template-columns:1fr 1fr}.site-mobile-link{grid-column:1/-1}}
@media(max-width:520px){.site-media-grid{grid-template-columns:1fr}.site-media-filters{grid-template-columns:1fr}.site-mobile-link{grid-column:auto}}

/* V1.5.10 - hard-fixed site photo canvas; new mobile uploads are normalized JPEG */
.site-media-photo{display:grid!important;place-items:center!important;width:100%!important;height:240px!important;min-height:240px!important;max-height:240px!important;line-height:0!important;overflow:hidden!important;background:#080d17!important}.site-media-photo img{display:block!important;width:100%!important;height:240px!important;min-height:240px!important;max-height:240px!important;object-fit:cover!important;object-position:center!important;margin:0!important;padding:0!important}.site-photo-large img{width:auto!important;height:auto!important;max-width:100%!important;max-height:72vh!important;object-fit:contain!important}.site-media-photo.image-error{line-height:1.5!important}


/* V1.5.11 - runtime-independent site media card sizing */
.site-media-grid>.site-media-card{display:block!important;min-height:350px!important;overflow:hidden!important}.site-media-grid>.site-media-card>.site-media-photo{display:block!important;position:relative!important;width:100%!important;height:260px!important;min-height:260px!important;max-height:260px!important;overflow:hidden!important;padding:0!important;margin:0!important;background:#080d17!important}.site-media-grid>.site-media-card>.site-media-photo>img{display:block!important;width:100%!important;height:260px!important;min-height:260px!important;max-height:260px!important;object-fit:cover!important;object-position:center!important;margin:0!important;padding:0!important}.site-media-grid>.site-media-card>.site-media-info{display:block!important;min-height:90px!important}


/* V1.5.12 - avoid collision with global .progress bar class */
.site-media-card.media-progress{height:auto!important;min-height:350px!important}.site-type.media-progress{height:auto!important;overflow:visible!important}


/* V1.5.13 - client progress media source chooser */
.update-media-source{border:1px solid var(--line);border-radius:18px;padding:14px;background:rgba(255,255,255,.025)}
.update-source-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.update-source-buttons label{margin:0}.update-source-buttons input{position:absolute;opacity:0;pointer-events:none}.update-source-buttons span{display:flex;align-items:center;justify-content:center;min-height:54px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:#111a2b;font-weight:800;cursor:pointer}.update-source-buttons input:checked+span{border-color:#7c5cff;background:rgba(124,92,255,.16);box-shadow:0 0 0 1px rgba(124,92,255,.25) inset}.update-media-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.update-site-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-height:440px;overflow:auto;padding:2px}.update-site-item{position:relative;display:block;margin:0;border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#0a111f;cursor:pointer}.update-site-item input{position:absolute;top:8px;inset-inline-start:8px;width:22px;height:22px;z-index:2;accent-color:#7c5cff}.update-site-item img{display:block;width:100%;height:130px;object-fit:cover;background:#080d17}.update-site-item span{display:block;padding:8px 9px}.update-site-item b,.update-site-item small,.update-site-item em{display:block}.update-site-item small{color:#8f9bb0;margin-top:3px}.update-site-item em{font-style:normal;color:#c8d0dd;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.update-site-item:has(input:checked){border-color:#7c5cff;box-shadow:0 0 0 2px rgba(124,92,255,.24) inset}.portal-update-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:12px}.portal-update-media-grid .portal-inline-media{margin:0}.portal-update-media-grid img{width:100%;height:180px;object-fit:cover}
@media(max-width:900px){.update-site-picker{grid-template-columns:repeat(3,1fr)}}@media(max-width:650px){.update-source-buttons{grid-template-columns:1fr}.update-site-picker{grid-template-columns:repeat(2,1fr)}}

/* V1.5.14 - client portal publishing center */
.portal-manager{display:grid;gap:14px}.portal-manager-hero{align-items:flex-end}.portal-manager-project{min-width:min(100%,420px);display:grid;gap:9px}.portal-manager-project label{min-width:260px}.portal-settings-card{padding:16px}.portal-settings-card .card-head small{display:block;color:var(--muted);margin-top:4px}.portal-settings-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.portal-setting{position:relative;margin:0}.portal-setting input{position:absolute;opacity:0;pointer-events:none}.portal-setting span{display:flex;align-items:center;min-height:58px;padding:10px 13px;border:1px solid var(--line);border-radius:14px;background:#0d1626;cursor:pointer;transition:.16s}.portal-setting input:checked+span{border-color:#7c5cff;background:rgba(124,92,255,.14);box-shadow:0 0 0 1px rgba(124,92,255,.18) inset}.portal-setting input:checked+span:after{content:'✓';margin-inline-start:auto;color:#78e6bf;font-size:18px;font-weight:900}.portal-manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.portal-manage-grid>.card{padding:15px;min-width:0}.portal-manage-wide{grid-column:1/-1}.portal-publish-list{display:grid;gap:7px;max-height:470px;overflow:auto;padding:2px}.portal-publish-row{display:flex;align-items:center;gap:10px;margin:0;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:#0b1423}.portal-publish-row>input{width:20px;height:20px;min-height:20px;accent-color:#7c5cff;flex:0 0 auto}.portal-publish-main{min-width:0;flex:1;display:block}.portal-publish-main b,.portal-publish-main small{display:block}.portal-publish-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-publish-main small{color:var(--muted);margin-top:3px;line-height:1.5}.portal-publish-actions{flex:0 0 auto}.portal-receipt-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:360px}.portal-savebar{position:sticky;bottom:10px;z-index:15;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 15px;border:1px solid rgba(124,92,255,.42);border-radius:16px;background:rgba(10,17,31,.96);box-shadow:0 14px 40px rgba(0,0,0,.35);backdrop-filter:blur(12px)}.portal-savebar small{display:block;color:var(--muted);margin-top:3px}
.portal-section-nav{display:flex;gap:8px;overflow:auto;padding:10px 2px 2px;scrollbar-width:none}.portal-section-nav::-webkit-scrollbar{display:none}.portal-section-nav a{flex:0 0 auto;text-decoration:none;color:#dfe7f4;background:#111b2d;border:1px solid var(--line);border-radius:999px;padding:8px 13px;font-weight:800;font-size:13px}.portal-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-financial{overflow:hidden}.portal-finance-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:10px}.portal-finance-grid>div{padding:12px;border:1px solid var(--line);border-radius:14px;background:#0b1423}.portal-finance-grid span,.portal-finance-grid b{display:block}.portal-finance-grid span{color:var(--muted);font-size:12px}.portal-finance-grid b{font-size:18px;margin-top:5px}.portal-finance-highlight{border-color:rgba(120,230,191,.35)!important;background:rgba(18,61,48,.34)!important}.portal-doc-list,.portal-receipts{display:grid;gap:9px;margin-top:10px}.portal-doc-row,.portal-receipt{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#0b1423}.portal-doc-row small,.portal-receipt small{display:block;color:var(--muted);margin-top:4px}.portal-doc-row>strong,.portal-receipt>strong{white-space:nowrap}.portal-doc-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.portal-change-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.portal-change-card{padding:14px;border:1px solid var(--line);border-radius:16px;background:#0b1423}.portal-change-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.portal-change-head h4{margin:4px 0 0;font-size:16px}.portal-change-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:11px 0}.portal-change-values>div{padding:8px 9px;border-radius:10px;background:rgba(255,255,255,.035)}.portal-change-values span,.portal-change-values b{display:block}.portal-change-values span{color:var(--muted);font-size:11px}.portal-change-values b{margin-top:3px}.portal-change-card>p{color:#c9d3e1;line-height:1.7}
@media(max-width:900px){.portal-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-finance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-change-grid{grid-template-columns:1fr}.portal-receipt-list{grid-template-columns:1fr}}
@media(max-width:760px){.portal-manage-grid{grid-template-columns:1fr}.portal-manage-wide{grid-column:auto}.portal-manager-project{min-width:0;width:100%}.portal-manager-project label{min-width:0}.portal-savebar{position:static;display:grid}.portal-savebar .btn{width:100%}.portal-doc-row,.portal-receipt{grid-template-columns:1fr}.portal-doc-actions{justify-content:flex-start}.portal-facts{grid-template-columns:1fr 1fr}}


/* V1.5.15 - explicit work stages and progress updates screens */
.portal-work-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.portal-work-shortcuts>button{border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#101b2e,#0b1423);color:var(--text);padding:14px 16px;display:flex;align-items:center;gap:12px;text-align:start;cursor:pointer;min-height:76px}.portal-work-shortcuts>button:hover{border-color:#7c5cff;transform:translateY(-1px)}.portal-work-shortcuts>button>span{width:42px;height:42px;border-radius:12px;background:rgba(124,92,255,.16);display:grid;place-items:center;font-size:23px;color:#b7a9ff}.portal-work-shortcuts b,.portal-work-shortcuts small{display:block}.portal-work-shortcuts b{font-size:16px}.portal-work-shortcuts small{color:var(--muted);margin-top:3px}.portal-dedicated-toolbar{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap}.portal-dedicated-toolbar label{min-width:min(100%,340px)}.portal-stage-board,.portal-update-board{display:grid;gap:10px}.portal-dedicated-intro{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(135deg,rgba(124,92,255,.12),rgba(39,214,166,.05))}.portal-dedicated-intro h3{margin:4px 0 5px;font-size:21px}.portal-dedicated-intro p{margin:0;color:var(--muted);max-width:760px}.portal-count-box{min-width:96px;text-align:center;padding:12px;border:1px solid rgba(124,92,255,.35);border-radius:14px;background:#0b1423}.portal-count-box b{display:block;font-size:28px}.portal-count-box span{font-size:12px;color:var(--muted)}.portal-stage-item,.portal-update-item{border:1px solid var(--line);border-radius:15px;background:#0b1423;padding:13px 14px}.portal-stage-head,.portal-update-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.portal-stage-head b,.portal-update-head b{font-size:15px}.portal-stage-head small,.portal-update-head small{display:block;color:var(--muted);margin-top:4px}.portal-stage-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.portal-visibility{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;border:1px solid var(--line)}.portal-visibility.on{color:#72e0b9;border-color:rgba(63,209,157,.35);background:rgba(63,209,157,.09)}.portal-visibility.off{color:#aab4c8;background:#111a2a}.portal-stage-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-top:12px}.portal-stage-progress>div{height:10px;background:#182338;border-radius:999px;overflow:hidden}.portal-stage-progress i{display:block;height:100%;background:linear-gradient(90deg,#7c5cff,#35d2a4);border-radius:999px}.portal-stage-progress>b{font-size:14px;min-width:46px;text-align:end}.portal-update-summary{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:13px}.portal-update-summary b{color:var(--text)}.portal-empty-action{display:grid;justify-items:center;gap:10px;padding:28px}.portal-manager .portal-manage-grid>.card:nth-child(1),.portal-manager .portal-manage-grid>.card:nth-child(2){border-color:rgba(124,92,255,.32);box-shadow:0 0 0 1px rgba(124,92,255,.04) inset}
@media(max-width:760px){.portal-work-shortcuts{grid-template-columns:1fr}.portal-dedicated-intro{align-items:flex-start}.portal-stage-head,.portal-update-head{align-items:flex-start;flex-direction:column}.portal-stage-actions{justify-content:flex-start}.portal-count-box{min-width:82px}}
