/* Dental Software India: product-specific tweaks on top of app.css */
.hero:not(.dark) .h1 .hl{color:var(--primary-2)}
.mock.dark-canvas{background:#0f1724;color:#fff;padding:1.1rem 1.2rem}
.mock.dark-canvas .muted{color:rgba(255,255,255,.62)}
.arch{display:grid;grid-template-columns:repeat(8,1fr) 10px repeat(8,1fr);gap:4px;margin:.8rem 0 .5rem}
.arch .mid{grid-column:9}
.tooth{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.6rem;color:rgba(255,255,255,.75);font-weight:600}
.tooth .cr{width:100%;height:22px;border-radius:7px 7px 3px 3px;background:#1e2a3f;border:1.5px solid #4b5a73}
.tooth .rt{width:46%;height:12px;border-radius:0 0 6px 6px;background:#1e2a3f;border:1.5px solid #4b5a73;border-top:0}
.tooth.c-caries .cr{background:#e5484d;border-color:#e5484d}
.tooth.c-exist .cr{background:#3b82f6;border-color:#3b82f6}
.tooth.c-rct .cr,.tooth.c-rct .rt{background:#f5a524;border-color:#f5a524}
.tooth.c-impl .cr{background:#8b95a7;border-color:#8b95a7}.tooth.c-impl .rt{background:#8b95a7;border-color:#8b95a7;width:30%}
.tooth.c-miss .cr,.tooth.c-miss .rt{background:transparent;border-style:dashed;border-color:rgba(255,255,255,.35)}
.legend{display:flex;flex-wrap:wrap;gap:.45rem .9rem;font-size:.7rem;color:rgba(255,255,255,.75)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:.35rem;vertical-align:-1px}
.wa-card{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:1rem 1.1rem;font-size:.9rem}
.wa-card .btn{width:100%;justify-content:center}
.lab-row{display:flex;justify-content:space-between;gap:.75rem;padding:.65rem 0;border-bottom:1px solid #e5e7eb;font-size:.9rem}
.lab-row:last-child{border-bottom:0}
.timeline{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.6rem}
.timeline li{display:grid;grid-template-columns:76px 1fr;gap:1rem;align-items:start}
.timeline b{color:var(--primary-2);font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;padding-top:.15rem}

/* ===== Dental Software India app ===== */
.chart-page .app-content{background:#0f1724;color:#e5e7eb;padding:1rem}
.chart-page .app-content .flash{margin:0 0 .8rem}
.chart-page .muted{color:rgba(255,255,255,.6)}
.chart-page a{color:#8ab4ff}
.chart-pick select{padding:.4rem .6rem;font-size:.85rem;max-width:260px}
.dchart{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}
@media (max-width:1180px){.dchart{grid-template-columns:1fr}.dpad{position:static}}
.ribbon{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:#172234;border:1px solid #223047;border-radius:14px;padding:.8rem 1rem;margin-bottom:.9rem}
.ribbon-id{display:flex;align-items:center;gap:.7rem;min-width:260px}
.ribbon .avatar{width:42px;height:42px;border-radius:50%;background:#3b82f6;color:#fff;display:grid;place-items:center;font-weight:800;font-size:.85rem;flex-shrink:0}
.ribbon-name{font-size:1rem}.ribbon-meta{font-size:.78rem}
.ribbon-alerts{display:flex;gap:.4rem;flex-wrap:wrap;flex:1}
.ribbon-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:auto}
.chart-page .btn-ghost{border-color:rgba(255,255,255,.35);color:#fff}
.chart-page .pill-danger{background:#e5484d;color:#fff}.chart-page .pill-warn{background:#f5a524;color:#1a1200}.chart-page .pill-ok{background:#15803d;color:#fff}.chart-page .pill-info{background:#1d4ed8;color:#fff}.chart-page .pill-muted{background:rgba(255,255,255,.12);color:#e5e7eb}
.odont{background:#172234;border:1px solid #223047;border-radius:14px;padding:.9rem 1rem;margin-bottom:.9rem}
.odont-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem}
.odont-head .legend{margin-left:auto}
.arch{display:grid;grid-template-columns:repeat(8,1fr) 12px repeat(8,1fr);gap:4px;margin:.4rem 0}
.arch .mid{grid-column:9;border-left:1px dashed rgba(255,255,255,.2);margin:4px 0}
.arch.upper{border-bottom:1px dashed rgba(255,255,255,.2);padding-bottom:.4rem}
.arch .tooth{display:flex;flex-direction:column;align-items:center;gap:1px;background:transparent;border:1px solid transparent;border-radius:8px;padding:3px 1px;cursor:pointer;color:rgba(255,255,255,.7);font:inherit;font-size:.62rem;font-weight:600;min-width:0}
.arch .tooth:hover{background:rgba(255,255,255,.06)}
.arch .tooth.sel{border-color:#f5a524;background:rgba(245,165,36,.12);color:#fff}
.arch .tooth:focus-visible{outline:2px solid #f5a524;outline-offset:1px}
.tsvg{width:100%;max-width:40px;height:auto;display:block}
.tsvg .cr{fill:#1e2a3f;stroke:#4b5a73;stroke-width:1.5}.tsvg .rt{fill:#1e2a3f;stroke:#4b5a73;stroke-width:1.5}.tsvg .screw{stroke:#0f1724;stroke-width:1.6;fill:none}
.tooth.c-caries .cr{fill:#e5484d;stroke:#e5484d}
.tooth.c-exist .cr{fill:#3b82f6;stroke:#3b82f6}
.tooth.c-rct .cr,.tooth.c-rct .rt{fill:#f5a524;stroke:#f5a524}
.tooth.c-impl .cr,.tooth.c-impl .rt{fill:#8b95a7;stroke:#8b95a7}
.tooth.c-miss .cr,.tooth.c-miss .rt{fill:transparent;stroke:rgba(255,255,255,.35);stroke-dasharray:3 2}
.tooth .tsf{font-size:.55rem;color:#f5a524;min-height:.8em;line-height:1}
.tooth .tn{line-height:1.1}
.tooth-detail{margin-top:.5rem;font-size:.82rem;min-height:1.6rem}
.tooth-detail ul{list-style:none;padding:0;margin:0;display:grid;gap:.2rem}
.tooth-detail .dot{display:inline-block;width:9px;height:9px;border-radius:2px;background:#4b5a73;margin-right:.4rem;vertical-align:-1px}
.tooth-detail .dot.c-caries{background:#e5484d}.tooth-detail .dot.c-exist{background:#3b82f6}.tooth-detail .dot.c-rct{background:#f5a524}.tooth-detail .dot.c-impl{background:#8b95a7}.tooth-detail .dot.c-miss{background:transparent;border:1px dashed rgba(255,255,255,.5)}
.link-btn{background:none;border:0;padding:0;color:#8ab4ff;cursor:pointer;font:inherit;font-size:.82rem}.link-btn:hover{text-decoration:underline}
.dtabs{background:#172234;border:1px solid #223047;border-radius:14px;overflow:hidden}
.dtab-nav{display:flex;gap:0;border-bottom:1px solid #223047;overflow:auto}
.dtab-nav button{background:none;border:0;color:rgba(255,255,255,.65);font:inherit;font-weight:600;font-size:.88rem;padding:.7rem .95rem;border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}
.dtab-nav button.active{color:#fff;border-bottom-color:#3b82f6}
.dtab-nav .cnt{display:inline-block;background:#f5a524;color:#1a1200;border-radius:999px;padding:0 .4rem;font-size:.7rem;margin-left:.2rem}
.dpane{padding:.9rem 1rem}
.dpane-h{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.6rem;font-size:.9rem}
.dark-table th,.dark-table td{border-bottom-color:rgba(255,255,255,.08);color:#e5e7eb}.dark-table th{color:rgba(255,255,255,.55)}.dark-table tbody tr:hover{background:rgba(255,255,255,.04)}
.row-actions{white-space:nowrap}.row-actions form{margin-right:.4rem}
.split-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}@media (max-width:800px){.split-2{grid-template-columns:1fr}}
.dark-form input,.dark-form select,.dark-form textarea{background:#0f1724;color:#fff;border-color:#2b3a52}
.dark-form label{font-size:.82rem}.dark-form{gap:.6rem}
.inline-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.8rem}.inline-form input[type=text],.inline-form select{width:auto;padding:.45rem .6rem}.inline-form input[type=file]{color:#e5e7eb;max-width:220px}
.bpe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;max-width:360px}
.bpe{background:#0f1724;border:1px solid #2b3a52;border-radius:8px;text-align:center;padding:.45rem .3rem}.bpe b{display:block;font-size:1.2rem}.bpe span{font-size:.7rem;color:rgba(255,255,255,.55)}.bpe.mid{border-color:#f5a524}.bpe.hi{border-color:#e5484d;background:rgba(229,72,77,.15)}
.bpe-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;max-width:360px}.bpe-inputs label{display:grid;gap:.15rem;font-size:.7rem;color:rgba(255,255,255,.6)}.bpe-inputs select{padding:.35rem .4rem}
.note{background:#0f1724;border:1px solid #223047;border-radius:10px;padding:.6rem .75rem;margin-bottom:.5rem;font-size:.85rem}.note.rx{border-color:#2d4a7a}.note ul{margin:.2rem 0 .2rem 1rem;padding:0}
.img-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}
.img-card{display:block;background:#0f1724;border:1px solid #223047;border-radius:10px;overflow:hidden;color:#e5e7eb;text-decoration:none!important;font-size:.78rem}.img-card img{width:100%;height:110px;object-fit:cover;filter:contrast(1.1)}.img-card span{display:block;padding:.4rem .5rem}.img-ph{height:110px;display:grid;place-items:center;color:rgba(255,255,255,.5);font-weight:700}
.neg{color:#f87171}.pos{color:#4ade80}.ok{color:#4ade80}.warn{color:#f5a524}
.emi-strip{display:flex;gap:.35rem;align-items:center;margin-top:.6rem;flex-wrap:wrap}.emi-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;background:#2b3a52}.emi-dot.paid{background:#15803d}.emi-dot.overdue{background:#e5484d}.emi-dot.due{background:#2b3a52;border:1px dashed rgba(255,255,255,.4)}
.dpad{position:sticky;top:72px;display:grid;gap:.8rem}
.pad-form,.voice,.pad-block{background:#172234;border:1px solid #223047;border-radius:14px;padding:.8rem .9rem}
.pad-h{display:flex;align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:.92rem}.pad-h input{width:64px;padding:.3rem .4rem;background:#0f1724;color:#fff;border-color:#2b3a52;font-weight:700;text-align:center;margin-left:auto}
.surfaces{display:flex;gap:.3rem;margin-bottom:.6rem}.sf{flex:1;background:#0f1724;border:1px solid #2b3a52;color:#cbd5e1;border-radius:7px;padding:.3rem 0;font:inherit;font-size:.75rem;font-weight:700;cursor:pointer}.sf.on{background:#f5a524;color:#1a1200;border-color:#f5a524}
.pad-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}
.pad-btn{background:#0f1724;border:1px solid #2b3a52;color:#fff;border-radius:10px;padding:.55rem .4rem;font:inherit;font-weight:700;font-size:.85rem;cursor:pointer;display:grid;gap:.1rem;text-align:center}.pad-btn small{font-weight:500;color:rgba(255,255,255,.55);font-size:.68rem}.pad-btn:hover{border-color:#3b82f6;background:#13203a}
.pad-more{margin-top:.5rem;font-size:.82rem}.pad-more summary{cursor:pointer;color:rgba(255,255,255,.6)}.pad-more-row{display:flex;gap:.4rem;margin-top:.4rem}.pad-more-row select{flex:1;padding:.35rem .4rem;background:#0f1724;color:#fff;border-color:#2b3a52;font-size:.78rem;min-width:0}
.pad-msg{margin:.5rem 0 0;font-size:.78rem;color:#4ade80;min-height:1em}.pad-msg.bad{color:#f87171}
.voice{font-size:.8rem}.voice-ind{display:flex;align-items:center;gap:.45rem;margin-top:.5rem;color:rgba(255,255,255,.7)}.voice-dot{width:9px;height:9px;border-radius:50%;background:#4b5a73;flex-shrink:0}.voice.listening .voice-dot{background:#e5484d;box-shadow:0 0 0 4px rgba(229,72,77,.3);animation:vpulse 1s infinite}.voice.listening .voice-ind{color:#fff}
@keyframes vpulse{0%,100%{box-shadow:0 0 0 3px rgba(229,72,77,.3)}50%{box-shadow:0 0 0 7px rgba(229,72,77,.1)}}
.voice-fallback{display:none;gap:.4rem;margin-top:.5rem}.voice-fallback.show{display:flex}.voice-fallback input{flex:1;padding:.4rem .5rem;background:#0f1724;color:#fff;border-color:#2b3a52;font-size:.8rem;min-width:0}
.pad-block-h{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.5);margin-bottom:.3rem;font-weight:700}
.pad-total{font-size:1.5rem;font-weight:800;font-family:var(--font-head);margin:.15rem 0}
/* Appointments day grid */
.daygrid{display:grid;grid-template-columns:64px repeat(var(--cols,2),minmax(150px,1fr));border:1px solid #e5e7eb;border-radius:12px;overflow:auto;background:#fff;font-size:.82rem}
.daygrid .gh{padding:.5rem .6rem;font-weight:700;background:#f9fafb;border-bottom:1px solid #e5e7eb;border-left:1px solid #eef0f3;position:sticky;top:0}
.daygrid .gt{padding:.15rem .4rem;color:#6b7280;border-top:1px solid #f1f5f9;height:32px;font-size:.72rem}
.daygrid .gc{border-left:1px solid #eef0f3;border-top:1px solid #f1f5f9;height:32px;position:relative}
.daygrid .gc.hh{border-top-color:#e5e7eb}
.appt{position:absolute;left:3px;right:3px;top:1px;border-radius:8px;padding:.25rem .45rem;background:#eef2ff;border-left:4px solid var(--c,#3b82f6);z-index:2;overflow:hidden;line-height:1.25}.appt b{display:block;font-size:.78rem}.appt .small{font-size:.68rem}
.appt.done{opacity:.55}.appt.in_chair{background:#fef3c7}.appt.arrived{background:#dcfce7}.appt.no_show,.appt.cancelled{background:#fee2e2;opacity:.7}
.appt form{display:inline}.appt .link-btn{color:#1d4ed8;font-size:.68rem}
/* Lab / payout / public pages */
.lab-status{display:flex;gap:.3rem;flex-wrap:wrap}.lab-status span{padding:.25rem .55rem;border-radius:999px;font-size:.72rem;background:#f3f4f6;color:#6b7280}.lab-status span.on{background:var(--primary);color:#fff}.lab-status span.done{background:#dcfce7;color:#166534}
.tl{list-style:none;padding:0;margin:0}.tl li{padding:.5rem 0;border-bottom:1px solid #eef0f3;font-size:.88rem}.tl li:last-child{border:0}
.plan-public .row{display:grid;grid-template-columns:auto 1fr auto;gap:.6rem;align-items:start;padding:.6rem 0;border-bottom:1px solid #eef0f3}
.plan-public .row:last-child{border:0}.plan-public .tooth-chip{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#0f1724;color:#fff;font-weight:800;font-size:.8rem}
.plan-public .tooth-chip.ok{background:#15803d}.plan-public .tooth-chip.none{background:#e5e7eb;color:#374151}
.emi-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem}.emi-opts label{border:1.5px solid #e5e7eb;border-radius:12px;padding:.6rem;text-align:center;cursor:pointer;font-size:.85rem}.emi-opts label b{display:block;font-size:1.05rem}.emi-opts input{margin-right:.3rem}
.consent-box{background:var(--surface);border-radius:12px;padding:.8rem 1rem;font-size:.82rem;max-height:160px;overflow:auto;color:#374151}
.kpi a{color:inherit;text-decoration:none}.kpi.dark a{color:#fff}
.kpis.k8{grid-template-columns:repeat(4,1fr)}@media (max-width:1000px){.kpis.k8{grid-template-columns:repeat(2,1fr)}}
.sw{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.3rem;vertical-align:-1px}
.dense-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem;align-items:end}
/* Module pages + public plan / lab pages */
.emi-strip.light .emi-dot{color:#fff}.emi-strip.light .emi-dot.due{background:#94a3b8;border-color:transparent}
.bar{display:block;height:8px;border-radius:4px;background:var(--primary-2,#3b82f6);min-width:2px}
.img-grid.light{margin-bottom:.6rem}
.odont.mini{padding:.6rem .5rem;margin:0 0 1rem;color:#e5e7eb}.odont.mini .arch{gap:2px}.odont.mini .tooth{cursor:default;font-size:.62rem;padding:1px 0;color:rgba(255,255,255,.55)}.odont.mini .tooth.sel{background:rgba(245,165,36,.14)}
.plan-public .data,.section .data{width:100%;border-collapse:collapse;font-size:.88rem}.section .data th,.section .data td{padding:.45rem .5rem;border-bottom:1px solid #eef0f3;text-align:left;vertical-align:top}.section .data th{color:#6b7280;font-weight:600;width:38%}
.daygrid .appt a{color:inherit;font-weight:600}.daygrid .appt .pill{font-size:.62rem;padding:.05rem .4rem}
tr.muted td{opacity:.55}
details>summary.small{cursor:pointer;color:var(--primary-2,#3b82f6)}
@media (max-width:700px){.dense-form{grid-template-columns:1fr 1fr}.daygrid{font-size:.75rem}}
/* Review pass: sample-data captions on mockups */
.sample-cap{display:block;margin-top:.55rem;font-size:.7rem;letter-spacing:.02em;opacity:.7;text-align:right}
.hero-media .sample-cap,.phone + .sample-cap{color:inherit}
