:root{--red:#e3182d;--red2:#ff253c;--navy:#082a42;--green:#17a95b;--amber:#f2a100;--blue:#2387d9;--bg:#f4f6f8;--text:#15222d;--muted:#6c7780;--line:#dfe5e9;--shadow:0 8px 24px rgba(13,32,48,.08);--glass:rgba(8,17,29,.34);--glassLine:rgba(255,255,255,.18)}*{box-sizing:border-box}html,body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#0b1520;color:var(--text)}button,input,select,textarea{font:inherit}.view{display:none;min-height:100vh}.view.active{display:block}.hidden{display:none!important}.login-view{position:relative;background:linear-gradient(180deg,rgba(2,26,47,.08),rgba(2,24,40,.74)),url('assets/entry-background.png') center/cover no-repeat;min-height:100vh}.login-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,41,76,.02),rgba(0,18,30,.82))}.login-card-wrap{position:relative;z-index:1;width:min(90%,440px);margin:auto;padding:5vh 0 4vh;color:white;text-align:center;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.logo-main{width:220px;max-width:66%;align-self:center;background:#fff;padding:12px 16px;border-radius:24px;box-shadow:0 14px 42px rgba(0,0,0,.26)}.login-card-wrap h1{font-size:38px;line-height:1.02;margin:25px 0 0;text-shadow:0 3px 14px rgba(0,0,0,.30)}.login-card-wrap h2{font-size:24px;margin:5px 0 10px;font-weight:600}.login-accent{width:56px;height:4px;border-radius:99px;background:var(--red);margin:10px auto}.tagline{font-size:17px;letter-spacing:3px;margin:0 0 22px}.prototype-note{font-size:11px;opacity:.8}.login-panel{margin-top:12px;padding:18px 16px 14px;border-radius:24px;background:linear-gradient(180deg,rgba(7,20,32,.28),rgba(7,20,32,.22));border:1px solid var(--glassLine);backdrop-filter:blur(12px);box-shadow:0 12px 42px rgba(0,0,0,.18)}.welcome-copy{margin-bottom:10px}.welcome-copy .muted{color:rgba(255,255,255,.86);font-size:13px;line-height:1.45}.login-links{display:flex;justify-content:center;gap:6px;align-items:center;margin-top:10px;flex-wrap:wrap}.login-links span{font-size:13px;color:rgba(255,255,255,.78)}.link-light{border:0;background:transparent;color:white;opacity:.96;padding:10px 12px;font-weight:800}.field{display:block;text-align:left;margin:11px 0}.field span{display:block;font-size:12px;font-weight:800;margin:0 0 6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:white;border-radius:12px;padding:12px 13px;color:var(--text);outline:none}.login-view .field>span{color:white}.login-input-wrap{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.24);background:rgba(8,17,29,.46);backdrop-filter:blur(10px);border-radius:18px;padding:0 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.login-view .login-input-wrap input{border:0;background:transparent;color:white;padding:15px 4px;font-size:17px}.login-view .login-input-wrap input::placeholder{color:rgba(255,255,255,.58)}.input-icon{color:white}.btn{border:0;border-radius:12px;padding:13px 16px;font-weight:800;cursor:pointer}.primary{background:linear-gradient(135deg,var(--red),var(--red2));color:white}.secondary{background:#eef2f5;color:#293744}.danger{background:#fff0f2;color:#c41230;border:1px solid #ffd2da}.enable{background:#e8f7ee;color:#087637;border:1px solid #bde8cc}.full{width:100%}.login-btn{margin-top:7px;border-radius:18px;padding:16px;font-size:18px}.app-view{background:var(--bg);max-width:620px;margin:auto;min-height:100vh;box-shadow:0 0 60px rgba(0,0,0,.18)}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:10px 13px;background:rgba(255,255,255,.98);border-bottom:1px solid var(--line)}.brand-row{display:flex;align-items:center;gap:8px;min-width:0}.brand-row strong{display:block;font-size:13px}.brand-row small{display:block;color:var(--muted);font-size:10px}.logo-small{width:52px;height:38px;object-fit:contain}.user-head{display:flex;align-items:center;gap:6px;margin-left:auto}.user-head-text{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1}.user-head-text strong{font-size:10px}.user-head-text small{font-size:9px;color:var(--red);font-weight:800}.sync-chip{font-size:9px;background:#e9f7ef;color:#077538;padding:5px 7px;border-radius:999px}.sync-chip.offline{background:#fff3df;color:#9a5b00}.icon-btn{border:0;background:#eef2f5;width:36px;height:36px;border-radius:50%;color:var(--red)}.admin-only{display:none}.content{padding-bottom:84px}.page{padding:17px 14px}.page h1{font-size:23px;margin:0 0 10px}.page h2{font-size:16px;margin:0}.muted{color:var(--muted);font-size:12px;margin:3px 0}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.stat{background:white;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.stat b{font-size:23px;display:block}.stat span{font-size:11px;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:19px 0 9px;gap:12px}.section-title button,.back-btn{background:none;border:0;color:var(--red);font-weight:800;cursor:pointer}.project-card{display:flex;align-items:center;gap:11px;background:white;border:1px solid var(--line);padding:11px;border-radius:15px;margin:8px 0;box-shadow:0 4px 14px rgba(0,0,0,.03);cursor:pointer}.project-thumb{width:62px;height:57px;border-radius:10px;object-fit:cover;background:#dfe8ee}.project-main{flex:1;min-width:0}.project-name{font-weight:850;font-size:13px}.project-meta{font-size:11px;color:var(--muted);margin:3px 0 6px}.progress{height:7px;background:#edf0f2;border-radius:50px;overflow:hidden}.progress span{display:block;height:100%;background:var(--green);border-radius:50px}.progress.late span{background:var(--red)}.percent{font-weight:850;font-size:12px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(620px,100%);height:70px;background:white;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);z-index:20;padding-bottom:env(safe-area-inset-bottom)}.nav-btn{border:0;background:white;color:#65717c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.nav-btn span{font-size:19px}.nav-btn small{font-size:9px}.nav-btn.active{color:var(--red)}.nav-btn.center span{display:grid;place-items:center;width:46px;height:46px;background:var(--red);color:white;border-radius:50%;font-size:28px;margin-top:-20px}.hero{border-radius:18px;overflow:hidden;background:white;border:1px solid var(--line);box-shadow:var(--shadow)}.hero-img{height:225px;width:100%;object-fit:cover}.hero-body{padding:14px}.hero-title{font-size:21px;font-weight:900}.hero-sub{color:var(--muted);font-size:12px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.mini-stat{background:#f7f9fa;border-radius:12px;padding:9px;text-align:center}.mini-stat b{display:block}.mini-stat span{font-size:9px;color:var(--muted)}.segmented{display:flex;gap:4px;background:#e9edf0;padding:4px;border-radius:12px;margin:14px 0;overflow-x:auto}.segmented.compact{margin:8px 0}.seg{flex:1;border:0;background:transparent;padding:9px 7px;border-radius:9px;color:#63707c;font-weight:750;font-size:11px;white-space:nowrap}.seg.active{background:white;color:var(--red);box-shadow:0 2px 8px rgba(0,0,0,.07)}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:13px;margin:11px 0;box-shadow:0 4px 14px rgba(0,0,0,.03)}.card.compact{padding:10px 12px}.card h3{margin:0 0 9px;font-size:14px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:9px}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.check{display:block;padding:7px 0;border-bottom:1px solid #f0f2f3;font-size:12px}.check:last-child{border-bottom:0}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.photo-grid figure{margin:0;position:relative}.photo-grid img{width:100%;aspect-ratio:1.2;object-fit:cover;border-radius:10px}.photo-grid figcaption{font-size:8px;color:white;background:linear-gradient(transparent,rgba(0,0,0,.72));position:absolute;left:0;right:0;bottom:0;padding:16px 5px 5px;border-radius:0 0 10px 10px}.meta-line{font-size:10px;color:var(--muted);margin-top:7px}.material-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line)}.material-row:last-child{border-bottom:0}.material-row img{width:64px;height:54px;object-fit:cover;border-radius:8px;background:#eee}.material-main{flex:1}.material-main b{font-size:12px}.material-main small{display:block;color:var(--muted);margin-top:2px;font-size:10px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;background:#e8f7ee;color:#087637}.pill.warning{background:#fff3df;color:#9a5b00}.pill.danger{background:#ffe8ec;color:#b7102a}.report-card{background:white;border:1px solid var(--line);border-radius:15px;padding:12px;margin:9px 0}.report-head{display:flex;justify-content:space-between;gap:9px}.report-card h3{margin:0;font-size:14px}.report-card p{margin:6px 0 0;color:#4f5c67;font-size:12px}.toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%) translateY(30px);background:#132633;color:white;padding:11px 15px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s;z-index:50;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.module-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.module-card{background:white;border:1px solid var(--line);border-radius:15px;padding:13px;min-height:92px;box-shadow:0 4px 14px rgba(0,0,0,.03);cursor:pointer}.module-card .ico{font-size:24px}.module-card b{display:block;font-size:12px;margin-top:6px}.module-card small{font-size:9px;color:var(--muted)}.alert-card{border-left:4px solid var(--amber)}.alert-card.danger{border-left-color:var(--red);background:white;color:var(--text)}.alert-card.good{border-left-color:var(--green)}.mini-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.staff-card.disabled-user{opacity:.65;background:#f3f4f5}.staff-head{display:flex;justify-content:space-between;gap:10px}.staff-head h3{margin:0}.staff-user{font-size:10px;color:var(--muted)}.status-pill{padding:5px 8px;border-radius:99px;font-size:9px;font-weight:800}.status-pill.on{background:#e8f7ee;color:#087637}.status-pill.off{background:#eee;color:#777}.access-project{margin:10px 0;padding:9px;background:#f6f8f9;border-radius:10px;display:flex;justify-content:space-between;font-size:11px}.staff-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.role-card summary{font-weight:800;cursor:pointer}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:9px}.permission-grid label{font-size:10px;background:#f7f9fa;padding:7px;border-radius:8px}.form-row-actions{display:flex;gap:7px;margin-top:8px}.kv{display:grid;grid-template-columns:120px 1fr;gap:7px;font-size:11px;padding:5px 0;border-bottom:1px solid #eef1f3}.kv b{color:#53616c}.inventory-number{font-size:22px;font-weight:900}.inventory-negative{color:var(--red)}.inventory-ok{color:var(--green)}#signatureCanvas{width:100%;height:145px;background:#fff;border:1px dashed #aeb8c0;border-radius:12px;touch-action:none}.audit-row{font-size:10px;padding:9px;border-left:3px solid #d7dfe4;margin:7px 0;background:white;border-radius:0 10px 10px 0}.audit-row b{display:block;font-size:11px}.doc-card{display:flex;justify-content:space-between;align-items:center;gap:8px}.no-access{text-align:center;padding:28px 14px}.no-access .lock{font-size:38px}.small-table{width:100%;border-collapse:collapse;font-size:10px}.small-table th,.small-table td{text-align:left;padding:7px 5px;border-bottom:1px solid #edf0f2}.badge-red{color:var(--red);font-weight:800}.badge-green{color:var(--green);font-weight:800}
@media(max-width:390px){.page{padding:14px 11px}.two-col,.three-col{grid-template-columns:1fr}.hero-img{height:185px}.project-thumb{width:53px;height:50px}.permission-grid{grid-template-columns:1fr}.sync-chip{display:none}.user-head-text{display:none}}
@media print{.topbar,.bottom-nav,.section-title button,.back-btn{display:none!important}.app-view{max-width:none;box-shadow:none}.content{padding:0}.page{padding:0 20px}.report-card{break-inside:avoid}}

/* v0.8 experiencia de usuario */
.user-project-page{padding-bottom:18px}.project-status-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.daily-summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.daily-summary-grid .mini-stat{text-align:left}.daily-summary-grid .mini-stat b{font-size:17px}.daily-summary-grid .mini-stat span{font-size:10px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.quick-card{background:white;border:1px solid var(--line);border-radius:15px;padding:13px;min-height:88px;box-shadow:0 4px 14px rgba(0,0,0,.03);cursor:pointer}.quick-card .qico{font-size:22px}.quick-card b{display:block;font-size:12px;margin-top:5px}.quick-card small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.alert-list-item{display:flex;gap:9px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.alert-list-item:last-child{border-bottom:0}.priority-dot{width:10px;height:10px;border-radius:50%;margin-top:4px;background:var(--amber);flex:0 0 auto}.priority-dot.high{background:var(--red)}.priority-dot.low{background:var(--green)}.history-chart{height:120px;display:flex;align-items:flex-end;gap:7px;padding:10px 2px 0;border-bottom:1px solid var(--line)}.history-bar{flex:1;min-width:14px;background:#dfe5e9;border-radius:6px 6px 0 0;position:relative}.history-bar.real{background:var(--green)}.history-bar span{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:8px;color:var(--muted)}.inventory-summary-row{display:grid;grid-template-columns:1.4fr .7fr .7fr .7fr;gap:5px;padding:8px 0;border-bottom:1px solid var(--line);font-size:10px;align-items:center}.inventory-summary-row.head{font-weight:800;color:var(--muted)}.stock-low{color:var(--red);font-weight:800}.user-avatar{width:78px;height:78px;border-radius:50%;object-fit:cover;background:#eef2f5;border:3px solid white;box-shadow:var(--shadow)}.profile-top{text-align:center}.profile-top h2{margin:8px 0 2px}.profile-photo-input{display:block;margin:10px auto 0;max-width:240px}.notification-row{padding:9px 0;border-bottom:1px solid var(--line);font-size:11px}.report-state{display:flex;align-items:center;gap:7px}.state-dot{width:9px;height:9px;border-radius:50%;background:var(--green)}.state-dot.pending{background:var(--amber)}.normal-nav .nav-btn{display:none}.normal-nav .nav-btn.user-visible{display:flex}.gallery-wide{grid-template-columns:repeat(3,1fr)}.gallery-wide img{aspect-ratio:1}.function-note{font-size:10px;color:var(--muted);margin-top:6px}.offline-banner{background:#fff5df;border:1px solid #f2d294;border-radius:12px;padding:9px 11px;font-size:10px;color:#81510a;margin:9px 0}.compact-list .card{margin:7px 0}.doc-simple{padding:11px 0;border-bottom:1px solid var(--line);font-size:11px;font-weight:750}.doc-simple:last-child{border-bottom:0}.task-row{padding:10px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border-bottom:0}.task-row b{font-size:11px}.task-row small{display:block;color:var(--muted);font-size:9px;margin-top:2px}
@media(max-width:390px){.gallery-wide{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr 1fr}.inventory-summary-row{grid-template-columns:1.3fr .7fr .7fr .7fr}}

.camera-capture{margin:13px 0;padding:12px;border:1px solid #dbe3e8;border-radius:14px;background:#f8fafb}.camera-capture-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;font-weight:800;margin-bottom:9px}.camera-btn{background:#0b2f47;color:white;border:1px solid #0b2f47;padding:14px}.camera-state{font-size:9px;font-weight:900;padding:5px 8px;border-radius:99px}.camera-state.pending{background:#fff3df;color:#9a5b00}.camera-state.done{background:#e8f7ee;color:#087637}.camera-preview{display:block;width:100%;max-height:230px;object-fit:cover;border-radius:11px;margin-top:10px;border:1px solid #dfe5e9}
.camera-hub{margin:12px 0 14px;padding:14px;border-radius:16px;background:linear-gradient(135deg,#082a42,#0d3d5d);color:white;box-shadow:0 10px 24px rgba(8,42,66,.18)}
.camera-hub b{font-size:14px}.camera-hub p{font-size:11px;opacity:.88;margin:5px 0 11px}.camera-hub-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.camera-primary{background:white;color:#082a42;border:0;padding:13px 8px;font-size:11px}.camera-primary:active{transform:scale(.98)}
.camera-capture{border:2px solid #e3182d;background:#fff7f8}.camera-btn{background:#e3182d;border-color:#e3182d;font-size:14px;padding:16px}.camera-capture-head span:first-child{color:#b7102a}
@media(max-width:390px){.camera-hub-actions{grid-template-columns:1fr}}
/* v0.12 stabilization */
.material-evidence{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.material-evidence img{width:74px;height:74px;object-fit:cover;border-radius:10px;border:1px solid #d8e0e6}
.form-row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.form-row-actions .btn{flex:1 1 140px}
.camera-primary{font-weight:700}
/* v0.14 */
.report-overlay{position:fixed;inset:0;background:rgba(4,18,28,.88);z-index:9999;overflow:auto;padding:18px}
.report-sheet{max-width:820px;margin:0 auto;background:#fff;border-radius:18px;padding:18px;color:#15212a}
.print-report section{border-top:1px solid #e4e8eb;padding:12px 0}.print-report h1{font-size:24px}.print-report h2{font-size:18px;color:#5c6972}
@media print{body>*{display:none!important}.report-overlay{display:block!important;position:static;background:#fff;padding:0}.report-sheet{box-shadow:none;max-width:none}.report-sheet>.form-row-actions{display:none!important}.print-report{display:block!important}}
.camera-state.done{background:#e8f7ed;color:#18723c}.camera-state.pending{background:#fff2d9;color:#9b5b00}
input[list]{background:#fff}

/* ===== v0.16 registration + friendly camera ===== */
.auth-card-wrap{max-height:calc(100vh - 26px);overflow-y:auto;padding-bottom:26px}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 18px;background:rgba(255,255,255,.12);padding:5px;border-radius:16px}.auth-switch-btn{border:0;border-radius:12px;padding:12px 10px;background:transparent;color:#fff;font-weight:800;font-size:15px}.auth-switch-btn.active{background:#fff;color:#0b2538;box-shadow:0 3px 10px rgba(0,0,0,.18)}.auth-panel.hidden{display:none!important}.auth-intro{color:rgba(255,255,255,.9);font-size:13px;line-height:1.45;margin:0 0 12px}.auth-two-col{gap:8px}.auth-card-wrap .login-field select,.auth-card-wrap .login-field input{background:rgba(255,255,255,.96);color:#16232d}.terms-check{color:#fff;background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.28);margin:12px 0;font-size:13px;line-height:1.35}.registration-pending{text-align:center;background:rgba(255,255,255,.96);color:#142431;border-radius:20px;padding:24px 18px;margin:8px 0 2px}.registration-pending .pending-icon{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:#e8f7ed;color:#13963b;font-size:31px;font-weight:900}.registration-pending h3{margin:2px 0 8px}.registration-pending p{margin:0;color:#60717c}.camera-capture{border:1px solid #dfe7eb;border-radius:18px;padding:14px;margin:12px 0;background:#fff;transition:.2s}.camera-capture.missing{border:2px solid #e02222;background:#fff5f5;box-shadow:0 0 0 3px rgba(224,34,34,.08)}.camera-capture-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.camera-capture-head>span:first-child{font-weight:800;color:#182a35}.camera-state{font-size:12px;font-weight:800;padding:5px 9px;border-radius:999px}.camera-state.pending{background:#fff1f0;color:#c82d24}.camera-state.done{background:#eaf8ef;color:#14833b}.camera-btn,.camera-primary{min-height:58px;font-size:17px;font-weight:900;border-radius:16px;background:#ef172f!important;color:#fff!important;border:0!important}.camera-help{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;color:#687a84;font-size:12px}.camera-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.camera-thumb{position:relative;margin:0;border-radius:13px;overflow:hidden;background:#eef2f4;min-height:92px}.camera-thumb img{display:block;width:100%;height:105px;object-fit:cover}.camera-thumb figcaption{font-size:10px;line-height:1.25;padding:6px;color:#31424d;background:#f6f8f9}.camera-thumb .photo-check{position:absolute;left:6px;top:6px;background:#19a44a;color:#fff;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;font-size:13px;font-weight:900}.camera-thumb .photo-delete{position:absolute;right:6px;top:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.68);color:#fff;font-size:17px;line-height:1}.capture-review{position:fixed;inset:0;z-index:9999;background:#000;display:flex;flex-direction:column}.capture-review.hidden{display:none}.capture-review-image{flex:1;min-height:0;display:grid;place-items:center;padding:12px}.capture-review-image img{max-width:100%;max-height:100%;object-fit:contain}.capture-review-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;padding:14px 14px calc(14px + env(safe-area-inset-bottom));background:#080808}.capture-review-actions button{min-height:58px;border-radius:16px;border:0;font-size:17px;font-weight:900}.capture-repeat{background:#30343a;color:#fff}.capture-use{background:#ef172f;color:#fff}.capture-review-meta{text-align:center;color:#fff;padding:7px 14px;background:#080808;font-size:12px}.photo-grid figure{position:relative}.photo-remove-inline{position:absolute;right:6px;top:6px;width:29px;height:29px;border:0;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;font-size:18px}.registration-admin{border:2px solid #ffe0a1;background:#fffdf6}.registration-admin .request-avatar{width:70px;height:70px;border-radius:14px;object-fit:cover;border:1px solid #ddd}.registration-request-head{display:flex;gap:12px;align-items:center;margin-bottom:10px}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}.permission-grid .check{margin:0;padding:8px;font-size:12px}.photo-sync-counter{font-size:12px;font-weight:800;color:#8b5b00}.auth-card-wrap .camera-capture{background:rgba(255,255,255,.94)}.auth-card-wrap .camera-capture .camera-help{color:#40515a}@media(max-width:520px){.auth-two-col{grid-template-columns:1fr}.permission-grid{grid-template-columns:1fr}.camera-gallery{grid-template-columns:repeat(2,1fr)}}
/* ===== end v0.16 ===== */

/* ===== v0.17.1 HOTFIX: keep JLV AXIS branding visible above registration ===== */
.login-card-wrap.auth-card-wrap{
  justify-content:flex-start !important;
  min-height:100vh !important;
  max-height:none !important;
  overflow-y:visible !important;
  padding-top:calc(24px + env(safe-area-inset-top)) !important;
  padding-bottom:calc(34px + env(safe-area-inset-bottom)) !important;
}
.auth-card-wrap .logo-main{
  width:190px !important;
  max-width:62% !important;
  flex:0 0 auto;
}
.auth-card-wrap h1{
  font-size:32px !important;
  margin:16px 0 0 !important;
  flex:0 0 auto;
}
.auth-card-wrap h2{
  font-size:19px !important;
  margin:5px 0 8px !important;
  flex:0 0 auto;
}
.auth-card-wrap .tagline{
  font-size:14px !important;
  line-height:1.45 !important;
  letter-spacing:.3px !important;
  margin:0 8px 15px !important;
  flex:0 0 auto;
}
.auth-card-wrap .auth-switch{flex:0 0 auto;width:100%}
@media(max-width:390px){
  .auth-card-wrap .logo-main{width:155px !important;max-width:56% !important}
  .auth-card-wrap h1{font-size:27px !important}
  .auth-card-wrap h2{font-size:17px !important}
  .auth-card-wrap .tagline{font-size:13px !important}
}
/* ===== end v0.17.1 hotfix ===== */


/* ===== v0.18 entry flow ===== */
.welcome-brand-card{
  width:100%;
  background:#fff;
  color:#13222d;
  border-radius:24px;
  padding:18px 18px 16px;
  box-shadow:0 12px 34px rgba(0,0,0,.22);
  margin-bottom:18px;
}
.welcome-brand-card .logo-main{
  width:220px !important;
  max-width:72% !important;
  background:#fff !important;
  box-shadow:none !important;
  padding:4px !important;
  border-radius:0 !important;
}
.welcome-brand-card h1{
  color:#13222d !important;
  text-shadow:none !important;
  font-size:30px !important;
  margin:12px 0 3px !important;
}
.welcome-brand-card h2{
  color:#354651 !important;
  font-size:18px !important;
  margin:0 0 8px !important;
}
.welcome-brand-card .tagline{
  color:#53636d !important;
  margin:0 4px 2px !important;
  font-size:13px !important;
  letter-spacing:.15px !important;
}
.register-entry{
  margin-top:9px;
  color:#fff;
  font-size:14px;
  font-weight:600;
}
.register-link,.back-login-link{
  border:0;
  background:transparent;
  color:#fff;
  font-weight:900;
  text-decoration:underline;
  padding:10px 4px;
  cursor:pointer;
}
.back-login-link{
  display:block;
  width:100%;
  text-align:left;
  margin:0 0 8px;
  text-decoration:none;
}
#loginPanel{width:100%}
#registerPanel{width:100%}
@media(max-width:390px){
  .welcome-brand-card{padding:14px 12px 12px;border-radius:20px}
  .welcome-brand-card .logo-main{width:175px !important;max-width:66% !important}
  .welcome-brand-card h1{font-size:25px !important}
  .welcome-brand-card h2{font-size:15px !important}
  .welcome-brand-card .tagline{font-size:12px !important}
}
/* ===== end v0.18 ===== */

/* ===== v0.19 FRONTEND REDESIGN ===== */
:root{
  --red:#E71D36;
  --red-dark:#C9152C;
  --navy:#102A3B;
  --navy-2:#173D55;
  --green:#16A05D;
  --amber:#E99A14;
  --blue:#267DCE;
  --bg:#F5F7F9;
  --surface:#FFFFFF;
  --surface-2:#F8FAFB;
  --text:#17242D;
  --muted:#71808B;
  --line:#E4E9ED;
  --shadow:0 10px 30px rgba(16,42,59,.08);
  --shadow-soft:0 4px 18px rgba(16,42,59,.055);
  --radius:20px;
}
html,body{background:#EEF2F5;color:var(--text);-webkit-font-smoothing:antialiased}
button{transition:transform .12s ease,box-shadow .18s ease,background .18s ease}
button:active{transform:scale(.975)}

/* LOGIN */
.login-view{
  background:linear-gradient(180deg,rgba(7,29,43,.18) 0%,rgba(7,29,43,.76) 100%),url('assets/entry-background.png') center/cover no-repeat;
  min-height:100dvh;
}
.login-overlay{background:linear-gradient(180deg,rgba(7,29,43,.04),rgba(7,29,43,.75))}
.login-card-wrap.auth-card-wrap{
  width:min(92%,440px)!important;
  padding:calc(18px + env(safe-area-inset-top)) 0 calc(28px + env(safe-area-inset-bottom))!important;
  gap:0;
}
.welcome-brand-card{
  background:transparent;
  border-radius:28px;
  padding:12px 8px 8px;
  margin-bottom:12px;
  box-shadow:none;
  border:0;
}
.welcome-brand-card .logo-main{width:210px!important;max-width:70%!important;margin:auto;display:block;background:#fff!important;padding:12px 16px;border-radius:24px;box-shadow:0 16px 42px rgba(0,0,0,.24)}
.welcome-brand-card h1{font-size:29px!important;letter-spacing:-.6px!important;font-weight:900!important;margin:16px 0 4px!important;color:#fff!important;text-shadow:0 3px 14px rgba(0,0,0,.30)}
.welcome-brand-card h2{font-size:16px!important;font-weight:750!important;margin-bottom:9px!important;color:rgba(255,255,255,.96)!important}
.welcome-brand-card .tagline{font-size:12.5px!important;line-height:1.5!important;color:rgba(255,255,255,.86)!important;max-width:340px;margin:0 auto!important}
.login-accent{height:3px;width:44px;margin:9px auto 10px;background:linear-gradient(90deg,var(--red),#FF5264)}
.auth-panel{
  background:rgba(7,20,32,.40);
  border-radius:26px;
  padding:18px;
  box-shadow:0 18px 50px rgba(5,23,35,.24);
  color:#fff;
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(12px);
}
.login-view .field>span{color:rgba(255,255,255,.92);font-size:12px;margin-left:2px}
.login-input-wrap{
  border:1.5px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.10);
  border-radius:16px;
  min-height:56px;
  padding:0 14px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.login-view .login-input-wrap input{color:#fff;font-size:16px;padding:16px 4px}
.login-view .login-input-wrap input::placeholder{color:rgba(255,255,255,.56)}
.input-icon{color:rgba(255,255,255,.68);font-size:13px}
.login-btn{
  min-height:56px;
  border-radius:16px;
  box-shadow:0 8px 20px rgba(231,29,54,.25);
  letter-spacing:.1px;
}
.link-light{color:rgba(255,255,255,.88);opacity:1;font-size:12px;font-weight:700}
.register-entry{color:rgba(255,255,255,.86);font-size:13px;margin-top:5px}
.register-link,.back-login-link{color:#fff;text-decoration:none;font-weight:900}
.auth-intro{color:rgba(255,255,255,.88);font-size:12.5px;background:rgba(255,255,255,.10);padding:11px 12px;border-radius:13px}
.auth-card-wrap .login-field select,.auth-card-wrap .login-field input{
  min-height:52px;border:1.5px solid rgba(255,255,255,.14);border-radius:14px;background:rgba(255,255,255,.10);color:#fff;padding:13px 13px
}
.auth-card-wrap .login-field select option{color:#15222d}
.auth-card-wrap .login-field input::placeholder{color:rgba(255,255,255,.56)}
.auth-card-wrap .login-field select:focus,.auth-card-wrap .login-field input:focus,
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(255,255,255,.30);box-shadow:0 0 0 3px rgba(255,255,255,.08)}
.terms-check{color:rgba(255,255,255,.88);background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px}
.registration-pending{background:rgba(7,20,32,.58)!important;color:#fff;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(10px)}
.registration-pending p{color:rgba(255,255,255,.84)!important}
.prototype-note{font-size:10px;color:rgba(255,255,255,.76);margin:12px 0 0}

/* APP SHELL */
.app-view{background:var(--bg);max-width:660px;box-shadow:0 0 70px rgba(9,29,41,.18)}
.topbar{
  min-height:66px;
  padding:8px 14px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(218,226,231,.85);
  box-shadow:0 3px 14px rgba(16,42,59,.035);
}
.logo-small{width:48px;height:42px;background:#fff;border-radius:10px;object-fit:contain}
.brand-row{gap:10px}.brand-row strong{font-size:14px;letter-spacing:-.2px}.brand-row small{font-size:9px;margin-top:2px}
.user-head{gap:7px}.user-head-text strong{font-size:11px}.user-head-text small{font-size:9px}
.sync-chip{font-size:9px;padding:5px 8px;font-weight:800}
.icon-btn{width:36px;height:36px;background:#F1F4F6;border:1px solid #E6EBEE;color:var(--navy)}
.content{padding-bottom:92px}.page{padding:18px 15px 24px}.page h1{font-size:25px;letter-spacing:-.55px;font-weight:900}.page h2{font-size:17px;letter-spacing:-.2px}
.muted{font-size:11.5px;color:#778690}
.section-title{margin:21px 0 10px}.section-title button,.back-btn{color:var(--red);font-size:12px}

/* CARDS / STATS */
.stats-grid{gap:10px}.stat{
  border:1px solid #E7ECEF;border-radius:19px;padding:15px;background:linear-gradient(180deg,#fff,#FBFCFD);box-shadow:var(--shadow-soft)
}
.stat b{font-size:24px;letter-spacing:-.6px;color:var(--navy)}.stat span{font-size:10px}
.card,.report-card,.project-card,.module-card{
  border:1px solid #E5EBEE;
  box-shadow:var(--shadow-soft);
}
.card{border-radius:19px;padding:15px;margin:12px 0}.card h3{font-size:14px;color:#243843}
.project-card{border-radius:18px;padding:12px;margin:9px 0;gap:12px}
.project-thumb{width:66px;height:61px;border-radius:13px}.project-name{font-size:13.5px}.project-meta{font-size:10.5px}
.progress{height:7px;background:#E9EEF1}.progress span{background:linear-gradient(90deg,#16A05D,#2EC778)}
.module-grid{gap:10px}.module-card{border-radius:18px;padding:14px;min-height:100px;background:linear-gradient(180deg,#fff,#FBFCFD)}
.module-card .ico{font-size:26px}.module-card b{font-size:12.5px;margin-top:8px}.module-card small{line-height:1.35}
.report-card{border-radius:18px;padding:14px}.report-card h3{font-size:14px}

/* HERO + PROJECT */
.hero{border-radius:22px;border:0;box-shadow:0 12px 32px rgba(16,42,59,.11)}
.hero-img{height:230px}.hero-body{padding:16px}.hero-title{font-size:22px;letter-spacing:-.45px}.hero-sub{font-size:11px}
.hero-stats{gap:9px}.mini-stat{background:#F4F7F8;border:1px solid #E9EEF0;border-radius:14px;padding:10px}
.segmented{background:#E9EEF1;border-radius:14px;padding:4px;gap:3px}.seg{border-radius:10px;padding:10px 8px;font-size:11px}.seg.active{color:var(--red);box-shadow:0 2px 7px rgba(16,42,59,.08)}

/* FORMS */
.field{margin:12px 0}.field span{font-size:11.5px;color:#40515B;margin-bottom:7px}
.field input,.field select,.field textarea{
  min-height:52px;border:1.5px solid #DFE6EA;border-radius:14px;background:#fff;padding:13px 14px;box-shadow:0 1px 0 rgba(16,42,59,.02)
}
.field textarea{min-height:105px;line-height:1.45}
.btn{border-radius:14px;min-height:48px;padding:13px 16px}.primary{background:linear-gradient(135deg,#E71D36,#F53449);box-shadow:0 7px 18px rgba(231,29,54,.18)}
.secondary{background:#EDF2F4;color:#2E404B;border:1px solid #E1E7EA}
.danger{background:#FFF2F4;border-color:#FFD7DD}.enable{background:#EDF9F2}
.check{font-size:12px;padding:9px 0}.two-col{gap:10px}.three-col{gap:8px}

/* MATERIALS */
.material-row{padding:11px 0;gap:11px}.material-row img{width:68px;height:58px;border-radius:11px}.material-main b{font-size:12.5px}.material-main small{font-size:10px;line-height:1.35}
.pill{padding:6px 9px;font-size:9.5px}

/* CAMERA */
.camera-hub{border-radius:21px;padding:16px;background:linear-gradient(145deg,#102A3B,#173D55);box-shadow:0 12px 26px rgba(16,42,59,.18)}
.camera-hub b{font-size:15px}.camera-hub p{font-size:11.5px;line-height:1.45}
.camera-capture{border:1.5px solid #E2E8EB;border-radius:20px;padding:15px;background:#fff;box-shadow:var(--shadow-soft)}
.camera-capture.missing{border-color:#E71D36;background:#FFF7F8}
.camera-btn,.camera-primary{min-height:60px;border-radius:17px;font-size:16px;box-shadow:0 8px 18px rgba(231,29,54,.20)}
.camera-gallery{gap:9px}.camera-thumb{border-radius:14px;box-shadow:0 3px 12px rgba(16,42,59,.08)}.camera-thumb img{height:112px}.camera-thumb figcaption{background:#fff;padding:7px}
.capture-review-actions{gap:12px;padding:15px 15px calc(15px + env(safe-area-inset-bottom))}.capture-review-actions button{border-radius:17px}

/* NAV */
.bottom-nav{
  height:76px;
  width:min(660px,100%);
  border-top:1px solid #E2E8EB;
  background:rgba(255,255,255,.98);
  box-shadow:0 -10px 28px rgba(16,42,59,.07);
}
.nav-btn{background:transparent;color:#7A8790;gap:3px}.nav-btn span{font-size:20px}.nav-btn small{font-size:9px;font-weight:750}.nav-btn.active{color:var(--red)}
.nav-btn.center span{width:50px;height:50px;background:linear-gradient(135deg,#E71D36,#FA4053);box-shadow:0 8px 18px rgba(231,29,54,.27);margin-top:-22px}

/* ADMIN / REGISTRATION */
.registration-pending{border-radius:22px;border:1px solid #E5EBEE;box-shadow:var(--shadow)}
.registration-admin{border:1.5px solid #F2D486;background:#FFFDF7;border-radius:19px}
.staff-actions{gap:8px}.status-pill{font-size:9.5px}
.permission-grid{gap:7px 10px}.permission-grid .check{background:#F8FAFB;border-radius:10px;padding:9px}

/* TOAST */
.toast{bottom:94px;border-radius:14px;background:#102A3B;box-shadow:0 10px 28px rgba(16,42,59,.25);font-size:12px}

/* MOBILE REFINEMENT */
@media(max-width:420px){
  .page{padding-left:13px;padding-right:13px}
  .topbar{padding-left:11px;padding-right:11px}
  .user-head-text{display:none}
  .welcome-brand-card{border-radius:24px}
  .auth-panel{border-radius:22px;padding:15px}
  .stats-grid{gap:8px}.stat{padding:13px}.stat b{font-size:22px}
  .hero-img{height:205px}
}
@media(max-width:360px){
  .sync-chip{display:none}
  .brand-row small{display:none}
  .two-col,.three-col{grid-template-columns:1fr}
}
/* ===== end v0.19 FRONTEND REDESIGN ===== */

@media (max-width:480px){.login-card-wrap{width:min(92%,420px);padding:4vh 0 3vh}.logo-main{max-width:62%}.login-panel{padding:16px 14px 12px}.login-card-wrap h1{font-size:34px}.login-card-wrap h2{font-size:22px}}

/* ===== v0.22 APPROVED LOGIN DESIGN ===== */
.login-v022{
  background:url('assets/entry-background.png') center/cover no-repeat!important;
  min-height:100dvh!important;
  overflow:auto;
}
.login-v022 .login-overlay{
  background:linear-gradient(180deg,rgba(0,18,25,.04),rgba(0,20,29,.08))!important;
}
.login-shell-v022{
  width:min(92%,540px)!important;
  min-height:100dvh!important;
  padding:calc(24px + env(safe-area-inset-top)) 0 calc(24px + env(safe-area-inset-bottom))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.login-panel-v022{
  width:100%;
  border-radius:30px!important;
  padding:30px 30px 24px!important;
  background:linear-gradient(180deg,rgba(6,42,48,.93),rgba(5,35,39,.94))!important;
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:0 24px 55px rgba(0,0,0,.30)!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  color:#fff!important;
}
.login-brand-v022{text-align:center;margin:0 0 26px}
.login-logo-v022{
  display:block!important;
  width:min(82%,300px)!important;
  max-width:300px!important;
  height:auto!important;
  margin:0 auto 4px!important;
  background:transparent!important;
  padding:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 5px 10px rgba(0,0,0,.18));
}
.smart-title{
  color:#fff;
  font-family:"Brush Script MT","Segoe Script","URW Chancery L",cursive;
  font-size:34px;
  line-height:1.05;
  font-weight:500;
  letter-spacing:.1px;
  margin-top:-4px;
  text-shadow:0 2px 10px rgba(0,0,0,.15);
}
.smart-underline{width:122px;height:4px;background:#f32339;border-radius:99px;margin:8px auto 0;transform:rotate(-3deg)}
.login-field-v022{margin:16px 0!important}
.login-v022 .login-field-v022>span{
  color:#fff!important;
  font-size:14px!important;
  font-weight:750!important;
  margin:0 0 8px 2px!important;
}
.login-input-v022{
  min-height:62px!important;
  border:1.5px solid rgba(255,255,255,.68)!important;
  background:rgba(255,255,255,.045)!important;
  border-radius:16px!important;
  padding:0 16px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.login-v022 .login-input-v022 input{
  min-width:0;
  flex:1;
  color:#fff!important;
  font-size:17px!important;
  padding:17px 8px!important;
  background:transparent!important;
  border:0!important;
}
.login-v022 .login-input-v022 input::placeholder{color:rgba(255,255,255,.68)!important}
.login-ico-v022{width:29px;text-align:center;font-size:21px;color:#fff!important;opacity:.95}
.password-eye{
  border:0;background:transparent;color:#fff;font-size:24px;line-height:1;opacity:.82;padding:9px 2px 9px 9px;cursor:pointer
}
.login-btn-v022{
  min-height:62px!important;
  margin-top:22px!important;
  padding:0 24px!important;
  border-radius:15px!important;
  background:linear-gradient(135deg,#eb1f31,#f22d39)!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  gap:20px!important;
  font-size:18px!important;
  box-shadow:0 9px 22px rgba(231,29,54,.27)!important;
}
.login-btn-v022 b{font-size:27px;font-weight:400;line-height:1}
.forgot-v022{
  display:block;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.78);
  font-size:11px;
  margin:8px auto 0;
  padding:6px 10px;
  cursor:pointer;
}
.register-separator-v022{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin:12px 0 16px}
.register-separator-v022 span{height:1px;background:rgba(255,255,255,.45)}
.register-separator-v022 em{font-style:normal;color:rgba(255,255,255,.75);font-size:12px;white-space:nowrap}
.register-btn-v022{
  width:100%;min-height:58px;border:1.5px solid rgba(255,255,255,.78);border-radius:14px;background:transparent;color:#fff;font-weight:850;font-size:18px;cursor:pointer
}
.login-motto-v022{
  margin-top:25px;
  color:rgba(255,255,255,.93);
  font-family:"Segoe Script","Brush Script MT",cursive;
  font-size:15px;
  font-style:italic;
  text-align:center;
}
.motto-underline-v022{width:55px;height:4px;background:#f32339;border-radius:99px;margin:7px auto 0;transform:rotate(-4deg)}
.login-shell-v022>.prototype-note{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:8px!important;opacity:.5!important}
.register-panel-v022{width:100%!important;max-height:88dvh;overflow:auto;background:rgba(5,35,39,.95)!important;border-radius:28px!important;padding:22px!important}
.register-panel-v022 h2{margin:4px 0 10px;color:#fff;font-size:24px}
.register-panel-v022 .back-login-link{display:inline-block;margin-bottom:8px;color:#fff}

@media(max-width:520px){
  .login-shell-v022{width:min(92%,430px)!important;padding-top:16px!important;padding-bottom:18px!important}
  .login-panel-v022{padding:22px 20px 20px!important;border-radius:26px!important}
  .login-logo-v022{width:min(78%,250px)!important}
  .smart-title{font-size:29px}
  .smart-underline{width:105px}
  .login-input-v022{min-height:56px!important}
  .login-v022 .login-input-v022 input{font-size:16px!important;padding:14px 7px!important}
  .login-btn-v022{min-height:56px!important;margin-top:18px!important}
  .register-btn-v022{min-height:54px;font-size:17px}
  .login-motto-v022{font-size:13px;margin-top:20px}
}
@media(max-height:780px){
  .login-shell-v022{align-items:flex-start!important;padding-top:12px!important}
  .login-panel-v022{padding-top:18px!important;padding-bottom:18px!important}
  .login-logo-v022{width:min(65%,220px)!important}
  .smart-title{font-size:26px}.login-brand-v022{margin-bottom:14px}.login-field-v022{margin:11px 0!important}
  .login-input-v022{min-height:52px!important}.login-btn-v022{min-height:52px!important;margin-top:14px!important}
  .register-separator-v022{margin:9px 0 11px}.register-btn-v022{min-height:49px}.login-motto-v022{margin-top:14px}
}
/* ===== end v0.22 ===== */

/* ===== v0.22.1 exact approved brand artwork ===== */
.login-brand-v022{margin:0 0 20px!important}
.login-logo-v022.exact-brand-v0221{
  width:min(100%,430px)!important;
  max-width:430px!important;
  height:auto!important;
  display:block!important;
  margin:0 auto!important;
  border-radius:17px!important;
  background:#07363d!important;
  padding:0!important;
  box-shadow:none!important;
  filter:none!important;
}
@media(max-width:520px){
 .login-logo-v022.exact-brand-v0221{width:100%!important;max-width:360px!important;border-radius:14px!important}
 .login-brand-v022{margin-bottom:16px!important}
}
@media(max-height:780px){
 .login-logo-v022.exact-brand-v0221{width:min(88%,320px)!important}
 .login-brand-v022{margin-bottom:10px!important}
}
/* ===== end v0.22.1 ===== */

/* ===== v0.22.2 Firebase personnel ===== */
.firebase-personnel-page .section-title{align-items:center;gap:12px}.admin-alert{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-radius:18px;background:#eef7f2;border:1px solid #cee7d8;margin:12px 0 18px}.admin-alert.has-pending{background:#fff7e8;border-color:#f4d89d}.admin-alert p{margin:5px 0 0;color:#66757d}.admin-alert-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#fff;font-weight:900;font-size:20px}.firebase-user-card .kv{display:flex;justify-content:space-between;gap:16px;padding:7px 0;border-bottom:1px solid #edf0f2}.firebase-user-card .kv:last-of-type{border-bottom:0}.email-notice{border-left:4px solid #e91e36}.pill.success{background:#e8f7ed;color:#137a36}.pill.danger{background:#fdecef;color:#b71932}
/* ===== end v0.22.2 ===== */

/* v0.22.3 multi-project access */
.project-access-box{margin:14px 0;padding:14px;border:1px solid #dfe5e8;border-radius:14px;background:#f8fafb}
.project-access-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.project-access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.project-access-option{display:flex;align-items:center;gap:8px;padding:9px 10px;background:#fff;border:1px solid #e3e8eb;border-radius:10px;font-size:13px}
.project-access-option input{width:18px;height:18px;accent-color:#e62035}
.link-btn{border:0;background:transparent;color:#e62035;font-weight:700;padding:4px 0;cursor:pointer}
.firebase-user-card .fbSaveProjects{margin-top:10px}.firebase-user-card .fbToggle{margin-top:8px}
@media(max-width:560px){.project-access-grid{grid-template-columns:1fr}}

/* ===== v0.23.1 mobile layout stabilization ===== */
:root{--bottom-nav-base:72px}
html,body{width:100%;max-width:100%;overflow-x:hidden}
.app-view{width:100%;max-width:620px;min-height:100dvh;position:relative;overflow-x:hidden}
.content{padding-bottom:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px) + 28px)!important}
.page{padding-bottom:24px}
.bottom-nav{
  box-sizing:content-box!important;
  height:var(--bottom-nav-base)!important;
  min-height:var(--bottom-nav-base)!important;
  padding-bottom:env(safe-area-inset-bottom,0px)!important;
  bottom:0!important;
  overflow:visible!important;
}
.nav-btn{min-width:0!important;padding:4px 2px 6px!important;overflow:visible!important}
.nav-btn span{line-height:1!important}
.nav-btn small{display:block!important;line-height:1.15!important;white-space:nowrap!important;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.nav-btn.center{overflow:visible!important}
.nav-btn.center span{margin-top:-22px!important;flex:0 0 auto}
.toast{bottom:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px) + 16px)!important}
@media (max-height:700px){
  :root{--bottom-nav-base:66px}
  .nav-btn.center span{width:42px;height:42px;font-size:25px;margin-top:-18px!important}
}
/* Android WebView: prevent fixed nav from masking the final cards */
#content,.content{scroll-padding-bottom:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px) + 36px)}
/* ===== end v0.23.1 ===== */


/* ===== v0.23.2 bottom navigation hard fix ===== */
:root{--bottom-nav-base:84px}
.content{padding-bottom:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px) + 34px)!important}
.bottom-nav{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  width:min(620px,100vw)!important;
  height:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px))!important;
  min-height:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px))!important;
  box-sizing:border-box!important;
  padding:6px 0 calc(8px + env(safe-area-inset-bottom,0px))!important;
  bottom:0!important;
  overflow:visible!important;
  align-items:stretch!important;
}
.bottom-nav.normal-nav{grid-template-columns:repeat(var(--visible-nav-count,5),minmax(0,1fr))}
.nav-btn{
  min-width:0!important;
  min-height:58px!important;
  padding:3px 1px 2px!important;
  justify-content:center!important;
  overflow:visible!important;
}
.nav-btn span{font-size:20px!important;line-height:1!important;min-height:24px;display:grid;place-items:center}
.nav-btn small{font-size:9px!important;line-height:1.05!important;margin-top:3px!important;display:block!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}
.nav-btn.center span{width:44px!important;height:44px!important;font-size:26px!important;margin-top:-12px!important}
.nav-btn.center small{margin-top:1px!important}
.toast{bottom:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px) + 18px)!important}
#content,.content{scroll-padding-bottom:calc(var(--bottom-nav-base) + env(safe-area-inset-bottom,0px) + 44px)!important}
@media(max-height:700px){
  :root{--bottom-nav-base:78px}
  .nav-btn.center span{width:40px!important;height:40px!important;font-size:24px!important;margin-top:-10px!important}
}
/* ===== end v0.23.2 ===== */
/* v0.23.5 planning */
.planning-summary .hero-stats{margin-top:12px}.planning-chapter{border-left:3px solid #e71d36}.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.planning-chapter .pc-delete{margin-top:4px}.planning-summary .mini-stat b{font-size:24px}@media(max-width:560px){.three-col{grid-template-columns:1fr 1fr}.three-col .field:last-child{grid-column:1/-1}}


/* JLV AXIS v0.23.6 — Chat */
.chat-page{padding-bottom:110px}.chat-title{align-items:flex-start}.chat-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 14px}.chat-mode-tabs button{border:1px solid #d8e1e6;background:#fff;border-radius:12px;padding:11px 8px;font-weight:700;color:#52636e}.chat-mode-tabs button.active{background:#0b2538;color:#fff;border-color:#0b2538}.chat-list{display:flex;flex-direction:column;gap:8px}.chat-list-row{display:grid;grid-template-columns:46px 1fr 20px;align-items:center;gap:10px;width:100%;border:1px solid #e2e8ec;background:#fff;border-radius:14px;padding:11px;text-align:left}.chat-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#0b2538;color:#fff;font-weight:800;font-size:13px}.chat-list-main{display:flex;min-width:0;flex-direction:column;gap:3px}.chat-list-main b{font-size:14px;color:#15222d}.chat-list-main small{font-size:11px;color:#6c7d86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-chevron{font-size:25px;color:#9aa8af}.chat-conversation-head{display:grid;grid-template-columns:40px 1fr;gap:8px;align-items:center;background:#fff;border:1px solid #e2e8ec;border-radius:14px;padding:8px 10px;margin-bottom:8px}.chat-conversation-head div{display:flex;flex-direction:column}.chat-conversation-head small{color:#7a8990;font-size:11px;margin-top:2px}.chat-back{border:0;background:#eef3f5;border-radius:10px;height:36px;font-size:28px;line-height:1;color:#0b2538}.chat-messages{height:min(56vh,560px);overflow:auto;background:#eef3f5;border:1px solid #dde6ea;border-radius:16px;padding:12px 10px;scroll-behavior:smooth}.chat-empty{text-align:center;color:#7a8990;padding:36px 12px;font-size:13px}.chat-bubble-wrap{display:flex;margin:6px 0}.chat-bubble-wrap.mine{justify-content:flex-end}.chat-bubble-wrap.theirs{justify-content:flex-start}.chat-bubble{max-width:82%;background:#fff;border-radius:14px 14px 14px 4px;padding:8px 10px;box-shadow:0 1px 2px rgba(0,0,0,.06)}.chat-bubble-wrap.mine .chat-bubble{background:#dff1e8;border-radius:14px 14px 4px 14px}.chat-sender{font-size:10px;font-weight:800;color:#0b6d50;margin-bottom:3px}.chat-text{font-size:14px;line-height:1.35;color:#17252d;overflow-wrap:anywhere}.chat-meta{text-align:right;font-size:9px;color:#7b8a91;margin-top:4px}.chat-composer{display:grid;grid-template-columns:1fr 48px;gap:8px;align-items:end;background:#fff;padding:9px 0 2px;position:sticky;bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:4}.chat-composer textarea{width:100%;min-height:44px;max-height:110px;resize:none;border:1px solid #d6e0e4;border-radius:14px;padding:11px 12px;font:inherit;outline:none}.chat-composer textarea:focus{border-color:#0b6d50}.chat-composer button{width:46px;height:46px;border:0;border-radius:50%;background:#d5222a;color:#fff;font-size:20px;font-weight:800}.chat-composer button:disabled{opacity:.55}@media(max-width:420px){.chat-bubble{max-width:88%}.chat-messages{height:52vh}}


/* ===== JLV AXIS v0.24.0 final UI stabilization ===== */
.content{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))!important}
.bottom-nav{height:calc(82px + env(safe-area-inset-bottom,0px))!important;min-height:calc(82px + env(safe-area-inset-bottom,0px))!important;padding:6px 0 calc(8px + env(safe-area-inset-bottom,0px))!important}
.chat-fab{position:fixed;z-index:35;right:max(16px,calc((100vw - 620px)/2 + 16px));bottom:calc(94px + env(safe-area-inset-bottom,0px));border:0;border-radius:999px;background:#0b2538;color:#fff;box-shadow:0 9px 24px rgba(8,42,66,.28);display:flex;align-items:center;gap:7px;padding:11px 14px;font-weight:850;min-height:46px}
.chat-fab.hidden{display:none!important}.chat-fab-icon{font-size:20px;line-height:1}.chat-fab-label{font-size:12px}.chat-module-card{outline:1px solid rgba(11,37,56,.05)}
.chat-page{padding-bottom:calc(118px + env(safe-area-inset-bottom,0px))!important}.chat-composer{bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
@media(max-width:390px){.chat-fab{right:12px;padding:10px 12px}.chat-fab-label{display:none}.chat-fab{width:48px;height:48px;justify-content:center}}
/* ===== end v0.24.0 ===== */

/* ===== JLV AXIS v0.24.1 Executive redesign + multiproject registration ===== */
:root{--jlv-red:#d7192d;--jlv-red-dark:#b90f22;--jlv-ink:#1e2328;--jlv-soft:#f5f7f9;--jlv-line:#e5e9ed;--jlv-blue:#1677e8;--jlv-green:#24ae65;--jlv-amber:#f0a512}
.topbar{padding:7px 12px;min-height:64px}
.brand-row{min-width:0}.brand-row .logo-small{width:58px;height:48px;border-radius:9px;padding:2px;background:#fff}.brand-row>div{min-width:0}.brand-row strong{font-size:13px}.brand-row small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:148px;display:block}

.executive-v241{padding:12px 12px 26px;background:linear-gradient(180deg,#f8fafb 0,#f2f5f7 100%)}
.exec-brand-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid var(--jlv-line);border-radius:18px;padding:9px 12px;margin-bottom:10px;box-shadow:0 5px 18px rgba(23,35,45,.06)}
.exec-brand-strip img{width:86px;height:50px;object-fit:contain;object-position:left center}.exec-brand-copy{text-align:right;min-width:0}.exec-brand-copy b{display:block;font-size:12px;color:#1f2b34}.exec-brand-copy small{display:block;font-size:9px;color:#71808b;margin-top:2px}.exec-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#22ad61;margin-right:5px}
.exec-hero{position:relative;height:248px;border-radius:23px;overflow:hidden;background:url('assets/executive-site.jpg') center 22%/cover no-repeat;box-shadow:0 14px 32px rgba(13,25,34,.18);margin-bottom:12px}
.exec-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,8,12,.84) 0%,rgba(4,8,12,.55) 46%,rgba(4,8,12,.12) 78%,rgba(4,8,12,.02) 100%)}
.exec-hero-copy{position:absolute;z-index:1;left:18px;right:24px;bottom:20px;color:#fff}.exec-kicker{font-size:10px;letter-spacing:2.5px;text-transform:uppercase;font-weight:800;opacity:.9}.exec-hero h1{font-size:31px;line-height:1.01;letter-spacing:-1.1px;margin:8px 0 7px;max-width:340px;text-shadow:0 2px 8px rgba(0,0,0,.3)}.exec-hero p{font-size:12px;line-height:1.35;margin:0;max-width:260px;color:rgba(255,255,255,.93)}.exec-hero-accent{width:42px;height:4px;border-radius:10px;background:var(--jlv-red);margin-top:11px}
.exec-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin:0 0 12px}.exec-stat{background:#fff;border:1px solid var(--jlv-line);border-radius:18px;padding:13px 12px;box-shadow:0 4px 14px rgba(22,37,47,.05);min-height:92px}.exec-stat-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.exec-stat-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-size:15px;background:#eef5ff;color:var(--jlv-blue)}.exec-stat.red .exec-stat-icon{background:#fff0f2;color:var(--jlv-red)}.exec-stat.green .exec-stat-icon{background:#ebf9f1;color:var(--jlv-green)}.exec-stat.amber .exec-stat-icon{background:#fff7e8;color:#dd8d00}.exec-stat b{font-size:27px;line-height:1;color:#13212c;display:block;margin-top:8px;letter-spacing:-.8px}.exec-stat span{display:block;margin-top:4px;font-size:10px;color:#71808b}.exec-stat .mini-progress{height:5px;background:#e9eef2;border-radius:10px;margin-top:8px;overflow:hidden}.exec-stat .mini-progress i{display:block;height:100%;background:linear-gradient(90deg,#1677e8,#33a0ff);border-radius:10px}
.exec-sync-row{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--jlv-line);border-radius:15px;padding:10px 12px;margin-bottom:12px}.exec-sync-row b{font-size:11px}.exec-sync-row .pill{font-size:9px}.exec-sync-attention{display:none;background:#fff4e5;border:1px solid #f4cf8f;color:#815400;border-radius:14px;padding:10px 12px;font-size:11px;font-weight:800;margin-bottom:10px}.exec-sync-attention.show{display:block}
.exec-featured{position:relative;min-height:190px;border-radius:22px;overflow:hidden;background:url('assets/executive-finished.jpg') center/cover no-repeat;margin:12px 0;box-shadow:0 10px 24px rgba(11,29,42,.14)}.exec-featured:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,12,17,.82) 0%,rgba(5,12,17,.04) 70%)}.exec-featured-copy{position:absolute;z-index:1;left:16px;right:16px;bottom:15px;color:#fff}.exec-featured-copy .badge{display:inline-block;background:var(--jlv-red);padding:5px 9px;border-radius:999px;font-size:9px;font-weight:900;margin-bottom:7px}.exec-featured-copy h3{font-size:19px;margin:0 0 3px}.exec-featured-copy p{font-size:11px;margin:0;color:rgba(255,255,255,.9)}
.exec-section{background:#fff;border:1px solid var(--jlv-line);border-radius:20px;padding:14px;margin:11px 0;box-shadow:0 4px 16px rgba(21,37,48,.045)}.exec-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.exec-section-head h2{font-size:16px;margin:0}.exec-section-head button{border:0;background:transparent;color:var(--jlv-blue);font-size:10px;font-weight:800;padding:4px}
.exec-project-row{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #eef1f3}.exec-project-row:last-child{border-bottom:0}.exec-project-row img{width:56px;height:48px;object-fit:cover;border-radius:11px}.exec-project-main{min-width:0}.exec-project-main b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exec-project-main small{display:block;font-size:9px;color:#75828b;margin-top:2px}.exec-project-progress{height:5px;background:#e9edf0;border-radius:10px;overflow:hidden;margin-top:7px}.exec-project-progress i{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,#1677e8,#55a9fa)}.exec-project-pct{font-size:12px;font-weight:900;color:#22333f}
.exec-progress-wrap{display:grid;grid-template-columns:118px 1fr;gap:14px;align-items:center}.exec-donut{width:112px;height:112px;border-radius:50%;background:conic-gradient(var(--jlv-green) 0 var(--progress-angle),#e8edf1 var(--progress-angle) 360deg);position:relative;display:grid;place-items:center}.exec-donut:after{content:"";position:absolute;inset:19px;background:#fff;border-radius:50%}.exec-donut-center{position:relative;z-index:1;text-align:center}.exec-donut-center b{font-size:24px;display:block;line-height:1}.exec-donut-center small{font-size:9px;color:#71808b}.exec-progress-copy b{font-size:11px;display:block;margin-bottom:5px}.exec-progress-copy small{font-size:9px;color:#72808b;line-height:1.4;display:block}
.exec-bars{display:flex;align-items:flex-end;gap:6px;height:124px;padding-top:8px}.exec-bar{flex:1;text-align:center;min-width:0}.exec-bar-track{height:82px;display:flex;align-items:flex-end;justify-content:center}.exec-bar-fill{width:78%;min-height:5px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#2589ef,#1374da);position:relative}.exec-bar-fill b{position:absolute;top:-17px;left:50%;transform:translateX(-50%);font-size:8px;color:#23333e}.exec-bar label{display:block;font-size:6.8px;line-height:1.1;color:#64727b;margin-top:6px;overflow:hidden}
.exec-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.exec-action{border:0;border-radius:16px;padding:14px 12px;text-align:left;background:#fff;border:1px solid var(--jlv-line);box-shadow:0 4px 14px rgba(20,35,45,.05);min-height:75px}.exec-action.primary{background:linear-gradient(135deg,var(--jlv-red),var(--jlv-red-dark));color:#fff;border-color:transparent}.exec-action .aico{font-size:19px;display:block;margin-bottom:7px}.exec-action b{display:block;font-size:11px}.exec-action small{display:block;font-size:8.5px;opacity:.76;margin-top:2px;line-height:1.3}
.executive-v241 .module-grid{grid-template-columns:repeat(2,1fr);gap:9px}.executive-v241 .module-card{min-height:104px;border-radius:17px;padding:13px}.executive-v241 .module-card .ico{font-size:21px}.executive-v241 .module-card b{font-size:11px}.executive-v241 .module-card small{font-size:8px}
.executive-v241 #executiveAlerts .card{border-radius:15px;margin:8px 0;padding:11px}.executive-v241 #executiveAlerts h3{font-size:11px;margin:0 0 4px}.executive-v241 #executiveAlerts .muted{font-size:9px;line-height:1.35}

/* Registration: one, several, or all projects */
.reg-project-legacy select{display:none!important}.registration-project-box{background:rgba(255,255,255,.10);border:1.5px solid rgba(255,255,255,.15);border-radius:15px;padding:10px;margin-top:7px}.registration-project-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px}.registration-project-head b{font-size:12px;color:#fff}.registration-select-all{border:0;border-radius:10px;padding:7px 10px;background:#fff;color:#17242d;font-size:10px;font-weight:900}.registration-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.registration-project-option{display:flex;align-items:flex-start;gap:7px;padding:8px;border-radius:10px;background:rgba(255,255,255,.08);color:#fff;font-size:10px;line-height:1.25}.registration-project-option input{margin-top:1px;accent-color:var(--jlv-red)}.registration-project-summary{font-size:9px;color:rgba(255,255,255,.72);margin:8px 2px 0}
@media(max-width:390px){.exec-hero{height:230px}.exec-hero h1{font-size:28px}.exec-stat b{font-size:24px}.exec-progress-wrap{grid-template-columns:102px 1fr}.exec-donut{width:98px;height:98px}.registration-project-grid{grid-template-columns:1fr}}
/* ===== end v0.24.1 ===== */


/* ===== JLV AXIS v0.24.2 FINAL visual system ===== */
:root{--jlv-red:#d7192d;--jlv-black:#231f20;--jlv-paper:#ffffff;--jlv-bg:#f4f6f8;--jlv-border:#e6e9ed}
.login-product-v0242{text-align:center;color:#fff;margin:-2px 0 16px}.login-product-v0242 b{display:block;font-size:22px;letter-spacing:.8px}.login-product-v0242 span{display:block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;opacity:.8;margin-top:3px}
.login-brand-v022{background:#fff;border-radius:22px;padding:10px 16px;margin-bottom:10px;box-shadow:0 12px 30px rgba(0,0,0,.14)}
.login-logo-v022{width:min(100%,310px)!important;height:116px!important;object-fit:contain!important;object-position:center!important;filter:none!important}
.topbar{background:rgba(255,255,255,.98);border-bottom:1px solid var(--jlv-border);box-shadow:0 2px 12px rgba(28,35,40,.05)}
.brand-row .logo-small{width:72px!important;height:54px!important;border-radius:9px!important;object-fit:contain!important;background:#fff!important;padding:1px!important}.brand-row strong{color:var(--jlv-black);letter-spacing:.2px}.brand-row small{color:#6f7881}
.executive-v241{background:linear-gradient(180deg,#f8f9fb 0%,#f1f4f6 100%)}
.exec-brand-strip{border-top:3px solid var(--jlv-red);padding-top:8px}.exec-brand-strip img{width:104px;height:58px}.exec-brand-copy b{color:var(--jlv-black)}
.exec-hero{height:260px;border-radius:24px}.exec-hero:after{background:linear-gradient(90deg,rgba(8,8,9,.86) 0%,rgba(8,8,9,.56) 48%,rgba(8,8,9,.09) 82%)}.exec-hero h1{font-size:32px}.exec-hero-accent{background:var(--jlv-red)}
.exec-stat{border-color:#e7eaee;box-shadow:0 6px 18px rgba(20,26,31,.045)}.exec-stat.red{border-top:3px solid var(--jlv-red)}.exec-stat.green{border-top:3px solid #24ae65}.exec-stat.amber{border-top:3px solid #f0a512}.exec-stat:not(.red):not(.green):not(.amber){border-top:3px solid #1677e8}
.exec-featured{min-height:220px}.exec-featured-copy h3{font-size:21px}.exec-section{box-shadow:0 6px 20px rgba(20,26,31,.04)}
.exec-action.primary{background:linear-gradient(135deg,#e21d32,#b90f22)}
.registration-project-box,.rq-projects-v0242{border-color:rgba(255,255,255,.24)}
@media(min-width:700px){.executive-v241{max-width:920px;margin:0 auto}.exec-stat-grid{grid-template-columns:repeat(4,1fr)}.exec-actions{grid-template-columns:repeat(4,1fr)}.registration-project-grid{grid-template-columns:repeat(3,1fr)}}
/* ===== end v0.24.2 ===== */


/* ===== JLV AXIS v0.24.9 · Welcome redesign ===== */
.login-v025{position:relative;min-height:100dvh;background:url('assets/entry-background.png') center 52%/cover no-repeat!important;overflow:auto!important}
.login-overlay-v025{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,34,42,.80) 0%,rgba(3,49,57,.88) 48%,rgba(2,26,33,.96) 100%)!important;backdrop-filter:saturate(.82)}
.login-shell-v025{position:relative;z-index:2;width:min(92vw,460px)!important;min-height:100dvh!important;margin:auto!important;padding:calc(18px + env(safe-area-inset-top)) 0 calc(20px + env(safe-area-inset-bottom))!important;display:flex!important;align-items:center!important;justify-content:center!important;background:transparent!important;box-shadow:none!important}
.login-shell-v025>.auth-panel{width:100%;box-sizing:border-box}
.welcome-panel-v025{display:flex;flex-direction:column;gap:18px;padding:18px 16px 16px;color:#fff;text-align:center}
.welcome-logo-v025{width:min(100%,390px);margin:0 auto;border-radius:28px;overflow:hidden;box-shadow:0 24px 55px rgba(0,0,0,.30),0 0 0 1px rgba(255,255,255,.12)}
.axis-official-logo-v025{display:block;width:100%;height:auto;object-fit:contain}
.welcome-copy-v025{padding:2px 10px 0}
.welcome-eyebrow-v025{display:inline-block;font-size:11px;font-weight:900;letter-spacing:2.2px;color:#d8eef0;margin-bottom:10px}
.welcome-copy-v025 h1{margin:0 0 10px!important;font-size:31px!important;line-height:1.04!important;color:#fff!important;letter-spacing:-.8px!important;font-weight:750!important;text-shadow:0 3px 18px rgba(0,0,0,.22)}
.welcome-copy-v025 h1 strong{display:block;font-size:43px;font-weight:950;letter-spacing:-1.5px;color:#fff}
.welcome-copy-v025 p{margin:0 auto!important;max-width:390px;font-size:14px!important;line-height:1.55!important;color:rgba(255,255,255,.86)!important}
.welcome-actions-v025{display:grid;gap:11px;margin-top:2px}
.welcome-login-btn-v025{min-height:60px!important;border:0!important;border-radius:18px!important;background:linear-gradient(135deg,#f0152d,#c70821)!important;color:#fff!important;font-size:18px!important;font-weight:900!important;box-shadow:0 15px 32px rgba(218,9,37,.30)!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:18px!important}
.welcome-login-btn-v025 b{font-size:27px;font-weight:400}
.welcome-register-btn-v025{min-height:56px;border:1.5px solid rgba(255,255,255,.60);border-radius:18px;background:rgba(255,255,255,.05);color:#fff;font-size:16px;font-weight:850;backdrop-filter:blur(12px)}
.welcome-status-v025{font-size:11px;color:rgba(255,255,255,.65);font-weight:700;letter-spacing:.2px}.welcome-status-v025 span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#24c56e;margin-right:6px;box-shadow:0 0 0 4px rgba(36,197,110,.10)}
.login-panel-v025,.register-panel-v025{padding:22px 18px 20px!important;border-radius:28px!important;background:linear-gradient(180deg,rgba(7,44,52,.92),rgba(4,32,39,.96))!important;border:1px solid rgba(255,255,255,.14)!important;box-shadow:0 28px 70px rgba(0,0,0,.36)!important;backdrop-filter:blur(18px);color:#fff}
.back-welcome-v025,.back-login-link{border:0;background:transparent;color:#e6f1f2;font-weight:800;padding:0 0 10px;font-size:13px}
.login-brand-v025{text-align:center;margin:0 auto 14px;width:min(100%,250px);border-radius:20px;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.22)}
.axis-login-logo-v025{display:block;width:100%;height:auto}
.login-title-v025{margin:0!important;text-align:center;color:#fff!important;font-size:27px!important;font-weight:950!important}
.login-subtitle-v025{text-align:center;margin:6px 0 18px!important;color:rgba(255,255,255,.74)!important;font-size:13px!important}
.login-field-v025{margin:14px 0!important}.login-v025 .login-field>span{display:block;color:rgba(255,255,255,.88)!important;font-size:12px!important;font-weight:800;margin:0 0 7px 2px}
.login-input-v025{display:flex;align-items:center;min-height:56px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(255,255,255,.09);padding:0 12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.login-input-v025 input{flex:1;border:0!important;background:transparent!important;color:#fff!important;font-size:16px!important;outline:none!important;padding:13px 7px!important}.login-input-v025 input::placeholder{color:rgba(255,255,255,.48)!important}.login-ico-v025{width:26px;text-align:center;color:#fff;opacity:.8}
.login-btn-v025{min-height:58px!important;margin-top:17px!important;border-radius:17px!important;background:linear-gradient(135deg,#f0152d,#c70821)!important;font-size:17px!important;font-weight:900!important;box-shadow:0 14px 30px rgba(218,9,37,.26)!important}
.forgot-v025{display:block;width:100%;border:0;background:transparent;color:rgba(255,255,255,.77);padding:14px 0 8px;font-weight:750}
.register-separator-v025{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin:12px 0;color:rgba(255,255,255,.62);font-size:11px}.register-separator-v025 span{height:1px;background:rgba(255,255,255,.17)}.register-separator-v025 em{font-style:normal}
.register-btn-v025{width:100%;min-height:52px;border:1px solid rgba(255,255,255,.42);border-radius:15px;background:rgba(255,255,255,.04);color:#fff;font-size:15px;font-weight:900}
.register-head-v025{display:flex;gap:12px;align-items:center;margin:0 0 14px}.register-head-v025 img{width:92px;border-radius:12px}.register-head-v025 h2{margin:0!important;color:#fff!important}.register-head-v025 p{margin:3px 0 0!important;color:rgba(255,255,255,.70)!important;font-size:12px!important}
.login-v025 .register-panel-v025 .login-field input,.login-v025 .register-panel-v025 .login-field select{background:rgba(255,255,255,.09)!important;color:#fff!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:13px!important}.login-v025 .register-panel-v025 select option{color:#17252b;background:#fff}
.axis-top-logo-v025{width:46px!important;height:46px!important;border-radius:10px!important;object-fit:cover!important}
@media(max-width:420px){.login-shell-v025{width:min(94vw,430px)!important}.welcome-panel-v025{padding:12px 8px}.welcome-logo-v025{border-radius:22px}.welcome-copy-v025 h1{font-size:28px!important}.welcome-copy-v025 h1 strong{font-size:38px}.welcome-copy-v025 p{font-size:13px!important}.welcome-login-btn-v025{min-height:57px!important}.login-panel-v025,.register-panel-v025{padding:18px 14px!important;border-radius:24px!important}}
@media(max-height:720px){.login-shell-v025{align-items:flex-start!important}.welcome-panel-v025{gap:11px;padding-top:8px}.welcome-logo-v025{width:min(76vw,310px)}.welcome-copy-v025 h1{font-size:24px!important}.welcome-copy-v025 h1 strong{font-size:34px}.welcome-copy-v025 p{font-size:12px!important;line-height:1.4!important}.welcome-login-btn-v025{min-height:52px!important}.welcome-register-btn-v025{min-height:48px}}
/* ===== end v0.24.9 ===== */

/* ===== JLV AXIS v0.25.0 · 12 capítulos / reporte OCAD ===== */
.chapter-progress-card{border:1px solid #e4e8eb}
.chapter-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.chapter-card-head h3{margin:0 0 4px}.chapter-overall{min-width:112px;text-align:center;background:#f1f7f5;border-radius:14px;padding:10px}.chapter-overall b{display:block;font-size:22px}.chapter-overall span{font-size:10px;color:#64727c;text-transform:uppercase;font-weight:800}
.chapter-report-grid{display:grid;grid-template-columns:1fr;gap:7px}.chapter-report-row{display:grid;grid-template-columns:30px 1fr 98px;gap:9px;align-items:center;padding:9px;border:1px solid #e7ecef;border-radius:12px;background:#fff}.chapter-num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#17242c;color:#fff;font-weight:900;font-size:12px}.chapter-name{font-weight:800;font-size:13px;line-height:1.15}.chapter-name small{display:block;font-weight:600;color:#71808a;margin-top:3px}.chapter-input{display:flex;align-items:center;border:1px solid #ccd5da;border-radius:9px;overflow:hidden}.chapter-input input{width:70px;border:0!important;padding:9px 6px!important;text-align:right;font-weight:850}.chapter-input em{font-style:normal;padding-right:7px;color:#69767d}.chapter-summary-line{margin-top:10px;padding-top:10px;border-top:1px dashed #d5dde1;display:flex;justify-content:space-between;font-weight:800}.report-chapter-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:9px 0}.report-chapter-mini span{display:flex;justify-content:space-between;gap:6px;background:#f5f7f8;border-radius:7px;padding:5px 7px;font-size:10px}.report-chapter-mini b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-chapter-mini em{font-style:normal;font-weight:900}
.ocad-progress-sheet{font-family:Arial,sans-serif;max-width:1180px;margin:0 auto;background:#f4f4f2;padding:22px;color:#20262b}.ocad-report-head{display:grid;grid-template-columns:230px 1fr 140px;align-items:center;gap:18px}.ocad-brand{background:#fff;border-radius:18px;padding:17px 20px;display:flex;flex-direction:column}.ocad-brand b{font-size:28px;letter-spacing:1px}.ocad-brand span{font-size:10px;color:#6c777e;font-weight:800}.ocad-title{text-align:center}.ocad-title>span{font-size:26px;font-weight:900;color:#b8321b;letter-spacing:2px}.ocad-title h1{margin:2px 0;font-size:40px}.ocad-title small{font-size:16px;font-weight:800;color:#525e65}.ocad-kpis{display:flex;gap:10px;margin:18px 0}.ocad-kpis>div{background:#26343c;color:#fff;border-radius:10px;padding:9px 14px;min-width:150px}.ocad-kpis span{display:block;font-size:9px;font-weight:800}.ocad-kpis b{font-size:19px}.ocad-chapters{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:5px;height:475px;align-items:end}.ocad-chapter{height:100%;display:grid;grid-template-rows:32px 1fr 34px 95px;gap:5px;min-width:0}.ocad-chapter-value{display:grid;place-items:center;text-align:center;font-size:8px;font-weight:900;background:#d8dbd4;border-radius:5px;padding:3px}.ocad-bar{position:relative;display:flex;align-items:flex-end;justify-content:center;background:#dfe4e1;border-radius:5px;overflow:hidden}.ocad-bar i{position:absolute;left:0;right:0;bottom:0;background:#5c9f8e}.ocad-bar strong{position:absolute;top:12px;z-index:2;font-size:13px}.ocad-bar span{position:absolute;bottom:10px;left:3px;right:3px;z-index:2;font-size:8px;font-weight:900;text-align:center;line-height:1.05}.ocad-index{width:30px;height:30px;border-radius:50%;margin:auto;display:grid;place-items:center;background:#d33b18;color:#fff;font-size:15px}.ocad-chapter img,.ocad-photo-empty{width:100%;height:95px;object-fit:cover;border-radius:50%;border:3px solid #fff}.ocad-photo-empty{display:grid;place-items:center;background:#e1e5e3;color:#7c878c;font-size:8px;text-align:center}.ocad-report-foot{display:flex;justify-content:space-between;margin-top:12px;font-size:9px;color:#66747c;font-weight:700}
@media(max-width:620px){.chapter-card-head{display:block}.chapter-overall{margin-top:8px}.chapter-report-row{grid-template-columns:28px 1fr 88px}.report-chapter-mini{grid-template-columns:1fr}}
@media print{@page{size:landscape;margin:5mm}.report-sheet{padding:0!important}.ocad-progress-sheet{max-width:none;width:100%;min-height:185mm;box-sizing:border-box}.ocad-chapters{height:132mm}.ocad-chapter{grid-template-rows:8mm 1fr 8mm 25mm}.ocad-title h1{font-size:28px}.ocad-title>span{font-size:18px}}
/* ===== end v0.25.0 ===== */

/* ===== JLV AXIS v0.25.2 · audited reports ===== */
.report-activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.report-activity-grid .check{margin:0;padding:10px}.report-chronology-notice{display:block;margin-top:5px;color:#a84b00}.photo-chapter-select{display:block;width:100%;margin-top:6px;border:1px solid #cfd8dd;border-radius:7px;padding:6px;background:#fff;color:#22343d;font-size:11px}.report-filter-card{margin-bottom:12px}.report-filter-card small{display:block;margin-top:5px}.report-sync-line{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:7px 0 10px;color:#70808a;font-size:11px}.report-sync{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:900}.report-sync.synced{background:#e7f7ed;color:#168342}.report-sync.pending{background:#fff2d8;color:#946100}.report-sync.local{background:#eef2f4;color:#53656f}.admin-correction{border-left:3px solid #c83f27;padding-left:9px;background:#fff7f4}.ocad-kpis{flex-wrap:wrap}.ocad-kpis>div.total{background:#b8321b}.ocad-period-meta{display:flex;justify-content:space-between;gap:12px;margin:-6px 0 12px;padding:7px 10px;background:#fff;border-radius:8px;font-size:9px;font-weight:800;color:#53636d}.ocad-chapter{grid-template-rows:32px 1fr 34px 31px 78px}.ocad-date{font-size:7px;line-height:1.15;text-align:center;color:#59666e;font-weight:800;display:grid;place-items:center;background:#f8f9f8;border-radius:4px}.ocad-chapter img,.ocad-photo-empty{height:78px}.ocad-signature{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-top:10px;padding-top:10px;border-top:1px solid #ccd3d6}.ocad-signature>div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:56px;font-size:9px;color:#5f6f78}.ocad-signature img{max-width:150px;max-height:48px;object-fit:contain;border-bottom:1px solid #7f8b91;margin-bottom:4px}.ocad-signature b{color:#26343c;font-size:10px}.ocad-signature span{margin-top:2px}@media(max-width:620px){.report-activity-grid{grid-template-columns:1fr}.report-sync-line{align-items:flex-start;flex-direction:column}.report-filter-card .three-col{grid-template-columns:1fr}.ocad-period-meta{flex-direction:column}}
@media print{.ocad-chapters{height:119mm}.ocad-chapter{grid-template-rows:7mm 1fr 7mm 7mm 20mm}.ocad-chapter img,.ocad-photo-empty{height:20mm}.ocad-signature{margin-top:2mm;padding-top:2mm}.ocad-kpis{margin:3mm 0}.ocad-period-meta{margin:-1mm 0 2mm}.ocad-report-foot{margin-top:2mm}}
/* ===== end v0.25.2 ===== */


/* ===== JLV AXIS v0.25.3 · legibilidad de planeación y reportes ===== */
.planning-project-switcher{padding:16px;border:1px solid #dbe3e7;background:linear-gradient(180deg,#fff,#f8fafb);box-shadow:0 7px 22px rgba(18,39,52,.06)}
.planning-switcher-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.planning-switcher-head h3{font-size:20px;margin:2px 0 4px}.planning-switcher-head small{display:block;color:#71808a;font-size:11px}.planning-eyebrow{display:block;color:#c93420;font-size:10px;font-weight:950;letter-spacing:1.2px}.planning-scope-badge{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#eef3f5;color:#344a56;font-size:9px;font-weight:950;letter-spacing:.5px}.planning-project-field{margin:14px 0 0}.planning-project-field select{font-size:16px;font-weight:850;padding:14px;border:1.5px solid #ccd7dc;border-radius:13px;background:#fff}.planning-project-locked{margin-top:13px;padding:12px 14px;border-radius:12px;background:#f1f5f6;display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center}.planning-project-locked span{font-size:10px;color:#73818a;font-weight:800;text-transform:uppercase}.planning-project-locked b{font-size:13px}.planning-project-locked small{grid-column:1/-1;color:#7b8991;font-size:10px}.planning-summary-v253{padding:17px}.planning-summary-v253>h3{font-size:17px}.planning-summary-v253 .hero-stats{gap:10px}.planning-summary-v253 .mini-stat{padding:13px 8px;border:1px solid #e4eaed}.planning-summary-v253 .mini-stat b{font-size:27px}.planning-summary-v253 .mini-stat span{font-size:10px}.planning-settings-v253{padding:16px}.planning-settings-v253 .kv{display:flex;grid-template-columns:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 0}.planning-settings-v253 .kv b{max-width:72%;font-size:11px}.planning-settings-v253 .kv span{font-weight:900}.planning-chapter-v253{position:relative;padding:17px 14px 14px 18px;margin:12px 0;border-left:4px solid #d63b24}.planning-chapter-v253:before{content:attr(data-chapter-number);position:absolute;left:-13px;top:15px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#d63b24;color:#fff;font-size:11px;font-weight:950;border:3px solid #f4f6f8}.planning-chapter-v253 .field span{font-size:11px}.planning-chapter-v253 input{font-size:13px}

@media screen and (min-width:761px){.report-overlay .report-sheet{max-width:1240px;width:min(1240px,100%)}.report-overlay .ocad-progress-sheet{max-width:1180px}}
@media screen and (max-width:760px){
  .report-overlay{padding:6px;background:#16232b}.report-overlay .report-sheet{width:100%;max-width:none;margin:0;padding:8px;border-radius:14px;overflow:visible}.report-overlay .report-sheet>.form-row-actions{position:sticky;top:0;z-index:8;background:#fff;margin:-2px -2px 8px;padding:7px 4px;border-bottom:1px solid #edf0f2}
  .report-overlay .ocad-progress-sheet{width:100%;max-width:none;margin:0;padding:14px;border-radius:12px}.report-overlay .ocad-report-head{grid-template-columns:1fr;gap:9px}.report-overlay .ocad-brand{width:min(230px,100%);margin:0 auto;align-items:center;text-align:center;padding:12px 15px}.report-overlay .ocad-brand b{font-size:25px}.report-overlay .ocad-title>span{font-size:22px;letter-spacing:1px}.report-overlay .ocad-title h1{font-size:34px;line-height:1;margin:5px 0}.report-overlay .ocad-title small{font-size:13px}
  .report-overlay .ocad-kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0}.report-overlay .ocad-kpis>div{min-width:0;padding:10px 11px}.report-overlay .ocad-kpis span{font-size:8px}.report-overlay .ocad-kpis b{font-size:18px}.report-overlay .ocad-period-meta{display:grid;grid-template-columns:1fr;gap:4px;margin:0 0 12px;padding:10px;font-size:9px}
  .report-overlay .ocad-chapters{height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch}.report-overlay .ocad-chapter{height:360px;grid-template-rows:38px 1fr 38px 42px 94px;gap:6px;background:#fff;border:1px solid #e0e5e3;border-radius:12px;padding:7px;box-shadow:0 3px 10px rgba(20,37,46,.05)}.report-overlay .ocad-chapter-value{font-size:10px;border-radius:7px}.report-overlay .ocad-bar{border-radius:8px}.report-overlay .ocad-bar strong{font-size:18px;top:13px}.report-overlay .ocad-bar span{font-size:11px;line-height:1.12;bottom:12px;padding:0 4px}.report-overlay .ocad-index{width:34px;height:34px;font-size:16px}.report-overlay .ocad-date{font-size:9px;line-height:1.2;padding:5px}.report-overlay .ocad-chapter img,.report-overlay .ocad-photo-empty{height:94px;border-radius:12px;border:0}.report-overlay .ocad-photo-empty{font-size:9px;padding:6px}.report-overlay .ocad-signature{grid-template-columns:1fr;gap:12px;margin-top:15px}.report-overlay .ocad-report-foot{display:grid;grid-template-columns:1fr;gap:4px;line-height:1.25}
}
@media screen and (max-width:520px){.planning-settings-v253 .two-col{grid-template-columns:1fr}.planning-summary-v253 .hero-stats{grid-template-columns:1fr 1fr}.planning-summary-v253 .hero-stats .mini-stat:last-child{grid-column:1/-1}.planning-chapter-v253 .two-col,.planning-chapter-v253 .three-col{grid-template-columns:1fr}.planning-chapter-v253 .three-col .field:last-child{grid-column:auto}.report-overlay .ocad-chapters{grid-template-columns:1fr}.report-overlay .ocad-chapter{height:390px}.report-overlay .ocad-kpis{grid-template-columns:1fr 1fr}}
/* ===== end v0.25.3 ===== */


/* ===== JLV AXIS v0.25.4 · reporte legible en pantalla ===== */
@media screen {
  .report-overlay{overflow-y:auto;align-items:flex-start}
  .report-overlay .report-sheet{width:min(1240px,100%);max-width:1240px;margin:10px auto 24px;padding:12px;border-radius:18px;overflow:visible}
  .report-overlay .report-sheet>.form-row-actions{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:9px 6px;margin:-4px -4px 12px;border-bottom:1px solid #e6ebee}
  .report-overlay .ocad-progress-sheet{width:100%;max-width:none;padding:22px;border-radius:16px;background:#f5f6f4}
  .report-overlay .ocad-report-head{grid-template-columns:220px 1fr;gap:20px}
  .report-overlay .ocad-title{text-align:left}
  .report-overlay .ocad-title>span{font-size:24px;letter-spacing:1.3px}
  .report-overlay .ocad-title h1{font-size:40px;line-height:1.02;margin:3px 0 5px}
  .report-overlay .ocad-title small{font-size:14px}
  .report-overlay .ocad-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0 12px}
  .report-overlay .ocad-kpis>div{min-width:0;padding:12px 14px;border-radius:12px}
  .report-overlay .ocad-kpis span{font-size:9px;line-height:1.15}
  .report-overlay .ocad-kpis b{font-size:24px;margin-top:3px;display:block}
  .report-overlay .ocad-period-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px;padding:0;background:transparent}
  .report-overlay .ocad-period-meta span{background:#fff;border:1px solid #e3e8e6;border-radius:9px;padding:9px 10px;text-align:center;font-size:10px}
  .report-overlay .ocad-empty-state{display:flex;flex-direction:column;gap:4px;margin:0 0 14px;padding:14px 16px;border:1px solid #f0d2ca;background:#fff8f5;border-radius:12px;color:#6d392e}
  .report-overlay .ocad-empty-state b{font-size:13px}.report-overlay .ocad-empty-state span{font-size:10px;line-height:1.35;color:#7b625b}
  .report-overlay .ocad-chapters{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important;height:auto!important;align-items:stretch!important}
  .report-overlay .ocad-chapter{height:auto!important;min-height:285px!important;display:grid!important;grid-template-columns:50px minmax(0,1fr)!important;grid-template-rows:auto auto auto 112px!important;grid-template-areas:'idx bar' 'value bar' 'date date' 'photo photo'!important;gap:9px!important;padding:14px!important;background:#fff!important;border:1px solid #dfe6e3!important;border-radius:14px!important;box-shadow:0 4px 14px rgba(20,37,46,.06)!important;overflow:hidden}
  .report-overlay .ocad-index{grid-area:idx!important;width:42px!important;height:42px!important;margin:0!important;border-radius:12px!important;background:#d33b18!important;font-size:18px!important;align-self:start}
  .report-overlay .ocad-chapter-value{grid-area:value!important;min-height:0!important;display:block!important;padding:0!important;background:transparent!important;border-radius:0!important;text-align:left!important;font-size:10px!important;color:#64737b!important;align-self:start}
  .report-overlay .ocad-bar{grid-area:bar!important;min-height:96px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;padding:13px 14px 22px!important;background:#edf2ef!important;border:1px solid #dce5e0!important;border-radius:11px!important;overflow:hidden!important}
  .report-overlay .ocad-bar span{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;order:1!important;width:100%!important;padding:0!important;margin:0 0 4px!important;text-align:left!important;font-size:12px!important;line-height:1.15!important;color:#26333a!important}
  .report-overlay .ocad-bar strong{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;order:2!important;font-size:28px!important;line-height:1!important;color:#202b31!important}
  .report-overlay .ocad-bar i{position:absolute!important;left:0!important;right:auto!important;bottom:0!important;top:auto!important;width:var(--pct,0%)!important;height:8px!important;min-height:0!important;background:#5c9f8e!important;border-radius:0 8px 8px 0!important}
  .report-overlay .ocad-date{grid-area:date!important;display:block!important;padding:9px 10px!important;background:#f7f9f8!important;border:1px solid #e5eae8!important;border-radius:9px!important;text-align:left!important;font-size:10px!important;line-height:1.3!important;color:#55656e!important}
  .report-overlay .ocad-date:before{content:'PROGRAMACIÓN';display:block;margin-bottom:2px;color:#8a969c;font-size:8px;font-weight:950;letter-spacing:.7px}
  .report-overlay .ocad-chapter img,.report-overlay .ocad-photo-empty{grid-area:photo!important;width:100%!important;height:112px!important;border:0!important;border-radius:10px!important;object-fit:cover!important}
  .report-overlay .ocad-photo-empty{display:flex!important;align-items:center!important;justify-content:center!important;background:#e9eeeb!important;color:#7a888f!important;font-size:10px!important}
  .report-overlay .ocad-signature{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding-top:14px}
  .report-overlay .ocad-signature>div{min-height:74px;padding:12px;background:#fff;border:1px solid #e1e7e5;border-radius:11px;align-items:flex-start}
  .report-overlay .ocad-signature img{max-width:180px}
  .report-overlay .ocad-report-foot{display:grid;grid-template-columns:1fr 2fr;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid #dfe5e2;line-height:1.35}
}
@media screen and (max-width:980px){
  .report-overlay .ocad-report-head{grid-template-columns:1fr}.report-overlay .ocad-brand{width:min(260px,100%);margin:0 auto;align-items:center;text-align:center}.report-overlay .ocad-title{text-align:center}
  .report-overlay .ocad-kpis{grid-template-columns:1fr 1fr}
  .report-overlay .ocad-period-meta{grid-template-columns:1fr}
  .report-overlay .ocad-chapters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media screen and (max-width:620px){
  .report-overlay{padding:4px}.report-overlay .report-sheet{margin:0;padding:7px;border-radius:12px}.report-overlay .ocad-progress-sheet{padding:13px;border-radius:10px}
  .report-overlay .ocad-title>span{font-size:20px}.report-overlay .ocad-title h1{font-size:31px}.report-overlay .ocad-title small{font-size:12px}
  .report-overlay .ocad-kpis{grid-template-columns:1fr 1fr;gap:7px}.report-overlay .ocad-kpis>div{padding:10px}.report-overlay .ocad-kpis b{font-size:20px}
  .report-overlay .ocad-chapters{grid-template-columns:1fr!important;gap:10px!important}
  .report-overlay .ocad-chapter{min-height:270px!important;padding:12px!important}
  .report-overlay .ocad-signature{grid-template-columns:1fr}.report-overlay .ocad-report-foot{grid-template-columns:1fr}
}
/* El PDF conserva el formato horizontal de 12 capítulos definido en @media print. */
/* ===== end v0.25.4 ===== */

/* v0.25.6 official report save */
.saved-report-card{margin-top:14px}.saved-report-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid #e6ebee}.saved-report-row:first-of-type{border-top:0}.saved-report-row>div{min-width:0;display:flex;flex-direction:column;gap:3px}.saved-report-row small{color:#71808a;overflow-wrap:anywhere}.saveOfficialReport:disabled,.saveDeviceCopy:disabled{opacity:.45;cursor:not-allowed}.report-sheet>.form-row-actions .saveOfficialReport{background:#c8341d;color:#fff}@media(max-width:620px){.saved-report-row{align-items:flex-start;flex-direction:column}.saved-report-row .btn{width:100%}.report-sheet>.form-row-actions{display:grid!important;grid-template-columns:1fr 1fr}.report-sheet>.form-row-actions .saveOfficialReport{grid-column:1/-1;order:-1}}


/* ===== JLV AXIS v0.27.0 ===== */
.bottom-nav{display:none!important}.app-view .content{padding-bottom:28px!important}.axis270-dashboard,.axis270-projects{max-width:1180px;margin:0 auto}.axis270-hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:22px;border-radius:20px;background:linear-gradient(135deg,#102c3e,#183f52);color:#fff;margin-bottom:16px}.axis270-hero h1{margin:4px 0 6px;color:#fff}.axis270-hero p{margin:0;color:#d7e3e8}.axis270-eyebrow{display:block;font-size:10px;font-weight:950;letter-spacing:1.25px;text-transform:uppercase;color:#c83c26}.axis270-hero .axis270-eyebrow{color:#ffb3a4}.axis270-hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.axis270-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.axis270-kpis>div{background:#fff;border:1px solid #e2e8eb;border-radius:16px;padding:15px;box-shadow:0 4px 12px rgba(20,37,46,.04)}.axis270-kpis span{display:block;color:#71808a;font-size:10px;font-weight:850;text-transform:uppercase}.axis270-kpis b{display:block;font-size:26px;margin-top:5px}.axis270-financial{background:#fff;border:1px solid #e2e8eb;border-radius:18px;padding:18px;margin:0 0 16px}.axis270-financial h2{margin:5px 0}.axis270-financial p{margin:0;color:#61717a}.axis270-finance-meter{height:7px;background:#e8edef;border-radius:999px;overflow:hidden;margin-top:14px}.axis270-finance-meter span{display:block;height:100%;background:#c83c26}.axis270-alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:18px}.axis270-alert{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:13px;background:#fff8e8;border:1px solid #f0dfb2}.axis270-alert.high{background:#fff1ed;border-color:#f0c1b6}.axis270-alert span{font-size:11px;color:#64747d}.axis270-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}.axis270-project-card{display:grid;grid-template-columns:145px 1fr;padding:0;border:1px solid #e0e7ea;border-radius:18px;background:#fff;text-align:left;overflow:hidden;box-shadow:0 4px 15px rgba(20,37,46,.05);color:inherit}.axis270-project-card>img{width:145px;height:100%;min-height:185px;object-fit:cover}.axis270-project-body{padding:15px;min-width:0}.axis270-project-top{display:flex;justify-content:space-between;gap:8px}.axis270-project-top h3{margin:3px 0 2px;font-size:18px}.axis270-project-top small{color:#71808a}.axis270-status{font-size:9px;font-weight:950;border-radius:999px;padding:6px 8px;white-space:nowrap;height:max-content}.axis270-status.ok{background:#e7f6ec;color:#18783d}.axis270-status.late{background:#fdebe7;color:#ad351f}.axis270-progress{height:8px;background:#e7ecee;border-radius:999px;overflow:hidden;margin:14px 0 11px}.axis270-progress span{display:block;height:100%;background:#c83c26}.axis270-project-metrics{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;font-size:10px;color:#71808a}.axis270-project-metrics span:last-child{grid-column:1/-1}.axis270-project-metrics b{color:#233944}.axis270-project-foot{display:flex;justify-content:space-between;gap:8px;margin-top:12px;font-size:10px;color:#71808a}.axis270-project-foot strong{color:#c83c26}.axis270-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.axis270-module-card{border:1px solid #e0e7ea;background:#fff;border-radius:16px;padding:15px;display:grid;grid-template-columns:42px 1fr auto;gap:11px;align-items:center;text-align:left;color:inherit}.axis270-module-card.admin{border-color:#efc2b9;background:#fff9f7}.axis270-module-icon{width:42px;height:42px;border-radius:12px;background:#eef3f5;display:grid;place-items:center;font-size:20px}.axis270-module-card.admin .axis270-module-icon{background:#fde9e4}.axis270-module-card b,.axis270-module-card small{display:block}.axis270-module-card small{font-size:10px;color:#71808a;margin-top:3px;line-height:1.25}.axis270-module-card>strong{color:#c83c26}.axis270-report-intro{border-left:4px solid #c83c26}.axis270-report-intro h3{margin:5px 0}.report-chapter-row.axis270-decorated{grid-template-columns:28px minmax(150px,1fr) 96px!important;align-items:start}.axis270-qty{grid-column:2/-1;display:grid;grid-template-columns:1fr 1fr auto;gap:7px;padding:8px 0 3px}.axis270-qty label span{display:block;font-size:9px;color:#70808a;font-weight:800;margin-bottom:3px}.axis270-qty input{width:100%;padding:8px;border:1px solid #d7e0e4;border-radius:8px;background:#fff}.axis270-manual{margin-top:12px;padding:13px;border-radius:12px;background:#fff5e8;border:1px solid #efdbb4}.axis270-manual>b,.axis270-manual>span{display:block}.axis270-manual>span{font-size:10px;color:#775c25;margin:4px 0 9px}.axis270-manual.hidden{display:none!important}
@media(max-width:800px){.axis270-kpis{grid-template-columns:1fr 1fr}.axis270-project-grid,.axis270-alert-grid{grid-template-columns:1fr}.axis270-module-grid{grid-template-columns:1fr 1fr}.axis270-project-card{grid-template-columns:118px 1fr}.axis270-project-card>img{width:118px}}
@media(max-width:520px){.axis270-hero{display:block}.axis270-hero-actions{margin-top:13px}.axis270-kpis{grid-template-columns:1fr 1fr}.axis270-module-grid{grid-template-columns:1fr}.axis270-project-card{grid-template-columns:1fr}.axis270-project-card>img{width:100%;height:155px;min-height:155px}.axis270-project-metrics{grid-template-columns:1fr 1fr}.report-chapter-row.axis270-decorated{grid-template-columns:28px 1fr!important}.report-chapter-row.axis270-decorated .chapter-input{grid-column:2}.axis270-qty{grid-column:1/-1;grid-template-columns:1fr 1fr}.axis270-qty .btn{grid-column:1/-1}}
/* ===== end v0.27.0 ===== */

/* ===== JLV AXIS v0.27.1 · Design polish ===== */
:root{
  --axis-surface:#ffffff;
  --axis-soft:#f7f9fa;
  --axis-navy:#0b2f47;
  --axis-red:#d73622;
  --axis-text:#172934;
  --axis-muted:#6f7f88;
  --axis-radius:18px;
}

/* Make the executive layout genuinely responsive on tablets/desktop. */
.app-view{width:100%;max-width:1180px;background:#f4f6f8;box-shadow:0 0 60px rgba(0,0,0,.12)}
.app-view .content{padding-bottom:calc(30px + env(safe-area-inset-bottom))!important}
.page{padding:22px 22px 30px}

/* Cleaner, more legible header. */
.topbar{
  min-height:62px;
  padding:calc(8px + env(safe-area-inset-top)) 18px 8px;
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(14px);
  border-bottom:1px solid #e7ecef;
  box-shadow:0 3px 18px rgba(13,38,52,.05);
}
.logo-small{width:42px;height:42px;border-radius:11px;object-fit:cover;box-shadow:0 2px 8px rgba(10,39,56,.10)}
.brand-row{gap:10px}.brand-row strong{font-size:14px;letter-spacing:.15px}.brand-row small{font-size:10px}
.user-head{gap:8px}.user-head-text strong{font-size:11px}.user-head-text small{font-size:9px}
.icon-btn{width:40px;height:40px;background:#f0f4f6;border:1px solid #e4eaed;transition:.15s ease}
.icon-btn:active,.btn:active,.axis270-project-card:active,.axis270-module-card:active{transform:scale(.985)}
.sync-chip{font-size:10px;padding:6px 9px}

/* Stronger information hierarchy. */
.axis270-dashboard,.axis270-projects{max-width:1120px}
.axis270-hero{
  position:relative;overflow:hidden;
  padding:22px 24px;
  border-radius:22px;
  background:linear-gradient(135deg,#092a40 0%,#123e56 72%,#174b60 100%);
  box-shadow:0 12px 30px rgba(8,42,66,.16);
  border:1px solid rgba(255,255,255,.08);
}
.axis270-hero:after{content:'';position:absolute;width:170px;height:170px;border:28px solid rgba(224,49,36,.10);border-radius:50%;right:-70px;top:-95px;pointer-events:none}
.axis270-hero h1{font-size:28px;line-height:1.08;margin:5px 0 7px}.axis270-hero p{font-size:12px;line-height:1.45}
.axis270-eyebrow{font-size:10px;letter-spacing:1.15px}
.axis270-hero-actions{position:relative;z-index:1}.axis270-hero .pill{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);color:#fff}

.axis270-kpis{gap:12px;margin:15px 0}
.axis270-kpis>div{position:relative;overflow:hidden;padding:16px 17px;border-radius:18px;border-color:#e5eaed;box-shadow:0 5px 16px rgba(20,37,46,.045)}
.axis270-kpis>div:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:#d73622}
.axis270-kpis span{font-size:10px;letter-spacing:.25px}.axis270-kpis b{font-size:25px;color:#17313f}

.axis270-financial{border-radius:20px;padding:18px 19px;border-color:#e3e9ec;box-shadow:0 5px 16px rgba(20,37,46,.04)}
.axis270-financial h2{font-size:22px;margin:6px 0}.axis270-financial p{font-size:11px;line-height:1.5}.axis270-finance-meter{height:8px}

.section-title{margin:22px 0 10px}.section-title h2{font-size:17px!important}.section-title .muted{font-size:11px;line-height:1.4}

/* Alerts should scan quickly. */
.axis270-alert-grid{gap:10px}.axis270-alert{position:relative;padding:13px 14px 13px 17px;border-radius:15px;background:#fffaf0}
.axis270-alert:before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:8px;background:#e2a526}
.axis270-alert.high:before{background:#d73622}.axis270-alert b{font-size:12px}.axis270-alert span{font-size:11px;line-height:1.35;margin-top:2px}

/* Project cards: tighter, more premium and less scrolling. */
.axis270-project-grid{gap:12px}
.axis270-project-card{grid-template-columns:132px 1fr;border-radius:19px;border-color:#e3e9ec;box-shadow:0 5px 17px rgba(20,37,46,.045);transition:.16s ease;min-height:168px}
.axis270-project-card>img{width:132px;min-height:168px;height:100%}
.axis270-project-body{padding:14px 15px}.axis270-project-top h3{font-size:16px;line-height:1.12;margin:4px 0}.axis270-project-top small{font-size:10px}
.axis270-status{font-size:9px;padding:5px 7px}.axis270-progress{height:7px;margin:12px 0 10px}
.axis270-project-metrics{font-size:10px;gap:6px 10px}.axis270-project-foot{font-size:10px;margin-top:10px}

/* Module cards remain the principal navigation. */
.axis270-module-grid{gap:11px}.axis270-module-card{min-height:82px;border-radius:18px;padding:14px 15px;border-color:#e3e9ec;box-shadow:0 4px 14px rgba(20,37,46,.035);transition:.16s ease}
.axis270-module-icon{width:44px;height:44px;border-radius:13px;background:#eef3f5}.axis270-module-card b{font-size:12px}.axis270-module-card small{font-size:10px;line-height:1.35}.axis270-module-card>strong{font-size:18px}

/* Forms: more touch-friendly without making the single-page report excessively long. */
.field input,.field select,.field textarea{min-height:46px;border-radius:13px;border-color:#dbe3e7;padding:11px 12px}
.field textarea{min-height:88px}.check{min-height:42px;display:flex;align-items:center;gap:7px}
.btn{min-height:44px;border-radius:13px}.card{border-radius:18px;border-color:#e3e9ec}
.report-chapter-row.axis270-decorated{border-radius:14px;padding:10px 8px}
.axis270-qty{gap:8px}.axis270-qty input{min-height:42px;border-radius:10px}
.axis270-manual{border-radius:14px}

/* Login: maintain the approved artwork, improve framing and readability. */
.welcome-logo-v025{border-radius:24px!important;overflow:hidden;box-shadow:0 16px 38px rgba(0,0,0,.24)!important}
.welcome-copy-v025 p{max-width:390px;margin-left:auto!important;margin-right:auto!important}
.login-panel-v025,.register-panel-v025{box-shadow:0 18px 48px rgba(0,0,0,.22)!important}
.prototype-note{letter-spacing:.2px}

@media(max-width:800px){
  .app-view{max-width:100%;box-shadow:none}
  .page{padding:18px 16px 28px}
  .axis270-hero{padding:19px 18px}.axis270-hero h1{font-size:25px}
  .axis270-project-card{grid-template-columns:116px 1fr;min-height:162px}.axis270-project-card>img{width:116px;min-height:162px}
}

@media(max-width:520px){
  .topbar{min-height:58px;padding-left:12px;padding-right:12px}.logo-small{width:38px;height:38px;border-radius:10px}.brand-row small{display:none}.brand-row strong{font-size:13px}
  .user-head-text{display:none}.sync-chip{display:none}.icon-btn{width:38px;height:38px}
  .page{padding:14px 12px 26px}
  .axis270-hero{padding:17px 15px;border-radius:19px;margin-bottom:12px}.axis270-hero h1{font-size:23px}.axis270-hero p{font-size:11px}.axis270-hero-actions{margin-top:11px}
  .axis270-kpis{grid-template-columns:1fr 1fr;gap:8px;margin:11px 0}.axis270-kpis>div{padding:12px 12px;border-radius:15px}.axis270-kpis b{font-size:22px}.axis270-kpis span{font-size:9px}
  .axis270-financial{padding:15px;border-radius:17px;margin-bottom:13px}.axis270-financial h2{font-size:19px}.axis270-financial p{font-size:10px}
  .section-title{margin:18px 0 8px}.section-title h2{font-size:16px!important}.section-title .muted{font-size:10px}
  .axis270-alert-grid{grid-template-columns:1fr;gap:7px}.axis270-alert{padding:11px 12px 11px 15px}.axis270-alert span{font-size:10px}
  /* Keep project cards horizontal on phones; the previous vertical card caused excessive scrolling. */
  .axis270-project-grid{grid-template-columns:1fr;gap:9px}
  .axis270-project-card{grid-template-columns:106px minmax(0,1fr);min-height:150px;border-radius:17px}
  .axis270-project-card>img{width:106px;height:100%;min-height:150px}
  .axis270-project-body{padding:12px 11px}.axis270-project-top{align-items:flex-start}.axis270-project-top h3{font-size:14px}.axis270-project-top small{font-size:9px}.axis270-status{font-size:8px;padding:4px 6px}
  .axis270-project-metrics{grid-template-columns:1fr 1fr;font-size:9px}.axis270-project-metrics span:last-child{grid-column:1/-1}.axis270-project-foot{font-size:9px;margin-top:8px}
  .axis270-module-grid{grid-template-columns:1fr;gap:8px}.axis270-module-card{min-height:74px;padding:12px 13px}.axis270-module-card small{font-size:10px}
  .report-chapter-row.axis270-decorated{grid-template-columns:26px 1fr!important}.axis270-qty{grid-template-columns:1fr 1fr;gap:6px}.axis270-qty .btn{grid-column:1/-1}
}

@media(max-width:360px){
  .axis270-project-card{grid-template-columns:94px minmax(0,1fr)}.axis270-project-card>img{width:94px}.axis270-project-metrics{grid-template-columns:1fr}.axis270-project-metrics span:last-child{grid-column:auto}
  .axis270-status{display:none}
}
/* ===== end v0.27.1 ===== */


/* ===== JLV AXIS v0.27.2 · User administration ===== */
.axis272-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.13em;color:#a51c30;margin-bottom:4px}.axis272-admin-title{align-items:flex-end}.axis272-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.axis272-user-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 20px}.axis272-user-stats>div{background:#fff;border:1px solid #e5e9ee;border-radius:16px;padding:14px 16px;box-shadow:0 6px 18px rgba(15,23,42,.05)}.axis272-user-stats span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#758092}.axis272-user-stats b{display:block;font-size:24px;margin-top:2px}.axis272-user-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.axis272-user-card{margin:0!important;display:flex;flex-direction:column;gap:10px}.axis272-user-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.axis272-user-meta>div{background:#f7f8fa;border-radius:11px;padding:9px 10px;min-width:0}.axis272-user-meta span{display:block;color:#7a8494;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.axis272-user-meta b{display:block;font-size:11px;margin-top:2px;overflow-wrap:anywhere}.axis272-card-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:auto}.axis272-card-actions .btn{min-height:42px;padding:9px 8px;font-size:11px}.axis272-modal-overlay{position:fixed;inset:0;z-index:100000;background:rgba(8,15,26,.7);display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(3px)}.axis272-modal{width:min(760px,100%);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:22px;box-shadow:0 28px 90px rgba(0,0,0,.34);overflow:hidden}.axis272-modal>header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 14px;border-bottom:1px solid #edf0f3}.axis272-modal>header h2{margin:0;font-size:22px}.axis272-close{border:0;background:#f1f3f5;width:38px;height:38px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer}.axis272-modal-body{overflow:auto;padding:18px 22px 22px}.axis272-modal>footer{display:flex;justify-content:flex-end;gap:9px;padding:14px 22px;border-top:1px solid #edf0f3;background:#fafbfc}.axis272-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.axis272-form-grid .span2{grid-column:1/-1}.axis272-form-grid small{display:block;font-size:10px;color:#7a8494;margin-top:5px}.axis272-block{margin-top:16px;padding:14px;border:1px solid #e5e9ee;border-radius:16px;background:#fbfcfd}.axis272-block-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.axis272-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.axis272-check-grid label{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid #e5e9ee;border-radius:11px;background:#fff;font-size:11px}.axis272-check-grid input{margin-top:1px}.axis272-perm-tools{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:9px}.axis272-inline-check{display:flex;align-items:flex-start;gap:8px;margin-top:14px;font-size:11px;color:#505b6b}.axis272-state{min-height:18px;margin-top:10px;font-size:11px;color:#596273}.axis272-user-summary{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:14px;background:#f7f8fa;margin-bottom:14px}.axis272-user-summary b,.axis272-user-summary span{display:block}.axis272-user-summary>div>span{font-size:11px;color:#6e7888;margin-top:2px}.axis272-lock-note{margin-top:14px;padding:12px 14px;border-radius:12px;background:#fff3cd;color:#705900;font-size:11px}.axis272-reset-pass{margin-right:auto}
@media(max-width:700px){.axis272-user-list{grid-template-columns:1fr}.axis272-admin-title{align-items:flex-start}.axis272-admin-actions{width:100%;justify-content:stretch}.axis272-admin-actions .btn{flex:1}.axis272-form-grid{grid-template-columns:1fr}.axis272-form-grid .span2{grid-column:auto}.axis272-modal-overlay{padding:8px}.axis272-modal{max-height:96vh;border-radius:18px}.axis272-modal>header{padding:16px 16px 12px}.axis272-modal-body{padding:14px 14px 18px}.axis272-modal>footer{padding:12px 14px;display:grid;grid-template-columns:1fr 1fr}.axis272-modal>footer .axis272-reset-pass{grid-column:1/-1;margin:0}.axis272-check-grid{grid-template-columns:1fr}.axis272-user-stats{gap:7px}.axis272-user-stats>div{padding:11px 10px}.axis272-user-stats b{font-size:20px}}
@media(max-width:390px){.axis272-card-actions{grid-template-columns:1fr 1fr}.axis272-card-actions .fbDelete272{grid-column:1/-1}.axis272-user-meta{grid-template-columns:1fr}.axis272-user-stats span{font-size:8px}}
/* ===== end v0.27.2 ===== */

/* ===== JLV AXIS v0.27.4 · Premium B2B visual facelift =====
   Visual-only layer. No workflow, navigation, Firebase, permissions or data logic changed. */
:root{
  --axis-bg:#F4F6F8;
  --axis-bg-subtle:#EEF1F4;
  --axis-surface:#FFFFFF;
  --axis-surface-hover:#F8FAFC;
  --axis-text:#111827;
  --axis-text-2:#4B5563;
  --axis-text-3:#6B7280;
  --axis-border:#E1E6EB;
  --axis-border-strong:#CDD5DF;
  --axis-brand:#BE123C;
  --axis-brand-hover:#9F1239;
  --axis-success:#15803D;
  --axis-success-bg:#ECFDF3;
  --axis-progress:#2563EB;
  --axis-progress-bg:#EFF6FF;
  --axis-warning:#EA580C;
  --axis-warning-bg:#FFF7ED;
  --axis-danger:#DC2626;
  --axis-danger-bg:#FEF2F2;
  --axis-radius-sm:6px;
  --axis-radius-md:8px;
  --axis-radius-lg:12px;
  --axis-radius-xl:16px;
  --axis-shadow-card:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.06);
  --axis-shadow-raised:0 4px 12px rgba(15,23,42,.08);
  --axis-fast:150ms cubic-bezier(.2,.8,.2,1);
  --axis-normal:200ms cubic-bezier(.2,.8,.2,1);
}
html,body{background:#E9EDF1!important;color:var(--axis-text)!important;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body,.app-view,button,input,select,textarea{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif!important}
.app-view{background:var(--axis-bg)!important;max-width:1180px!important;box-shadow:0 0 0 1px rgba(15,23,42,.03),0 20px 70px rgba(15,23,42,.10)!important}
.content{background:var(--axis-bg)!important}
.page{padding:24px 22px 34px!important;color:var(--axis-text)}
.page h1{font-size:24px!important;line-height:32px!important;font-weight:700!important;letter-spacing:-.025em!important;color:var(--axis-text)!important}
.page h2{font-size:18px!important;line-height:26px!important;font-weight:650!important;letter-spacing:-.015em!important;color:var(--axis-text)!important}
.page h3{font-weight:650!important;color:var(--axis-text)!important}
.muted,.hero-sub,.project-meta,.meta-line{color:var(--axis-text-3)!important}

/* Header */
.topbar{min-height:64px!important;padding:9px 18px!important;background:rgba(255,255,255,.96)!important;border-bottom:1px solid var(--axis-border)!important;box-shadow:none!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important}
.logo-small,.axis-top-logo-v025{width:42px!important;height:42px!important;border-radius:10px!important;background:#fff!important;box-shadow:inset 0 0 0 1px var(--axis-border)!important}
.brand-row{gap:11px!important}.brand-row strong{font-size:14px!important;font-weight:700!important;letter-spacing:-.015em!important;color:var(--axis-text)!important}.brand-row small{font-size:10px!important;color:var(--axis-text-3)!important}
.user-head-text strong{font-size:11px!important;color:var(--axis-text)!important}.user-head-text small{font-size:9px!important;color:var(--axis-brand)!important}
.icon-btn{width:44px!important;height:44px!important;border-radius:10px!important;background:#fff!important;border:1px solid var(--axis-border)!important;color:var(--axis-text-2)!important;transition:background var(--axis-fast),transform var(--axis-fast),border-color var(--axis-fast)!important}
.icon-btn:active{transform:scale(.97)!important;background:var(--axis-surface-hover)!important}
.sync-chip{padding:6px 9px!important;border-radius:999px!important;background:var(--axis-success-bg)!important;color:#166534!important;font-weight:700!important;border:1px solid #BBF7D0!important}.sync-chip.offline{background:var(--axis-warning-bg)!important;color:#9A3412!important;border-color:#FED7AA!important}

/* Surface system */
.card,.stat,.report-card,.project-card,.module-card,.axis270-kpis>div,.axis270-financial,.axis270-project-card,.axis270-module-card,.axis272-user-stats>div,.axis272-user-card{
  background:var(--axis-surface)!important;border:1px solid var(--axis-border)!important;box-shadow:var(--axis-shadow-card)!important
}
.card,.report-card{border-radius:var(--axis-radius-lg)!important;padding:16px!important;margin:12px 0!important}
.card.compact{padding:12px 14px!important}
.stat{border-radius:var(--axis-radius-lg)!important;padding:16px!important}.stat b{font-size:28px!important;line-height:34px!important;font-weight:700!important;color:var(--axis-text)!important;font-variant-numeric:tabular-nums}.stat span{font-size:11px!important;font-weight:600!important;color:var(--axis-text-3)!important}
.section-title{margin:24px 0 10px!important;gap:14px!important}.section-title button,.back-btn,.link-btn{color:var(--axis-brand)!important;font-weight:650!important}

/* Executive hero */
.axis270-dashboard,.axis270-projects{max-width:1120px!important}
.axis270-hero{padding:22px 24px!important;border-radius:var(--axis-radius-xl)!important;background:linear-gradient(135deg,#111827 0%,#1F2937 58%,#334155 100%)!important;box-shadow:0 10px 28px rgba(15,23,42,.16)!important}
.axis270-hero:after{display:none!important}.axis270-hero h1{font-size:28px!important;line-height:34px!important;font-weight:700!important;letter-spacing:-.03em!important}.axis270-hero p{color:#D1D5DB!important;font-size:13px!important}.axis270-eyebrow{color:var(--axis-brand)!important;font-size:10px!important;font-weight:750!important;letter-spacing:.12em!important}.axis270-hero .axis270-eyebrow{color:#FDA4AF!important}
.axis270-hero .pill{background:rgba(255,255,255,.09)!important;border:1px solid rgba(255,255,255,.14)!important;color:#fff!important}

/* KPI cards */
.axis270-kpis{gap:12px!important;margin:14px 0!important}.axis270-kpis>div{border-radius:var(--axis-radius-lg)!important;padding:16px 17px!important;box-shadow:var(--axis-shadow-card)!important;overflow:visible!important}.axis270-kpis>div:before{display:none!important}
.axis270-kpis span{font-size:10px!important;line-height:16px!important;font-weight:650!important;letter-spacing:.07em!important;color:var(--axis-text-3)!important}.axis270-kpis b{font-size:30px!important;line-height:36px!important;font-weight:700!important;letter-spacing:-.03em!important;color:var(--axis-text)!important;font-variant-numeric:tabular-nums}
.axis270-financial{border-radius:var(--axis-radius-lg)!important;padding:18px!important}.axis270-financial h2{font-size:24px!important;line-height:30px!important;font-weight:700!important;font-variant-numeric:tabular-nums!important;color:var(--axis-text)!important}.axis270-financial p{color:var(--axis-text-2)!important;line-height:1.5!important}.axis270-finance-meter{height:8px!important;background:#E5E7EB!important}.axis270-finance-meter span{background:var(--axis-progress)!important}

/* Alerts */
.axis270-alert-grid{gap:10px!important}.axis270-alert{background:var(--axis-warning-bg)!important;border:1px solid #FED7AA!important;border-radius:var(--axis-radius-lg)!important;padding:13px 14px 13px 17px!important;box-shadow:none!important}.axis270-alert.high{background:var(--axis-danger-bg)!important;border-color:#FECACA!important}.axis270-alert:before{width:3px!important;background:var(--axis-warning)!important}.axis270-alert.high:before{background:var(--axis-danger)!important}.axis270-alert b{font-size:12px!important;font-weight:700!important;color:var(--axis-text)!important}.axis270-alert span{font-size:11px!important;line-height:1.45!important;color:var(--axis-text-2)!important}

/* Project cards */
.axis270-project-grid{gap:12px!important}.axis270-project-card{border-radius:var(--axis-radius-lg)!important;box-shadow:var(--axis-shadow-card)!important;transition:transform var(--axis-fast),box-shadow var(--axis-fast),border-color var(--axis-fast)!important}.axis270-project-card:active{transform:scale(.992)!important}.axis270-project-card>img{object-fit:cover!important}.axis270-project-body{padding:15px 16px!important}.axis270-project-top h3{font-size:16px!important;line-height:22px!important;font-weight:700!important;letter-spacing:-.015em!important;color:var(--axis-text)!important}.axis270-project-top small{color:var(--axis-text-3)!important}.axis270-progress,.progress{height:8px!important;background:#E5E7EB!important;border-radius:999px!important}.axis270-progress span,.progress span{background:var(--axis-progress)!important}.progress.late span{background:var(--axis-danger)!important}.axis270-project-metrics{font-size:10px!important;color:var(--axis-text-3)!important}.axis270-project-metrics b{color:var(--axis-text)!important;font-weight:650!important;font-variant-numeric:tabular-nums}.axis270-project-foot{color:var(--axis-text-3)!important}.axis270-project-foot strong{color:var(--axis-brand)!important}.axis270-status{border-radius:6px!important;padding:5px 7px!important;font-weight:700!important;letter-spacing:.02em!important}.axis270-status.ok{background:var(--axis-success-bg)!important;color:#166534!important}.axis270-status.late{background:var(--axis-danger-bg)!important;color:#B91C1C!important}

/* Module navigation cards */
.axis270-module-grid{gap:10px!important}.axis270-module-card{min-height:84px!important;border-radius:var(--axis-radius-lg)!important;padding:15px!important;box-shadow:var(--axis-shadow-card)!important;transition:transform var(--axis-fast),background var(--axis-fast),box-shadow var(--axis-fast)!important}.axis270-module-card:active{transform:scale(.985)!important}.axis270-module-card.admin{background:#FFF7F8!important;border-color:#FBCFE8!important}.axis270-module-icon{width:44px!important;height:44px!important;border-radius:10px!important;background:#F1F5F9!important;color:#334155!important}.axis270-module-card.admin .axis270-module-icon{background:#FFF1F2!important;color:var(--axis-brand)!important}.axis270-module-card b{font-size:13px!important;font-weight:650!important;color:var(--axis-text)!important}.axis270-module-card small{font-size:10px!important;line-height:1.4!important;color:var(--axis-text-3)!important}.axis270-module-card>strong{color:var(--axis-brand)!important}

/* Buttons */
.btn{min-height:48px!important;border-radius:var(--axis-radius-md)!important;padding:0 16px!important;font-weight:650!important;font-size:13px!important;box-shadow:none!important;transition:background var(--axis-fast),border-color var(--axis-fast),transform var(--axis-fast),box-shadow var(--axis-fast)!important}
.btn:active{transform:scale(.98)!important}.primary,.btn.primary{background:var(--axis-brand)!important;color:#fff!important;border:1px solid var(--axis-brand)!important}.primary:active,.btn.primary:active{background:var(--axis-brand-hover)!important}.secondary,.btn.secondary{background:#fff!important;color:#374151!important;border:1px solid var(--axis-border-strong)!important}.danger,.btn.danger{background:var(--axis-danger)!important;color:#fff!important;border:1px solid var(--axis-danger)!important}.enable,.btn.enable{background:var(--axis-success-bg)!important;color:#166534!important;border:1px solid #86EFAC!important}

/* Inputs: field-friendly touch targets */
.field{margin:12px 0!important}.field>span,.axis270-qty label span{font-size:11px!important;line-height:16px!important;font-weight:650!important;color:var(--axis-text-2)!important;margin-bottom:6px!important}
.field input,.field select,.field textarea,.axis270-qty input{min-height:52px!important;border:1px solid var(--axis-border-strong)!important;border-radius:var(--axis-radius-md)!important;background:#fff!important;color:var(--axis-text)!important;padding:0 14px!important;font-size:16px!important;box-shadow:none!important;outline:none!important;transition:border-color var(--axis-fast),box-shadow var(--axis-fast)!important}.field textarea{min-height:104px!important;padding:12px 14px!important;line-height:1.45!important;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.axis270-qty input:focus{border-color:var(--axis-progress)!important;box-shadow:0 0 0 3px rgba(37,99,235,.14)!important}

/* Pills / status badges */
.pill{border-radius:6px!important;padding:5px 8px!important;background:var(--axis-success-bg)!important;color:#166534!important;font-size:10px!important;font-weight:700!important;border:1px solid transparent!important}.pill.warning{background:var(--axis-warning-bg)!important;color:#9A3412!important}.pill.danger{background:var(--axis-danger-bg)!important;color:#B91C1C!important}.pill.success{background:var(--axis-success-bg)!important;color:#166534!important}

/* Tables and dense lists */
table{width:100%;border-collapse:separate!important;border-spacing:0!important;background:#fff!important;border:1px solid var(--axis-border)!important;border-radius:var(--axis-radius-lg)!important;overflow:hidden!important;box-shadow:var(--axis-shadow-card)!important}th{height:48px!important;padding:0 12px!important;background:#F8FAFC!important;color:var(--axis-text-3)!important;font-size:10px!important;font-weight:700!important;text-transform:uppercase!important;letter-spacing:.06em!important;text-align:left!important;border:0!important;border-bottom:1px solid var(--axis-border)!important}td{min-height:52px!important;padding:12px!important;color:var(--axis-text-2)!important;font-size:12px!important;border:0!important;border-bottom:1px solid #EEF2F7!important}tr:last-child td{border-bottom:0!important}td.num,th.num,[data-numeric],.percent,.axis270-kpis b,.axis272-user-stats b{font-variant-numeric:tabular-nums!important}

/* Daily report / chapters */
.axis270-report-intro{border-left:3px solid var(--axis-brand)!important;background:#fff!important}.chapter-progress-card{border:1px solid var(--axis-border)!important}.chapter-card-head{margin-bottom:14px!important}.chapter-overall{background:var(--axis-progress-bg)!important;border:1px solid #BFDBFE!important;border-radius:var(--axis-radius-lg)!important}.chapter-overall b{font-variant-numeric:tabular-nums!important;color:#1D4ED8!important}.chapter-report-row,.report-chapter-row.axis270-decorated{border:1px solid var(--axis-border)!important;border-radius:var(--axis-radius-lg)!important;background:#fff!important;padding:11px!important}.chapter-num{background:#1F2937!important}.chapter-input{border:1px solid var(--axis-border-strong)!important;border-radius:var(--axis-radius-md)!important}.chapter-input input{font-variant-numeric:tabular-nums!important}.axis270-manual{background:var(--axis-warning-bg)!important;border:1px solid #FED7AA!important;border-radius:var(--axis-radius-lg)!important}
.check{min-height:48px!important;border-bottom:1px solid #EEF2F7!important;font-size:12px!important;color:var(--axis-text-2)!important}.check input[type=checkbox],.check input[type=radio]{width:18px;height:18px;accent-color:var(--axis-brand)}

/* Photos */
.photo-grid{gap:10px!important}.photo-grid img{aspect-ratio:4/3!important;border-radius:var(--axis-radius-lg)!important}.photo-grid figcaption{font-size:9px!important;padding:22px 7px 7px!important;border-radius:0 0 var(--axis-radius-lg) var(--axis-radius-lg)!important}.camera-capture,.camera-gallery{border-radius:var(--axis-radius-lg)!important}.camera-capture .btn{min-height:56px!important}

/* User administration */
.axis272-kicker{color:var(--axis-brand)!important}.axis272-user-stats{gap:10px!important}.axis272-user-stats>div{border-radius:var(--axis-radius-lg)!important;padding:15px 16px!important}.axis272-user-stats span{font-size:10px!important;color:var(--axis-text-3)!important;font-weight:650!important}.axis272-user-stats b{font-size:28px!important;font-weight:700!important;color:var(--axis-text)!important}.axis272-user-list{gap:12px!important}.axis272-user-card{border-radius:var(--axis-radius-lg)!important;padding:16px!important}.axis272-user-meta>div{background:#F8FAFC!important;border:1px solid #EEF2F7!important;border-radius:var(--axis-radius-md)!important}.axis272-user-meta span{color:var(--axis-text-3)!important}.axis272-user-meta b{color:var(--axis-text)!important;font-weight:650!important}.axis272-card-actions{gap:8px!important}.axis272-card-actions .btn{min-height:44px!important}.axis272-modal-overlay{background:rgba(15,23,42,.64)!important;backdrop-filter:blur(5px)!important}.axis272-modal{border-radius:var(--axis-radius-xl)!important;box-shadow:0 24px 60px rgba(15,23,42,.24)!important}.axis272-modal>header,.axis272-modal>footer{border-color:var(--axis-border)!important}.axis272-modal>footer{background:#F8FAFC!important}.axis272-close{border-radius:10px!important;background:#F1F5F9!important;color:#475569!important}.axis272-block{background:#F8FAFC!important;border:1px solid var(--axis-border)!important;border-radius:var(--axis-radius-lg)!important}.axis272-check-grid label{border:1px solid var(--axis-border)!important;border-radius:var(--axis-radius-md)!important;background:#fff!important;min-height:44px!important}.axis272-user-summary{background:#F8FAFC!important;border:1px solid var(--axis-border)!important}

/* Toasts and feedback */
.toast{bottom:24px!important;background:#111827!important;color:#fff!important;border-radius:10px!important;padding:12px 16px!important;box-shadow:0 10px 30px rgba(15,23,42,.22)!important;transition:opacity var(--axis-normal),transform var(--axis-normal)!important}

/* Login refinement only; structure untouched */
.login-panel-v025,.register-panel-v025{border-radius:20px!important;box-shadow:0 18px 45px rgba(0,0,0,.28)!important}.welcome-login-btn-v025,.login-btn-v025{background:var(--axis-brand)!important;border-radius:12px!important;box-shadow:0 8px 22px rgba(190,18,60,.24)!important}.welcome-register-btn-v025,.register-btn-v025{border-radius:12px!important}.login-input-v025{border-radius:10px!important}.login-v025 .login-field input,.login-v025 .register-panel-v025 .login-field input,.login-v025 .register-panel-v025 .login-field select{border-radius:10px!important}

/* Motion */
.axis270-project-card,.axis270-module-card,.card,.btn,.icon-btn{will-change:transform}.axis270-project-card,.axis270-module-card{transition:transform var(--axis-fast),box-shadow var(--axis-fast),border-color var(--axis-fast),background var(--axis-fast)!important}
@media(hover:hover) and (pointer:fine){.axis270-project-card:hover,.axis270-module-card:hover{transform:translateY(-1px)!important;box-shadow:var(--axis-shadow-raised)!important;border-color:#D4DCE4!important}.btn.secondary:hover,.icon-btn:hover{background:#F8FAFC!important}.btn.primary:hover{background:var(--axis-brand-hover)!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Responsive density */
@media(max-width:800px){.app-view{max-width:100%!important;box-shadow:none!important}.page{padding:20px 16px 30px!important}.axis270-hero{padding:20px!important}.axis270-kpis b{font-size:27px!important}}
@media(max-width:520px){
  .topbar{min-height:60px!important;padding:8px 12px!important}.logo-small,.axis-top-logo-v025{width:40px!important;height:40px!important}.icon-btn{width:44px!important;height:44px!important}.page{padding:16px 12px 28px!important}.page h1{font-size:23px!important;line-height:30px!important}.page h2{font-size:17px!important;line-height:24px!important}
  .axis270-hero{padding:18px 16px!important;border-radius:14px!important}.axis270-hero h1{font-size:24px!important;line-height:30px!important}.axis270-kpis{gap:8px!important}.axis270-kpis>div{padding:13px!important;border-radius:10px!important}.axis270-kpis b{font-size:24px!important;line-height:30px!important}.axis270-kpis span{font-size:9px!important}.axis270-financial{padding:15px!important;border-radius:10px!important}
  .axis270-project-card{border-radius:10px!important}.axis270-project-body{padding:13px!important}.axis270-module-card{border-radius:10px!important;padding:13px!important}.axis270-module-icon{border-radius:8px!important}.axis270-alert{border-radius:10px!important}
  .card,.report-card,.stat{border-radius:10px!important}.field input,.field select,.field textarea,.axis270-qty input{min-height:52px!important}.btn{min-height:48px!important}
  .axis272-user-stats>div,.axis272-user-card{border-radius:10px!important}.axis272-modal{border-radius:14px!important}
}
/* ===== end v0.27.4 facelift ===== */


/* ===== JLV AXIS v0.27.6 · dashboard contrast + catalog affordance ===== */
.axis270-hero h1{color:#FFFFFF!important;text-shadow:0 1px 2px rgba(0,0,0,.18)!important}
.axis270-hero p{color:#F1F5F9!important;opacity:1!important}
.axis270-hero .axis270-eyebrow{color:#FDA4AF!important;opacity:1!important}
.axis270-hero-actions,.axis270-hero-actions *{opacity:1!important}
.axis270-financial .axis270-eyebrow{color:#9F1239!important;opacity:1!important}
.axis270-financial h2{color:#111827!important;opacity:1!important}
.axis270-financial p{color:#374151!important;opacity:1!important}
.axis270-dashboard .section-title h2{color:#111827!important}
.axis270-dashboard .section-title .muted{color:#4B5563!important;opacity:1!important}
#addCustomMat[data-catalog-role="superuser-skyline"]{font-weight:700!important}
/* ===== end v0.27.6 ===== */

/* ===== JLV AXIS v0.27.7 · hard contrast + friendly sync status ===== */
.axis270-hero h1{color:#fff!important;opacity:1!important;-webkit-text-fill-color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.24)!important}
.axis270-hero p{color:#F1F5F9!important;opacity:1!important;-webkit-text-fill-color:#F1F5F9!important}
.axis270-hero .axis270-eyebrow{color:#FDA4AF!important;opacity:1!important;-webkit-text-fill-color:#FDA4AF!important}
.sync-chip{white-space:nowrap;cursor:pointer}
/* ===== end v0.27.7 ===== */

/* ===== JLV AXIS v0.27.8 · Executive report preview ===== */
.axis278-report-hint{margin:-4px 0 12px!important;padding:0 2px!important;font-size:11px!important}
.axis278-sheet{max-width:1500px!important;width:min(1500px,100%)!important}.axis278-executive-report{display:grid;grid-template-columns:205px minmax(0,1fr) 250px;gap:14px;background:#F4F6F8;border-radius:16px;overflow:hidden;min-height:820px;color:#111827;font-family:Inter,Arial,sans-serif}.axis278-side{background:#F8FAFC;padding:20px 14px;display:flex;flex-direction:column;border-right:1px solid #E2E8F0}.axis278-side>img{width:150px;height:78px;object-fit:contain;margin:0 auto 22px}.axis278-side-title{font-size:11px;letter-spacing:.12em;font-weight:800;color:#BE123C;padding:14px 10px;border-top:1px solid #E2E8F0}.axis278-side-meta{font-size:12px;line-height:1.6;font-weight:650;padding:0 10px;color:#334155}.axis278-side-note{margin-top:auto;padding:12px 10px;font-size:10px;line-height:1.5;color:#64748B}.axis278-main{padding:16px 0;min-width:0}.axis278-hero{height:230px;position:relative;overflow:hidden;border-radius:16px;background:#111827}.axis278-hero>img{width:100%;height:100%;object-fit:cover}.axis278-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.08))}.axis278-hero>div{position:absolute;z-index:2;left:32px;top:28px;color:#fff}.axis278-hero small{font-size:11px;letter-spacing:.18em}.axis278-hero h1{font-size:38px;line-height:.98;margin:18px 0 14px;color:#fff!important;letter-spacing:-.03em}.axis278-hero p{font-size:17px;color:#fff!important;margin:0}.axis278-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:12px 0}.axis278-kpis>div{background:#fff;border:1px solid #E2E8F0;border-radius:13px;padding:13px 12px;min-width:0}.axis278-kpis span{display:block;font-size:8px;font-weight:800;letter-spacing:.05em;color:#64748B}.axis278-kpis b{display:block;font-size:25px;margin-top:5px;font-variant-numeric:tabular-nums}.axis278-kpis small{display:block;color:#64748B;font-size:9px;margin-top:2px}.axis278-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:10px}.axis278-card{background:#fff;border:1px solid #E2E8F0;border-radius:14px;padding:14px}.axis278-card h2{font-size:16px;margin:0 0 10px}.axis278-card-head{display:flex;justify-content:space-between;align-items:center}.axis278-card-head span{font-size:10px;color:#64748B}.axis278-project-row{display:grid;grid-template-columns:72px minmax(0,1fr) 42px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid #EEF2F7}.axis278-project-row:first-of-type{border-top:0}.axis278-project-row img{width:72px;height:48px;object-fit:cover;border-radius:8px}.axis278-project-row b{display:block;font-size:11px}.axis278-project-row small{display:block;font-size:8px;color:#64748B;margin:2px 0 5px}.axis278-project-row>strong{text-align:right;font-size:12px}.axis278-progress{height:6px;background:#E5E7EB;border-radius:999px;overflow:hidden}.axis278-progress i{display:block;height:100%;background:#2563EB;border-radius:999px}.axis278-stack{display:grid;grid-template-rows:230px minmax(0,1fr);gap:10px}.axis278-progress-card{display:grid;grid-template-columns:130px 1fr;grid-template-rows:auto 1fr;column-gap:12px}.axis278-progress-card h2{grid-column:1/-1}.axis278-donut{--axis278-p:0;width:124px;height:124px;border-radius:50%;background:conic-gradient(#2563EB calc(var(--axis278-p)*1%),#E5E7EB 0);display:grid;place-items:center;position:relative}.axis278-donut:after{content:"";position:absolute;width:86px;height:86px;border-radius:50%;background:#fff}.axis278-donut>div{z-index:1;text-align:center}.axis278-donut b{display:block;font-size:24px}.axis278-donut span{font-size:9px;color:#64748B}.axis278-legend{display:flex;flex-direction:column;gap:10px;justify-content:center;font-size:9px}.axis278-legend span{display:flex;align-items:center;gap:6px}.axis278-legend i{width:9px;height:9px;border-radius:50%;background:#CBD5E1}.axis278-legend i.done{background:#2563EB}.axis278-legend b{margin-left:auto}.axis278-bars{min-height:255px}.axis278-bar-chart{height:180px;display:flex;align-items:flex-end;gap:6px;padding-top:12px}.axis278-bar-item{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:0}.axis278-bar-item b{font-size:9px;margin-bottom:3px}.axis278-bar-item i{width:70%;background:#2563EB;border-radius:5px 5px 0 0;min-height:10px}.axis278-bar-item span{font-size:6.5px;text-align:center;line-height:1.1;color:#475569;margin-top:4px;min-height:22px}.axis278-alerts{display:grid;grid-template-columns:1fr 1fr .7fr;gap:8px;margin-top:10px}.axis278-alerts>div{background:#fff;border:1px solid #E2E8F0;border-left:3px solid #E11D48;border-radius:10px;padding:9px}.axis278-alerts b{display:block;font-size:8px;color:#BE123C}.axis278-alerts span{display:block;font-size:9px;color:#475569;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.axis278-right{padding:18px 16px;background:#fff;border-left:1px solid #E2E8F0}.axis278-right-logo{width:160px;height:75px;object-fit:contain;display:block;margin:0 auto 14px}.axis278-finished{height:320px;border-radius:14px;overflow:hidden;position:relative;background:#111827}.axis278-finished>img{width:100%;height:100%;object-fit:cover}.axis278-finished>div{position:absolute;left:0;right:0;bottom:0;padding:18px 16px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.78))}.axis278-finished b{display:block;font-size:19px;line-height:1.05}.axis278-finished span{display:block;font-size:10px;margin-top:7px}.axis278-summary{display:grid;gap:8px;margin-top:10px}.axis278-summary>div{display:grid;grid-template-columns:42px 1fr;align-items:center;background:#F8FAFC;border:1px solid #EEF2F7;border-radius:10px;padding:10px}.axis278-summary b{font-size:23px}.axis278-summary span{font-size:9px;color:#475569}.axis278-sign{margin-top:18px;border-top:1px solid #E2E8F0;padding-top:12px}.axis278-sign span{display:block;font-weight:800;color:#BE123C}.axis278-sign small{color:#64748B}
@media(max-width:980px){.axis278-executive-report{grid-template-columns:1fr}.axis278-side,.axis278-right{display:none}.axis278-main{padding:8px}.axis278-kpis{grid-template-columns:repeat(2,1fr)}.axis278-kpis>div:last-child{grid-column:1/-1}.axis278-grid{grid-template-columns:1fr}.axis278-stack{grid-template-rows:auto auto}.axis278-alerts{grid-template-columns:1fr}.axis278-hero h1{font-size:30px}}
@media(max-width:540px){.axis278-hero{height:200px}.axis278-hero>div{left:18px;top:22px}.axis278-hero h1{font-size:26px}.axis278-project-row{grid-template-columns:58px minmax(0,1fr) 38px}.axis278-project-row img{width:58px;height:44px}.axis278-progress-card{grid-template-columns:115px 1fr}.axis278-donut{width:110px;height:110px}.axis278-donut:after{width:76px;height:76px}}
/* ===== end v0.27.8 ===== */

/* ===== JLV AXIS v0.27.9 · project management + navigation polish ===== */
.axis270-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.axis270-module-card{position:relative!important;display:block!important;min-height:126px!important;padding:16px 46px 16px 16px!important;border-radius:16px!important;border:1px solid #E2E8F0!important;background:linear-gradient(180deg,#FFFFFF 0%,#FBFCFD 100%)!important;box-shadow:0 3px 10px rgba(15,23,42,.045)!important;overflow:hidden!important}
.axis270-module-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#CBD5E1;opacity:.8}
.axis270-module-card.admin:before{background:#BE123C}
.axis270-module-card.admin{background:linear-gradient(180deg,#FFF9FA 0%,#FFF4F6 100%)!important;border-color:#FBCFE8!important}
.axis270-module-icon{width:46px!important;height:46px!important;border-radius:13px!important;margin-bottom:12px!important;background:#F1F5F9!important;color:#334155!important;font-size:21px!important;font-weight:800!important;display:grid!important;place-items:center!important}
.axis270-module-card.admin .axis270-module-icon{background:#FFE4E6!important;color:#BE123C!important}
.axis270-module-card>span:nth-child(2){display:block!important;padding:0!important}
.axis270-module-card b{font-size:15px!important;line-height:20px!important;font-weight:750!important;color:#0F172A!important;display:block!important;margin:0 0 4px!important}
.axis270-module-card small{font-size:11px!important;line-height:15px!important;color:#64748B!important;display:block!important;max-width:100%!important}
.axis270-module-card>strong{position:absolute!important;right:13px!important;top:13px!important;width:32px!important;height:32px!important;border-radius:10px!important;background:#FFF1F2!important;color:#BE123C!important;display:grid!important;place-items:center!important;font-size:18px!important;font-weight:800!important}
.axis270-module-card:active{transform:scale(.98)!important;background:#F8FAFC!important}
.axis279-back,.back-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;min-height:44px!important;padding:10px 14px!important;margin:0 0 16px!important;border:1px solid #DCE3EA!important;border-radius:12px!important;background:#FFFFFF!important;color:#334155!important;box-shadow:0 2px 7px rgba(15,23,42,.05)!important;font-size:13px!important;font-weight:750!important;text-decoration:none!important}
.axis279-back:active,.back-btn:active{transform:scale(.97)!important;background:#F8FAFC!important}
.axis279-add-project{display:inline-flex!important;align-items:center!important;gap:7px!important;white-space:nowrap!important}.axis279-add-project>span{font-size:20px!important;line-height:1!important}
.axis279-modal-overlay{position:fixed;inset:0;z-index:5000;background:rgba(15,23,42,.64);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:18px}
.axis279-modal{width:min(620px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 28px 70px rgba(15,23,42,.28);border:1px solid #E2E8F0}
.axis279-modal header{display:flex;justify-content:space-between;gap:18px;padding:20px 20px 16px;border-bottom:1px solid #E5E7EB}.axis279-modal header h2{margin:4px 0 4px;font-size:23px}.axis279-modal header p{margin:0;color:#64748B;font-size:12px}.axis279-kicker{font-size:10px;font-weight:850;letter-spacing:.12em;color:#BE123C}.axis279-close{width:40px;height:40px;border:0;border-radius:11px;background:#F1F5F9;color:#475569;font-size:26px;line-height:1}.axis279-modal-body{padding:18px 20px}.axis279-project-note{padding:12px 13px;border:1px solid #DBEAFE;background:#EFF6FF;color:#1E40AF;border-radius:11px;font-size:11px;line-height:1.5}.axis279-modal footer{display:flex;justify-content:flex-end;gap:9px;padding:14px 20px 18px;border-top:1px solid #E5E7EB;background:#F8FAFC}
@media(max-width:520px){.axis270-module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}.axis270-module-card{min-height:132px!important;padding:13px 38px 13px 13px!important;border-radius:14px!important}.axis270-module-icon{width:42px!important;height:42px!important;border-radius:11px!important;margin-bottom:10px!important;font-size:19px!important}.axis270-module-card b{font-size:13px!important;line-height:17px!important}.axis270-module-card small{font-size:9.5px!important;line-height:13px!important}.axis270-module-card>strong{right:9px!important;top:9px!important;width:28px!important;height:28px!important;border-radius:9px!important;font-size:15px!important}.axis279-modal-overlay{padding:8px}.axis279-modal{border-radius:15px;max-height:96vh}.axis279-modal header,.axis279-modal-body,.axis279-modal footer{padding-left:14px;padding-right:14px}.axis279-modal footer{display:grid;grid-template-columns:1fr 1fr}.axis279-modal footer .btn{width:100%}}
/* ===== end v0.27.9 ===== */
/* ===== JLV AXIS v0.28.1 modules ===== */
.axis281-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px}.axis281-kpis>div{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px;min-width:0}.axis281-kpis b{display:block;font-size:20px;color:#111827;line-height:1.15;overflow-wrap:anywhere}.axis281-kpis span{display:block;font-size:11px;color:#64748b;margin-top:6px}.axis281-kpis.financial b{font-size:15px}.axis281-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.axis281-head h3,.axis281-head p{margin:0}.axis281-grow{flex:1;min-width:0}.axis281-worker-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #eef2f7}.axis281-worker-row:last-child{border-bottom:0}.axis281-worker-row img,.axis281-worker-card>img{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#f1f5f9}.axis281-worker-row small{display:block;color:#64748b;margin-top:3px}.axis281-worker-row.present{background:#f7fff9;border-radius:12px;padding:10px}.axis281-worker-card{display:flex;gap:12px;align-items:flex-start}.axis281-inactive{opacity:.58}.axis281-details summary{cursor:pointer;font-weight:700;color:#0f172a}.axis281-details-body{padding-top:14px}.axis281-money{display:block;margin-top:8px;text-align:right}.axis281-table-wrap{overflow-x:auto}.axis281-housing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.axis281-unit h3{margin:2px 0 8px;font-size:24px}.axis281-kicker{font-size:10px;font-weight:800;letter-spacing:.09em;color:#64748b}.axis281-punch{display:flex;gap:12px}.axis281-punch>img{width:82px;height:82px;border-radius:12px;object-fit:cover}.axis281-punch.overdue{border-color:#fca5a5;box-shadow:0 0 0 1px rgba(239,68,68,.08)}.axis281-punch select{min-height:42px;border:1px solid #dbe3eb;border-radius:10px;padding:0 10px;background:#fff}.axis281-timeline{position:relative}.axis281-log{position:relative;padding-left:20px;margin-bottom:12px}.axis281-log:before{content:"";position:absolute;left:5px;top:15px;bottom:-18px;width:2px;background:#e2e8f0}.axis281-log:last-child:before{display:none}.axis281-log-dot{position:absolute;left:0;top:15px;width:12px;height:12px;border-radius:50%;background:#0b2538;border:3px solid #fff;box-shadow:0 0 0 1px #0b2538}.axis281-log-photo{width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin-bottom:10px}.axis281-doc b{display:block;margin-top:4px}.empty-state{padding:16px;color:#64748b;text-align:center}@media(min-width:760px){.axis281-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.axis281-kpis.financial{grid-template-columns:repeat(3,minmax(0,1fr))}.axis281-housing-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:420px){.axis281-worker-row{grid-template-columns:42px minmax(0,1fr)}.axis281-worker-row button{grid-column:1/-1}.axis281-worker-card{flex-wrap:wrap}.axis281-worker-card .axis281ToggleWorker{width:100%}.axis281-punch{display:block}.axis281-punch>img{width:100%;height:150px;margin-bottom:10px}}
/* ===== JLV AXIS v0.28.2 · branded dashboard + icon system ===== */
:root{--axis282-green:#063b3d;--axis282-green-2:#082f32;--axis282-green-3:#0b4b4d;--axis282-red:#ff1f35;--axis282-white:#f8fbfb}
body.axis282-home{background:#061f22!important}
body.axis282-home .app-view{background:radial-gradient(circle at 72% 0%,rgba(22,116,117,.34),transparent 38%),linear-gradient(180deg,#063a3d 0%,#042a2d 100%)!important;max-width:660px!important}
body.axis282-home .topbar{display:none!important}
body.axis282-home .content{padding-bottom:88px!important;background:transparent!important}
.axis282-dashboard{min-height:calc(100dvh - 78px);padding:18px 14px 28px;color:var(--axis282-white);background:radial-gradient(circle at 12% 2%,rgba(28,134,132,.24),transparent 34%),linear-gradient(180deg,rgba(1,37,40,.24),rgba(1,30,33,.58));position:relative;overflow:hidden}
.axis282-dashboard:before{content:"";position:absolute;inset:auto -30% -12% 42%;height:42%;background:linear-gradient(135deg,transparent 0 49%,rgba(116,211,209,.08) 49.5% 50.2%,transparent 50.7%),linear-gradient(45deg,transparent 0 48.5%,rgba(116,211,209,.05) 49% 50%,transparent 50.5%);background-size:46px 46px;pointer-events:none;opacity:.7}
.axis282-brand{position:relative;z-index:1}.axis282-brand-actions{display:flex;align-items:center;height:36px;margin-bottom:-4px}.axis282-brand-actions button{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);background:rgba(2,29,32,.36);color:#fff;border-radius:50%;padding:8px}.axis282-brand-spacer{flex:1}.axis282-logo{display:block;width:min(72%,310px);max-height:210px;object-fit:contain;margin:-4px auto 2px;border-radius:18px;filter:drop-shadow(0 12px 28px rgba(0,0,0,.18))}
.axis282-greeting{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:6px 2px 12px}.axis282-greeting h1{margin:0!important;color:#fff!important;font-size:27px!important;line-height:1.05!important;letter-spacing:-.5px}.axis282-greeting p{margin:5px 0 0;color:rgba(255,255,255,.78);font-size:12px;line-height:1.4}.axis282-role{max-width:42%;font-size:8.5px;font-weight:900;letter-spacing:.6px;text-transform:uppercase;text-align:right;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);padding:6px 8px;border-radius:999px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.axis282-project-select{display:grid;grid-template-columns:38px 1fr;gap:10px;align-items:center;padding:10px 12px;margin:0 0 11px;border:1px solid rgba(255,255,255,.38);background:rgba(4,39,42,.54);border-radius:15px;color:#fff;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.axis282-project-select>svg{width:29px;height:29px}.axis282-project-select span{min-width:0}.axis282-project-select small{display:block;font-size:8px;font-weight:900;letter-spacing:1.1px;color:rgba(255,255,255,.60);margin-bottom:1px}.axis282-project-select select{width:100%;border:0;background:transparent;color:#fff;font-size:12.5px;font-weight:800;outline:none;appearance:auto;padding:0}.axis282-project-select option{color:#0b2f32;background:#fff}
.axis282-progress-card{width:100%;display:grid;grid-template-columns:44px 1fr 24px;gap:10px;align-items:center;text-align:left;border:1px solid rgba(255,255,255,.36);background:linear-gradient(135deg,rgba(4,42,45,.80),rgba(7,66,67,.56));padding:12px 13px;border-radius:16px;color:#fff;box-shadow:0 12px 26px rgba(0,0,0,.10);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.axis282-progress-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.07)}.axis282-progress-icon svg{width:28px;height:28px}.axis282-progress-copy{min-width:0}.axis282-progress-copy small{display:block;color:rgba(255,255,255,.70);font-size:9px}.axis282-progress-copy b{display:block;font-size:22px;margin:1px 0 5px}.axis282-progress-copy i{display:block;height:7px;background:rgba(255,255,255,.18);border-radius:999px;overflow:hidden}.axis282-progress-copy em{display:block;height:100%;background:linear-gradient(90deg,#ff1f35,#ff394d);border-radius:999px}.axis282-chevron,.axis282-card-arrow{color:rgba(255,255,255,.82);display:grid;place-items:center}.axis282-chevron svg,.axis282-card-arrow svg{width:18px;height:18px}
.axis282-module-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}.axis282-module-card{min-height:82px;display:grid;grid-template-columns:42px 1fr 16px;gap:9px;align-items:center;text-align:left;padding:11px;border:1px solid rgba(255,255,255,.29);border-radius:14px;background:linear-gradient(145deg,rgba(5,54,57,.75),rgba(4,42,45,.68));color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 7px 16px rgba(0,0,0,.06);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.axis282-module-card:active{transform:scale(.98);background:rgba(8,72,74,.76)}.axis282-module-icon{width:42px;height:42px;display:grid;place-items:center;color:#fff}.axis282-module-icon svg{width:32px;height:32px}.axis282-module-copy{min-width:0}.axis282-module-copy b{display:block;color:#fff;font-size:12px;line-height:1.18;font-weight:800;margin:0 0 3px}.axis282-module-copy small{display:block;color:rgba(255,255,255,.60);font-size:8.5px;line-height:1.25}.axis282-card-arrow{opacity:.75}.axis282-card-arrow svg{width:14px;height:14px}
.axis282-sync-banner{position:relative;z-index:1;display:grid;grid-template-columns:52px 1fr auto;gap:11px;align-items:center;margin:12px 0 0;padding:12px;border-radius:16px;background:rgba(255,255,255,.94);color:#123436;box-shadow:0 10px 24px rgba(0,0,0,.11)}.axis282-sync-banner>span{width:50px;height:42px;display:grid;place-items:center;border-right:1px solid #cdd7d8;padding-right:10px;color:#0e494a}.axis282-sync-banner svg{width:36px;height:36px}.axis282-sync-banner b,.axis282-sync-banner small{display:block}.axis282-sync-banner b{font-size:12px}.axis282-sync-banner small{font-size:9.5px;color:#547174;margin-top:2px;line-height:1.3}.axis282-sync-banner>strong{min-width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:#ff1f35;color:#fff;font-size:10px}.axis282-sync-banner>strong:empty{display:none}.axis282-sync-banner.offline{background:#fff4e8}.axis282-sync-banner.offline>span{color:#8a4f00}
.axis282-admin-link{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:38px 1fr 18px;gap:10px;align-items:center;text-align:left;color:#fff;background:rgba(255,31,53,.12);border:1px solid rgba(255,94,111,.34);border-radius:15px;padding:11px;margin-top:10px}.axis282-admin-link>svg{width:29px;height:29px}.axis282-admin-link span b,.axis282-admin-link span small{display:block}.axis282-admin-link span b{font-size:11px}.axis282-admin-link span small{font-size:8.5px;color:rgba(255,255,255,.62);margin-top:2px}.axis282-dashboard-foot{position:relative;z-index:1;text-align:center;font-style:italic;font-size:11px;color:rgba(255,255,255,.66);padding:19px 8px 2px}
.axis282-svg{display:block;color:inherit}
body[data-axis-version="0.28.2"] .bottom-nav{display:grid!important;grid-template-columns:repeat(5,1fr)!important;width:min(660px,100%)!important;height:76px!important;background:rgba(3,37,40,.98)!important;border-top:1px solid rgba(255,255,255,.14)!important;box-shadow:0 -10px 30px rgba(0,0,0,.16)!important;padding:2px 2px env(safe-area-inset-bottom)!important}
body[data-axis-version="0.28.2"] .bottom-nav .nav-btn{background:transparent!important;color:rgba(255,255,255,.64)!important;display:flex!important;flex-direction:column!important;gap:3px!important;padding:6px 2px!important;border:0!important}.bottom-nav .nav-btn .axis282-svg{width:22px;height:22px}.bottom-nav .nav-btn small{font-size:8.5px!important;font-weight:750!important}.bottom-nav .nav-btn.active{color:#ff1f35!important}.bottom-nav .nav-btn.active small{color:#ff1f35!important}.bottom-nav .nav-btn.active:after{content:"";width:18px;height:3px;border-radius:999px;background:#ff1f35;position:absolute;bottom:2px}.bottom-nav .nav-btn{position:relative}
body[data-axis-version="0.28.2"] .app-view .content{padding-bottom:84px!important}
body[data-axis-version="0.28.2"]:not(.axis282-home) .bottom-nav{background:rgba(3,37,40,.98)!important}
@media(min-width:700px){.axis282-dashboard{padding:22px 22px 34px}.axis282-module-grid{gap:11px}.axis282-module-card{min-height:90px;padding:13px}.axis282-module-copy b{font-size:13px}.axis282-module-copy small{font-size:9.5px}}
@media(max-width:420px){.axis282-dashboard{padding-left:11px;padding-right:11px}.axis282-logo{width:78%;max-height:190px}.axis282-greeting h1{font-size:24px!important}.axis282-role{font-size:7.5px;max-width:44%}.axis282-module-grid{gap:7px}.axis282-module-card{grid-template-columns:38px 1fr 12px;gap:7px;min-height:78px;padding:9px}.axis282-module-icon{width:38px;height:38px}.axis282-module-icon svg{width:29px;height:29px}.axis282-module-copy b{font-size:11px}.axis282-module-copy small{font-size:7.8px}.axis282-progress-card{grid-template-columns:40px 1fr 20px;padding:10px}.axis282-sync-banner{grid-template-columns:46px 1fr auto;padding:10px;gap:8px}}
/* ===== end JLV AXIS v0.28.2 ===== */

/* JLV AXIS 0.28.3: supplemental modules restored without hiding core icon cards */
.axis283-extras{margin:20px 0 16px}.axis283-extras h2{font-weight:750;color:#fff;font-size:1.15rem;margin:0 0 11px}
.axis283-extras-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.axis283-extra{background:rgba(8,47,49,.83);color:#fff;border:1px solid rgba(255,255,255,.36);border-radius:13px;min-height:79px;display:flex;align-items:center;gap:9px;text-align:left;padding:10px;cursor:pointer}
.axis283-extra-icon{color:#ff253a;font-size:1.7rem;width:28px;flex-shrink:0;text-align:center}
.axis283-extra b{font-weight:700;display:block;font-size:.9rem}.axis283-extra small{font-size:.73rem;color:#d6e6e7}.axis283-extra>span:last-child{margin-left:auto;font-size:1.5rem}
.axis281-punch .camera-capture{min-width:200px;max-width:100%;width:100%;margin-top:10px}
.axis281-punch .form-row-actions{flex-wrap:wrap}
@media(max-width:395px){.axis283-extras-grid{grid-template-columns:1fr}}

/* v0345: keep user modal actions inside short and mobile viewports. */
.axis272-modal-overlay{box-sizing:border-box;height:100vh;height:100dvh;min-height:0;overflow:hidden;padding:8px}
.axis272-modal{box-sizing:border-box;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);min-height:0}
.axis272-modal>header,.axis272-modal>footer{flex:0 0 auto}
.axis272-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.axis272-modal>footer{box-sizing:border-box;padding-bottom:max(10px,env(safe-area-inset-bottom));flex-wrap:wrap}
@media(max-width:700px),(max-height:600px){
 .axis272-modal>header{padding:10px 14px}
 .axis272-modal>header h2{font-size:19px}
 .axis272-modal>footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;padding:8px 12px max(8px,env(safe-area-inset-bottom))}
 .axis272-modal>footer .btn{min-height:42px!important;padding:8px 10px!important;margin:0}
 .axis272-modal>footer .axis272-cancel{grid-column:1;grid-row:1}
 .axis272-modal>footer .primary{grid-column:2;grid-row:1}
 .axis272-modal>footer .axis272-reset-pass{grid-column:1/-1;grid-row:2;min-height:30px!important;padding:4px 8px!important;font-size:12px}
}

/* Personnel photo states and actions remain usable on a phone. */
.axis-worker-photo{display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 66px;max-width:90px}
.axis-worker-photo img{width:56px;height:56px;object-fit:cover;border-radius:10px}
.axis-worker-photo small{font-size:11px;text-align:center;overflow-wrap:anywhere}
.axis-worker-photo .btn{font-size:11px;padding:5px;white-space:normal}
.axis-worker-actions{display:flex;flex-direction:column;gap:6px;max-width:150px}
#axisWorkerMessage{overflow-wrap:anywhere}
@media(max-width:480px){.axis281-worker-card{flex-wrap:wrap}.axis-worker-actions{flex:1 0 100%;max-width:none;flex-direction:row}.axis-worker-actions button{flex:1;white-space:normal}.axis281-worker-row{flex-wrap:wrap}.axis281-worker-row>div:not(.axis-worker-photo){min-width:0;overflow-wrap:anywhere}}
