/* Kabayan v5 — shell Admin & Satker, responsive and session-aware. */
:root{--navy:#102c46;--ink:#18324a;--muted:#64768a;--line:#e0e7ef;--yellow:#f5cb4f;--bg:#f4f7fb;--blue:#2463a4}
html{scroll-behavior:auto}body{background:var(--bg)!important;font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);letter-spacing:normal}.wrap{width:100%!important;max-width:none!important;padding:0!important;margin:0!important}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #337bc3!important;outline-offset:3px}body [hidden]{display:none!important}.auth-pending #loginView,.auth-pending #appView,.auth-pending #profileGate{display:none!important}.auth-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px;background:#f4f7fb}.auth-screen img{width:64px;height:64px;object-fit:contain;margin-bottom:24px}.auth-screen h1{font-size:24px;margin:0}.auth-screen p{max-width:620px;color:var(--muted)}.auth-screen .btn{margin:4px}.application-shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100dvh}.app-sidebar{position:sticky;top:0;height:100dvh;background:var(--navy);color:#d9e6f2;padding:28px 18px 18px;display:flex;flex-direction:column;overflow:auto}.app-brand{display:flex;align-items:center;gap:12px;text-decoration:none;padding:0 10px 28px;color:white;font-size:24px;font-weight:750;letter-spacing:-.6px}.app-brand>span{display:grid;place-items:center;background:#fff;width:40px;height:42px;border-radius:9px}.app-brand img{width:28px;height:32px;object-fit:contain}.app-brand small{display:block;font-size:9px;letter-spacing:1.5px;color:#c3d5e8;font-weight:550;margin-top:2px}.nav-caption{font-size:11px;letter-spacing:1.6px;padding:0 14px;margin:8px 0 12px;color:#95afc7}.app-nav{display:grid;gap:3px}.app-nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;color:#c8d7e7;font-size:14px;font-weight:520;text-decoration:none;border-radius:8px;white-space:nowrap}.app-nav a:hover{background:#203f5b;color:white}.app-nav a[aria-current]{background:var(--yellow);color:#142d44;font-weight:700}.app-nav svg{flex-shrink:0}.sidebar-bottom{display:flex;align-items:center;gap:12px;border-top:1px solid #355067;margin-top:auto;padding:22px 8px 4px}.sidebar-avatar{width:34px;height:34px;flex-shrink:0;border-radius:50%;background:#395873;color:white;display:grid;place-items:center;font-weight:650}.sidebar-bottom b,.sidebar-bottom small{display:block;overflow-wrap:anywhere}.sidebar-bottom b{font-size:13px;font-weight:650;color:white}.sidebar-bottom small{font-size:12px;color:#b0c5d8}.app-main{min-width:0}.app-header{height:80px;padding:0 34px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.header-start,.header-tools,#accountTools{display:flex;align-items:center;gap:14px;min-width:0}.breadcrumb{font-size:14px;color:var(--muted)}.scope-badge{font-size:12px;font-weight:650;color:#365b7b;background:#edf3f9;padding:6px 12px;border-radius:6px;max-width:270px;overflow-wrap:anywhere}.workspace{padding:30px 34px;max-width:1560px;margin:0 auto;min-width:0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.overline{font-size:11px;font-weight:750;letter-spacing:1.5px;color:#54718d}.page-heading h1{font-size:30px;letter-spacing:-1px;line-height:1.25;margin:7px 0 8px}.page-heading p{font-size:14px;color:var(--muted);margin:0}.app-footer{display:flex;justify-content:space-between;gap:20px;padding:8px 34px 24px;color:#708398;font-size:12px}.btn{border-radius:8px!important;min-height:42px!important;padding:10px 16px!important;font-size:14px!important;font-weight:650!important;letter-spacing:normal!important;box-shadow:none!important}.btn-yellow{background:var(--yellow)!important;color:#172e44!important}.btn-outline{border-color:#d8e1eb!important;color:#35516b!important}.btn-blue{background:#1c5a97!important}.btn-red{background:#fff1f0!important;color:#a12922!important;border:1px solid #f2d2ce!important}.btn-green{background:#e6f5ee!important;color:#176344!important;border:1px solid #c3e4d5!important}.card{padding:24px!important;border:1px solid var(--line)!important;border-radius:12px!important;box-shadow:none!important;background:white!important;min-width:0}.card h2,.section-title h2{font-size:20px!important;line-height:1.35;letter-spacing:-.4px!important;margin:0}.section-title p{font-size:14px!important;color:var(--muted)!important;line-height:1.6}.section-title{margin-bottom:20px}.field{gap:7px!important}.field label,.event-search label{font-size:14px!important;font-weight:600!important;color:#405970!important}.field input,.field select,.field textarea,#appView input:not([type=checkbox]),#appView select,#appView textarea{font-size:15px!important;border-radius:8px!important;border:1px solid #cfdbe6!important;padding:11px 12px!important;min-height:44px;background:#fff}.field input[readonly]{background:#f3f6fa!important}.grid.two,.grid.three{gap:20px}.msg,.muted{font-size:14px!important;line-height:1.6}.status{font-size:11px!important;font-weight:650!important;letter-spacing:normal!important;padding:5px 9px!important;border-radius:6px!important}.pill{font-size:11px!important;letter-spacing:.5px!important;border-radius:6px!important;padding:5px 9px!important}.tablewrap{border:1px solid var(--line)!important;border-radius:9px!important;max-width:100%;overflow:auto}.table th,.table td{padding:14px!important;font-size:14px!important;line-height:1.5}.table th{background:#f4f7fb!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.65px}.table td .btn{font-size:12px!important;min-height:36px!important;padding:7px 10px!important}.table td .muted{font-size:12px!important}.phase-grid,.report-grid,.user-grid{gap:20px}.phase-card,.report-card,.user-card{border:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:20px}.phase-card p,.report-card p,.user-card p{font-size:14px!important;color:var(--muted)}.phase-card h3,.report-card h3,.user-card h3{font-size:18px}.phase-link,.linkbox{font-size:14px!important}.tab{font-size:14px!important;border-radius:7px!important}.tab.active{background:var(--navy)!important}.metric-grid{gap:12px!important}.metric{border-radius:9px;padding:16px}.metric b{font-size:28px!important}.metric span{font-size:12px!important}.metric-grid .metric{background:#f8fafc}.event-context{border:1px solid #d6e1ed;border-left:3px solid #467cad;background:#eef4fa;border-radius:8px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.event-context label{display:block;font-size:14px;font-weight:700}.event-context span{display:block;font-size:12px;color:var(--muted);margin-top:3px}.event-context select{width:50%;max-width:600px}.empty-module{text-align:center;padding:56px 24px!important}.empty-icon{display:inline-flex;padding:15px;border-radius:50%;background:#eef4fa;color:#3e6f99;margin-bottom:18px}.empty-icon svg{width:30px;height:30px}.empty-module h2{margin-bottom:12px}.empty-module p{color:var(--muted);margin:10px 0 22px}.workspace-notice{padding:12px 16px;background:#fff6d8;border:1px solid #ecdca9;color:#665020;border-radius:8px;margin-bottom:18px;font-size:14px}.event-search{display:grid;gap:6px;max-width:580px;margin:20px 0}.event-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px!important}.event-item{padding:22px!important;border:1px solid var(--line)!important;border-radius:10px!important;background:#fff!important;box-shadow:none!important;min-width:0}.event-item:hover{border-color:#80a9cf!important;background:#f8fbfe!important}.event-item.active{border-color:#3d77ab!important}.event-item b{font-size:17px!important;line-height:1.4;overflow-wrap:anywhere}.event-item small{font-size:13px!important;color:var(--muted)!important;margin-top:7px}.event-menu button{font-size:14px!important}.event-chip-row{margin-top:16px!important}.unit-filter-wrap{max-width:580px}.unit-filter-wrap label{font-size:14px!important}.unit-context{display:none!important}.management-metric span,.activity-item span{font-size:13px!important}.activity-item b{font-size:15px!important}.management-metric b{font-size:30px}.activity-item{background:#f8fafc;box-shadow:none}.overview-top{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:20px;margin-bottom:24px}.welcome-panel{border:1px solid #d9e6f1;background:#eaf2fa;border-radius:12px;padding:24px 26px;display:flex;align-items:center;justify-content:space-between;gap:18px}.welcome-panel h2{font-size:23px;letter-spacing:-.6px;line-height:1.3;margin:9px 0}.welcome-panel p{font-size:14px;line-height:1.6;color:#577087;max-width:430px;margin:0 0 15px}.welcome-panel img{width:130px;height:148px;object-fit:contain;flex-shrink:0}.text-link{display:inline-flex;align-items:center;gap:10px;color:#215d91;font-size:14px;font-weight:700;text-decoration:none}.text-link svg{width:16px;height:16px}.summary-note{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px;display:flex;justify-content:center;flex-direction:column}.summary-note h3{font-size:20px;line-height:1.4;margin:9px 0}.summary-note p{font-size:14px;color:var(--muted);margin:0}.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.dashboard-stats article{background:white;border:1px solid var(--line);border-radius:10px;padding:20px}.metric-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:#526b82}.metric-label svg{color:#6890b3;width:18px;height:18px;flex-shrink:0}.dashboard-stats strong{display:block;font-size:34px;line-height:1.25;margin:14px 0 10px;letter-spacing:-1px}.dashboard-stats small{display:block;font-size:12px;color:var(--muted);line-height:1.5}.dashboard-charts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.chart-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.chart-title h2{font-size:17px!important}.chart-title span{font-size:11px;color:var(--muted);white-space:nowrap}.dashboard-charts p{margin:8px 0 22px;font-size:12px!important}.bar-row{display:grid;grid-template-columns:minmax(65px,1fr) minmax(50px,2fr) 42px;align-items:center;gap:12px;margin:18px 0;font-size:12px}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#536a80}.bar-row strong{text-align:right;font-size:12px;font-weight:650}.bar-track{height:10px;background:#edf2f7;border-radius:3px}.bar-fill{height:100%;background:#3779b2;border-radius:3px}.recent-event{display:flex;align-items:center;gap:16px;padding:17px 0;border-top:1px solid #e8edf3}.event-date{border-radius:8px;background:#eef4fa;color:#477195;font-size:18px;font-weight:650;width:42px;height:45px;display:grid;place-items:center;flex-shrink:0}.recent-title{flex:1;min-width:0}.recent-title b{display:block;font-size:14px;font-weight:650;overflow-wrap:anywhere}.recent-title small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.recent-event .btn{font-size:12px!important}.dashboard-updated{font-size:12px;color:#76899c;margin:18px 0 0}.dashboard-message{font-size:14px;color:#587590;margin-bottom:12px}.dashboard-message:empty{display:none}.dashboard-message.error{color:#9b362b;background:#fff1ee;border:1px solid #f0d6d0;padding:14px;border-radius:9px}.chart-empty{font-size:14px;color:var(--muted);padding:22px 0}.mobile-menu{display:none!important}#accountTools .btn{font-size:12px!important;padding:8px 12px!important;min-height:36px!important}#qrPanel,#qrHistoryPanel{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:none}#qrPanel h2,#qrHistoryPanel h2{font-size:20px}#qrPanel p,#qrHistoryPanel p{font-size:14px}#qrPanel label,#qrEvent{display:none}#qrOutput{margin-top:20px}.qr-card{border-radius:10px}.password-dialog{border-radius:14px;max-width:min(550px,calc(100vw - 28px));padding:26px}.password-dialog h2{font-size:24px}.password-dialog p{font-size:14px}.profile-gate{min-height:100dvh;padding:24px}.profile-gate-card{max-width:600px;border-radius:14px;box-shadow:none}.profile-gate-card h2{font-size:28px}.profile-gate-card p{font-size:16px}
/* Login has its own compact composition and is never visible during session restoration. */
body.login-mode .wrap{width:100%!important;max-width:none!important;padding:0!important}#loginView{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:#fff;place-items:stretch;padding:0;margin:0}#loginView .login-brand-panel{background:#102c46;color:white;padding:48px 64px;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden}.login-logo{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none;font-size:20px;letter-spacing:2px;font-weight:700}.login-logo img{width:42px;height:45px;object-fit:contain;background:white;border-radius:8px;padding:8px}.login-brand-panel>div{margin-top:72px;max-width:500px}.login-brand-panel .overline{color:#edca69}#loginView .login-brand-panel h1{font-size:clamp(36px,4vw,58px)!important;margin:14px 0 22px!important;line-height:1.15;letter-spacing:-2px}#loginView .login-brand-panel p{font-size:16px!important;line-height:1.7;color:#c0d2e3;margin:0!important}.login-brand-panel .login-character{height:230px;width:230px;object-fit:contain;align-self:flex-end;margin-top:20px}.login-brand-panel small{color:#91adc5;font-size:12px;margin-top:auto;padding-top:24px}.login-form-panel{display:flex;flex-direction:column;justify-content:center;padding:56px 70px}.login-form-inner{max-width:390px;width:100%;margin:auto}.login-form-panel h2{font-size:30px;letter-spacing:-.8px;margin:14px 0 10px}#loginView .login-form-panel p{font-size:15px!important;line-height:1.7;margin:0 0 30px!important;color:var(--muted)}#loginForm{display:grid;gap:20px}#loginForm .btn{margin-top:8px;width:100%;padding:13px!important}.password-input{display:flex;border:1px solid #cfdbe6;border-radius:8px;overflow:hidden}.password-input input{border:0!important;box-shadow:none!important;border-radius:0!important;min-width:0}.password-input button{border:0;background:#fff;font-size:12px;font-weight:650;color:#547089;padding:0 14px;cursor:pointer}.login-form-panel .login-help{font-size:13px!important;margin-top:25px!important;padding-top:24px;border-top:1px solid var(--line)}#loginView .msg{margin:18px 0!important;font-size:14px!important}.login-form-panel>small{color:#8292a2;font-size:12px;text-align:center;padding-top:40px}.menu-backdrop{display:none}
@media(min-width:1600px){.workspace{padding-top:38px}.app-header{padding-left:40px;padding-right:40px}}
@media(max-width:1150px){.application-shell{grid-template-columns:212px minmax(0,1fr)}.app-sidebar{padding-left:12px;padding-right:12px}.workspace{padding:26px 24px}.app-header{padding:0 24px}.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-top{grid-template-columns:1fr}.summary-note{display:none}.scope-badge{max-width:180px}.header-tools{gap:8px}.event-list{grid-template-columns:1fr}.chart-title{align-items:flex-start;flex-direction:column}.login-form-panel{padding:40px}.login-brand-panel{padding:40px!important}}
@media(max-width:850px){.application-shell{display:block}.app-sidebar{position:fixed;z-index:110;left:0;top:0;width:250px;transform:translateX(-100%);transition:none}.menu-open .app-sidebar{transform:translateX(0)}.menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#102c4677;border:0;z-index:100}.mobile-menu{display:inline-flex!important;width:40px;padding:8px!important}.app-header{height:auto;min-height:70px;padding:12px 20px;gap:10px}.breadcrumb{display:none}.header-tools{flex-wrap:wrap;justify-content:flex-end}.scope-badge{font-size:11px;max-width:170px}#accountTools{gap:8px}.workspace{padding:24px 20px}.app-footer{padding:8px 20px 24px}.dashboard-charts{grid-template-columns:1fr}.chart-title{flex-direction:row}.event-context{align-items:stretch;flex-direction:column;gap:12px}.event-context select{width:100%;max-width:none}.grid.two,.grid.three,.phase-grid,.user-grid,.report-grid{grid-template-columns:1fr}.management-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.question-form{grid-template-columns:1fr}.question-form .wide{grid-column:auto}#loginView{grid-template-columns:1fr}.login-brand-panel{display:none!important}.login-form-panel{min-height:100dvh;padding:40px 28px}.page-heading h1{font-size:26px}.page-heading>.btn{white-space:nowrap}}
@media(max-width:520px){.workspace{padding:22px 16px}.page-heading{align-items:flex-start;flex-direction:column;gap:16px}.page-heading .btn{font-size:13px!important}.page-heading h1{font-size:27px}.welcome-panel{padding:20px}.welcome-panel h2{font-size:21px}.welcome-panel img{width:85px;height:135px}.welcome-panel p{font-size:13px}.dashboard-stats{gap:10px}.dashboard-stats article{padding:16px}.dashboard-stats strong{font-size:30px}.metric-label{font-size:12px}.metric-label svg{display:none}.dashboard-stats small{font-size:11px}.card{padding:18px!important}.recent-event{flex-wrap:wrap;gap:12px}.recent-event .recent-title{flex-basis:calc(100% - 60px)}.recent-event .status{margin-left:54px}.recent-event .btn{margin-left:auto}.recent-card .section-title{align-items:flex-start;flex-direction:column}.app-footer{flex-direction:column;gap:4px}.scope-badge{max-width:130px}.app-header{padding:12px 16px}#accountTools .btn{padding:8px!important;font-size:11px!important}.field input,.field select,.field textarea{font-size:16px!important}.bar-row{gap:9px}.profile-gate{padding:16px}.section-title{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

#appView[hidden],#appView [hidden],#loginView[hidden],#authStatus[hidden]{display:none!important}body.role-admin .app-nav .admin-only:not([hidden]){display:flex!important}
body.login-mode{overflow:auto!important}body.login-mode #loginView{position:relative!important;inset:auto!important;display:grid!important;width:100%!important;height:auto!important;min-height:100dvh!important;overflow:visible!important;z-index:auto!important}body.login-mode #loginView[hidden]{display:none!important}
