/* VIZO CARBON -- THC-SAFE(vizo-log)와 같은 결로 맞춘다 */
:root{
  --bg:#f6f7f8; --card:#fff; --ink:#14181b; --ink-dim:#5c6569; --ink-faint:#8a9296;
  --line:#e2e5e7; --line-strong:#cdd2d5;
  --accent:#1c5f8f; --accent-dark:#164c72; --accent-soft:#e6eef5;
  --pass:#0f5f4f; --pass-bg:#e6f1ee;
  --fail:#a3323a; --fail-bg:#fbeaec;
  --warn:#8a6d1a; --warn-bg:#faf3dd;
  --radius:10px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.55;
  font-family:"Inter","Segoe UI",-apple-system,Pretendard,"Malgun Gothic",sans-serif;
  -webkit-font-smoothing:antialiased}
.page{max-width:820px;margin:0 auto;padding-inline:20px;padding-block:0 72px}

.topbar{display:flex;align-items:center;gap:11px;padding-block:18px;
  border-bottom:1px solid var(--line);margin-bottom:26px}
.mark{width:30px;height:30px;border-radius:7px;background:var(--accent);color:#fff;
  display:grid;place-items:center;font-size:12px;font-weight:700;letter-spacing:.02em}
.btitle{font-size:14.5px;font-weight:650;letter-spacing:.03em}
.bsub{font-size:11.5px;color:var(--ink-faint)}
.topbar a{margin-left:auto;font-size:12.5px;color:var(--ink-faint);text-decoration:none}
.topbar a:hover{color:var(--accent)}

.intro h1{margin:0 0 6px;font-size:24px;letter-spacing:-.01em}
.intro .subtitle{margin:0 0 26px;color:var(--ink-dim);font-size:15px}

.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.card{display:block;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:22px 20px;color:inherit;text-decoration:none;
  transition:border-color .12s,box-shadow .12s}
a.card:hover{border-color:var(--accent);box-shadow:0 1px 6px rgba(28,95,143,.12)}
a.card:hover .ctitle{color:var(--accent)}
.cicon{width:26px;height:26px;border-radius:6px;background:var(--accent-soft);
  color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:700}
.ctitle{margin-top:12px;font-size:16px;font-weight:640}
.cdesc{margin-top:7px;font-size:13.5px;color:var(--ink-dim)}

h2{font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);
  font-weight:650;margin:34px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line)}

.box{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;margin-bottom:14px}
.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
label{display:block;font-size:12.5px;color:var(--ink-dim);margin-bottom:4px;font-weight:550}
label .req{color:var(--fail)}
input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--line-strong);
  border-radius:7px;font:inherit;font-size:14px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);
  border-color:var(--accent)}
textarea{min-height:64px;resize:vertical}
.hint{font-size:11.5px;color:var(--ink-faint);margin-top:3px}

button{font:inherit;font-size:14px;font-weight:600;padding:9px 18px;border-radius:7px;
  border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}
button:hover{background:var(--accent-dark)}
button.ghost{background:#fff;color:var(--accent)}
button.ghost:hover{background:var(--accent-soft)}
button:disabled{opacity:.5;cursor:not-allowed}
.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}

.msg{padding:11px 14px;border-radius:8px;font-size:13.5px;margin:12px 0}
.msg.ok{background:var(--pass-bg);color:var(--pass)}
.msg.bad{background:var(--fail-bg);color:var(--fail)}
.msg.warn{background:var(--warn-bg);color:var(--warn)}

.sum{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  margin:4px 0 2px}
.stat{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:13px 14px}
.stat .k{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);
  font-weight:650}
.stat .v{font-size:19px;font-weight:660;margin-top:3px;font-variant-numeric:tabular-nums}
.stat.good .v{color:var(--pass)}
.stat.bad .v{color:var(--fail)}

table{border-collapse:collapse;width:100%;font-size:13px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
th{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);
  font-weight:650}
td.n{text-align:right;font-variant-numeric:tabular-nums}
.tablewrap{overflow-x:auto}

.pill{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.05em;
  padding:2px 7px;border-radius:5px;background:var(--accent-soft);color:var(--accent)}
.pill.def{background:var(--warn-bg);color:var(--warn)}
.pill.meas{background:var(--pass-bg);color:var(--pass)}

.mono{font-family:ui-monospace,"Cascadia Mono",Consolas,monospace;font-size:13px}
.sub{border-top:1px dashed var(--line);margin-top:14px;padding-top:14px}
.del{background:#fff;border-color:var(--line-strong);color:var(--ink-dim);
  padding:5px 11px;font-size:12.5px}
.del:hover{background:var(--fail-bg);color:var(--fail);border-color:var(--fail)}
footer.pf{margin-top:34px;padding-top:16px;border-top:1px solid var(--line);
  font-size:12px;color:var(--ink-faint)}

@media (max-width:520px){
  .intro h1{font-size:20px}
  .row{grid-template-columns:1fr}
}
