/* Shared refinements of the original institutional design. */
:root{--primary:#193e70;--primary-dark:#102e54;--navy:#193e70;--navy-dark:#102e54;--nav:#193e70;--ink:#202c3b;--muted:#607084;--bg:#f1f4f7;--line:#cdd6e0;--line-soft:#dce3ea;--shadow-sm:none}
*{letter-spacing:0}
body{background:var(--bg);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.5}
button,input,select{font-family:inherit}
button{font-size:14px;font-weight:600;min-height:40px;border-radius:5px;box-shadow:none}
button:hover{box-shadow:none}
button:disabled{cursor:wait;opacity:.65}
button:focus-visible,a:focus-visible{outline:3px solid #9bbedf;outline-offset:3px}
input,select{min-height:42px;min-width:0;border-color:#bfcbd8}
input[type=checkbox],input[type=radio]{min-height:auto;width:auto}
input:focus,select:focus{outline:3px solid #dbe7f3;border-color:var(--primary)}
label{font-weight:600}
h1{font-size:29px;font-weight:700;line-height:1.2}
h2{font-size:23px;font-weight:700}
h3{font-size:16px;font-weight:700}
.eyebrow{font-weight:700;letter-spacing:0}
.institutional-strip,.brand-strip{padding:17px 24px;background:white;border-bottom:1px solid #e0e5eb}
.institutional-strip-inner,.brand-strip-inner{max-width:1320px;justify-content:center}
.brand-logo-image{width:min(100%,710px);max-height:96px;object-fit:contain}
.institution-name{display:none}
header{padding:24px;background:#fff;color:var(--ink);border-bottom:1px solid var(--line-soft)}
.header-inner{max-width:1280px;gap:24px}
header h1{color:#193e70}
header .eyebrow{color:#617186}
header .subtitle,.subtitle{color:var(--muted);font-size:14px}
.header-tools{gap:14px}
.clock-card{min-width:165px;padding:8px 16px;border:0;border-left:3px solid #c7d7e8;border-radius:0;background:#f6f8fb;text-align:left;font-variant-numeric:tabular-nums}
.clock-card strong{font-size:26px;font-weight:700}
.clock-card small{margin-top:3px;font-size:12px}
.logout-form button,button.logout,.header-inner form button{background:white;color:#374a61;border:1px solid #bac7d6;border-radius:5px}
.logout-form button:hover,button.logout:hover,.header-inner form button:hover{background:#e9eff6}
.user-badge{background:#f4f7fb;border:1px solid var(--line-soft);color:var(--ink)}
.user-badge small{color:var(--muted)}
main{max-width:1320px;margin:22px auto 36px;padding:0 20px}
section,.panel{box-shadow:none}
section{border-radius:0;border:0;border-top:1px solid var(--line-soft);padding:26px 24px}
.panel-head,.section-head{margin-bottom:22px}
.section-head p{font-size:14px}
.top-nav{margin:0 0 22px;padding:0 8px;background:var(--nav);box-shadow:none;border-radius:5px}
.top-nav button{min-height:54px;padding:10px 9px;font-size:14px;font-weight:600;border-bottom:3px solid transparent}
.top-nav button.active{background:#315682;border-bottom-color:#c0d6ea}
.top-nav button.refresh{margin:7px 0 7px 6px;min-height:40px;border-radius:4px;background:#23744e}
.top-nav button.refresh:hover{background:#175c3b}
.summary-grid{gap:14px;margin-bottom:24px}
.summary-card{min-height:118px;padding:18px;border-radius:5px;box-shadow:none;border-color:#d6e0e9}
.summary-label,.summary-card span{font-size:12px;font-weight:600;text-transform:none}
.summary-value,.summary-card strong{font-size:30px;font-weight:700}
.summary-note{font-size:12px;line-height:1.5}
.summary-card.good{background:#edf7f1;border-color:#cbe2d5}
.summary-card.warn,.summary-card.late{background:#fff8e9;border-color:#eadfbf}
.summary-card.info,.summary-card.pending{background:#eef4fb;border-color:#d3e0ee}
.summary-card.absent{background:#fff1f0;border-color:#efd7d3}
.summary-card.good .summary-value,.summary-card.good strong{color:#226747}
.summary-card.warn .summary-value,.summary-card.late strong{color:#946214}
.summary-card.absent strong{color:#aa3430}
.menu-grid{gap:0 24px}
.menu-grid button{min-height:86px;padding:17px 8px;border:0;border-bottom:1px solid #dce3ea;border-radius:0;background:white;font-size:15px;box-shadow:none}
.menu-grid button::before{display:none}
.menu-grid button:hover{background:#f2f6fa;box-shadow:none}
.menu-grid button .muted{margin-top:5px;font-weight:400;font-size:13px}
.filter-box{background:#f3f6fa;border:0;border-left:3px solid #c6d7e7;border-radius:0;padding:16px;margin-bottom:20px}
.filters{gap:12px}
.filters label{margin-top:0}
.filters>button{min-width:108px;justify-self:start}
.filter-actions{flex-wrap:wrap}
.filter-actions a{border-radius:5px;font-size:14px;font-weight:600}
.table-shell{box-shadow:none;border:1px solid #d7e0e9;border-radius:4px;max-width:100%}
table{font-size:14px}
th{background:#edf2f7;color:#344d69;font-size:11px;font-weight:700;letter-spacing:0}
th,td{padding:13px 12px}
tr:hover td{background:#f7fafc}
.edit-row.open td{background:#eef4fa}
.edit-table input,.edit-table select{min-width:0}
.compact-form{grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px}
.actions button,.actions form{margin:0}
button.small{min-height:34px;border-radius:4px}
button.gray{background:#edf2f7;color:#304c6b;border:1px solid #cad6e3}
button.gray:hover{background:#dde7f1}
button.red{background:#fff;color:#a72f2b;border:1px solid #e3c2bf}
button.red:hover{background:#fff0ef}
.password-form{min-width:240px}
.folder-card{min-height:126px;border-radius:5px;box-shadow:none}
.folder-card:hover{box-shadow:none;border-color:#8caaca}
.folder-status,.status{border-radius:4px;font-weight:600}
.folder-icon{border-radius:3px}
.button-link{border-radius:5px;font-size:14px}
.msg{overflow-wrap:anywhere}
.login-wrap{min-height:calc(100vh - 158px)}
.login{border-radius:6px;border:1px solid #d8e1ec;padding:32px;box-shadow:0 6px 22px rgba(27,51,78,.06)}
.login h1{color:#173d70;font-size:28px}
.login button{border-radius:5px;min-height:44px}
.top-band{height:8px}
@media(max-width:1050px){
  .password-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.password-grid button{grid-column:auto}
  .header-inner{flex-direction:row;align-items:center;flex-wrap:wrap}.header-tools{width:auto;flex-direction:row}.clock-card{width:auto}
  .top-nav{display:flex;align-items:stretch;overflow-x:auto;gap:0;padding:0 6px}.top-nav button{flex:0 0 auto;min-width:105px;white-space:nowrap}.top-nav button.refresh{min-width:105px}
  .filters,.export-form{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-form{grid-template-columns:repeat(2,minmax(140px,1fr))}
}
@media(max-width:680px){
  .institutional-strip,.brand-strip{padding:15px 18px}.brand-logo-image{max-height:72px}
  header{padding:20px 18px}h1{font-size:23px}h2{font-size:20px}.header-inner{gap:16px}.header-tools{width:100%;justify-content:space-between}
  .clock-card{min-width:0;padding:8px 12px}.clock-card strong{font-size:23px}.clock-card span{font-size:11px}.logout-form button{padding:10px 12px}
  main{padding:0 12px;margin-top:14px}.top-nav{margin:0 0 16px;border-radius:4px}.top-nav button{min-height:48px;min-width:100px;font-size:13px}.top-nav button.refresh{min-height:34px}
  section,.panel:not([data-panel]){padding:20px 16px}.grid.panel.active{grid-template-columns:1fr}
  .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.summary-card{padding:13px;min-height:112px}.summary-value,.summary-card strong{font-size:27px}.summary-note{font-size:11px}
  .menu-grid,.folder-grid,.password-grid,.three{grid-template-columns:1fr}.menu-grid button{min-height:76px}
  .filter-grid{grid-template-columns:1fr}.filter-actions{grid-column:auto}.password-grid button{grid-column:auto}.filter-box{padding:13px}
  .panel-head,.section-head{gap:12px}.user-badge{width:auto;text-align:left}.login{padding:26px}
}
@media(max-width:420px){input,select{font-size:16px}.filters,.export-form{grid-template-columns:1fr}.filters>button{justify-self:stretch}.compact-form{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
