:root{--navy:#0f2a4a;--navy-dark:#0a1e36;--navy-light:#1c4173;--accent:#2f6fb0;--bg:#f4f6f9;--surface:#fff;--border:#dde3ea;--text:#1d2733;--text-muted:#667487;--danger:#c0392b;--danger-bg:#fdecea;--new-bg:#e7f0fb;--new-fg:#1c4173;--read-bg:#eef1f4;--read-fg:#667487;--radius:8px;--shadow:0 1px 3px #0f2a4a14, 0 1px 2px #0f2a4a0a;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;margin:0}h1,h2{color:var(--navy);margin:0;font-weight:600}button{font:inherit;cursor:pointer;border-radius:var(--radius);background:var(--navy);color:#fff;border:none;padding:9px 16px;font-weight:500;transition:background .15s}button:hover:not(:disabled){background:var(--navy-light)}button:disabled{opacity:.55;cursor:not-allowed}button.secondary{color:var(--navy);border:1px solid var(--border);background:0 0}button.secondary:hover:not(:disabled){border-color:var(--accent);background:#fff}input,select{font:inherit;border:1px solid var(--border);border-radius:var(--radius);color:var(--text);background:#fff;padding:9px 12px}input:focus,select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2f6fb026}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.error{color:var(--danger);background:var(--danger-bg);border-radius:var(--radius);border:1px solid #f5c6c0;margin:12px 0;padding:10px 12px;font-size:14px}.login-wrap{background:linear-gradient(160deg, var(--navy-dark), var(--navy-light));justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{flex-direction:column;gap:6px;width:100%;max-width:380px;padding:32px;display:flex}.login-card h1{text-align:center;font-size:24px}.login-sub{text-align:center;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 18px;font-size:12px}.login-card label{color:var(--text-muted);font-size:13px;font-weight:500}.login-card input{margin:4px 0 8px}.login-card button{margin-top:8px}.app-header{background:var(--navy);color:#fff;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.brand{flex-direction:column;line-height:1.2;display:flex}.brand-mark{font-size:17px;font-weight:600}.brand-sub{letter-spacing:.1em;text-transform:uppercase;color:#a9c2e0;font-size:11px}.app-header button.secondary{color:#fff;background:0 0;border-color:#ffffff59}.app-header button.secondary:hover:not(:disabled){background:#ffffff1a;border-color:#fff}.app-main{max-width:1000px;margin:0 auto;padding:24px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.filters{flex-wrap:wrap;gap:16px;display:flex}.filters label{color:var(--text-muted);flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.table-card{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}thead th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;padding:12px 16px;font-size:12px;font-weight:600}tbody td{border-bottom:1px solid var(--border);padding:12px 16px}tbody tr:last-child td{border-bottom:none}tr.row{cursor:pointer}tr.row:hover{background:var(--new-bg)}td.empty{text-align:center;color:var(--text-muted);padding:28px 16px}.count{color:var(--text-muted);margin:12px 2px 0;font-size:13px}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-new{background:var(--new-bg);color:var(--new-fg)}.badge-read{background:var(--read-bg);color:var(--read-fg)}.detail-card{padding:24px}.detail-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;padding-bottom:16px;display:flex}.detail-head h2{font-size:20px}.detail-meta{color:var(--text-muted);margin:4px 0 0;font-size:13px}.fields{margin:0}.field{border-bottom:1px solid var(--border);grid-template-columns:200px 1fr;gap:16px;padding:12px 0;display:grid}.field:last-child{border-bottom:none}.field dt{color:var(--text-muted);font-size:13px;font-weight:600}.field dd{white-space:pre-wrap;word-break:break-word;margin:0}@media (width<=640px){.field{grid-template-columns:1fr;gap:2px}}
