:root {font:14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:#172033;background:#f5f6f8;--primary:#2458c6;--line:#e3e6eb;--muted:#677085;color-scheme:light}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-width:1000px}
aside{position:fixed;inset:0 auto 0 0;width:224px;background:#fff;border-right:1px solid var(--line);padding:0 12px 20px;display:flex;flex-direction:column}
.brand{height:68px;display:flex;gap:10px;align-items:center;font-size:17px;font-weight:600;padding:0 10px;white-space:nowrap}
.brand span{width:34px;height:34px;display:grid;place-items:center;background:var(--primary);color:#fff;border-radius:6px;font-size:19px}
.brand small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:400}
nav{display:grid;gap:5px;margin-top:18px}
nav button{text-align:left;background:transparent;border-color:transparent;color:#172033;padding:10px 16px;font-weight:400}
nav button.active{color:#1f55bd;background:#edf3ff;border-color:transparent}
.side-note{margin-top:auto;padding:16px 10px 0;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
main{margin-left:224px;padding:0 24px 40px;max-width:1800px}
header{height:64px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);margin:0 -24px 24px;padding:0 24px}
#breadcrumb{font-weight:500}#identity{display:flex;gap:16px;align-items:center}
#content{max-width:1480px;margin:auto}
h1{font-size:24px;font-weight:600;line-height:1.4;margin:0 0 8px}h2{font-size:17px;font-weight:600;margin:0 0 10px}h3{font-size:15px}
p{line-height:1.7}.muted,small,.lead{color:var(--muted)}
.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:8px 0 24px}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.app-cards{grid-template-columns:repeat(auto-fit,minmax(280px,420px));align-items:stretch}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:24px;min-width:0}
.app-card{display:flex;flex-direction:column;align-items:flex-start}
.app-icon{width:44px;height:44px;display:grid;place-items:center;background:#edf3ff;color:var(--primary);border-radius:8px;font-size:20px;font-weight:600;margin-bottom:20px}
.app-card p{color:var(--muted);margin:0 0 24px}.app-card a{margin-top:auto}
.admin-shortcuts{background:#fff;border:1px solid var(--line);border-radius:8px;margin-top:28px;padding:24px}
.admin-shortcuts p{margin:0 0 16px}
.panel{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:auto;margin-top:20px}
table{border-collapse:collapse;width:100%;text-align:left}th{font-size:13px;background:#fafafa;font-weight:600}td,th{padding:14px 16px;border-bottom:1px solid #f0f0f0;vertical-align:top}tr:last-child td{border-bottom:0}td small{display:block;margin-top:5px}
button,.button{display:inline-block;cursor:pointer;text-decoration:none;background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:6px;padding:6px 14px;font:inherit;min-height:32px}
button:hover,.button:hover{background:#4676d7;border-color:#4676d7}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
button:disabled{background:#f5f5f5;color:#9097a4;border-color:var(--line);cursor:not-allowed}
.quiet{background:#fff;border-color:#d9d9d9;color:#172033}.quiet:hover{background:#fff;color:var(--primary);border-color:var(--primary)}
.danger{background:#fff;color:#cf1322;border-color:#ffa39e}.danger:hover{background:#fff1f0;border-color:#cf1322}
nav button:hover{background:#f8f9fb;color:var(--primary);border-color:transparent}
.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{font-size:13px}
.badge{display:inline-block;border-radius:4px;background:#f6ffed;border:1px solid #b7eb8f;padding:1px 7px;font-size:12px;color:#237804;margin:0 5px 5px 0}.badge.off{background:#fffbe6;color:#874d00;border-color:#ffe58f}
.help,.notice{background:#f8f9fb;border:1px solid var(--line);padding:12px 16px;line-height:1.7;border-radius:6px;font-size:13px}.notice{background:#edf3ff;margin-bottom:24px}.space{margin-top:24px}
.empty-state{grid-column:1/-1;padding:36px;text-align:center}.empty-state p{color:var(--muted)}
.session-message{max-width:460px;margin:100px auto;text-align:center;padding:32px}.session-message p{color:var(--muted)}
.session-pending aside,.session-pending header{display:none}.session-pending main{margin:0 auto;padding-top:1px}
dialog{width:760px;max-height:calc(100dvh - 64px);padding:0;border:1px solid var(--line);border-radius:8px;color:#172033;background:#fff;box-shadow:0 12px 48px #0003}
dialog::backdrop{background:#0006}dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 66px)}
.dialog-title{padding:16px 24px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;border-bottom:1px solid var(--line)}.dialog-title h2{margin:0}
.dialog-fields{padding:24px;overflow:auto;min-height:0}
.dialog-footer{padding:12px 24px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;gap:18px;background:#fff;flex-shrink:0}
#form-error{color:#cf1322;font-size:13px;flex:1;margin:0}
.field{display:grid;gap:8px;margin-bottom:20px}.field label{font-weight:500}
input[type=text],select{width:100%;padding:7px 11px;border:1px solid #d9d9d9;border-radius:6px;font:inherit;background:#fff;color:#172033}
.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.check-grid label{padding:10px;border:1px solid var(--line);border-radius:6px;line-height:1.6}.check-grid input{width:16px;height:16px;margin-right:8px;accent-color:var(--primary)}
.readonly{color:var(--muted);padding:10px 0}
#toast{position:fixed;bottom:24px;right:24px;max-width:560px;padding:12px 20px;background:#172033;color:white;border-radius:6px;box-shadow:0 4px 20px #0002;z-index:5}
@media(max-height:700px){.session-message{margin:40px auto}dialog{max-height:calc(100dvh - 32px)}dialog form{max-height:calc(100dvh - 34px)}}

.app-cards { grid-template-columns:repeat(auto-fit,minmax(min(100%, 280px),420px)); }
.app-cards .app-card { display:grid; grid-template-columns:44px minmax(0,1fr); align-content:start; align-items:start; gap:12px; }
.app-cards .app-icon,.app-cards .app-card p { margin:0; }
.app-summary h2 { margin-bottom:4px; }
.app-cards .app-card a { grid-column:2; justify-self:start; }
.employee-back { margin-bottom:12px; }
.grant-sources { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.grant-sources section,.effective-grants { border:1px solid var(--line); border-radius:8px; padding:16px; background:#fff; }
.effective-grants { margin-top:12px; }
.grant-list { list-style:none; padding:0; margin:0; }
.grant-list li { display:flex; flex-wrap:wrap; gap:4px 12px; padding:8px 0; overflow-wrap:anywhere; }
.grant-list li + li,.grant-app + .grant-app { border-top:1px solid var(--line); }
.grant-app { padding:8px 0; }
.grant-app h3,.grant-app p { margin:0; }
.employee-actions { display:flex; justify-content:space-between; gap:8px; margin-top:12px; }
@media (max-width:1000px) {
  body { min-width:0; }
  aside { position:static; width:auto; padding:0 14px 10px; }
  aside nav { display:flex; flex-wrap:wrap; margin-top:0; }
  .side-note { display:none; }
  main { margin:0; padding:0 14px 24px; }
  header { margin:0 -14px 14px; padding:8px 14px; height:auto; min-height:52px; gap:8px; flex-wrap:wrap; }
  .heading { align-items:start; flex-wrap:wrap; }
  .grant-sources,.cards { grid-template-columns:minmax(0,1fr); }
  dialog { width:min(760px,calc(100% - 24px)); }
  .check-grid { grid-template-columns:minmax(0,1fr); }
}

.employee-shell:not(.session-pending) aside { display:none; }
.employee-shell:not(.session-pending) main { margin:0 auto; }
.employee-shell { min-width:0; }

.config-tabs,.config-resource-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.config-tabs [aria-pressed=true],.config-resource-tabs [aria-pressed=true]{border-color:var(--primary);color:var(--primary);background:#edf3ff}
.config-body{margin-top:16px}
.config-toolbar,.config-pagination{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.config-toolbar h2,.config-toolbar h3{margin:0}
.config-pagination{justify-content:flex-end;margin-top:14px;color:var(--muted)}
.config-form,.config-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}
.config-form .field{margin:0 0 10px}
.config-wide{grid-column:1/-1}
.config-form input,.config-form textarea,.config-preparation textarea{width:100%;padding:7px 11px;border:1px solid #d9d9d9;border-radius:6px;font:inherit;color:inherit}
.config-form textarea,.config-preparation textarea{resize:vertical}
.config-form input[type=checkbox]{width:auto;accent-color:var(--primary)}
.config-check{display:flex;align-items:center;gap:8px;min-height:38px}
.config-facts div{padding:12px;border-top:1px solid var(--line);overflow-wrap:anywhere}
.config-facts dt,.config-message{color:var(--muted)}.config-facts dd{margin:4px 0 0}
.config-error{color:#a21920;margin:0}
.config-dialog .config-error{flex:1}
.config-preparation{display:grid;gap:12px}
.config-preparation fieldset,.config-dialog fieldset{margin:12px 0;padding:12px;border:1px solid var(--line);border-radius:6px;min-width:0}
.config-preparation summary{cursor:pointer;font-weight:600}
@media(max-width:680px){.config-form,.config-facts{grid-template-columns:minmax(0,1fr)}.config-body{padding:16px}}
.config-object{border:1px solid var(--line);border-radius:6px;padding:10px 12px;margin-bottom:10px}
.config-object summary{cursor:pointer;font-weight:500}
.config-values{padding-left:8px;border-left:2px solid var(--line);margin:8px 0}
.config-value-row{display:grid;gap:6px;margin:8px 0}
.config-value-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px}
.config-import{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:8px 0}
.config-form .config-import input{width:auto;max-width:100%;padding:3px}
