:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f8fb;--surface:#fff;--fill:#f4f6fb;--line:#e2e7f0;--line-soft:#eef1f6;--ink:#131a26;--ink-2:#3b465c;--body:#4a5566;--muted:#5c6a80;--faint:#8290a6;--brand:#4b5cf5;--brand-dark:#3a49d0;--brand-deep:#2c3ac2;--brand-soft:#eef0ff;--brand-pale:#e4e8ff;--warn:#e07b00;--warn-soft:#fff4e5;--warn-ink:#7a4400;--warn-ink-2:#a35c00;--ok:#12a06a;--ok-soft:#e8f7f0;--ok-ink:#0e7a51;--err:#d92d3f;--err-soft:#fdecee;--violet:#6b4bab;--violet-soft:#efeafa;--r-sm:10px;--r-md:12px;--r-lg:14px;--r-xl:18px;--r-2xl:20px;--sh-card:0 4px 16px #131a260d;--sh-raised:0 10px 30px #131a2614;--sh-float:0 20px 50px #131a261a;--sh-brand:0 8px 22px #4b5cf547;--sh-brand-lg:0 10px 26px #4b5cf54d;--mono:ui-monospace, "SFMono-Regular", "Cascadia Mono", Menlo, Consolas, monospace;--sans:"Manrope", "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang TC", "Microsoft JhengHei", sans-serif;--red:var(--err);--red-soft:var(--err-soft);--orange:var(--warn);--orange-soft:var(--warn-soft);--green:var(--ok)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:14.5px;line-height:1.65}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.025em;margin:0;font-weight:800;line-height:1.2}h1{font-size:34px}h2{letter-spacing:-.02em;font-size:20px}h3{font-size:16px}code{font-family:var(--mono);background:var(--fill);border-radius:5px;padding:1px 5px;font-size:.92em}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:40;background:var(--surface);border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:28px;padding:16px 32px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;color:var(--ink);white-space:nowrap;align-items:center;gap:10px;font-size:15px;font-weight:800;display:flex}.brand:hover{text-decoration:none}.brand:before{content:"C";background:var(--brand);color:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:flex}.brand small{color:var(--faint);letter-spacing:.08em;font-size:11px;font-weight:600}.nav{flex-wrap:wrap;gap:6px;display:flex}.nav a{border-radius:var(--r-sm);color:var(--muted);white-space:nowrap;padding:9px 16px;font-size:14px;font-weight:600}.nav a:hover{background:var(--fill);color:var(--ink);text-decoration:none}.nav a[data-active=true]{background:var(--brand-soft);color:var(--brand-dark);font-weight:700}.spacer{flex:1}main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:34px 32px 72px}.page-head{flex-wrap:wrap;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.page-head p{color:var(--muted);margin:6px 0 0;font-size:14.5px}.card{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--sh-card);border:0}.card>header{align-items:baseline;gap:14px;padding:22px 28px 0;display:flex}.card>header h2,.card>header h3{letter-spacing:-.02em}.card>.body{padding:20px 28px 26px}.card>header+.body{padding-top:18px}.card>header+.table-wrap{margin-top:16px}.card[data-accent=brand]{border:1.5px solid var(--brand);box-shadow:0 8px 24px #4b5cf51f}.card[data-accent=warn]{border:1.5px solid var(--warn);box-shadow:0 8px 24px #e07b0024}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.metric{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-card);color:inherit;padding:20px 22px;transition:transform .12s,box-shadow .12s;display:block}a.metric:hover{box-shadow:var(--sh-raised);text-decoration:none;transform:translateY(-1px)}.metric .label{color:var(--faint);font-size:12.5px;font-weight:700}.metric .value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:30px;font-weight:800;line-height:1.1}.metric .sub{color:var(--faint);margin-top:4px;font-size:12.5px}.metric[data-tone=red] .value{color:var(--err)}.metric[data-tone=orange] .value{color:var(--warn)}.metric[data-tone=brand] .value{color:var(--brand)}.metric[data-tone=green] .value{color:var(--ok)}.table-wrap{border-radius:var(--r-2xl);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th{text-align:left;color:var(--faint);border-bottom:1px solid var(--line-soft);white-space:nowrap;letter-spacing:.02em;padding:12px 16px;font-size:12px;font-weight:700}td{border-bottom:1px solid var(--line-soft);vertical-align:top;padding:13px 16px}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--fill)}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:12.5px}tr[data-urgency=red] td:first-child{box-shadow:inset 3px 0 0 var(--err)}tr[data-urgency=orange] td:first-child{box-shadow:inset 3px 0 0 var(--warn)}tr[data-urgency=yellow] td:first-child{box-shadow:inset 3px 0 #d9a400}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:700;display:inline-flex}.badge[data-tone=draft]{background:var(--fill);color:var(--muted)}.badge[data-tone=pending]{background:var(--violet-soft);color:var(--violet)}.badge[data-tone=active]{background:var(--brand-soft);color:var(--brand-dark)}.badge[data-tone=warn]{background:var(--warn-soft);color:var(--warn-ink-2)}.badge[data-tone=done]{background:var(--ok-soft);color:var(--ok-ink)}.badge[data-tone=cancelled]{background:var(--fill);color:var(--faint);text-decoration:line-through}.badge[data-tone=red],.badge[data-tone=rush]{background:var(--err-soft);color:var(--err)}.status-pill{white-space:nowrap;background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;align-items:center;gap:7px;padding:7px 13px;font-size:13px;font-weight:700;display:inline-flex}.status-pill:before{content:"";background:var(--brand);border-radius:50%;flex:none;width:6px;height:6px}.status-pill[data-tone=warn]{background:var(--warn-soft);color:var(--warn-ink-2)}.status-pill[data-tone=warn]:before{background:var(--warn)}.status-pill[data-tone=done]{background:var(--ok-soft);color:var(--ok-ink)}.status-pill[data-tone=done]:before{background:var(--ok)}.status-pill[data-tone=draft]{background:var(--fill);color:var(--muted)}.status-pill[data-tone=draft]:before{background:var(--faint)}.status-pill[data-tone=pending]{background:var(--violet-soft);color:var(--violet)}.status-pill[data-tone=pending]:before{background:var(--violet)}.status-pill[data-tone=cancelled]{background:var(--fill);color:var(--faint)}.status-pill[data-tone=cancelled]:before{background:var(--faint)}label.field{margin-bottom:14px;display:block}label.field>span.lbl{color:var(--ink-2);margin-bottom:7px;font-size:13px;font-weight:700;display:block}label.field>span.lbl .req{color:var(--err);margin-left:2px}label.field .hint{color:var(--faint);margin-left:6px;font-size:12.5px;font-weight:500}input[type=text],input[type=number],input[type=date],input[type=password],input[type=file],select,textarea{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:100%;color:var(--ink);min-height:46px;padding:12px 14px;font-family:inherit;font-size:14.5px}input:focus,select:focus,textarea:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 4px #4b5cf51f}input:disabled,select:disabled,textarea:disabled{background:var(--fill);color:var(--muted)}textarea{resize:vertical;min-height:88px;line-height:1.6}input[type=file]{padding:10px 12px}button,.btn{border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);color:var(--ink-2);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:7px;min-height:48px;padding:13px 22px;font-family:inherit;font-size:14.5px;font-weight:600;display:inline-flex}button:hover,.btn:hover{background:var(--fill);text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed}button.primary,.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:var(--sh-brand);font-weight:700}button.primary:hover,.btn.primary:hover{background:var(--brand-dark);border-color:var(--brand-dark)}button.danger{color:var(--err);border-color:var(--line);background:var(--surface)}button.danger:hover{background:var(--err-soft);border-color:var(--err)}button.warn,.btn.warn{background:var(--warn);border-color:var(--warn);color:#fff;font-weight:700;box-shadow:0 8px 22px #e07b0047}button.warn:hover,.btn.warn:hover{background:#c96e00;border-color:#c96e00}button.sm,.btn.sm{min-height:40px;padding:9px 15px;font-size:13.5px}button.lg,.btn.lg{min-height:52px;padding:16px 28px;font-size:15.5px}button.ghost{border-color:var(--brand);color:var(--brand-dark);background:var(--surface);min-height:44px;padding:10px 16px;font-weight:700}button.block,.btn.block{width:100%;min-height:52px;padding:15px;font-size:15.5px}.row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.row>*{flex:200px}.row>.shrink{flex:none}fieldset{border-radius:var(--r-xl);background:var(--fill);border:0;margin:0 0 16px;padding:22px 24px}legend{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:9px;margin-bottom:6px;padding:0;font-size:16px;font-weight:800;display:flex}legend:before{content:"";background:var(--brand);border-radius:50%;flex:none;width:7px;height:7px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface);color:var(--ink-2);border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-size:13.5px;font-weight:600;display:inline-flex}.chip:hover{border-color:var(--brand)}.chip[data-on=true]{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}.chip[data-on=true][data-variant=soft]{background:var(--brand-soft);color:var(--brand-dark);border-color:#0000}.chip input{display:none}.chip .ord{background:#ffffff40;border-radius:50%;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:800;display:flex}.segmented{background:var(--fill);border-radius:999px;gap:4px;padding:4px;display:flex}.segmented>button{min-height:38px;color:var(--muted);box-shadow:none;background:0 0;border:0;border-radius:999px;flex:1;padding:9px 15px;font-size:13.5px;font-weight:600}.segmented>button[data-on=true]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 2px 6px #131a2614}.steps{flex-wrap:wrap;gap:8px;display:flex}.step{border:1px solid var(--line);background:var(--surface);color:var(--faint);border-radius:999px;min-height:44px;padding:10px 18px;font-size:13.5px;font-weight:600}.step[data-done=true]{background:var(--ok-soft);color:var(--ok-ink);border-color:#0000;font-weight:700}.step[data-on=true]{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:700}.tooth-chart{background:var(--bg);border-radius:var(--r-xl);grid-template-columns:1fr auto 1fr;padding:22px;display:grid;overflow-x:auto}.tooth-chart .divider-v{background:var(--line);width:1px;margin:0 8px}.tooth-chart .divider-h{background:var(--line);grid-column:1/-1;height:1px;margin:16px 0}.quad{flex-direction:column;gap:8px;display:flex}.quad .quad-label{color:var(--faint);font-size:12px;font-weight:700}.quad.right .quad-label{text-align:right}.quad .teeth{gap:4px;display:flex}.quad.right .teeth{flex-direction:row-reverse}.tooth{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);width:40px;min-width:40px;height:48px;min-height:48px;color:var(--ink-2);cursor:pointer;box-shadow:none;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0;font-size:15px;font-weight:700;display:flex}.tooth:hover{border-color:var(--brand);background:var(--surface)}.tooth[data-role=single]{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 4px 12px #4b5cf54d}.tooth[data-role=abutment]{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff;box-shadow:0 4px 12px #2c3ac24d}.tooth[data-role=pontic]{background:var(--brand-pale);border:1.5px solid var(--brand);color:var(--brand-deep)}.tooth .fdi{opacity:.6;font-size:9.5px;font-weight:600;font-family:var(--mono)}.tooth-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:20px;margin-top:16px;font-size:13px;display:flex}.tooth-legend span{align-items:center;gap:7px;display:flex}.tooth-legend i{border-radius:4px;width:13px;height:13px;display:inline-block}.case-card{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-card);grid-template-columns:150px minmax(0,1fr) 190px 150px 130px;align-items:center;gap:20px;padding:22px 26px;display:grid}.case-card[data-flag=warn]{border-left:4px solid var(--warn)}.case-card[data-flag=rush]{border-left:4px solid var(--err)}.case-card .case-no{color:var(--brand);font-size:13px;font-weight:700}.case-card .case-patient{letter-spacing:-.015em;font-size:19px;font-weight:800}.case-card .case-meta{color:var(--muted);margin-top:2px;font-size:14px}.case-card .sub{color:var(--faint);font-size:12px}.case-card .case-date{font-size:16px;font-weight:700}.case-card .case-amt{letter-spacing:-.02em;font-size:17px;font-weight:800}.case-card-sm{background:var(--surface);box-shadow:var(--sh-card);border-radius:16px;flex:320px;align-items:center;gap:20px;padding:20px 24px;display:flex}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--line-soft);padding:0 0 18px 22px;position:relative}.timeline li:last-child{border-left-color:#0000;padding-bottom:0}.timeline li:before{content:"";background:var(--brand);border:2px solid var(--surface);border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-6px}.timeline li[data-late=true]:before{background:var(--warn)}.timeline .when{color:var(--faint);font-size:12px;font-family:var(--mono)}.timeline .what{font-weight:700}.timeline .who{color:var(--muted);font-size:13px}.note{background:var(--brand-soft);border-radius:var(--r-lg);color:#2f3a52;padding:16px 20px;font-size:14px;line-height:1.7}.note.warn{background:var(--warn-soft);color:var(--warn-ink)}.note.danger{background:var(--err-soft);color:#8f1f2c}.note.quiet{background:var(--fill);color:var(--muted);font-size:13px}.note.icon{align-items:flex-start;gap:12px;display:flex}.note.icon:before{content:"!";background:var(--warn);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:13px;font-weight:800;display:flex}.kv{grid-template-columns:max-content 1fr;gap:14px 24px;font-size:15px;display:grid}.kv dt{color:var(--faint);padding-top:2px;font-size:13px;font-weight:700}.kv dd{margin:0}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:13px}.strong{font-weight:700}.stack{flex-direction:column;gap:16px;display:flex}.inline{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.right{text-align:right}.nowrap{white-space:nowrap}.total-line{color:var(--muted);justify-content:space-between;padding:6px 0;font-size:13.5px;display:flex}.total-line span:last-child{color:var(--ink);font-weight:700}.total-line.grand{border-top:1px solid var(--line-soft);color:var(--ink);margin-top:8px;padding-top:12px;font-size:17px;font-weight:800}.form-layout{grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:20px;display:grid}.quote-aside{flex-direction:column;gap:14px;display:flex;position:sticky;top:84px}.quote-card{background:var(--surface);border-radius:var(--r-2xl);box-shadow:var(--sh-raised);padding:26px}.quote-card .eyebrow{letter-spacing:.04em;color:var(--ink-2);align-items:center;gap:8px;margin-bottom:18px;font-size:13px;font-weight:800;display:flex}.quote-card .eyebrow:before{content:"";background:var(--brand);border-radius:50%;width:7px;height:7px}.quote-card[data-tone=warn]{background:var(--warn-soft);box-shadow:none}.quote-card[data-tone=warn] .eyebrow:before{background:var(--warn)}.quote-card .label{color:var(--faint);font-size:13px}.quote-card .big{letter-spacing:-.03em;margin:2px 0 4px;font-size:30px;font-weight:800;line-height:1.15}.quote-card .big.money{color:var(--brand)}.quote-card hr{background:var(--line-soft);border:0;height:1px;margin:20px 0}.dropzones{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.dropzone{border-radius:var(--r-lg);text-align:center;cursor:pointer;background:#fbfcfe;border:1.5px dashed #cdd5e2;margin:0;padding:18px 16px;display:block;position:relative}.dropzone:hover{border-color:var(--brand);background:var(--brand-soft)}.dropzone .dz-title{margin-bottom:4px;font-size:14px;font-weight:700}.dropzone .dz-hint{color:var(--faint);font-size:12.5px}.dropzone input[type=file]{opacity:0;border:0;width:.1px;height:.1px;min-height:0;padding:0;position:absolute}.login-wrap{background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;padding:56px 20px;display:flex}.login-brand{letter-spacing:-.02em;justify-content:center;align-items:center;gap:11px;font-size:16px;font-weight:800;display:flex}.login-brand:before{content:"C";background:var(--brand);color:#fff;border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:800;display:flex}.login-card{width:100%;max-width:420px;box-shadow:var(--sh-float)}.login-card.wide{max-width:620px}.login-card>.body{padding:32px}.section-head{align-items:center;gap:10px;margin-bottom:16px;display:flex}.section-head .n{background:var(--brand-soft);width:24px;height:24px;color:var(--brand-dark);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.section-head h2{margin:0;font-size:16.5px}.divider{background:var(--line-soft);height:1px}.landing{max-width:1240px;margin:0 auto;padding:0 44px 80px}.landing-nav{flex-wrap:wrap;align-items:center;gap:12px;padding:22px 0;display:flex}.landing-nav .brand{font-size:16px}.landing-nav .brand:before{border-radius:9px;width:30px;height:30px;font-size:13px}.landing-hero{max-width:760px;padding:70px 0 60px}.landing-eyebrow{background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;align-items:center;gap:8px;margin-bottom:24px;padding:7px 14px;font-size:12.5px;font-weight:700;display:inline-flex}.landing-hero h1{letter-spacing:-.035em;margin:0 0 22px;font-size:58px;font-weight:800;line-height:1.08}.landing-hero .lede{color:var(--body);text-wrap:pretty;max-width:560px;margin:0;font-size:18px;line-height:1.75}.landing-cta{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.landing-cta .btn.primary{box-shadow:var(--sh-brand-lg)}.landing-section{padding:0 0 72px}.landing-section>h2{margin:0 0 26px;font-size:26px}.feature-card{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--sh-card);padding:28px 30px}.feature-card h3{letter-spacing:-.015em;margin:0 0 10px;font-size:19px}.feature-card p{color:var(--body);text-wrap:pretty;margin:0;font-size:14.5px;line-height:1.75}.step-card{border-radius:var(--r-xl);background:var(--surface);box-shadow:var(--sh-card);padding:26px 28px}.step-card[data-first=true]{background:var(--brand-soft);box-shadow:none}.step-card .n{border-radius:var(--r-sm);background:var(--brand-soft);width:32px;height:32px;color:var(--brand);justify-content:center;align-items:center;margin-bottom:14px;font-size:15px;font-weight:800;display:flex}.step-card[data-first=true] .n{background:var(--brand);color:#fff}.step-card h3{margin:0 0 6px;font-size:17px}.step-card p{color:var(--body);margin:0;font-size:14px;line-height:1.7}.landing-foot{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:8px;padding-top:24px;font-size:13px;display:flex}@media (max-width:1080px){.form-layout{grid-template-columns:1fr}.quote-aside{position:static}.landing-hero{padding:44px 0}.case-card{grid-template-columns:130px minmax(0,1fr)}.case-card>:nth-child(n+3){grid-column:1/-1}}@media (max-width:720px){main{padding:22px 16px 64px}.topbar{gap:14px;padding:12px 16px}.landing{padding:0 18px 56px}.landing-hero h1{font-size:38px}.landing-cta .btn{width:100%}h1{font-size:27px}.card>header{padding:18px 20px 0}.card>.body{padding:16px 20px 20px}.login-card>.body{padding:24px}}
