/* Digital Dental Guides — case log & login (private pages) */
:root{
  --ink:#0B0F14; --ink-1:#0E141B; --ink-2:#131B24;
  --accent:#7FA6C4; --accent-hi:#A6CCE4; --muted:#8A99A8; --slate:#6E7E8D;
  --paper:#F2F5F8; --warn:#C4707F; --warn-hi:#E79BA8; --good:#7FC4A6;
  --f-display:'Jost','Manrope',"Century Gothic",system-ui,sans-serif;
  --f-body:'Inter',system-ui,-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--ink);color:var(--paper);font-family:var(--f-body);font-weight:300;
  line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;line-height:1.15}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hi)}
img,svg{display:block;max-width:100%}
.bg{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(127,166,196,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(127,166,196,.05) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 10%,#000 15%,transparent 80%)}
.page{position:relative;z-index:1}

/* ---------- brand ---------- */
.brand{display:flex;align-items:center;gap:13px}
.brand img{height:42px;width:auto}
.brand .w1{font-family:var(--f-display);font-size:17px;letter-spacing:.2em;line-height:1}
.brand .w1 b{font-weight:400;color:var(--accent)}
.brand .w2{font-family:var(--f-display);font-size:7px;letter-spacing:.3em;color:var(--muted);
  border-top:1px solid rgba(138,153,168,.4);padding-top:3px;margin-top:4px}

/* ---------- login ---------- */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:30px}
.login-card{width:100%;max-width:380px}
.login .brand{margin-bottom:38px}
.login h1{font-size:1.6rem;color:#fff;margin-bottom:8px}
.login .lede{color:var(--muted);font-size:.9rem;margin-bottom:30px}
.field{margin-bottom:16px}
label{display:block;font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--accent);margin-bottom:8px}
input[type=text],input[type=password],input[type=email],input[type=tel],input[type=search],select,textarea{
  width:100%;background:var(--ink-1);border:1px solid rgba(127,166,196,.28);color:var(--paper);
  padding:12px 14px;font:inherit;font-size:.94rem;border-radius:2px;transition:border-color .3s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;
  background:linear-gradient(120deg,#33556F,var(--accent));color:#08131B;border:1px solid rgba(166,204,228,.4);
  font-family:var(--f-display);font-size:11.5px;font-weight:500;letter-spacing:.15em;
  text-transform:uppercase;padding:14px 22px;border-radius:2px;cursor:pointer;
  transition:transform .3s,box-shadow .3s;margin-top:8px}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 30px -12px rgba(127,166,196,1)}
.err{border-left:2px solid var(--warn);background:rgba(196,112,127,.12);padding:12px 16px;
  font-size:.86rem;color:var(--warn-hi);margin-bottom:20px}
.remember{display:flex;align-items:center;gap:9px;font-size:.82rem;color:var(--muted);
  margin-top:18px;cursor:pointer;letter-spacing:0;text-transform:none}
.remember input{accent-color:var(--accent);width:15px;height:15px}
.livebar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:.78rem;
  color:var(--slate);margin:-14px 0 26px}
.live-dot{width:7px;height:7px;border-radius:50%;background:var(--good);
  box-shadow:0 0 0 3px rgba(127,196,166,.18);animation:lp 2.4s infinite}
@keyframes lp{0%,100%{opacity:1}50%{opacity:.35}}
.livebar button{background:none;border:1px solid rgba(127,166,196,.3);color:var(--accent);
  cursor:pointer;font:inherit;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:5px 10px;border-radius:2px}
.livebar button:hover{border-color:var(--accent);color:var(--accent-hi)}
.foot-note{margin-top:26px;font-size:.78rem;color:var(--slate);line-height:1.7}

/* ---------- case log ---------- */
.wrap{max-width:1400px;margin:0 auto;padding:26px 30px 70px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  padding-bottom:22px;border-bottom:1px solid rgba(127,166,196,.14);margin-bottom:30px}
.who{font-size:.82rem;color:var(--slate)}
.who b{color:var(--paper);font-weight:400}
h1.title{font-size:1.5rem;color:#fff;margin-bottom:4px}
.sub{color:var(--muted);font-size:.85rem;margin-bottom:26px}
.kpis{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px}
.kpi{border:1px solid rgba(127,166,196,.2);background:var(--ink-2);padding:16px 22px;min-width:158px}
.kpi .n{font-family:var(--f-display);font-size:1.9rem;line-height:1.1}
.kpi .l{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-top:6px}
.kpi.bad{border-color:var(--warn);background:#241419}
.kpi.bad .n,.kpi.bad .l{color:var(--warn-hi)}
.kpi.ok{border-color:rgba(127,196,166,.4)}
.kpi.ok .n,.kpi.ok .l{color:var(--good)}
table{width:100%;border-collapse:collapse;font-size:.86rem}
th{text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);
  padding:0 12px 10px 0;border-bottom:1px solid rgba(127,166,196,.25);white-space:nowrap}
td{padding:14px 12px 14px 0;border-bottom:1px solid rgba(127,166,196,.1);vertical-align:top;color:#C7D0D8}
tr.alert td{background:rgba(196,112,127,.09)}
.ref{font-family:ui-monospace,SFMono-Regular,monospace;color:#fff;letter-spacing:.06em;font-size:.9rem}
.flag{display:inline-block;background:var(--warn);color:#1A0A0E;font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;padding:3px 8px;border-radius:2px;white-space:nowrap;margin-top:6px}
.st{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.muted{color:var(--slate);font-size:.78rem}
.rowform{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.rowform select,.rowform input[type=text]{width:auto;padding:7px 9px;font-size:.8rem}
.rowform input[type=text]{width:110px}
.rowform .btn{width:auto;margin-top:0;padding:8px 14px;font-size:10px}
.chk{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--slate);cursor:pointer}
.copy{background:none;border:1px solid rgba(127,166,196,.3);color:var(--accent);cursor:pointer;
  font:inherit;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:5px 9px;border-radius:2px}
.copy:hover{border-color:var(--accent);color:var(--accent-hi)}
.empty{padding:56px;text-align:center;color:var(--slate);border:1px dashed rgba(127,166,196,.25)}
h2.sec{font-size:.9rem;font-weight:400;margin:36px 0 14px;color:var(--accent);
  letter-spacing:.14em;text-transform:uppercase}
.legend{max-width:62em;font-size:.82rem;color:var(--slate);line-height:1.9}

/* ---------- public tracker ---------- */
.track{max-width:760px;margin:0 auto;padding:44px 30px 80px}
.track .brand{margin-bottom:44px}
.track h1{font-size:2rem;color:#fff;margin-bottom:10px}
.track .lede{color:var(--muted);margin-bottom:36px}
.tcard{border:1px solid rgba(127,166,196,.22);background:var(--ink-1);padding:34px 36px;margin-bottom:26px}
.tref{font-family:ui-monospace,monospace;font-size:1.5rem;color:#fff;letter-spacing:.1em}
.tmeta{font-size:.84rem;color:var(--slate);margin-top:6px}
.steps{list-style:none;margin-top:32px}
.steps li{display:flex;gap:18px;padding-bottom:26px;position:relative}
.steps li:not(:last-child)::before{content:'';position:absolute;left:11px;top:26px;bottom:0;
  width:1px;background:rgba(127,166,196,.22)}
.dot{flex:none;width:23px;height:23px;border-radius:50%;border:1px solid rgba(127,166,196,.35);
  background:var(--ink);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--slate)}
.steps li.done .dot{border-color:var(--accent);color:var(--accent)}
.steps li.now .dot{background:var(--accent);border-color:var(--accent);color:#08131B;
  box-shadow:0 0 0 5px rgba(127,166,196,.16)}
.steps h3{font-size:1rem;color:var(--slate);margin-bottom:4px}
.steps li.done h3{color:var(--paper)}
.steps li.now h3{color:#fff;font-size:1.12rem}
.steps p{font-size:.86rem;color:var(--slate);max-width:42em}
.steps li.now p{color:var(--muted)}
.tnote{border-left:2px solid var(--accent);background:rgba(127,166,196,.07);padding:16px 20px;
  margin-top:24px;font-size:.88rem;color:var(--muted)}
.tfoot{font-size:.84rem;color:var(--slate);line-height:1.9;text-align:center;margin-top:30px}
.lookup{border:1px solid rgba(127,166,196,.22);background:var(--ink-1);padding:34px 36px}
.lookup h2{font-size:1.15rem;color:#fff;margin-bottom:8px}
.lookup p{color:var(--muted);font-size:.88rem;margin-bottom:24px}
@media(max-width:720px){
  .wrap{padding:20px 16px 60px}
  table,thead,tbody,th,td,tr{display:block}
  thead{display:none}
  tr{border:1px solid rgba(127,166,196,.16);margin-bottom:14px;padding:14px}
  td{border:none;padding:5px 0}
  td::before{content:attr(data-l);display:block;font-size:9.5px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--accent);margin-bottom:3px}
}

/* ---------- spam check ---------- */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.captcha label{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.captcha .hint{text-transform:none;letter-spacing:0;font-size:10.5px;color:var(--slate)}
.captcha input{max-width:230px}
