/* TMS v2 — Government ITI (Tribal), Kinwat. Navy #1F3864 · Saffron #C55A11 */
@font-face { font-family: 'Noto Sans'; font-weight: 400; font-display: swap; src: url(../vendor/fonts/noto-sans-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+2000-206F, U+20B9; }
@font-face { font-family: 'Noto Sans'; font-weight: 600; font-display: swap; src: url(../vendor/fonts/noto-sans-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+2000-206F, U+20B9; }
@font-face { font-family: 'Noto Sans'; font-weight: 700; font-display: swap; src: url(../vendor/fonts/noto-sans-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+2000-206F, U+20B9; }
@font-face { font-family: 'Noto Sans'; font-weight: 400; font-display: swap; src: url(../vendor/fonts/noto-sans-devanagari-devanagari-400-normal.woff2) format('woff2'); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: 'Noto Sans'; font-weight: 600; font-display: swap; src: url(../vendor/fonts/noto-sans-devanagari-devanagari-600-normal.woff2) format('woff2'); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF; }
@font-face { font-family: 'Noto Sans'; font-weight: 700; font-display: swap; src: url(../vendor/fonts/noto-sans-devanagari-devanagari-700-normal.woff2) format('woff2'); unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+25CC, U+A830-A839, U+A8E0-A8FF; }

:root {
  --tms-navy: #1F3864;
  --tms-navy-dark: #152847;
  --tms-saffron: #C55A11;
  --tms-saffron-soft: #fbeee5;
  --tms-paper: #f5f6f9;
  --tms-line: #dde2ea;
  --bs-body-font-family: 'Noto Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --bs-primary: var(--tms-navy);
  --bs-primary-rgb: 31, 56, 100;
  --bs-link-color: var(--tms-navy);
  --bs-link-color-rgb: 31, 56, 100;
  --bs-link-hover-color: var(--tms-saffron);
}
body { background: var(--tms-paper); font-size: .95rem; }

.btn-primary { --bs-btn-bg: var(--tms-navy); --bs-btn-border-color: var(--tms-navy); --bs-btn-hover-bg: var(--tms-navy-dark); --bs-btn-hover-border-color: var(--tms-navy-dark); --bs-btn-active-bg: var(--tms-navy-dark); }
.btn-accent { --bs-btn-color: #fff; --bs-btn-bg: var(--tms-saffron); --bs-btn-border-color: var(--tms-saffron); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #a84a0c; --bs-btn-hover-border-color: #a84a0c; --bs-btn-active-bg: #a84a0c; --bs-btn-active-color: #fff; }
.btn-outline-primary { --bs-btn-color: var(--tms-navy); --bs-btn-border-color: var(--tms-navy); --bs-btn-hover-bg: var(--tms-navy); --bs-btn-hover-border-color: var(--tms-navy); --bs-btn-active-bg: var(--tms-navy); }

/* Header */
.tms-topbar { background: var(--tms-navy); color: #fff; border-bottom: 3px solid var(--tms-saffron); }
.tms-topbar .navbar-brand { color: #fff; line-height: 1.15; font-weight: 700; }
.tms-topbar .navbar-brand small { display: block; font-weight: 400; font-size: .72rem; opacity: .85; }
.tms-topbar .nav-link { color: rgba(255,255,255,.85); }
.tms-topbar .nav-link:hover, .tms-topbar .nav-link:focus, .tms-topbar .nav-link.active { color: #fff; }
.tms-topbar .nav-link.active { box-shadow: inset 0 -3px 0 var(--tms-saffron); }
.tms-topbar .navbar-toggler { border-color: rgba(255,255,255,.5); }
.tms-topbar .navbar-toggler-icon { filter: invert(1); }
.tms-mark { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 8px; background: var(--tms-saffron); color: #fff; font-weight: 700; font-size: .9rem; letter-spacing: .02em; }

/* Page */
.page-head { display: flex; flex-wrap: wrap; gap: .75rem; align-items: flex-end; justify-content: space-between; margin: 1.25rem 0 1rem; }
.page-head h1 { font-size: 1.35rem; font-weight: 700; color: var(--tms-navy); margin: 0; }
.mr { font-weight: 400; color: #5b6475; font-size: .85em; }
h1 .mr { display: block; font-size: .7em; margin-top: .15rem; }
.card { border-color: var(--tms-line); border-radius: .6rem; }
.card-header { background: #fff; font-weight: 600; border-bottom-color: var(--tms-line); }
.table { --bs-table-bg: #fff; }
.table > thead th { background: #eef1f6; color: var(--tms-navy); font-weight: 600; font-size: .8rem; text-transform: none; white-space: nowrap; border-bottom-color: var(--tms-line); }
.table td, .table th { vertical-align: middle; }
.form-label { font-weight: 600; font-size: .85rem; margin-bottom: .25rem; }
.form-label .mr { font-weight: 400; }
.req::after { content: ' *'; color: #b42318; }
.fieldset-personal { border: 1px dashed var(--tms-saffron); border-radius: .6rem; padding: 1rem; background: var(--tms-saffron-soft); }
.fieldset-personal legend { font-size: .9rem; font-weight: 600; color: var(--tms-saffron); float: none; width: auto; padding: 0 .4rem; margin-bottom: 0; }

/* Dashboard */
.stat { background: #fff; border: 1px solid var(--tms-line); border-radius: .6rem; padding: 1rem 1.1rem; height: 100%; border-left: 4px solid var(--tms-navy); }
.stat.accent { border-left-color: var(--tms-saffron); }
.stat .num { font-size: 1.9rem; font-weight: 700; color: var(--tms-navy); line-height: 1; font-variant-numeric: tabular-nums; }
.stat .lbl { font-size: .82rem; color: #5b6475; margin-top: .35rem; }
.bar { background: #e7ebf2; border-radius: 99px; height: 8px; overflow: hidden; min-width: 80px; }
.bar > span { display: block; height: 100%; background: var(--tms-navy); border-radius: 99px; }
.num-col { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Status badges */
.badge-status { font-weight: 600; font-size: .75rem; }
.st-admitted { background: #e6eefb; color: #1F3864; }
.st-studying { background: #e3f4ea; color: #146c43; }
.st-left { background: #fdecea; color: #a12a1e; }
.st-passed { background: #efe8fb; color: #5a32a3; }
.st-cancelled { background: #eceef1; color: #4b5563; }

/* CSV preview */
.row-ok td:first-child { border-left: 4px solid #198754; }
.row-error td:first-child { border-left: 4px solid #dc3545; }
.row-duplicate td:first-child { border-left: 4px solid #fd7e14; }
pre.json { white-space: pre-wrap; word-break: break-word; font-size: .75rem; margin: 0; max-width: 32rem; }

.login-wrap { min-height: 100vh; display: grid; place-items: center; padding: 1rem; background: linear-gradient(180deg, var(--tms-navy) 0 50%, var(--tms-paper) 50%); }
.login-card { width: 100%; max-width: 420px; }
footer.tms-foot { color: #6b7280; font-size: .78rem; padding: 2rem 0 1.5rem; }

@media print {
  .tms-topbar, .no-print, footer.tms-foot, .pagination { display: none !important; }
  body { background: #fff; }
}
.w-pct-0{width:0%}
.w-pct-1{width:1%}
.w-pct-2{width:2%}
.w-pct-3{width:3%}
.w-pct-4{width:4%}
.w-pct-5{width:5%}
.w-pct-6{width:6%}
.w-pct-7{width:7%}
.w-pct-8{width:8%}
.w-pct-9{width:9%}
.w-pct-10{width:10%}
.w-pct-11{width:11%}
.w-pct-12{width:12%}
.w-pct-13{width:13%}
.w-pct-14{width:14%}
.w-pct-15{width:15%}
.w-pct-16{width:16%}
.w-pct-17{width:17%}
.w-pct-18{width:18%}
.w-pct-19{width:19%}
.w-pct-20{width:20%}
.w-pct-21{width:21%}
.w-pct-22{width:22%}
.w-pct-23{width:23%}
.w-pct-24{width:24%}
.w-pct-25{width:25%}
.w-pct-26{width:26%}
.w-pct-27{width:27%}
.w-pct-28{width:28%}
.w-pct-29{width:29%}
.w-pct-30{width:30%}
.w-pct-31{width:31%}
.w-pct-32{width:32%}
.w-pct-33{width:33%}
.w-pct-34{width:34%}
.w-pct-35{width:35%}
.w-pct-36{width:36%}
.w-pct-37{width:37%}
.w-pct-38{width:38%}
.w-pct-39{width:39%}
.w-pct-40{width:40%}
.w-pct-41{width:41%}
.w-pct-42{width:42%}
.w-pct-43{width:43%}
.w-pct-44{width:44%}
.w-pct-45{width:45%}
.w-pct-46{width:46%}
.w-pct-47{width:47%}
.w-pct-48{width:48%}
.w-pct-49{width:49%}
.w-pct-50{width:50%}
.w-pct-51{width:51%}
.w-pct-52{width:52%}
.w-pct-53{width:53%}
.w-pct-54{width:54%}
.w-pct-55{width:55%}
.w-pct-56{width:56%}
.w-pct-57{width:57%}
.w-pct-58{width:58%}
.w-pct-59{width:59%}
.w-pct-60{width:60%}
.w-pct-61{width:61%}
.w-pct-62{width:62%}
.w-pct-63{width:63%}
.w-pct-64{width:64%}
.w-pct-65{width:65%}
.w-pct-66{width:66%}
.w-pct-67{width:67%}
.w-pct-68{width:68%}
.w-pct-69{width:69%}
.w-pct-70{width:70%}
.w-pct-71{width:71%}
.w-pct-72{width:72%}
.w-pct-73{width:73%}
.w-pct-74{width:74%}
.w-pct-75{width:75%}
.w-pct-76{width:76%}
.w-pct-77{width:77%}
.w-pct-78{width:78%}
.w-pct-79{width:79%}
.w-pct-80{width:80%}
.w-pct-81{width:81%}
.w-pct-82{width:82%}
.w-pct-83{width:83%}
.w-pct-84{width:84%}
.w-pct-85{width:85%}
.w-pct-86{width:86%}
.w-pct-87{width:87%}
.w-pct-88{width:88%}
.w-pct-89{width:89%}
.w-pct-90{width:90%}
.w-pct-91{width:91%}
.w-pct-92{width:92%}
.w-pct-93{width:93%}
.w-pct-94{width:94%}
.w-pct-95{width:95%}
.w-pct-96{width:96%}
.w-pct-97{width:97%}
.w-pct-98{width:98%}
.w-pct-99{width:99%}
.w-pct-100{width:100%}
.picker-scroll { max-height: 420px; overflow-y: auto; }
.picker-scroll thead th { position: sticky; top: 0; z-index: 1; }
.inline-form .form-control, .inline-form .form-select { min-width: 7rem; }
.cert { max-width: 820px; margin: 1.5rem auto; background: #fff; border: 8px double var(--tms-navy); padding: 2.5rem 3rem; text-align: center; }
.cert h2 { color: var(--tms-navy); font-weight: 700; letter-spacing: .02em; }
.cert .grade { display: inline-block; font-size: 2rem; font-weight: 700; color: var(--tms-saffron); border: 2px solid var(--tms-saffron); border-radius: .5rem; padding: .1rem 1rem; }
.cert .sig { margin-top: 3.5rem; display: flex; justify-content: space-between; gap: 2rem; font-size: .85rem; }
.cert .sig div { border-top: 1px solid #333; padding-top: .3rem; flex: 1; }
@media print { .cert { border-width: 6px; margin: 0 auto; } }
.mark-in { width: 3.4rem; min-width: 3.4rem; margin: 0 auto; }
.timeline { list-style: none; padding-left: 0; margin: 0; }
.timeline li { position: relative; padding: .45rem 0 .45rem 1.25rem; border-left: 2px solid var(--tms-line); margin-left: .4rem; }
.timeline li::before { content: ''; position: absolute; left: -.42rem; top: .75rem; width: .7rem; height: .7rem; border-radius: 50%; background: var(--tms-saffron); }
.timeline .tl-date { font-size: .78rem; color: #6b7280; }
.hajeri-card { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; align-items: center; justify-content: space-between; background: var(--tms-navy); color: #fff; border-radius: .6rem; padding: .9rem 1.1rem; border-left: 5px solid var(--tms-saffron); }
.hajeri-card .small { opacity: .85; }
.tall-table{max-height:560px;overflow:auto}
.lo-progress{width:120px;height:.8rem;vertical-align:middle;accent-color:#1f7a4d}
.lo-status{min-width:9.5rem}
/* Monthly inspection */
.chk-row{display:grid;grid-template-columns:2rem 1fr auto minmax(10rem,16rem);gap:.5rem;align-items:center;padding:.4rem 0;border-bottom:1px solid #eef1f5}
.chk-row:last-child{border-bottom:0}
.chk-num{font-weight:600;color:#6b7280}
.chk-opts label{margin-right:.9rem;white-space:nowrap}
.chk-note-wide{grid-column:3 / span 2}
.num-in{max-width:7rem}
.tgt-box{background:#f5f8fc;border:1px solid #dde6f2;border-radius:.5rem;padding:.6rem .8rem}
.insp-head{text-align:center;margin-bottom:.8rem}
.insp-inst{font-weight:700;font-size:1.1rem}
.insp-title{font-weight:700;margin-top:.3rem;border-top:2px solid #1f3a6b;border-bottom:2px solid #1f3a6b;padding:.25rem 0}
.insp-sec-title{font-weight:700;background:#eef2f8;padding:.3rem .5rem;margin:.8rem 0 .3rem;border-left:4px solid #1f3a6b}
.insp-meta th,.insp-items .insp-n{width:1%;white-space:nowrap}
.insp-items .insp-v{width:6rem;font-weight:600}
.insp-note{margin-bottom:.5rem}
.insp-note-body{white-space:pre-wrap;border-bottom:1px dotted #999;min-height:1.5rem}
.insp-signs{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem;text-align:center}
.insp-sign-line{border-top:1px solid #333;margin-bottom:.3rem;height:2.5rem}
@media (max-width:700px){.chk-row{grid-template-columns:2rem 1fr}.chk-opts,.chk-note,.chk-note-wide{grid-column:2}}
@media print{.insp-report{font-size:11px}.insp-report .table{margin-bottom:.4rem}.insp-sec-title{break-after:avoid}.insp-items tr{break-inside:avoid}}
/* Training plan */
.plan-table td{min-width:6rem}
.plan-table td:nth-child(3),.plan-table td:nth-child(5){min-width:16rem}
.plan-no{max-width:4.5rem}
.plan-dates label{display:block;margin-bottom:.2rem}
.plan-off td{background:#f1f3f6;color:#6b7280}
.plan-month td{background:#e3eaf5;font-weight:700}
.plan-sheet th{font-size:.8rem;text-align:center;vertical-align:middle}
@media print{.plan-print{font-size:10px}.plan-sheet td,.plan-sheet th{padding:2px 4px}.plan-sheet tr{break-inside:avoid}}
/* Lesson / demonstration plans */
.lp-doc{max-width:900px}
.lp-h{font-weight:700;margin:.9rem 0 .3rem;text-decoration:underline}
.lp-p{margin:.25rem 0 .5rem}
.lp-pre{white-space:pre-wrap}
.lp-meta th{width:1%;white-space:nowrap}
.lp-pres td{min-width:12rem}
.lp-pres-print th{text-align:center}
.lp-pres-print td{vertical-align:top}
.lp-blank-row td{height:2.6rem}
.lp-line{border-bottom:1px dotted #888;height:1.5rem}
.lp-signs{margin-top:2rem}
@media print{.lp-doc{font-size:12px;max-width:none}}
.lp-pres-print{table-layout:fixed}.lp-pres-print th:nth-child(1){width:28%}.lp-pres-print th:nth-child(2){width:47%}.lp-pres-print th:nth-child(3){width:25%}
/* Logos */
.print-head{display:grid;grid-template-columns:84px 1fr 84px;gap:.5rem;align-items:center;margin-bottom:.4rem}
.print-logo img{max-width:76px;max-height:76px;object-fit:contain}
.brand-logo{height:38px;width:38px;object-fit:contain;background:#fff;border-radius:50%;padding:2px}
.logo-preview{max-height:90px;max-width:160px;object-fit:contain;border:1px solid #e3e7ee;border-radius:.4rem;padding:.3rem;background:#fff}
.login-logo{width:110px;height:110px;object-fit:contain;display:block;margin:0 auto;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
.cert-logo{width:90px;height:90px;object-fit:contain;display:block;margin:0 auto .5rem}
/* Dashboard (compact) */
.dash-head{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:flex-end;justify-content:space-between;margin:1rem 0 .75rem}
.dash-head h1{color:var(--tms-navy);font-weight:700}
.hajeri-strip{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;justify-content:space-between;background:var(--tms-navy);color:#fff;border-radius:.5rem;padding:.45rem .8rem;border-left:4px solid var(--tms-saffron);margin-bottom:.75rem}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:.5rem}
.kpi{display:flex;flex-direction:column;background:#fff;border:1px solid var(--tms-line);border-left:3px solid var(--tms-navy);border-radius:.5rem;padding:.45rem .7rem;text-decoration:none;color:inherit;transition:box-shadow .15s}
.kpi:hover{box-shadow:0 3px 10px rgba(22,41,77,.12)}
.kpi.accent{border-left-color:var(--tms-saffron)}
.kpi .num{font-size:1.45rem;font-weight:700;color:var(--tms-navy);line-height:1.1;font-variant-numeric:tabular-nums}
.kpi .lbl{font-size:.76rem;color:#5b6475}
.kpi .sub{font-size:.7rem;color:#9a6a00}
.quick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem}
.quick{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1rem;padding:.5rem .3rem;border:1px solid var(--tms-line);border-radius:.5rem;text-decoration:none;color:var(--tms-navy);font-weight:600;font-size:.85rem;background:#fbfcfe}
.quick:hover{background:#eef3fb;border-color:#c9d6ea}
.quick .q-ico{font-size:1.25rem;line-height:1.2}
.quick .mr{font-weight:400;font-size:.72rem;color:#6b7280}
.attn-dot{flex:0 0 auto;width:.6rem;height:.6rem;border-radius:50%;margin-top:.45rem}
.dash-table td,.dash-table th{white-space:nowrap}
.dash-table .seats-col{width:30%;min-width:9rem}
.seat-bar{width:100%;min-width:5rem;height:.6rem;accent-color:var(--tms-navy)}
/* ===== App shell: left sidebar + top bar ===== */
.ic{width:1em;height:1em;fill:currentColor;vertical-align:-.125em;flex:0 0 auto}
body.has-shell{background:#f3f5f9}
.shell{display:flex;min-height:100vh}
.sidebar{background:linear-gradient(180deg,#16294d 0%,#1f3864 60%,#16294d 100%);color:#dbe3f1;width:258px;flex:0 0 258px}
@media (min-width:992px){.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}}
@media (max-width:991.98px){.sidebar.offcanvas-lg{width:270px;background:#16294d;color:#dbe3f1}}
.sb-brand{display:flex;align-items:center;gap:.6rem;padding:.9rem 1rem;border-bottom:1px solid rgba(255,255,255,.1)}
.sb-brand img{background:#fff;border-radius:50%;padding:2px}
.sb-title{font-weight:800;font-size:1.35rem;color:#fff;line-height:1}
.sb-title span{color:#f59e3d}
.sb-sub{font-size:.72rem;color:#b9c6dd}
.sb-nav{padding:.6rem .55rem;flex:1}
.sb-link{display:flex;align-items:center;gap:.75rem;padding:.5rem .7rem;margin-bottom:.15rem;border-radius:.55rem;color:#e6ecf7;text-decoration:none;font-weight:600;font-size:.92rem;line-height:1.15}
.sb-link:hover{background:rgba(255,255,255,.08);color:#fff}
.sb-link.active{background:linear-gradient(90deg,#e8700f,#f08a2a);color:#fff;box-shadow:0 4px 12px rgba(232,112,15,.35)}
.sb-link.open{background:rgba(255,255,255,.06);color:#fff}
.sb-txt{display:flex;flex-direction:column;flex:1}
.sb-txt small{font-weight:400;font-size:.74rem;color:#b9c6dd}
.sb-link.active .sb-txt small{color:#fff3e6}
.sb-ic{font-size:1.25rem;opacity:.95}
.sb-chev{font-size:.75rem;opacity:.6;transition:transform .2s}
.sb-link.open .sb-chev,.sb-link[aria-expanded="true"] .sb-chev{transform:rotate(90deg)}
.sb-sub-list{padding:.1rem 0 .4rem 2.6rem;display:flex;flex-direction:column}
.sb-sublink{color:#c9d5ea;text-decoration:none;font-size:.84rem;padding:.28rem .5rem;border-radius:.4rem}
.sb-sublink:hover{color:#fff;background:rgba(255,255,255,.06)}
.sb-sublink.active{color:#fff;background:rgba(240,138,42,.25)}
.sb-foot{font-size:.7rem;color:#8ea0c0;padding:.6rem 1rem;border-top:1px solid rgba(255,255,255,.08)}
.shell-main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:1rem;background:#fff;border-bottom:1px solid var(--tms-line);padding:.45rem 1.1rem;position:sticky;top:0;z-index:1020;box-shadow:0 2px 8px rgba(22,41,77,.05)}
.topbar-burger{font-size:1.5rem;color:var(--tms-navy);padding:.15rem .4rem}
.tb-inst{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--tms-navy);min-width:0}
.tb-inst-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.tb-inst-text strong{font-size:.95rem;white-space:normal}
.tb-inst-text span{font-size:.78rem;color:#5b6475}
.tb-dvet{align-items:center;gap:.6rem;border-left:1px solid var(--tms-line);padding-left:1rem;color:var(--tms-navy);line-height:1.2}
.tb-dvet span{display:flex;flex-direction:column}
.tb-motto{color:#c55a11;font-size:1rem}
.tb-user{display:flex;align-items:center;gap:.55rem;border:0;text-align:left}
.tb-avatar{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:#e8edf6;color:var(--tms-navy);font-size:1.2rem}
.tb-user-text{flex-direction:column;line-height:1.15}
.tb-user-text strong{font-size:.9rem;color:var(--tms-navy)}
.tb-user-text span{font-size:.75rem;color:#5b6475}
.shell-content{padding:0 1.1rem 1rem;flex:1}
@media (min-width:1400px){.shell-content{padding:0 1.6rem 1.2rem}}
.shell-foot{margin:0 1.1rem 1rem}
@media (max-width:575.98px){.tb-inst-text strong{font-size:.8rem}.tb-inst img{width:38px;height:38px}}
@media print{.sidebar,.topbar,.shell-foot{display:none!important}.shell{display:block}.shell-content{padding:0}body.has-shell{background:#fff}}
/* ===== Dashboard v2 ===== */
.welcome{position:relative;overflow:hidden;border-radius:.9rem;min-height:190px;height:100%;background:linear-gradient(120deg,#16294d 0%,#24477f 55%,#2f5d9c 100%);color:#fff;padding:1.4rem 1.6rem;display:flex;align-items:flex-end}
.welcome.has-photo{background:#16294d}
.welcome-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.welcome.has-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,30,58,.92) 0%,rgba(15,30,58,.55) 55%,rgba(15,30,58,.15) 100%)}
.welcome-mark{position:absolute;right:-26px;top:50%;transform:translateY(-50%);opacity:.18;width:200px;height:200px}
.welcome.has-photo .welcome-mark{display:none}
.welcome-text{position:relative;z-index:1;max-width:760px}
.welcome-kicker{font-weight:800;font-size:1.55rem;letter-spacing:.2px}
.welcome h1{font-size:1.12rem;font-weight:700;margin:.2rem 0 .1rem;line-height:1.35}
.welcome-sub{font-size:.85rem;opacity:.85}
.welcome-quote{margin-top:.6rem;font-weight:700;color:#ffd29a;font-size:1.05rem}
.welcome-quote span{display:block;font-weight:400;color:#e8eef9;font-size:.82rem}
.welcome-year{position:absolute;top:.8rem;right:.9rem;z-index:2;display:flex;gap:.35rem}
.welcome-year .form-select{width:auto;background-color:rgba(255,255,255,.92)}
.today-card .card-body{display:flex;flex-direction:column}
.today-ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:.6rem;background:#e8efff;color:#2f6fdf;font-size:1.3rem}
.action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;margin-top:auto}
.action{display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center;text-decoration:none;font-size:.78rem;font-weight:600;color:var(--tms-navy);padding:.55rem .2rem;border-radius:.6rem;background:#f7f9fc;border:1px solid var(--tms-line)}
.action span{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:.7rem;color:#fff;font-size:1.3rem}
.action:hover{background:#eef3fb}
.a-blue span{background:#2f6fdf}.a-green span{background:#2ea56b}.a-orange span{background:#f08a2a}.a-purple span{background:#7b5ce0}
.kpi6{display:grid;grid-template-columns:repeat(6,1fr);gap:.75rem}
@media (max-width:1399.98px){.kpi6{grid-template-columns:repeat(3,1fr)}}
@media (max-width:575.98px){.kpi6{grid-template-columns:repeat(2,1fr)}.action-grid{grid-template-columns:repeat(2,1fr)}}
.kpi2{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:.3rem .7rem;background:#fff;border:1px solid var(--tms-line);border-radius:.8rem;padding:.8rem .9rem;text-decoration:none;color:inherit;transition:box-shadow .15s,transform .15s}
.kpi2:hover{box-shadow:0 6px 16px rgba(22,41,77,.1);transform:translateY(-1px)}
.k-ic{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;font-size:1.35rem}
.k-blue{background:#e6efff;color:#2f6fdf}.k-green{background:#e3f6ec;color:#2ea56b}.k-orange{background:#fff0e1;color:#f08a2a}.k-purple{background:#efeafe;color:#7b5ce0}.k-red{background:#fdebee;color:#e9566a}.k-teal{background:#e2f6f4;color:#22a8a0}
.k-body{display:flex;flex-direction:column;min-width:0}
.k-num{font-size:1.6rem;font-weight:800;line-height:1.05;color:var(--tms-navy);font-variant-numeric:tabular-nums}
.k-lbl{font-size:.8rem;color:#3f4a5c;line-height:1.2}
.k-lbl small{display:block;color:#7a8597;font-size:.72rem}
.k-foot{grid-column:1 / -1;display:flex;flex-direction:column;gap:.15rem;font-size:.72rem;color:#7a8597}
.k-bar{width:100%;height:.45rem}
.kb-blue{accent-color:#2f6fdf}.kb-green{accent-color:#2ea56b}.kb-orange{accent-color:#f08a2a}.kb-purple{accent-color:#7b5ce0}.kb-red{accent-color:#e9566a}.kb-teal{accent-color:#22a8a0}
.trade-chart{width:100%;height:auto;max-height:260px}
.tc-grid{stroke:#e6eaf0;stroke-width:1}
.tc-axis{font-size:11px;fill:#8a94a6}
.tc-val{font-size:12px;font-weight:700;fill:#1f2a3c}
.tc-lbl{font-size:12px;font-weight:700;fill:#1f3864}
.tc-sub{font-size:9.5px;fill:#6b7280}
.tc-seat{fill:none;stroke:#b9c6dd;stroke-dasharray:3 2}
.act-list a,.ev-list a,.rep-list a{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:#1f2a3c}
.act-list .list-group-item,.ev-list .list-group-item,.rep-list .list-group-item{padding:.5rem .9rem}
.act-dot{flex:0 0 auto;width:.65rem;height:.65rem;border-radius:50%}
.act-body{display:flex;flex-direction:column;flex:1;min-width:0;font-size:.88rem;line-height:1.25}
.act-body small{color:#7a8597;font-size:.75rem}
.act-chev{color:#9aa4b5;font-size:.8rem}
.ev-date{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:44px;border-radius:.5rem;font-size:.68rem;line-height:1.05;background:#eef3fb;color:#2f6fdf}
.ev-date strong{font-size:1.05rem}
.ev-grey{background:#f0f2f5;color:#5b6475}.ev-green{background:#e3f6ec;color:#23875a}.ev-orange{background:#fff0e1;color:#c55a11}.ev-blue{background:#e6efff;color:#2f6fdf}
.rep-ic{font-size:1.15rem;flex:0 0 auto}
.rc-blue{color:#2f6fdf}.rc-orange{color:#f08a2a}.rc-red{color:#e9566a}.rc-green{color:#2ea56b}.rc-purple{color:#7b5ce0}.rc-teal{color:#22a8a0}
.att-pill{display:inline-block;min-width:3.2rem;text-align:center;border-radius:.35rem;padding:.05rem .4rem;font-size:.78rem;font-weight:700}
.att-pill.ok{background:#e3f6ec;color:#23875a}.att-pill.mid{background:#fff4dc;color:#9a6a00}.att-pill.low{background:#fdebee;color:#c0334a}
@media (max-width:767.98px){.welcome{flex-direction:column;align-items:stretch;padding:1rem 1.1rem}.welcome-year{position:static;order:-1;margin-bottom:.7rem;justify-content:flex-end}.welcome-kicker{font-size:1.25rem}}
@media (max-width:575.98px){.tb-inst-text span{display:none}}
.sidebar{min-height:100vh}
