:root {
  --ink:#10241d; --muted:#5f746b; --line:#dce7e1; --surface:#fff;
  --soft:#f3f7fc; --green:#004a98; --green-dark:#003a78; --danger:#b42318;
  --shadow:0 12px 36px #143a2920;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--soft); color:var(--ink); font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:248px minmax(0,1fr); }
.sidebar { background:#004a98; color:#e9f2ff; padding:30px 18px; display:flex; flex-direction:column; gap:40px; }.brand { display:block; padding:10px; background:#fff; border-radius:10px; }.brand img { width:175px; max-width:100%; height:auto; display:block; }.sidebar nav { display:grid; gap:7px; }.sidebar nav a { padding:12px; color:#d8e8ff; text-decoration:none; border-radius:9px; }.sidebar nav a:hover,.sidebar nav a.active { background:#003a78; color:#fff; }.sidebar-bottom { margin-top:auto; padding:12px; display:grid; gap:10px; color:#d8e8ff; font-size:14px; }
.link-button { border:0; background:none; padding:0; color:#d8e8ff; text-align:left; cursor:pointer; }
.app-main { padding:44px; max-width:1500px; width:100%; margin:0 auto; overflow-x:hidden; }
.page-header { display:flex; gap:24px; justify-content:space-between; align-items:flex-start; margin-bottom:30px; }.page-header h1 { font-size:38px; margin:2px 0 6px; }
.eyebrow { margin:0 0 7px; color:var(--green); font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:.15em; }.lead,.muted { color:var(--muted); margin:0; }
.panel { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:22px; box-shadow:0 3px 8px #143a2908; }
.toolbar { display:grid; grid-template-columns:minmax(280px,1fr) 170px auto auto; align-items:center; gap:12px; margin-bottom:22px; }.toolbar input { min-width:0; }.status { color:var(--muted); font-size:14px; white-space:nowrap; }
.resource-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }.resource-card { display:block; padding:22px; background:#fff; border:1px solid var(--line); border-radius:16px; text-decoration:none; color:inherit; transition:.18s; min-height:190px; }
.resource-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:#9fcfb2; }.resource-card h2 { font-size:20px; margin:18px 0 10px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }.resource-card p,.resource-card small { color:var(--muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.resource-type,.tag { color:#004a98; background:#e5f0ff; border-radius:99px; padding:5px 9px; font-size:11px; font-weight:800; letter-spacing:.05em; }
.primary,.secondary,.danger,.danger-outline { border:0; border-radius:9px; padding:11px 15px; font:inherit; font-weight:750; cursor:pointer; }.primary { background:var(--green); color:#fff; }.primary:hover { background:var(--green-dark); }.secondary { background:#edf4ef; color:#154c32; }.danger { background:var(--danger); color:#fff; }.danger-outline { background:#fff4f2; color:var(--danger); border:1px solid #f1c0ba; }
.button-row,.row-actions { display:flex; gap:10px; align-items:center; } input,select,textarea { width:100%; border:1px solid #cbdcd2; border-radius:8px; padding:11px; background:#fff; color:var(--ink); font:inherit; } label { display:grid; gap:7px; font-weight:700; font-size:14px; } label small { font-weight:400; color:var(--muted); } textarea { resize:vertical; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.modal { border:0; border-radius:16px; padding:0; width:min(620px,calc(100vw - 30px)); box-shadow:var(--shadow); }.modal::backdrop { background:#10241d99; }.modal form { margin:0; }.modal header,.modal footer { padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:14px; }.modal header { border-bottom:1px solid var(--line); }.modal header h2 { margin:0; }.modal footer { border-top:1px solid var(--line); justify-content:flex-end; }.modal-body { padding:24px; display:grid; gap:15px; }.icon-button { border:0; background:none; font-size:28px; color:var(--muted); cursor:pointer; }
.message { min-height:20px; margin:0; color:var(--muted); }.message.error { color:var(--danger); }.message.success { color:var(--green); }.empty { color:var(--muted); text-align:center; padding:40px; }.pagination { display:flex; gap:12px; justify-content:center; align-items:center; margin:24px 0; color:var(--muted); }
#toast-container { position:fixed; right:24px; bottom:24px; z-index:9999; display:grid; gap:10px; max-width:min(390px,calc(100vw - 32px)); }.toast { display:flex; align-items:center; gap:11px; padding:14px 16px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow); font-weight:650; animation:toast-in .18s ease-out; }.toast-icon { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; color:#fff; font-size:18px; font-weight:900; }.toast.success .toast-icon { background:var(--green); }.toast.error { border-color:#f1c0ba; color:#7a2018; }.toast.error .toast-icon { background:var(--danger); } @keyframes toast-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.detail-layout { display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:20px; }.section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }.section-heading h2,.panel>h2 { margin:0 0 18px; }.markdown-rendered { line-height:1.7; }.markdown-rendered h1,.markdown-rendered h2,.markdown-rendered h3 { margin-top:26px; }.markdown-rendered img { max-width:100%; height:auto; border:1px solid var(--line); border-radius:10px; margin:10px 0; }.markdown-rendered code { background:#e5f0ff; padding:2px 5px; border-radius:4px; }
.download-list { display:grid; gap:10px; }.file-row { display:flex; justify-content:space-between; align-items:center; gap:10px; min-width:0; max-width:100%; overflow:hidden; border:1px solid var(--line); border-radius:10px; padding:12px; }.file-row > span:first-child { min-width:0; flex:1 1 auto; }.file-row .row-actions { flex:0 0 auto; }.file-row strong,.file-row small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.file-row small { color:var(--muted); margin-top:4px; }.metadata-list { display:grid; grid-template-columns:180px minmax(0,1fr); margin:0; }.metadata-list dt,.metadata-list dd { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:12px 0; border-bottom:1px solid var(--line); }.metadata-list dt { font-weight:750; }.metadata-list dd { margin:0; color:var(--muted); }.back-link { display:inline-block; color:var(--green); text-decoration:none; margin-bottom:12px; font-weight:750; }
.table-head,.table-row { display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:12px; align-items:center; padding:14px; border-bottom:1px solid var(--line); }.table-head { font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); font-weight:800; }.check-label { display:flex; align-items:center; gap:8px; }.check-label input { width:auto; }
@media(max-width:800px) { .app-shell { grid-template-columns:1fr; }.sidebar { padding:15px; flex-direction:row; align-items:center; gap:15px; }.sidebar nav { display:flex; flex:1; }.sidebar-bottom { margin:0; display:flex; align-items:center; }.app-main { padding:25px 16px; }.page-header { flex-wrap:wrap; }.toolbar { grid-template-columns:1fr auto; }.toolbar .status { grid-column:1/-1; }.detail-layout,.form-grid { grid-template-columns:1fr; }.table-head { display:none; }.table-row { grid-template-columns:1fr; gap:7px; }.resource-page-header { display:block; }.resource-page-header .button-row { margin-top:15px; } }
