:root{--bg:#fafaf8;--fg:#1a1a1a;--border:#d8d5cf;--accent:#2563eb;--accent-soft:#dbeafe;--danger:#dc2626;--danger-soft:#fee2e2;--warn:#b45309;--warn-soft:#fef3c7;--ok:#15803d;--ok-soft:#dcfce7;--muted:#6b7280;--bp-phone:768px;--bp-tablet:1024px;--bp-wide:1280px;--tap-min:44px}nav.topnav{display:flex;gap:4px;align-items:center;flex-wrap:wrap;padding:8px 16px;flex-shrink:0;background:#fff;border-bottom:2px solid var(--border);z-index:20}nav.topnav .backportal{padding:6px 8px;font-size:16px;color:var(--muted);text-decoration:none}nav.topnav .brand{font-weight:700;margin-right:16px;display:flex;align-items:center;gap:8px;white-space:nowrap}nav.topnav a{padding:6px 12px;border-radius:6px;color:var(--fg);text-decoration:none;white-space:nowrap}nav.topnav a.active,nav.topnav a:hover{background:var(--accent-soft)}nav.topnav a.active{font-weight:700}nav.topnav .spacer{flex-grow:1}nav.topnav .who{font-size:13px;color:var(--muted);white-space:nowrap}nav.topnav .logout{font-size:13px;padding:4px 10px}nav.topnav .versionbtn{font-size:12px;padding:2px 8px;color:var(--muted);background:#f3f1ec}.brand-title{display:flex;align-items:center;justify-content:center;gap:10px}.brand-logo{flex:0 0 auto;object-fit:contain;border-radius:50%}a.button,button{font:inherit;padding:6px 12px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--fg);cursor:pointer}a.button:hover,button:hover{background:var(--accent-soft)}a.button.primary,button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}input,select,textarea{font:inherit;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--fg)}table.list{border-collapse:collapse;background:#fff;width:100%}table.list td,table.list th{border:1px solid var(--border);padding:6px 10px;text-align:left;font-size:13px}table.list th{background:#f3f1ec}table.list thead th{position:sticky;top:0;z-index:10;box-shadow:inset 0 1px 0 var(--border),inset 0 -1px 0 var(--border)}@media (max-width:1024px){nav.topnav{padding:8px 12px;row-gap:6px}nav.topnav .brand{margin-right:8px}table.list{display:block;overflow-x:auto;max-width:100%}}@media (max-width:768px){nav.topnav{gap:2px;padding:6px 8px}nav.topnav .brand{width:100%;margin-right:0}}@media (pointer:coarse){a.button,button,input:not([type=checkbox]):not([type=radio]),nav.topnav a,select,textarea{min-height:var(--tap-min)}nav.topnav a{display:inline-flex;align-items:center}.compact,.compact a.button,.compact button,.compact input,.compact select{min-height:0}}