:root{--navy:#10263f;--navy-2:#1a3a5c;--paper:#eef1f4;--card:#fff;--tint:#e9eef4;--tint-hover:#f3f7fb;--ink:#14212e;--ink-soft:#3a4856;--ink-faint:#54626f;--line:#d5dae0;--line-strong:#7d8996;--amber:#e0962f;--amber-light:#eba94b;--amber-dark:#8a5300;--amber-bg:#fcf1e0;--amber-focus:#f2b45c;--blue:#1a5ca8;--blue-dark:#123e73;--blue-bg:#e6eff9;--green:#0b7a5f;--green-dark:#0a5f4b;--green-bg:#e2f4ee;--red:#b3261e;--red-dark:#8c1d18;--red-bg:#fcebe9;--grey:#5b6773;--disabled-bg:#e3e7ec;--disabled-ink:#56626e;--on-navy:#fff;--on-navy-soft:#d8e3ef;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--radius-sm:10px;--radius:16px;--radius-pill:999px;--shadow-sm:0 2px 6px -2px #10263f29;--shadow:0 10px 24px -14px #10263f4d;--control-height:40px;--fast:.15s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;font-family:Poppins,Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}body{background:var(--paper);margin:0}.app{min-height:100vh;color:var(--ink);flex-direction:column;display:flex}.app *,.app :before,.app :after{box-sizing:border-box}.app-header{align-items:center;gap:var(--s3) var(--s4);padding:var(--s3) var(--s6);background:var(--navy);color:var(--on-navy);box-shadow:var(--shadow);flex-wrap:wrap;display:flex}.app-header h1{letter-spacing:.01em;color:var(--on-navy);margin:0;font-size:1.25rem;font-weight:600}.target-badge{padding:var(--s1) var(--s3);border:2px solid var(--on-navy);border-radius:var(--radius-pill);letter-spacing:.08em;white-space:nowrap;color:var(--on-navy);font-size:.8rem;font-weight:700;line-height:1.3;display:inline-block}.target-local{background:#2f6db5}.target-testing{color:var(--navy);background:#e0962f}.target-live{background:#b3261e}.target-none{background:#5b6773}.app-header nav{gap:var(--s1);flex-wrap:wrap;flex:100%;order:3;min-width:0;display:flex}.app-header nav a{min-height:var(--control-height);padding:0 var(--s3);border-radius:var(--radius-pill);white-space:nowrap;color:var(--on-navy-soft);transition:background-color var(--fast), color var(--fast);align-items:center;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-flex}.app-header nav a:hover,.app-header nav a[aria-current=page]{background:var(--navy-2);color:var(--on-navy)}.app-header nav a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--amber)}.app-user{align-items:center;gap:var(--s3);color:var(--on-navy-soft);order:2;margin-left:auto;font-size:.9rem;display:flex}.app-main{width:100%;max-width:1400px;padding:var(--s6);flex:1;margin:0 auto}.app-footer{padding:var(--s3) var(--s6);border-top:1px solid var(--line);text-align:center;color:var(--ink-faint);font-size:.8rem}.app h2{margin:0 0 var(--s4);letter-spacing:-.01em;color:var(--navy);font-size:1.6rem;font-weight:600;line-height:1.25}.app h3{margin:var(--s8) 0 var(--s3);color:var(--navy);font-size:1.15rem;font-weight:600;line-height:1.3}.app p{margin:0 0 var(--s3)}.app-main a{color:var(--blue);text-underline-offset:3px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px}.app-main a:hover{color:var(--blue-dark);text-decoration-thickness:2px}.app code{background:var(--tint);color:var(--navy);border-radius:6px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.88em}.app-footer code{border:1px solid var(--line);background:var(--card)}.app small{color:var(--ink-soft);font-size:.85em}.app .hint{color:var(--ink-faint);font-size:.85rem}.app .note{padding:var(--s3) var(--s4);border-left:4px solid var(--blue);border-radius:var(--radius-sm);background:var(--blue-bg);color:var(--blue-dark)}.app .inactive{color:var(--disabled-ink);font-style:italic}.app [role=alert]:not(.app-main),.app [role=status]{padding:var(--s3) var(--s4);border-left:4px solid var(--red);border-radius:var(--radius-sm);background:var(--red-bg);color:var(--red-dark);font-weight:500}.app [role=status]{border-left-color:var(--blue);background:var(--blue-bg);color:var(--blue-dark)}.app span[role=alert]{padding:var(--s1) var(--s3);font-size:.85rem;display:inline-block}.app [role=alert] h2{color:var(--red-dark)}.app [role=alert]>:last-child,.app [role=status]>:last-child{margin-bottom:0}.app-main[role=alert]{border-top:4px solid var(--red)}.app button{min-height:var(--control-height);padding:0 var(--s5);border:2px solid var(--navy);border-radius:var(--radius-pill);font:inherit;background:var(--card);color:var(--navy);cursor:pointer;transition:background-color var(--fast), border-color var(--fast), box-shadow var(--fast);justify-content:center;align-items:center;font-size:.9rem;font-weight:600;line-height:1.2;display:inline-flex}.app button:hover{background:var(--tint)}.app button[type=submit]{border-color:var(--amber);background:var(--amber);color:var(--navy);box-shadow:var(--shadow-sm)}.app button[type=submit]:hover{border-color:var(--amber-light);background:var(--amber-light)}.app button[aria-pressed=true]{border-color:var(--navy-2);background:var(--navy-2);color:var(--on-navy)}.app-header button{border-color:var(--on-navy-soft);color:var(--on-navy);background:0 0}.app-header button:hover{background:var(--navy-2)}.app button:disabled,.app button[type=submit]:disabled{border-color:var(--line-strong);background:var(--disabled-bg);color:var(--disabled-ink);box-shadow:none;cursor:not-allowed;border-style:dashed}.app [role=group]{align-items:center;gap:var(--s2);margin:0 0 var(--s4);flex-wrap:wrap;display:flex}.app-main nav{align-items:center;gap:var(--s3);margin:var(--s4) 0;color:var(--ink-soft);flex-wrap:wrap;font-weight:500;display:flex}.app form{align-items:flex-end;gap:var(--s3) var(--s4);margin:0 0 var(--s4);flex-wrap:wrap;display:flex}.app-main section>form,.app-main>form{padding:var(--s5);border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.app form>h2,.app form>h3,.app form>p,.app form>[role=alert],.app form>[role=status]{flex:0 0 100%;margin:0}.app label{align-items:center;gap:var(--s2);min-height:var(--control-height);color:var(--ink-soft);font-size:.85rem;font-weight:600;display:inline-flex}.app label:has(input,select,textarea){align-items:stretch;gap:var(--s1);flex-direction:column;min-width:200px}.app label:has(input[type=checkbox],input[type=radio]){align-items:center;gap:var(--s2);flex-direction:row;min-width:0;font-weight:500}.app .field{gap:var(--s1);flex-direction:column;display:flex}.app input,.app select,.app textarea{width:100%;min-width:0;min-height:var(--control-height);padding:var(--s2) var(--s3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);font:inherit;background:var(--card);color:var(--ink);transition:border-color var(--fast), box-shadow var(--fast);font-size:.95rem;font-weight:400}.app form>input,.app form>select,.app section>select{width:auto}.app input:hover,.app select:hover,.app textarea:hover{border-color:var(--navy)}.app input[type=checkbox],.app input[type=radio]{width:20px;height:20px;min-height:0;accent-color:var(--navy);padding:0}.app input:disabled,.app select:disabled,.app textarea:disabled{background:var(--disabled-bg);color:var(--disabled-ink);cursor:not-allowed;border-style:dashed}.app fieldset{min-width:0;margin:0 0 var(--s4);padding:var(--s4);border:1px solid var(--line);border-radius:var(--radius-sm)}.app legend{padding:0 var(--s2);color:var(--navy);font-weight:600}.app .sign-in{align-items:stretch;gap:var(--s4);width:100%;max-width:420px;margin:var(--s8) auto;padding:var(--s8);border:1px solid var(--line);border-top:4px solid var(--amber);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);flex-flow:column}.app .sign-in>*{flex:none;margin:0}.app a:focus-visible,.app button:focus-visible,.app input:focus-visible,.app select:focus-visible,.app textarea:focus-visible,.app summary:focus-visible,.app [tabindex]:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.app-header a:focus-visible,.app-header button:focus-visible{outline-color:var(--amber-focus)}.app-main table{width:max-content;max-width:100%;margin:0 0 var(--s5);border:1px solid var(--line);border-radius:var(--radius);border-collapse:separate;border-spacing:0;background:var(--card);box-shadow:var(--shadow);font-size:.9rem;display:block;overflow-x:auto}.app caption{padding:var(--s3) var(--s4);text-align:left;color:var(--navy);font-weight:600}.app th,.app td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.app thead th{letter-spacing:.03em;white-space:nowrap;vertical-align:bottom;background:var(--tint);color:var(--navy);font-size:.8rem;font-weight:600}.app table.wide-table thead th{white-space:normal}.app tbody th{color:var(--navy);font-weight:600}.app tbody tr:last-child>th,.app tbody tr:last-child>td{border-bottom:0}.app tbody tr{transition:background-color var(--fast)}.app tbody tr:hover{background:var(--tint-hover)}.app td ul{padding-left:var(--s4);margin:0}.app td form{margin:0}.app tr.failed,.app tr.failed:hover{background:var(--red-bg)}.app tr.failed>th{color:var(--red-dark);box-shadow:inset 4px 0 0 var(--red)}.app td[data-level]{border-left:4px solid var(--line)}.app td[data-level=recent]{border-left-color:var(--green)}.app td[data-level=amber]{border-left-color:var(--amber);background:var(--amber-bg)}.app td[data-level=red]{border-left-color:var(--red);background:var(--red-bg)}.app td[data-level=recent] strong,.app td[data-level=recent][data-indicator=overall]{color:var(--green-dark)}.app td[data-level=amber] strong,.app td[data-level=amber][data-indicator=overall]{color:var(--amber-dark)}.app td[data-level=red] strong,.app td[data-level=red][data-indicator=overall]{color:var(--red-dark)}.app td[data-indicator=overall]{font-weight:600}.app-main [aria-label="Map of last recorded locations"]{margin:0 0 var(--s5);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.app-main ul{margin:0 0 var(--s4);padding-left:var(--s5)}.app-main li{margin:var(--s1) 0}.app-main ul[aria-label]{padding:0;list-style:none}.app-main ul[aria-label]>li{margin:0 0 var(--s2);padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);box-shadow:var(--shadow-sm)}.app-main ul[aria-label]>li>h3{margin-top:0}.app-main ul[aria-label]>li>form{margin:var(--s2) 0 0}.app-main ul[aria-label]>li>button{margin-left:var(--s3)}.app-main .catalog-tree ul{margin:var(--s3) 0 0;padding:0 0 0 var(--s4);border-left:3px solid var(--tint);list-style:none}.app-main .catalog-tree ul>li{padding:var(--s2) 0;margin:0}.app-main .catalog-tree ul>li+li{border-top:1px solid var(--line)}.app .row-actions{align-items:center;gap:var(--s2);margin-left:var(--s3);vertical-align:middle;flex-wrap:wrap;display:inline-flex}.app .row-actions>form{margin:var(--s2) 0 0;flex:0 0 100%}.app .row-actions:has(>form){margin:var(--s2) 0 0;display:flex}.app dl{gap:var(--s1) var(--s4);margin:0 0 var(--s4);grid-template-columns:max-content 1fr;display:grid}.app dt{color:var(--ink-soft);font-size:.85rem;font-weight:600}.app dd{margin:0}.app .session-time-measures dl{gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.app .time-measure{padding:var(--s4);border:1px solid var(--line);border-top:4px solid var(--blue);border-radius:var(--radius-sm);background:var(--card);box-shadow:var(--shadow-sm)}.app .time-measure dd{color:var(--navy);font-size:1.25rem;font-weight:600}.app .time-measure dd small{font-size:.8rem;font-weight:400;display:block}.app details{margin:0 0 var(--s3)}.app summary{min-height:var(--control-height);padding:var(--s2) 0;color:var(--blue);cursor:pointer;font-weight:500}@media (width<=640px){.app-header{padding:var(--s3) var(--s4)}.app-header nav{margin:0 calc(-1 * var(--s4));padding:var(--s2) var(--s4);flex-wrap:wrap}.app-main{padding:var(--s4)}.app h2{font-size:1.35rem}.app form{flex-flow:column;align-items:stretch}.app form>*{flex:none}.app form>input,.app form>select,.app section>select{width:100%}.app label:has(input,select,textarea){min-width:0}.app label:not(:has(input,select,textarea)){min-height:0;margin-bottom:calc(-1 * var(--s2))}.app .sign-in{margin:var(--s4) auto;padding:var(--s5)}.app .row-actions{margin:var(--s2) 0 0;display:flex}.app th,.app td{min-width:7.5em;padding:var(--s2) var(--s3)}.app dl{grid-template-columns:1fr}.app dd{margin-bottom:var(--s2)}}@media (prefers-reduced-motion:reduce){.app *,.app :before,.app :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.app-header nav,.app-user,.app button{display:none}.app-main table{width:100%;box-shadow:none;display:table}.app *{box-shadow:none!important}.app-header{color:var(--navy);background:0 0}.app-header h1,.target-badge{color:var(--navy);border-color:var(--navy)}}:root{--erp-bg:#f8fafc;--erp-card:#fff;--erp-sidebar:#fff;--erp-fg:#0f172a;--erp-muted:#64748b;--erp-border:#e2e8f0;--erp-primary:#0f172a;--erp-primary-fg:#fff;--erp-secondary:#f1f5f9;--erp-secondary-fg:#1e293b;--erp-accent:#2563eb;--erp-danger:#dc2626;--erp-danger-bg:#fef2f2;--erp-success:#16a34a;--erp-success-bg:#f0fdf4;--erp-warn:#d97706;--erp-warn-bg:#fffbeb}*{box-sizing:border-box}body{background-color:var(--erp-bg);color:var(--erp-fg);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif}.erp-shell{background:var(--erp-bg);min-height:100vh;color:var(--erp-fg);flex-direction:column;display:flex}.erp-header{background:var(--erp-card);border-bottom:1px solid var(--erp-border);justify-content:space-between;align-items:center;padding:12px 24px;display:flex}.erp-brand{align-items:center;gap:12px;display:flex}.erp-logo{background:var(--erp-primary);width:34px;height:34px;color:var(--erp-primary-fg);border-radius:8px;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.erp-brand-title{font-size:15px;font-weight:600;line-height:1.2}.erp-brand-subtitle{color:var(--erp-muted);font-size:12px}.erp-header-controls{align-items:center;gap:14px;display:flex}.erp-role-switcher{align-items:center;gap:8px;display:flex}.erp-role-label{color:var(--erp-muted);font-size:12px;font-weight:500}.erp-role-select{border:1px solid var(--erp-border);background:var(--erp-secondary);color:var(--erp-secondary-fg);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600}.erp-btn-signout{border:1px solid var(--erp-border);background:var(--erp-card);color:var(--erp-fg);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500}.erp-btn-signout:hover{background:var(--erp-secondary)}.erp-body{flex:1;min-height:calc(100vh - 59px);display:flex}.erp-sidebar{background:var(--erp-sidebar);border-right:1px solid var(--erp-border);flex-direction:column;flex-shrink:0;justify-content:space-between;width:220px;padding:14px 12px;display:flex}.erp-nav{flex-direction:column;gap:4px;display:flex}.erp-nav-btn{text-align:left;width:100%;color:var(--erp-fg);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:9px 12px;font-size:13px;font-weight:500;transition:background .15s}.erp-nav-btn:hover{background:var(--erp-secondary)}.erp-nav-btn.active{background:var(--erp-primary);color:var(--erp-primary-fg);font-weight:600}.erp-sidebar-footer{border-top:1px solid var(--erp-border);color:var(--erp-muted);padding-top:14px;padding-left:8px;font-size:12px}.erp-sidebar-role{color:var(--erp-fg);margin-bottom:2px;font-weight:600}.erp-workspace{background:var(--erp-bg);flex-direction:column;flex:1;min-width:0;display:flex}.erp-tabs-bar{background:var(--erp-card);border-bottom:1px solid var(--erp-border);align-items:center;gap:24px;padding:12px 24px 0;display:flex;overflow-x:auto}.erp-tab-btn{color:var(--erp-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:0 2px 10px;font-size:13px;font-weight:600}.erp-tab-btn:hover{color:var(--erp-fg)}.erp-tab-btn.active{border-bottom-color:var(--erp-primary);color:var(--erp-fg)}.erp-subtabs-bar{background:var(--erp-card);border-bottom:1px solid var(--erp-border);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 24px;display:flex}.erp-subtab-btn{background:var(--erp-secondary);color:var(--erp-secondary-fg);cursor:pointer;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500}.erp-subtab-btn:hover{opacity:.9}.erp-subtab-btn.active{background:var(--erp-primary);color:var(--erp-primary-fg);font-weight:600}.erp-main{flex:1;padding:24px}.erp-card{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:12px;padding:20px;box-shadow:0 1px 2px #0f172a0a}.erp-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.erp-card-title{color:var(--erp-fg);margin:0;font-size:16px;font-weight:600}.erp-table-wrap{border:1px solid var(--erp-border);border-radius:8px;overflow-x:auto}.erp-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.erp-table thead{background:var(--erp-secondary);color:var(--erp-secondary-fg);border-bottom:1px solid var(--erp-border)}.erp-table th{white-space:nowrap;padding:10px 12px;font-weight:600}.erp-table td{border-bottom:1px solid var(--erp-border);vertical-align:middle;padding:10px 12px}.erp-table tbody tr:last-child td{border-bottom:none}.erp-table tbody tr:hover{background:#f8fafc}.erp-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:720px;display:grid}.erp-form-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:840px;display:grid}.erp-col-span-2{grid-column:span 2/span 2}.erp-col-span-3{grid-column:span 3/span 3}.erp-field label{color:var(--erp-fg);margin-bottom:6px;font-size:12px;font-weight:500;display:block}.erp-input,.erp-select{border:1px solid var(--erp-border);background:var(--erp-card);width:100%;color:var(--erp-fg);border-radius:6px;padding:8px 12px;font-size:13px}.erp-input[readonly]{background:var(--erp-secondary);font-weight:600}.erp-search{border:1px solid var(--erp-border);background:var(--erp-card);border-radius:6px;width:240px;padding:6px 12px;font-size:12px}.erp-btn-primary{background:var(--erp-primary);color:var(--erp-primary-fg);cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:12px;font-weight:600}.erp-btn-primary:hover{opacity:.92}.erp-btn-secondary{border:1px solid var(--erp-border);background:var(--erp-secondary);color:var(--erp-secondary-fg);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:12px;font-weight:600}.erp-btn-sm{background:var(--erp-primary);color:var(--erp-primary-fg);cursor:pointer;border:none;border-radius:5px;padding:5px 10px;font-size:12px;font-weight:500}.erp-badge{border:1px solid var(--erp-border);background:var(--erp-secondary);color:var(--erp-secondary-fg);border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-block}.erp-badge-danger{background:var(--erp-danger-bg);color:var(--erp-danger);border-color:#dc262659}.erp-badge-success{background:var(--erp-success-bg);color:var(--erp-success);border-color:#16a34a59}.erp-badge-warn{background:var(--erp-warn-bg);color:var(--erp-warn);border-color:#d9770659}.erp-toast{background:var(--erp-primary);color:var(--erp-primary-fg);z-index:50;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:600;position:fixed;bottom:20px;right:20px;box-shadow:0 10px 25px #0f172a33}.erp-signin-page{background:var(--erp-bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.erp-signin-card{background:var(--erp-card);border:1px solid var(--erp-border);border-radius:12px;width:100%;max-width:400px;padding:28px;box-shadow:0 4px 16px #0f172a0f}.erp-signin-form{flex-direction:column;gap:14px;margin-top:20px;display:flex}.erp-alert{background:var(--erp-danger-bg);color:var(--erp-danger);border:1px solid #dc26264d;border-radius:6px;padding:10px 12px;font-size:12px}
