
:root{
  --bg:#f6f7f8; --card:#ffffff; --ink:#111827; --muted:#6b7280; --line:#e5e7eb;
  --soft:#f1f5f9; --green:#2f7d32; --green2:#e6f4ea; --red:#b42318; --red2:#fee4e2;
  --amber:#b45309; --amber2:#fff7ed; --dark:#24272b; --shadow:0 16px 40px rgba(15,23,42,.08);
}
*{box-sizing:border-box} body{margin:0;background:linear-gradient(180deg,#f9fafb 0%,#eef2f7 100%);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink)}
.app{max-width:1180px;margin:0 auto;padding:18px 16px 42px}.hero{background:var(--dark);color:#fff;border-radius:28px;padding:26px 22px;margin-bottom:16px;box-shadow:var(--shadow);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;right:-80px;top:-80px;width:220px;height:220px;border-radius:50%;background:rgba(47,125,50,.22)}.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#cbd5e1;font-weight:700;margin:0 0 10px}.hero h1{margin:0;font-size:clamp(26px,5vw,46px);line-height:1.02;letter-spacing:-.04em}.hero p{max-width:780px;color:#e5e7eb;font-size:15px;margin:12px 0 0}.hero .rule{display:inline-flex;align-items:center;gap:8px;margin-top:16px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);padding:8px 12px;border-radius:999px;font-size:13px;color:#f8fafc}.toolbar{background:rgba(255,255,255,.82);backdrop-filter: blur(14px);border:1px solid var(--line);border-radius:24px;padding:14px;margin-bottom:16px;box-shadow:var(--shadow);position:sticky;top:10px;z-index:5}.filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:10px;align-items:center}.control{width:100%;border:1px solid var(--line);border-radius:16px;background:#fff;padding:12px 12px;font-size:14px;outline:none;color:var(--ink)}.control:focus{border-color:#64748b;box-shadow:0 0 0 4px rgba(100,116,139,.12)}.switch{display:flex;align-items:center;gap:9px;white-space:nowrap;background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:10px 12px;font-size:13px;color:#374151}.switch input{width:18px;height:18px}.reset{border:0;border-radius:16px;background:var(--ink);color:#fff;font-weight:700;padding:12px 14px;cursor:pointer}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:16px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:18px;box-shadow:var(--shadow)}.kpi .label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}.kpi .value{font-size:clamp(24px,5vw,36px);font-weight:850;letter-spacing:-.04em;margin-top:8px}.kpi .hint{color:var(--muted);font-size:12px;margin-top:4px}.grid{display:grid;grid-template-columns:1.08fr .92fr;gap:16px}.panel{background:var(--card);border:1px solid var(--line);border-radius:28px;padding:18px;box-shadow:var(--shadow);min-width:0}.panel h2{font-size:18px;margin:0 0 14px;letter-spacing:-.02em}.project-list{display:flex;flex-direction:column;gap:10px}.project-card{border:1px solid var(--line);border-radius:20px;padding:14px;background:#fff}.project-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.project-title{font-weight:800;font-size:14px}.project-meta{font-size:12px;color:var(--muted);margin-top:3px}.pct{font-weight:900;font-size:20px}.bar{height:10px;background:#edf2f7;border-radius:999px;overflow:hidden;margin-top:10px}.bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#4b5563,#2f7d32);width:0}.pill-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.pill{font-size:11px;border-radius:999px;padding:5px 8px;background:var(--soft);color:#374151;font-weight:700}.pill.pending{background:var(--red2);color:var(--red)}.pill.done{background:var(--green2);color:var(--green)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px}table{width:100%;border-collapse:collapse;min-width:720px;background:#fff}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 12px;font-size:13px;vertical-align:top}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#6b7280;background:#f8fafc;position:sticky;top:0;z-index:1}tr:last-child td{border-bottom:0}.status{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.status.ok{background:var(--green2);color:var(--green)}.status.no{background:var(--red2);color:var(--red)}.pending-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.pending-card{border:1px solid var(--line);border-left:4px solid var(--red);border-radius:18px;padding:12px;background:#fff}.pending-card b{display:block;font-size:13px}.pending-card small{display:block;color:var(--muted);margin-top:4px;line-height:1.35}.empty{padding:18px;border-radius:18px;background:var(--green2);color:var(--green);font-weight:800}.footer{margin-top:16px;color:var(--muted);font-size:12px;text-align:center}.mini-note{color:var(--muted);font-size:12px;margin-top:-6px;margin-bottom:12px}.topline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.badge{display:inline-flex;align-items:center;border-radius:999px;background:#111827;color:#fff;font-size:11px;font-weight:800;padding:6px 9px}.manager{font-weight:700;color:#374151}.detail-section{margin-top:16px}.showmore{width:100%;margin-top:10px;border:1px solid var(--line);background:#fff;border-radius:16px;padding:12px;font-weight:800;color:#374151;cursor:pointer}.hidden{display:none!important}
@media(max-width:980px){.filters{grid-template-columns:1fr 1fr}.filters .search{grid-column:1/-1}.kpis{grid-template-columns:repeat(2,1fr)}.kpi:first-child{grid-column:1/-1}.grid{grid-template-columns:1fr}.pending-list{grid-template-columns:1fr}.toolbar{position:relative;top:auto}.reset{width:100%}}
@media(max-width:560px){.app{padding:12px 10px 30px}.hero{border-radius:22px;padding:22px 18px}.filters{grid-template-columns:1fr}.kpis{grid-template-columns:1fr}.panel{border-radius:22px;padding:14px}.project-head{align-items:center}.pending-list{grid-template-columns:1fr}.kpi{border-radius:20px;padding:16px}.hero .rule{font-size:12px;align-items:flex-start;border-radius:16px}.topline{flex-direction:column}}
