:root{
  --nav:#0f1b3d;--nav2:#16244f;--bg:#f4f6fb;--card:#ffffff;--line:#e6eaf2;
  --txt:#1c2434;--mut:#6b7488;--pri:#2f6df6;--pri2:#1e4fd0;--ok:#12b76a;--okbg:#e7f8f0;
  --warn:#f79009;--danger:#f04438;--sh:0 1px 3px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.55 -apple-system,"Segoe UI",Roboto,Helvetica,Arial}
a{color:var(--pri);text-decoration:none}
/* ===== shell ===== */
.app{display:flex;min-height:100vh}
.side{width:238px;background:var(--nav);color:#c9d2e6;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}
.side .logo{padding:20px 20px 14px;font-size:20px;font-weight:800;color:#fff;letter-spacing:-.3px}
.side .logo b{color:#5b8bff}
.side nav{padding:8px}
.side a{display:flex;align-items:center;gap:11px;color:#c9d2e6;padding:11px 14px;border-radius:9px;font-weight:500;font-size:14.5px;margin-bottom:2px}
.side a .i{width:18px;text-align:center;opacity:.85}
.side a:hover{background:var(--nav2);color:#fff}
.side a.on{background:var(--pri);color:#fff}
.side .foot{margin-top:auto;padding:14px;border-top:1px solid rgba(255,255,255,.08);font-size:12.5px;color:#8592b5}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{height:62px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:5}
.topbar .pg{font-weight:700;font-size:17px}
.topbar .rt{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--mut)}
.content{padding:22px;max-width:1080px;width:100%}
/* ===== components ===== */
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px;box-shadow:var(--sh)}
.card h2{margin:0 0 4px;font-size:16px}.card .sub{color:var(--mut);font-size:13px;margin-bottom:14px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--sh)}
.stat .k{color:var(--mut);font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.stat .v{font-size:30px;font-weight:800;margin-top:4px;letter-spacing:-1px}
.stat .ic{float:right;font-size:20px;opacity:.5}
label{display:block;font-size:12.5px;color:var(--mut);font-weight:600;margin:10px 0 5px}
input,select,textarea{width:100%;padding:11px 13px;background:#fff;border:1px solid var(--line);border-radius:9px;color:var(--txt);font-size:14px;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px rgba(47,109,246,.12)}
textarea{min-height:76px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--pri);color:#fff;border:0;padding:11px 18px;border-radius:9px;font-weight:600;cursor:pointer;font-size:14px}
.btn:hover{background:var(--pri2)}.btn.g{background:var(--ok)}.btn.g:hover{filter:brightness(.95)}
.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--txt)}.btn.ghost:hover{background:var(--bg)}
.btn.sm{padding:7px 12px;font-size:13px}
.pill{display:inline-block;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:600;background:#eef1f7;color:var(--mut)}
.pill.ok{color:var(--ok);background:var(--okbg)}.pill.blue{color:var(--pri);background:#e8f0fe}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:13.5px}
th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px}
tr:last-child td{border-bottom:0}
.muted{color:var(--mut)}.err{background:#fef3f2;color:var(--danger);border:1px solid #fecdca;padding:10px 12px;border-radius:9px;font-size:13.5px;margin-bottom:10px}
.ok-box{background:var(--okbg);color:#087443;border:1px solid #a6f4c5;padding:10px 12px;border-radius:9px;font-size:13.5px}
.empty{color:var(--mut);text-align:center;padding:26px;font-size:14px}
/* login */
.login{max-width:390px;margin:9vh auto;padding:0 16px}
.login .brand{text-align:center;font-size:28px;font-weight:800;margin-bottom:6px}.login .brand b{color:var(--pri)}
/* documento recurso */
.doc{background:#fff;color:#111;padding:2.6cm;border:1px solid var(--line);border-radius:10px;font-family:"Times New Roman",Georgia,serif;font-size:12.5pt;line-height:1.75;text-align:justify;white-space:pre-wrap}
@media(max-width:860px){.side{position:fixed;left:-260px;transition:.2s;z-index:20}.side.open{left:0}.stats{grid-template-columns:1fr 1fr}.row,.row3{grid-template-columns:1fr}.menu-btn{display:inline-block!important}}
.menu-btn{display:none;background:none;border:0;font-size:22px;cursor:pointer;color:var(--txt)}
@media print{.side,.topbar,.noprint{display:none!important}.content{padding:0;max-width:none}.doc{border:0;padding:0}body{background:#fff}}
