/* ERP lane: incumbent Naalai fonts and assets, scoped working-office surfaces. */
@view-transition { navigation: auto; }
.erp-login, .erp-app { --ink:#211d24; --ink-2:#55505a; --ink-3:#55505a; --sun:#ffd269; --erp-line:#e5e4e5; --erp-green:#22694c; --erp-green-bg:#eaf5ee; --erp-red:#a73535; --erp-red-bg:#fcecec; --erp-amber:#805800; --erp-amber-bg:#fff3d7; --erp-shadow:0 18px 40px -26px rgba(28,26,46,.35); color:var(--ink); font-size:14px; line-height:1.5; overflow-x:visible; background:#f7f7f4; }
.erp-login { background:#fff6ea; }
.erp-login *, .erp-app * { min-width:0; }
.erp-login ::selection, .erp-app ::selection { background:#ffd269; color:#211d24; }
.erp-login :focus-visible, .erp-app :focus-visible { outline:3px solid #2857a6; outline-offset:3px; }
.erp-login a, .erp-app a { text-underline-offset:4px; }
.erp-login h1, .erp-app h1 { font-size:30px; font-weight:800; line-height:1.15; letter-spacing:-.03em; }
.erp-login h2, .erp-app h2 { font-size:18px; font-weight:800; line-height:1.3; letter-spacing:-.02em; }
.erp-app h3 { font-size:16px; font-weight:800; line-height:1.4; }
.erp-login .btn, .erp-app .btn { min-height:44px; font:800 13px/1.3 var(--font-body); padding:10px 18px; letter-spacing:0; box-shadow:none; }
.erp-login .btn-primary, .erp-app .btn-primary { background:var(--ink); color:#fff; }
.erp-login .btn-primary:hover, .erp-app .btn-primary:hover { background:#39333e; }
.erp-login .btn-ghost, .erp-app .btn-ghost { background:white; border:1px solid #d8d6da; }
.erp-login .btn-ghost:hover, .erp-app .btn-ghost:hover { background:#f5f3ed; }
.erp-login button:disabled, .erp-app button:disabled { cursor:not-allowed; opacity:.55; }
.erp-muted, .erp-app small { color:var(--ink-2); }
.erp-muted { margin-top:7px; }
.erp-lockup { display:flex; align-items:center; gap:9px; text-decoration:none; width:max-content; }
.erp-lockup img { flex:none; }
.erp-lockup .wordmark { height:auto; }
.erp-lockup > span { padding:4px 7px; border-radius:7px; background:#e8effb; color:#2857a6; font-size:11px; font-weight:900; }
.erp-door { min-height:100svh; width:min(1200px, calc(100% - 72px)); margin:auto; display:grid; grid-template-columns:1fr 460px; gap:80px; align-items:center; padding:28px 0; }
.door-story { display:flex; flex-direction:column; align-items:flex-start; gap:30px; }
.door-promise h2 { font-size:42px; line-height:1.1; letter-spacing:-.035em; max-width:470px; }
.door-promise p { font-size:17px; color:var(--ink-2); margin-top:18px; }
.door-picture { margin:0; width:100%; }
.door-picture > img { width:100%; height:auto; border-radius:16px; box-shadow:var(--erp-shadow); }
.door-picture figcaption { font-size:12px; color:var(--ink-2); margin-top:10px; }
.door-foot { color:var(--ink-2); font-size:13px; }
.door-card { background:white; border-radius:28px; padding:30px; box-shadow:var(--erp-shadow); }
.door-card h1 { font-size:27px; }
.erp-preview-note { margin:18px 0; padding:12px 14px; border-radius:12px; background:#fff4d9; font-size:12px; color:#674700; }
.erp-field { display:grid; gap:7px; font-weight:800; margin-bottom:16px; font-size:13px; }
.erp-field input, .erp-field select, .erp-field textarea, .erp-import-text { width:100%; border:1px solid #d4d2d6; background:white; padding:11px 13px; border-radius:10px; font:400 14px/1.5 var(--font-body); min-height:44px; caret-color:#2857a6; }
.erp-field textarea, .erp-import-text { resize:vertical; min-height:115px; }
.erp-field input::placeholder, .erp-field textarea::placeholder { color:#65606b; opacity:1; }
.erp-field input:focus, .erp-field select:focus, .erp-field textarea:focus { border-color:#2857a6; }
.erp-form-status { font-size:12px; color:#2857a6; margin:10px 0 0; }
.erp-form-status:empty { display:none; }
.role-entrance { margin-top:22px; padding-top:18px; border-top:1px solid var(--erp-line); }
.role-entrance h2 { font:800 13px var(--font-body); margin-bottom:9px; }
.role-entry { display:flex; justify-content:space-between; align-items:center; text-align:left; width:100%; border:1px solid var(--erp-line); border-radius:12px; background:white; padding:10px 14px; margin-top:8px; min-height:58px; cursor:pointer; transition:background .18s ease-out, transform .18s ease-out; }
.role-entry strong, .role-entry small { display:block; }
.role-entry strong { font-size:13px; }
.role-entry small { font-size:11px; color:var(--ink-2); margin-top:2px; }
.role-entry:hover { background:#f2f5fc; transform:translateX(2px); }
.door-links { font-size:12px; margin-top:20px; color:#2857a6; font-weight:800; }
.door-links > div { margin-top:12px; display:flex; gap:24px; }
#code-step .erp-muted { font-size:12px; margin-bottom:12px; }
.erp-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.erp-actions .erp-field { margin:0; }
#erp-root { display:grid; grid-template-columns:232px minmax(0,1fr); min-height:100svh; }
.erp-sidebar { position:sticky; top:0; height:100svh; background:white; border-right:1px solid var(--erp-line); padding:28px 16px 20px; display:flex; flex-direction:column; }
.erp-sidebar .erp-lockup { margin:0 5px; }
.erp-school { margin:26px 0 18px; padding:14px 12px; border:1px solid var(--erp-line); border-radius:16px; }
.erp-school strong, .erp-school span, .erp-school small { display:block; }
.erp-school strong { font-size:13px; }
.erp-school span { color:var(--ink-2); font-size:12px; margin-top:3px; }
.erp-school small { font-size:11px; margin-top:4px; }
#erp-nav { display:grid; gap:4px; overflow-y:auto; }
#erp-nav a { display:flex; align-items:center; gap:11px; padding:10px 12px; min-height:44px; font-size:13px; font-weight:800; text-decoration:none; border-radius:12px; color:var(--ink-2); }
.erp-icon { width:20px; height:20px; flex:none; }
#erp-nav a:hover { background:#f5f5f2; }
#erp-nav a[aria-current="page"] { color:#2857a6; background:#eaf0fb; }
.erp-sidebar-bottom { margin-top:auto; padding-top:20px; font-size:12px; }
.erp-sidebar-bottom p { font-weight:800; padding:10px 4px; }
.erp-sidebar-bottom .btn { width:100%; }
.erp-sidebar-bottom > a { display:block; color:var(--ink-2); margin-top:12px; text-align:center; font-size:11px; }
.erp-topbar { height:64px; border-bottom:1px solid var(--erp-line); background:white; display:flex; gap:12px; justify-content:space-between; align-items:center; padding:0 30px; font-size:13px; }
#erp-breadcrumb { color:var(--ink-2); font-weight:400; margin-left:10px; }
.erp-top-label { color:var(--ink-2); font-size:11px; }
.erp-menu { display:none; }
.erp-preview-banner { padding:8px 30px; background:#fff4d9; color:#674700; font-size:12px; }
.erp-content { padding:28px 30px; max-width:1550px; margin:auto; }
.erp-heading { display:flex; gap:18px; justify-content:space-between; align-items:center; margin-bottom:24px; }
.erp-heading p { margin-top:7px; color:var(--ink-2); font-size:13px; max-width:65ch; }
.erp-card { background:white; border-radius:24px; border:1px solid var(--erp-line); overflow:hidden; }
.erp-card-head { display:flex; gap:16px; align-items:center; justify-content:space-between; padding:20px 22px; }
.erp-card-head p { font-size:12px; color:var(--ink-2); margin-top:4px; }
.erp-card-body { padding:0 22px 22px; }
.erp-columns { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:20px; align-items:start; }
.erp-stack { display:grid; gap:20px; }
.erp-two { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
.erp-summary { display:flex; flex-wrap:wrap; gap:20px 40px; align-items:center; padding:22px; margin-bottom:20px; }
.erp-summary > div { display:grid; gap:3px; }
.erp-summary strong { font-size:27px; font-family:var(--font-display); line-height:1.2; }
.erp-summary span { font-size:12px; color:var(--ink-2); }
.erp-summary .summary-overall { padding-right:30px; }
.erp-summary .summary-overall strong { font-size:32px; }
/* Today mirrors the compact supplied office screen; action targets stay 44px. */
.erp-today-layout .erp-summary { padding:18px 22px; margin-bottom:16px; }
.erp-today-layout .erp-card-head { padding:16px 22px; }
.erp-today-layout .erp-table th, .erp-today-layout .erp-table td { padding-top:9px; padding-bottom:9px; }
.erp-today-layout .erp-stack { gap:16px; }
.erp-table-scroll { overflow:auto; scrollbar-color:#c1bec5 #f5f4f1; scrollbar-width:thin; }
.erp-table-scroll:focus-visible { outline-offset:-3px; }
.erp-table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; font-variant-numeric:tabular-nums; }
.erp-table caption { text-align:left; padding:0 22px 12px; font-size:12px; color:var(--ink-2); }
.erp-table th { background:#f9f9f7; color:var(--ink-2); font-size:11px; font-weight:800; }
.erp-table th, .erp-table td { padding:13px 18px; border-bottom:1px solid var(--erp-line); white-space:nowrap; }
.erp-table tbody tr:last-child td, .erp-table tbody tr:last-child th { border-bottom:0; }
.erp-table td small { display:block; font-size:11px; margin-top:3px; }
.erp-table tbody th { background:white; color:var(--ink); font-size:13px; }
.erp-table tr.selected td { background:#f3f6fc; }
.erp-table .number { text-align:center; }
.erp-pill { display:inline-flex; align-items:center; gap:5px; border-radius:7px; padding:4px 8px; font-size:11px; font-weight:800; white-space:nowrap; background:#f1f0f3; color:var(--ink-2); }
.erp-pill.present { color:var(--erp-green); background:var(--erp-green-bg); }
.erp-pill.absent { color:var(--erp-red); background:var(--erp-red-bg); }
.erp-pill.late { color:var(--erp-amber); background:var(--erp-amber-bg); }
.erp-pill.blue { background:#eaf0fb; color:#2857a6; }
.erp-panel-note { padding:12px 22px; background:#fafaf8; border-top:1px solid var(--erp-line); font-size:12px; color:var(--ink-2); }
.erp-large-number { font:800 36px/1.2 var(--font-display); margin:0 0 8px; }
.erp-definition { display:flex; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid var(--erp-line); font-size:12px; }
.erp-definition:last-child { border:0; }
.erp-reach { accent-color:#2857a6; width:100%; height:9px; margin:16px 0 4px; }
.erp-reach-copy { display:flex; justify-content:space-between; gap:12px; font-size:12px; color:var(--ink-2); }
.erp-note-copy { margin-top:10px; font-size:13px; line-height:1.65; max-width:65ch; white-space:pre-wrap; overflow-wrap:anywhere; }
.erp-link { color:#2857a6; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.erp-clock { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:14px 18px; background:#eef2f9; border-radius:16px; margin-bottom:20px; font-size:12px; color:#294876; }
.erp-clock strong { font-size:14px; }
.erp-clock .btn { margin-left:auto; }
.erp-countdown { font-variant-numeric:tabular-nums; }
.erp-filter { max-width:260px; margin-bottom:20px; }
.erp-mark-group { display:flex; gap:5px; }
.erp-mark { width:44px; height:44px; border:1px solid #d6d4d9; border-radius:10px; background:white; cursor:pointer; font-weight:900; }
.erp-mark:hover { background:#f3f3f0; }
.erp-mark[aria-pressed="true"].present { background:var(--erp-green-bg); border-color:#79a68e; color:var(--erp-green); }
.erp-mark[aria-pressed="true"].absent { background:var(--erp-red-bg); border-color:#d5a0a0; color:var(--erp-red); }
.erp-mark[aria-pressed="true"].late { background:var(--erp-amber-bg); border-color:#bda674; color:var(--erp-amber); }
.erp-inline-form { padding:20px 22px; background:#f6f8fc; border-bottom:1px solid var(--erp-line); }
.erp-inline-form h3 { margin-bottom:14px; }
.erp-inline-form .erp-field { max-width:500px; }
.erp-check { display:flex; gap:10px; align-items:flex-start; margin:14px 0; font-size:13px; cursor:pointer; }
.erp-check input { width:18px; height:18px; margin:1px 0 0; accent-color:#2857a6; flex:none; }
.erp-fieldset { border:0; padding:0; margin:0 0 18px; }
.erp-fieldset legend { font-size:13px; font-weight:800; padding:0 0 3px; }
.erp-notice-list { margin-top:24px; }
.erp-notice-entry { padding:20px 22px; border-top:1px solid var(--erp-line); }
.erp-notice-entry:first-of-type { border-top:0; }
.erp-notice-entry h3 { margin:8px 0 4px; }
.erp-notice-entry .erp-actions { margin-top:14px; }
.erp-cost { display:block; background:#f2f5fa; padding:14px 16px; border-radius:12px; margin:14px 0; color:#294876; font-size:13px; }
.erp-cost strong { display:block; font-size:20px; }
.erp-errors { color:var(--erp-red); font-size:12px; margin-top:12px; }
.erp-errors:empty { display:none; }
.erp-import-text { margin-bottom:12px; }
.erp-empty { padding:24px; color:var(--ink-2); font-size:13px; }
.erp-register { min-width:1250px; }
.erp-register th, .erp-register td { padding:9px 5px; text-align:center; }
.erp-register th:first-child { position:sticky; left:0; z-index:1; text-align:left; min-width:120px; padding-left:18px; }
.erp-register .erp-pill { padding:3px 5px; min-width:22px; justify-content:center; }
.erp-weekend { background:#f2f2f3; color:#68646c; }
.erp-warning { margin:12px 0; padding:12px 14px; border-radius:12px; font-size:12px; background:var(--erp-amber-bg); color:var(--erp-amber); }
.erp-timetable { min-width:650px; }
.erp-app-footer { display:flex; justify-content:space-between; gap:16px; margin:auto; padding:12px 30px 24px; font-size:11px; color:var(--ink-2); max-width:1550px; }
.erp-toast { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); width:max-content; max-width:calc(100% - 32px); background:var(--ink); color:white; padding:13px 20px; border-radius:14px; z-index:30; box-shadow:var(--erp-shadow); font-size:13px; }
.erp-view-link { display:inline-flex; align-items:center; gap:8px; }
.erp-subsection { margin-top:24px; }
@media (min-width:1051px) and (min-height:768px) { .erp-door { height:100svh; min-height:0; padding:24px 0; } .door-story { gap:24px; } .door-picture { max-width:510px; } }
@media (min-width:1051px) and (max-height:800px) { .erp-door { gap:64px; } .door-story { gap:20px; } .door-promise h2 { font-size:38px; } .door-card { padding:24px 28px; } .door-links { margin-top:16px; } .role-entrance { margin-top:18px; } }
@media (max-width:1200px) { .erp-columns { grid-template-columns:minmax(0,1fr) 260px; gap:16px; } .erp-content { padding:24px; } .erp-table th, .erp-table td { padding:12px; } .erp-summary { gap:20px; } }
@media (max-width:1050px) { .erp-door { grid-template-columns:1fr 430px; gap:36px; width:calc(100% - 48px); } .door-promise h2 { font-size:34px; } .erp-columns, .erp-two { grid-template-columns:1fr; } .erp-summary .summary-overall { padding:0; } }
@media (max-width:800px) {
  #erp-root { display:block; }
  .erp-sidebar { display:none; position:static; height:auto; padding:18px; border-right:0; border-bottom:1px solid var(--erp-line); }
  .erp-sidebar.is-open { display:flex; }
  #erp-nav { grid-template-columns:1fr 1fr; overflow:visible; }
  .erp-sidebar-bottom { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:16px; padding-top:0; }
  .erp-sidebar-bottom .btn { width:auto; }
  .erp-sidebar-bottom > a { margin:0; }
  .erp-school { margin:16px 0; }
  .erp-menu { display:inline-flex; }
  .erp-topbar { padding:0 18px; justify-content:flex-start; }
  .erp-top-label, #erp-breadcrumb { display:none; }
  .erp-preview-banner { padding:9px 18px; }
  .erp-content { padding:22px 18px; }
  .erp-heading { align-items:flex-start; flex-direction:column; gap:16px; }
  .erp-heading h1 { font-size:27px; }
  .erp-summary { gap:18px 24px; padding:18px; }
  .erp-summary .summary-overall { flex-basis:100%; }
  .erp-card-head { padding:18px; align-items:flex-start; flex-wrap:wrap; gap:12px; }
  .erp-card-body { padding:0 18px 18px; }
  .erp-panel-note { padding:12px 18px; }
  .erp-clock .btn { margin-left:0; }
  .erp-table th, .erp-table td { padding:10px 12px; }
  .erp-app-footer { padding:10px 18px 24px; }
}
@media (max-width:740px) { .erp-door { grid-template-columns:1fr; width:min(460px, calc(100% - 36px)); padding:24px 0; gap:22px; } .door-story { gap:18px; } .door-promise h2 { font-size:29px; } .door-promise p { font-size:14px; margin-top:10px; } .door-picture, .door-foot { display:none; } .door-card { padding:24px 22px; } .door-card h1 { font-size:25px; } }
@media (prefers-reduced-motion:reduce) { @view-transition { navigation:none; } .erp-login *, .erp-app * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } ::view-transition-old(root), ::view-transition-new(root) { animation:none !important; } }

/* programmatic focus on the page title (for screen readers after a route change) needs no ring */
#erp-page-title:focus:not(:focus-visible), #erp-page-title:focus { outline: none; }

/* R4: quick school work in the incumbent light workspace. */
.erp-topbar { height:auto; min-height:64px; padding-block:10px; flex-wrap:wrap; }
#erp-search { display:flex; gap:8px; width:320px; max-width:100%; margin-left:auto; }
#erp-search-input, .erp-phone-form input { min-height:44px; width:100%; border:1px solid #d4d2d6; border-radius:10px; padding:9px 12px; background:white; font:inherit; caret-color:#2857a6; }
#erp-search-input::placeholder, .erp-phone-form input::placeholder { color:var(--ink-2); opacity:1; }
.erp-search-results { display:flex; flex-wrap:wrap; gap:10px; padding:16px 30px; background:white; border-bottom:1px solid var(--erp-line); }
.erp-search-results > strong { flex-basis:100%; }
.erp-action-first { margin-bottom:20px; }
.erp-action-first .erp-card-head { padding-bottom:8px; }
.erp-action-list { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:0 22px 18px; gap:14px; }
.erp-action-list a { display:block; padding:8px 0; min-height:44px; text-decoration:none; }
.erp-action-list a:hover strong { text-decoration:underline; text-underline-offset:4px; }
.erp-action-list strong { display:block; color:#2857a6; }
.erp-action-list span { display:block; color:var(--ink-2); font-size:12px; margin-top:4px; }
.erp-low-list { padding:0 22px 18px; }
.erp-low-list summary { cursor:pointer; min-height:44px; padding:10px 0; }
.erp-low-list ul { padding-left:20px; }
.erp-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; margin-top:18px; }
.erp-phone-form { display:flex; flex-wrap:wrap; gap:8px; min-width:245px; }
.erp-phone-form input { width:160px; }
.erp-phone-form .erp-errors { flex-basis:100%; margin:0; }
.erp-confirm { border:0; border-radius:24px; padding:26px; width:min(460px,calc(100% - 36px)); max-height:calc(100svh - 36px); overflow:auto; color:var(--ink); background:white; box-shadow:var(--erp-shadow); }
.erp-confirm::backdrop { background:rgba(33,29,36,.5); }
.erp-confirm p { margin:14px 0 24px; }
.erp-toast { display:flex; align-items:center; gap:14px; }
.erp-toast .btn { flex-shrink:0; color:var(--ink); }
#bundle-preview ul { padding-left:20px; overflow-wrap:anywhere; }
#bundle-preview details summary { min-height:44px; cursor:pointer; padding-block:10px; }
.erp-table td { overflow-wrap:anywhere; }
@media (max-width:1050px) { .erp-action-list { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:800px) {
  #erp-search { width:100%; flex-basis:100%; }
  .erp-search-results { padding:16px 18px; }
  .erp-form-grid { grid-template-columns:1fr; }
  .erp-action-list { padding-inline:18px; }
  .erp-low-list { padding-inline:18px; }
  .erp-toast { bottom:12px; }
}
