@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Bodoni+Moda:wght@700&family=Outfit:wght@400;500;600;700;800&display=swap";:root{--green: #2f9d4a;--deep-green: #176f3a;--navy: #111c33;--navy-light: #24395d;--blue: #315b91;--taupe: #b08a62;--taupe-dark: #745233;--bg: #f7f4ee;--surface: #ffffff;--soft: #f0ece4;--line: #e0d7cb;--text: #172033;--muted: #687080;--danger: #d94b4b;--ivory: #fffaf1;--ink: #0e1729;--gold: #c6a36f;--mint: #e8f7ec;--shadow-sm: 0 2px 8px rgba(23,34,59,.06);--shadow: 0 12px 36px rgba(23,34,59,.09);--shadow-lg: 0 24px 60px rgba(23,34,59,.12);--radius: 20px;--radius-sm: 14px;--font: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.loader{min-height:100vh;display:grid;place-items:center}.loaderInner{text-align:center}.loaderInner img{width:180px;margin:0 auto 16px}.loaderInner p{color:var(--muted)}.btnPrimary,.btnGhost,.btnSmall{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:11px 20px;font-weight:800;font-size:14px;transition:transform .15s,box-shadow .15s,opacity .15s}.btnPrimary{background:linear-gradient(135deg,var(--green),var(--deep-green));color:#fff;box-shadow:0 8px 20px #39b54a40}.btnPrimary:hover{transform:translateY(-1px);box-shadow:0 12px 28px #39b54a4d}.btnPrimary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btnGhost{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--line)}.btnGhost:hover{background:var(--soft)}.btnGhost:disabled{opacity:.4;cursor:not-allowed}.btnSmall{padding:7px 14px;font-size:13px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.btnSmall.danger{color:var(--danger);background:#fff1f1}.iconDanger{width:32px;height:32px;border-radius:50%;background:#fff1f1;color:var(--danger);font-size:18px;font-weight:900;display:grid;place-items:center}.dashboard{min-height:100vh}.dashHeader{position:sticky;top:0;z-index:20;background:#f4f6f5e0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.dashBrand{display:flex;align-items:center;gap:16px}.dashBrand img{width:150px}.dashCrumb{color:var(--deep-green);font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:.14em}.dashBrand h1{font-size:22px;letter-spacing:-.03em;margin:2px 0 0}.dashActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dbBadge{border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900;background:#fff7e7;color:#91611d}.dbBadge.online{background:#e9f8ec;color:#216d31}.notice{border-radius:999px;background:var(--navy);color:#fff;padding:7px 14px;font-weight:800;font-size:13px}.casesGrid{max-width:1200px;margin:0 auto;padding:32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.caseCard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;cursor:pointer;transition:transform .2s,box-shadow .2s}.caseCard:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.caseCardTop{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.caseId{font-weight:900;font-size:13px;color:var(--deep-green)}.statusPill{border-radius:999px;padding:4px 10px;font-size:11px;font-weight:900;text-transform:capitalize;background:#edf0f5;color:var(--muted)}.statusPill.published{background:#e7f8ea;color:#216d31}.statusPill.approved{background:#e8f0ff;color:var(--blue)}.statusPill.accepted{background:#fff1d9;color:#91611d}.caseCard h3{font-size:19px;letter-spacing:-.02em;margin-bottom:4px}.caseMeta{color:var(--muted);font-size:13px;margin-bottom:14px}.progressBar{height:6px;background:#e8ecef;border-radius:999px;overflow:hidden}.progressFill{height:100%;background:linear-gradient(90deg,var(--green),var(--deep-green));border-radius:999px;transition:width .3s}.progressLabel{font-size:12px;color:var(--muted);margin-top:6px;font-weight:700}.caseCardActions{display:flex;gap:8px;margin-top:14px}.workspace{min-height:100vh}.wsHeader{position:sticky;top:0;z-index:20;background:#f4f6f5e0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.wsTitle{flex:1;min-width:0}.crumb{color:var(--deep-green);font-weight:900;font-size:11px;text-transform:uppercase;letter-spacing:.14em}.wsTitle h1{font-size:20px;letter-spacing:-.03em;margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wsActions{display:flex;align-items:center;gap:10px}.stepNav{max-width:1200px;margin:0 auto;padding:20px 32px 0;display:flex;gap:6px;overflow-x:auto}.stepBtn{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:transparent;color:var(--muted);font-weight:800;font-size:13px;white-space:nowrap;transition:background .15s,color .15s}.stepBtn:hover{background:var(--surface);color:var(--text)}.stepBtn.active{background:var(--navy);color:#fff}.stepBtn.done{color:var(--deep-green)}.stepNum{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e8ecef;font-size:12px;font-weight:900}.stepBtn.active .stepNum{background:#fff3;color:#fff}.stepBtn.done .stepNum{background:var(--green);color:#fff}.stepContent{max-width:1200px;margin:0 auto;padding:24px 32px}.stepPanel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.stepHeader{margin-bottom:24px}.stepHeader h2{font-size:24px;letter-spacing:-.03em}.stepHeader p{color:var(--muted);margin-top:4px}.stepFooter{max-width:1200px;margin:0 auto;padding:0 32px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.progressSummary{flex:1;max-width:300px}.progressSummary span{font-size:12px;color:var(--muted);font-weight:700}.formGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1 / -1}.field span{font-size:13px;font-weight:800;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 13px;outline:none;background:#fbfcfb;color:var(--text);transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--green);box-shadow:0 0 0 4px #39b54a1f}.uploadGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.uploadZone{border:2px dashed var(--line);border-radius:var(--radius);padding:28px 20px;text-align:center;display:grid;gap:8px;justify-items:center;transition:border-color .15s,background .15s}.uploadZone:hover{border-color:var(--green);background:#f8fdf9}.uploadIcon{font-size:36px}.uploadZone h3{font-size:16px}.uploadZone p{font-size:13px;color:var(--muted)}.sectionLabel{font-size:16px;font-weight:900;margin:20px 0 12px}.fileGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.fileGrid.compact{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.fileTile{border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:#f8faf9;display:grid;gap:6px;padding-bottom:8px}.fileTile img,.fileIcon{height:100px;width:100%;object-fit:cover;background:#101827;color:#fff;display:grid;place-items:center;font-weight:900;font-size:12px}.fileTile span{padding:0 8px;font-size:12px;word-break:break-word;font-weight:700}.fileTile .btnSmall{margin:0 8px}.modelBox{min-height:320px;background:#f7f9fa;border:2px solid #d7dee8;border-radius:18px;display:grid;place-items:center;overflow:hidden}model-viewer{width:100%;height:340px}.videoPlayer{width:100%;max-height:300px;border-radius:16px;background:#111;margin-top:12px}.chartControls{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:16px}.dentalChart{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}.jaw{min-width:780px;display:grid;grid-template-columns:repeat(16,40px);gap:7px;justify-content:center;align-items:end;border-bottom:1px solid var(--line);padding-bottom:12px}.jaw.lower{align-items:start;border:0;padding-top:12px}.tooth{padding:0;background:transparent;border-radius:0;display:grid;justify-items:center;gap:22px;color:var(--text)}.tooth.editable:hover strong{outline:3px solid rgba(57,181,74,.25)}.toothShape{width:32px;height:42px;background:#fff;border:1.5px solid #777;border-radius:45% 45% 35% 35%;position:relative}.toothShape.planned{background:#77d783;border-color:#3d974a}.toothShape.root{background:linear-gradient(#dff4fb 55%,#fff 56%)}.toothShape.missing{opacity:.15}.toothShape.extract{background:#f3b7b7;border-color:#b34d4d}.toothShape.implant{background:#c7c7c7}.toothShape.implant:after{content:"";position:absolute;left:10px;bottom:-18px;width:12px;height:18px;background:repeating-linear-gradient(170deg,#bbb 0 3px,#fff 3px 5px);border-radius:6px}.upper .toothShape.implant:after{bottom:auto;top:-18px}.tooth strong{width:32px;height:32px;border-radius:50%;background:#e9edf2;display:grid;place-items:center;font-size:13px}.legend{margin-top:16px;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;color:var(--muted);font-size:12px;font-weight:800}.legend i{width:14px;height:14px;border:1px solid #999;border-radius:4px;display:inline-block;vertical-align:-2px;margin-right:5px}.visitsGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.visitCard{background:var(--soft);border-radius:var(--radius);padding:20px}.visitCard h3{font-size:18px;margin-bottom:12px}.treatmentTable{width:100%;border-collapse:collapse}.treatmentTable th{text-align:left;font-size:12px;color:var(--muted);padding:8px;text-transform:uppercase;letter-spacing:.06em}.treatmentTable td{border-top:1px solid var(--line);padding:6px;vertical-align:top}.treatmentTable input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}.visitSubtotal{text-align:right;font-weight:900;color:var(--deep-green);margin-top:10px}.financeBar{background:var(--soft);border-radius:var(--radius);padding:20px}.financeGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.totalCard{display:grid;gap:6px}.totalCard>div{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.totalCard>div:last-child{border:0}.totalCard span{font-size:13px;color:var(--muted);font-weight:700}.totalCard strong{font-size:16px}.approvalGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.approvalCard{border:2px solid var(--line);border-radius:var(--radius);padding:24px;text-align:center;transition:border-color .2s,background .2s}.approvalCard.approved{border-color:var(--green);background:#f6fdf7}.approvalIcon{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;font-size:24px;font-weight:900;background:#e8ecef;color:var(--muted)}.approvalCard.approved .approvalIcon{background:var(--green);color:#fff}.approvalCard h3{font-size:18px;margin-bottom:6px}.approvalCard p{font-size:13px;color:var(--muted);margin-bottom:14px}.toggle{display:flex;align-items:center;gap:10px;background:#f7faf8;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-weight:800;font-size:14px;cursor:pointer}.toggle input{width:20px;height:20px;accent-color:var(--green)}.approvalNote{background:#fff8e7;border:1px solid #f0d9a0;border-radius:var(--radius-sm);padding:14px 16px;font-size:14px;color:#7a5a1a}.publishGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.publishCard{background:var(--soft);border-radius:var(--radius);padding:24px}.publishCard h3{font-size:18px;margin-bottom:14px}.copyInput{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;background:#fff;font-size:13px;margin-bottom:12px}.buttonRow{display:flex;gap:10px;margin-bottom:14px}.publishBtn{width:100%}.safetyList{list-style:none;display:grid;gap:8px}.safetyList li{font-size:13px;color:var(--muted);padding-left:20px;position:relative}.safetyList li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:900}.empty{color:var(--muted);font-size:14px}.patientPublic{min-height:100vh;background:#f5f5f6}.patientShell{max-width:1100px;margin:0 auto}.patientHeader{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0 24px}.patientHeader img{width:160px}.patientHeader span{color:var(--taupe);font-weight:900;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.patientHeader h1{margin:2px 0 0}.patientTop{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;margin-bottom:8px}.identityCard{background:linear-gradient(118deg,var(--navy),var(--navy-light));color:#fff;border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.identityCard h2{margin-top:0;font-size:22px}.info{border-bottom:1px solid rgba(255,255,255,.3);padding:8px 0;width:70%}.info span{display:block;color:#ffffffbf;font-size:13px}.info strong{font-size:18px}.centerTitle{text-align:center;font-size:28px;margin:32px 0 14px}.brandText{color:var(--taupe-dark)}.patientGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.sequence{max-height:400px;overflow:auto;display:grid;gap:8px}.sequenceItem{display:grid;grid-template-columns:36px 1fr 56px;gap:10px;align-items:center;background:#f6f4f2;border-left:4px solid transparent;border-radius:12px;padding:10px}.sequenceItem.active{border-color:var(--taupe)}.sequenceItem>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#e9edf2;font-weight:900;font-size:13px}.sequenceItem.active>span{background:var(--taupe);color:#fff}.sequenceItem small{color:var(--muted);font-size:12px}.includedGrid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.includedGrid article{background:#fff;border-radius:18px;box-shadow:0 4px 0 var(--taupe),var(--shadow);padding:22px 16px;text-align:center}.lineIcon{width:52px;height:52px;border:3px solid var(--taupe);border-radius:14px;margin:0 auto 12px}.includedGrid h3{font-size:15px;margin-bottom:6px}.includedGrid p{font-size:12px;color:var(--muted)}.patientActions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:28px 0}.patientActions a{display:inline-flex;align-items:center;border-radius:999px;padding:11px 20px;font-weight:800;background:linear-gradient(135deg,var(--green),var(--deep-green));color:#fff}.patientTable{width:100%;border-collapse:collapse}.patientTable th{text-align:left;color:var(--muted);font-size:13px;padding:10px}.patientTable td{border-top:1px solid var(--line);padding:10px;vertical-align:top}.mouth{width:280px;height:220px;position:relative;filter:drop-shadow(0 12px 14px rgba(0,0,0,.14))}.gum{position:absolute;background:linear-gradient(#c87878,#a94d4d);border-radius:55% 55% 45% 45%;left:38px;right:38px;top:0;height:64px}.tongue{position:absolute;left:92px;top:96px;width:96px;height:82px;background:linear-gradient(#efb0a7,#cf776f);border-radius:50%;border:2px solid #b35b55}.arc{position:absolute;left:25px;right:25px;top:74px;height:130px;border:18px solid #d7a09a;border-top:0;border-radius:0 0 140px 140px}.miniTeeth{position:absolute;inset:48px 32px auto;display:flex;justify-content:space-between}.miniTeeth i{width:20px;height:32px;background:#f7f4ee;border-radius:45%;display:block}.publicError{min-height:100vh;display:grid;place-items:center;text-align:center;padding:40px}.publicError img{width:180px;margin:0 auto 20px}.publicError h1{color:var(--muted)}@media(max-width:1024px){.casesGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.uploadGrid,.visitsGrid,.approvalGrid,.publishGrid,.patientTop,.patientGrid{grid-template-columns:1fr}.includedGrid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.dashHeader,.wsHeader{flex-direction:column;align-items:flex-start;padding:14px 16px}.stepContent,.casesGrid{padding:16px}.stepFooter{padding:0 16px 16px;flex-direction:column}.progressSummary{max-width:100%;width:100%}.formGrid,.financeGrid,.includedGrid{grid-template-columns:1fr}.stepNav{padding:12px 16px 0}.stepBtn .stepLabel{display:none}.patientHeader{flex-direction:column;text-align:center}}.treatmentViewer{display:grid;grid-template-columns:1fr 340px;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.tvLeft{display:grid;gap:16px;min-width:0}.tvModelBox{position:relative;min-height:380px;background:#f7f9fa;border:2px solid #d7dee8;border-radius:18px;display:grid;place-items:center;overflow:hidden}.tvModelBox model-viewer{width:100%;height:380px}.tvTools{position:absolute;top:14px;left:14px;display:flex;gap:8px;z-index:2}.tvToolBtn{width:36px;height:36px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm);display:grid;place-items:center;font-size:14px}.tvBeforeAfterToggle{display:flex;background:var(--surface);border-radius:999px;padding:3px;box-shadow:var(--shadow-sm)}.tvBeforeAfterToggle button{border:0;border-radius:999px;padding:7px 16px;font-size:12px;font-weight:900;background:transparent;color:var(--muted)}.tvBeforeAfterToggle button.active{background:var(--taupe);color:#fff}.tvSelect{border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:var(--surface);font-size:13px;font-weight:700;box-shadow:var(--shadow-sm)}.tvHint{position:absolute;bottom:14px;right:14px;background:var(--surface);border-radius:999px;padding:7px 14px;font-size:12px;color:var(--muted);box-shadow:var(--shadow-sm)}.tvVideoSection h3{font-size:20px;margin-bottom:4px}.tvVideoSection p{color:var(--muted);font-size:14px;margin-bottom:14px}.tvVideo{width:100%;border-radius:14px;background:#111}.tvVideoPlaceholder{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px}.tvTimeline{display:flex;align-items:center;gap:12px;margin-bottom:14px;font-size:12px;color:var(--muted);font-weight:700}.tvProgressBar{flex:1;height:4px;background:#333;border-radius:999px;position:relative}.tvProgressFill{position:absolute;left:0;top:-3px;width:12px;height:12px;background:var(--taupe);border-radius:50%}.tvControls{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.tvControlBtn{border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:var(--surface);font-size:12px;font-weight:800;color:var(--text)}.tvControlBtn:disabled{opacity:.4;cursor:not-allowed}.tvPlayBtn{width:48px;height:48px;border-radius:50%;background:var(--taupe);color:#fff;font-size:16px;display:grid;place-items:center}.tvSpeedBtn{border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--surface);font-size:12px;font-weight:800;color:var(--muted)}.tvSpeedBtn.active{background:var(--taupe);color:#fff;border-color:var(--taupe)}.tvRight{background:#f8f9fa;border:1px solid var(--line);border-radius:18px;padding:16px;display:flex;flex-direction:column;gap:12px;max-height:600px;overflow:hidden}.tvVisitTabs{display:flex;gap:6px;flex-shrink:0}.tvVisitTabs button{border:1px solid var(--line);border-radius:999px;padding:7px 14px;background:var(--surface);font-size:12px;font-weight:800;color:var(--muted)}.tvVisitTabs button.active{background:var(--taupe);color:#fff;border-color:var(--taupe)}.tvSequence{flex:1;overflow-y:auto;display:grid;gap:6px;align-content:start}.tvSequenceItem{display:flex;gap:12px;padding:10px 12px;border-radius:12px;border-left:4px solid transparent;cursor:pointer;transition:background .15s}.tvSequenceItem:hover{background:#f0f0f0}.tvSequenceItem.active{border-left-color:var(--taupe);background:#f5f0eb}.tvSequenceItem>span{width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#e9edf2;font-size:12px;font-weight:900;margin-top:2px}.tvSequenceItem.active>span{background:var(--taupe);color:#fff}.tvSequenceItem b{display:block;font-size:14px}.tvSequenceItem small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.tvStepDetail{font-size:12px;color:var(--muted);margin-top:6px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media print{.wsHeader,.stepNav,.stepFooter,.patientActions,.tvTools,.tvHint,.tvVisitTabs{display:none!important}.stepContent{padding:0;max-width:none}.stepPanel{box-shadow:none;border:0;border-radius:0}.treatmentViewer{grid-template-columns:1fr}.tvRight{max-height:none}body{background:#fff}}.mouthHost{position:absolute;inset:0;z-index:1}.mouthCanvas{display:block;width:100%;height:100%;touch-action:none}.mouthLegend{position:absolute;left:14px;bottom:14px;display:flex;flex-wrap:wrap;gap:10px;background:var(--surface);border-radius:999px;padding:7px 13px;box-shadow:var(--shadow-sm);z-index:3;pointer-events:none}.mouthLegend span{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--muted)}.mouthLegend i{width:9px;height:9px;border-radius:50%;display:inline-block}.mouthTip{position:absolute;z-index:4;pointer-events:none;background:var(--navy, #12203a);color:#fff;border-radius:10px;padding:7px 11px;box-shadow:var(--shadow-md, 0 8px 24px rgba(9, 20, 40, .28));display:grid;gap:1px;min-width:108px}.mouthTip b{font-size:13px}.mouthTip span{font-size:11px;opacity:.82}.mouthFallback{position:absolute;inset:0;display:grid;place-content:center;gap:8px;padding:12px;text-align:center}.mouthFallback svg{width:100%;max-width:440px;height:auto;border-radius:12px}.mouthFallback p{font-size:12px;color:var(--muted)}.crashScreen{min-height:60vh;display:grid;place-content:center;justify-items:center;gap:14px;padding:40px 24px;text-align:center;font-family:var(--font, system-ui, sans-serif)}.crashScreen h1{font-size:22px;color:var(--navy, #12203a)}.crashScreen p{max-width:520px;color:var(--muted, #6b7484);font-size:14px}.crashScreen button{border:0;border-radius:999px;padding:11px 26px;font-weight:800;background:var(--taupe, #a08a72);color:#fff;cursor:pointer}.btnPrimary.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.userBadge,.roleChip,.pinState{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:900}.userBadge b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#ffffff94;font-size:10px}.userBadge.compact{padding:6px 10px}.caseTags{display:flex;flex-wrap:wrap;gap:6px;margin:-3px 0 10px}.caseTags span{border-radius:999px;background:var(--soft);color:var(--muted);padding:4px 8px;font-size:11px;font-weight:800}.emptyState{grid-column:1 / -1;padding:48px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);text-align:center}.emptyState p{color:var(--muted);margin-top:6px}.authScreen{min-height:100vh;padding:28px;display:grid;place-items:center;background:radial-gradient(circle at 15% 10%,rgba(57,181,74,.16),transparent 28%),radial-gradient(circle at 85% 80%,rgba(168,135,98,.18),transparent 30%),var(--bg)}.authCard{width:min(980px,100%);background:#ffffffeb;border:1px solid rgba(221,229,225,.9);border-radius:30px;box-shadow:var(--shadow-lg);padding:28px}.authHead{max-width:640px;margin-bottom:24px}.authHead img{width:180px;margin-bottom:16px}.authHead h1{font-size:clamp(28px,4vw,46px);letter-spacing:-.05em;line-height:1;margin:6px 0 10px;color:var(--navy)}.authError{border-radius:14px;background:#fff1f1;color:var(--danger);border:1px solid #ffd3d3;padding:12px 14px;font-weight:800;margin-bottom:16px}.authGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.authUserCard{display:flex;align-items:center;gap:12px;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow-sm)}.authUserCard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.authUserCard.off{opacity:.5;cursor:not-allowed}.avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:1000;flex:0 0 auto}.avatar.sm{width:36px;height:36px;font-size:12px}.avatar.lg{width:72px;height:72px;font-size:20px;margin:0 auto}.authUserText{display:grid;gap:2px}.authUserText small{color:var(--muted);font-weight:800}.authPin,.authSetup{display:grid;gap:14px;max-width:520px}.authPin{text-align:center;margin:0 auto;justify-items:center}.authBack{color:var(--muted);background:transparent;font-weight:900;justify-self:start}.authPinInput{width:220px;text-align:center;letter-spacing:.3em;border:1px solid var(--line);border-radius:999px;padding:14px 18px;font-size:22px;font-weight:900}.wide{width:100%}.setupBadge{width:fit-content;border-radius:999px;background:#e9f8ec;color:#216d31;padding:6px 10px;font-size:12px;font-weight:1000}.roleDetail{border:1px solid var(--line);background:var(--soft);border-radius:18px;padding:16px}.teamWrap{max-width:1220px;margin:0 auto;padding:32px;display:grid;gap:18px}.teamPanel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm)}.teamPanelHead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.teamPanelHead h2{color:var(--navy);letter-spacing:-.03em}.teamCount{color:var(--muted);font-weight:800;font-size:13px}.teamColumns{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:18px}.teamTableWrap{overflow-x:auto}.teamTable{width:100%;border-collapse:collapse}.teamTable th{text-align:left;color:var(--muted);font-size:12px;padding:10px}.teamTable td{border-top:1px solid var(--line);padding:12px 10px;vertical-align:middle}.memberCell{display:flex;align-items:center;gap:11px}.memberCell small{display:block;color:var(--muted);margin-top:2px}.roleSelect,.teamTable input,.teamTable select{border:1px solid var(--line);border-radius:12px;padding:9px 10px;background:#fff}.pinState.set{background:#e9f8ec;color:#216d31}.pinState.none{background:#fff7e7;color:#91611d}.rowBtns,.teamEditBtns{display:flex;flex-wrap:wrap;gap:8px}.teamEdit,.teamAdd{display:grid;gap:12px}.teamEdit{grid-template-columns:repeat(4,minmax(160px,1fr)) auto;align-items:end}.grantList{display:grid;gap:8px;margin-top:12px;padding-left:0;list-style:none}.grantList li{border-radius:12px;background:var(--soft);padding:9px 11px;color:var(--text);font-weight:800;font-size:13px}.roleLegend{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.roleLegend article{border:1px solid var(--line);border-radius:16px;padding:14px;background:var(--soft)}.roleLegend p{color:var(--muted);margin-top:8px;font-size:13px}.stepBtn small{display:block;margin-top:2px;font-size:10px;opacity:.72}.stepBtn.view{opacity:.86}.stepBtn.none{opacity:.42;cursor:not-allowed}.lockBanner{margin-bottom:16px;border:1px solid var(--taupe);background:#fffaf3;border-radius:16px;padding:13px 15px;display:grid;gap:3px}.lockBanner span{color:var(--muted);font-size:13px}.field.locked span:after,.toggle.locked span:after{content:"  · read only";color:var(--muted);font-weight:700;font-size:11px}input:disabled,select:disabled,textarea:disabled{color:var(--muted);background:#f7f9f8;cursor:not-allowed}.approvalStamp{display:block;color:var(--muted);margin:8px 0 12px;font-weight:800}.activityTrail{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}.activityTrail h3{margin-bottom:10px}.activityList{display:grid;gap:9px}.activityList article{border:1px solid var(--line);border-radius:14px;padding:11px 13px;background:var(--soft)}.activityList span{display:block;color:var(--muted);font-size:11px;font-weight:900}.activityList p{color:var(--muted);font-size:13px;margin-top:3px}@media(max-width:900px){.teamColumns,.teamEdit{grid-template-columns:1fr}.dashHeader{align-items:flex-start;flex-direction:column}}body{background:linear-gradient(120deg,#fffaf1f0,#f0f6f1f5),radial-gradient(circle at 18% 0%,rgba(47,157,74,.18),transparent 30%),radial-gradient(circle at 88% 18%,rgba(198,163,111,.22),transparent 28%)}.dashboard,.workspace{min-height:100vh}.dashHeader,.wsHeader{background:#fffaf1d1;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-bottom:1px solid rgba(224,215,203,.72)}.dashBrand img,.wsHeader img{filter:drop-shadow(0 7px 18px rgba(17,28,51,.08))}.dashCrumb,.eyebrow{color:var(--deep-green);font-weight:1000;font-size:11px;letter-spacing:.16em;text-transform:uppercase}.dashHero{max-width:1240px;margin:24px auto 0;padding:30px;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:24px;border-radius:32px;background:linear-gradient(135deg,#111c33f5,#24395df0);color:#fff;box-shadow:0 28px 70px #111c332e;overflow:hidden;position:relative}.dashHero:after{content:"";position:absolute;width:360px;height:360px;right:-110px;top:-120px;border-radius:50%;background:radial-gradient(circle,rgba(198,163,111,.34),transparent 64%)}.dashHero>*{position:relative;z-index:1}.dashHero h2{max-width:760px;font-size:clamp(30px,4vw,54px);line-height:.98;letter-spacing:-.06em;margin:8px 0 14px}.dashHero p:not(.eyebrow){max-width:650px;color:#ffffffb8;font-size:16px}.dashStats{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:center}.dashStats div{border:1px solid rgba(255,255,255,.14);background:#ffffff14;border-radius:22px;padding:18px}.dashStats strong{display:block;font-size:34px;line-height:1;letter-spacing:-.05em}.dashStats span{display:block;margin-top:8px;color:#ffffffad;font-weight:800;font-size:12px}.casesGrid{max-width:1240px;grid-template-columns:repeat(auto-fill,minmax(330px,1fr))}.caseCard{border:1px solid rgba(224,215,203,.88);background:linear-gradient(180deg,#fff,#fffaf3);border-radius:28px;padding:22px}.caseCard h3{font-size:24px;letter-spacing:-.04em;color:var(--ink)}.caseId{background:var(--ink);color:#fff;border-radius:999px;padding:5px 11px;font-weight:1000;font-size:12px}.statusPill{padding:6px 11px}.progressBar{height:9px;background:#eee5d7}.progressFill{background:linear-gradient(90deg,var(--deep-green),var(--gold))}.wsHeader{padding:18px 30px}.wsTitle h1{font-size:28px;color:var(--ink)}.stepNav{max-width:1240px;margin:24px auto 0;padding:0 30px;display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.stepBtn{min-height:78px;border:1px solid var(--line);border-radius:18px;background:#ffffffb8;color:var(--muted);box-shadow:var(--shadow-sm);align-items:flex-start;padding:13px}.stepBtn.active{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-2px)}.stepBtn.done:not(.active){background:var(--mint);color:var(--deep-green);border-color:#2f9d4a40}.stepNum{background:#ffffffc7;color:var(--ink)}.stepBtn.active .stepNum{background:var(--gold);color:var(--ink)}.stepContent{max-width:1240px}.stepPanel,.panel,.identityCard,.publishCard,.approvalCard,.visitCard,.uploadZone,.teamPanel,.authCard{border:1px solid rgba(224,215,203,.9);background:#ffffffe0;box-shadow:0 18px 55px #111c3314}.stepHeader h2{font-size:32px;color:var(--ink);letter-spacing:-.05em}.field input,.field select,.field textarea,.copyInput,.treatmentTable input{border:1px solid #ded4c6;background:#fffdf9;border-radius:14px}.field input:focus,.field select:focus,.field textarea:focus,.copyInput:focus,.treatmentTable input:focus{outline:3px solid rgba(47,157,74,.16);border-color:var(--deep-green)}.btnPrimary{background:linear-gradient(135deg,var(--ink),var(--deep-green));box-shadow:0 12px 26px #176f3a38}.btnGhost{background:#ffffffc7}.uploadIcon{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:var(--ink);color:#fff;font-weight:1000;letter-spacing:.08em}.tvToolBtn{min-width:74px;font-size:12px;font-weight:900}.patientPublic{background:#f8f3ea}.patientShell{max-width:1160px}.patientHeader{border:1px solid rgba(224,215,203,.9);background:#ffffffe6;border-radius:24px;padding:18px 22px;margin-bottom:20px}.patientHero{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;border-radius:34px;padding:clamp(26px,5vw,54px);background:linear-gradient(130deg,#111c33f7,#176f3ae6),radial-gradient(circle at 82% 16%,rgba(198,163,111,.38),transparent 34%);color:#fff;box-shadow:0 32px 80px #111c332e;margin-bottom:24px}.patientHero h1{font-size:clamp(36px,7vw,76px);line-height:.92;letter-spacing:-.07em;margin:10px 0 16px}.patientHero p:not(.eyebrow){max-width:650px;color:#ffffffc2;font-size:17px}.patientHero aside{border:1px solid rgba(255,255,255,.18);background:#ffffff1a;border-radius:24px;padding:20px;align-self:stretch;display:grid;align-content:center;gap:7px}.patientHero aside span{color:#ffffff9e;font-size:12px;font-weight:900}.patientHero aside strong{display:block;font-size:22px;margin-bottom:10px}.patientHeroActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.patientHeroActions a,.patientHeroActions button{border-radius:999px;padding:12px 18px;font-weight:1000;background:#fff;color:var(--ink);border:0}.patientHeroActions button{background:#ffffff1f;color:#fff;box-shadow:inset 0 0 0 1px #ffffff38}.patientTop{grid-template-columns:.75fr 1.25fr}.centerTitle{color:var(--ink);letter-spacing:-.05em}.treatmentViewer{border:1px solid var(--line);border-radius:30px;padding:18px;background:#ffffffdb;box-shadow:var(--shadow)}.includedGrid article{border:1px solid var(--line);background:#fffdf9}.patientActions a{background:var(--ink)}@media(max-width:980px){.dashHero,.patientHero,.patientTop,.treatmentViewer{grid-template-columns:1fr}.stepNav{grid-template-columns:repeat(2,minmax(0,1fr))}.dashStats{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.authScreen,.casesGrid,.stepContent,.teamWrap{padding-left:16px;padding-right:16px}.dashHero{margin:16px;padding:22px}.dashStats{grid-template-columns:1fr}.stepNav{grid-template-columns:1fr;padding:0 16px}.patientHero{padding:24px;border-radius:24px}}:root{--green: #10b981;--deep-green: #059669;--primary: #0c5cab;--primary-2: #0a4a8a;--navy: #070b14;--navy-light: #101827;--blue: #3b82f6;--taupe: #c7a577;--taupe-dark: #8b6a42;--bg: #080b12;--surface: rgba(15, 23, 42, .82);--surface-solid: #0f172a;--surface-2: rgba(30, 41, 59, .72);--soft: rgba(148, 163, 184, .11);--line: rgba(148, 163, 184, .22);--line-strong: rgba(203, 213, 225, .34);--text: #f8fafc;--muted: #94a3b8;--muted-2: #cbd5e1;--danger: #ef4444;--warning: #f59e0b;--success: #10b981;--ink: #f8fafc;--ivory: #f8fafc;--gold: #c7a577;--mint: rgba(16, 185, 129, .14);--shadow-sm: 0 8px 24px rgba(0, 0, 0, .18);--shadow: 0 20px 60px rgba(0, 0, 0, .28);--shadow-lg: 0 34px 90px rgba(0, 0, 0, .42);--radius: 18px;--radius-sm: 12px;--font: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.38) transparent}body{background:radial-gradient(circle at 16% -10%,rgba(12,92,171,.35),transparent 32rem),radial-gradient(circle at 88% 8%,rgba(16,185,129,.2),transparent 28rem),linear-gradient(180deg,#080b12,#0b1220 48%,#090d16);color:var(--text);font-family:var(--font)}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(16,185,129,.36);outline-offset:3px}img{object-fit:contain}.btnPrimary,.btnGhost,.btnSmall{min-height:40px;border-radius:12px;font-weight:700;letter-spacing:-.01em}.btnPrimary{background:linear-gradient(135deg,var(--primary),var(--deep-green));color:#fff;box-shadow:0 14px 34px #0c5cab47}.btnPrimary:hover{box-shadow:0 18px 44px #10b98138}.btnGhost,.btnSmall{background:#0f172ac2;color:var(--muted-2);box-shadow:inset 0 0 0 1px var(--line)}.btnGhost:hover,.btnSmall:hover{background:#1e293beb;color:#fff}.btnSmall.danger,.iconDanger{color:#fecaca;background:#ef44441f;box-shadow:inset 0 0 0 1px #ef444447}.authScreen{background:radial-gradient(circle at 10% 10%,rgba(12,92,171,.34),transparent 28rem),radial-gradient(circle at 90% 78%,rgba(16,185,129,.2),transparent 28rem),#080b12}.authCard{background:linear-gradient(180deg,#0f172aeb,#020617e0);border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow-lg)}.authHead img{background:#ffffffeb;border-radius:14px;padding:10px 14px}.authHead h1{color:#fff;letter-spacing:-.055em}.authHead p,.authFoot,.authBlurb,.teamBlurb{color:var(--muted)}.authUserCard,.roleDetail{background:#0f172ab8;border:1px solid var(--line);color:var(--text)}.authUserCard:hover{border-color:#10b98173}.authPinInput,.authSetup .field input,.authSetup .field select,.teamAdd .field input,.teamAdd .field select,.teamEdit .field input,.teamEdit .field select{background:#02061794;color:var(--text);border:1px solid var(--line)}.grantList li{background:#94a3b81a;color:var(--muted-2)}.dashboard,.workspace{background:linear-gradient(90deg,rgba(2,6,23,.94) 0 86px,transparent 86px),radial-gradient(circle at 20% 0,rgba(12,92,171,.18),transparent 28rem)}.dashHeader,.wsHeader{position:sticky;top:0;z-index:30;min-height:76px;padding:14px 24px 14px 104px;background:#080b12c7;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.dashHeader:before,.wsHeader:before{content:"B";position:fixed;left:18px;top:16px;width:50px;height:50px;border-radius:16px;display:grid;place-items:center;color:#fff;font-size:23px;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--success));box-shadow:0 16px 36px #0c5cab61}.dashHeader:after,.wsHeader:after{content:"";position:fixed;left:0;top:0;bottom:0;width:86px;z-index:-1;background:linear-gradient(180deg,#050814,#0b1220);border-right:1px solid var(--line)}.dashBrand img{display:none}.dashBrand h1,.wsTitle h1{color:#fff;font-size:22px;letter-spacing:-.04em}.dashCrumb,.eyebrow,.crumb{color:var(--success)}.dashActions{gap:8px}.dbBadge,.notice,.userBadge{background:#0f172ab8!important;color:var(--muted-2)!important;border:1px solid var(--line)}.dbBadge.online{color:#a7f3d0!important;border-color:#10b9814d}.userBadge b{background:#10b98129;color:#a7f3d0}.dashHero{max-width:1360px;margin:24px auto 0;padding:28px;background:linear-gradient(135deg,#0f172af5,#0c5cab4d),#0f172ae0;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.dashHero h2{font-size:clamp(28px,4.3vw,58px);letter-spacing:-.065em;max-width:860px}.dashHero p:not(.eyebrow){color:var(--muted-2)}.dashStats div{background:#02061761;border:1px solid var(--line);border-radius:16px}.dashStats span{color:var(--muted)}.casesGrid{max-width:1360px;padding:24px 32px 56px 104px;gap:16px}.caseCard{background:linear-gradient(180deg,#0f172ae0,#0f172aa3);border:1px solid var(--line);color:var(--text);border-radius:18px;box-shadow:var(--shadow-sm)}.caseCard:hover{border-color:#10b9816b;transform:translateY(-2px)}.caseCard h3{color:#fff;font-size:22px}.caseTags span{background:#94a3b81a;border:1px solid rgba(148,163,184,.14)}.caseId{background:#0c5cab2e;border:1px solid rgba(96,165,250,.34);color:#bfdbfe}.statusPill{background:#94a3b81f;color:var(--muted-2);border:1px solid rgba(148,163,184,.16)}.statusPill.published{background:#10b98121;color:#a7f3d0;border-color:#10b9813d}.statusPill.approved{background:#3b82f621;color:#bfdbfe}.progressBar{background:#94a3b829}.progressFill{background:linear-gradient(90deg,var(--primary),var(--success))}.emptyState{background:#0f172ad1;border:1px solid var(--line);color:#fff}.emptyState p{color:var(--muted)}.wsHeader{padding-left:104px}.wsTitle .crumb{font-weight:700}.wsActions .notice{color:#fff!important}.stepNav{max-width:1360px;padding:24px 32px 0 104px;grid-template-columns:repeat(6,minmax(120px,1fr))}.stepBtn{background:#0f172abd;border:1px solid var(--line);color:var(--muted-2);border-radius:16px;min-height:82px;box-shadow:none}.stepBtn:hover{border-color:#10b98159;background:#1e293bcc}.stepBtn.active{background:linear-gradient(135deg,#0c5cabeb,#10b98199);border-color:#10b9817a;color:#fff}.stepBtn.done:not(.active){background:#10b9811f;color:#a7f3d0;border-color:#10b98133}.stepNum{background:#02061794;color:#fff;border:1px solid var(--line)}.stepBtn.active .stepNum{background:#ffffff29;color:#fff;border-color:#ffffff47}.stepContent{max-width:1360px;padding:24px 32px 32px 104px}.stepPanel,.panel,.identityCard,.publishCard,.approvalCard,.visitCard,.uploadZone,.teamPanel{background:linear-gradient(180deg,#0f172ae0,#0f172aad);border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow-sm)}.stepHeader h2,.teamPanelHead h2,.publishCard h3,.approvalCard h3,.visitCard h3,.panel h3,.identityCard h2{color:#fff}.field span{color:var(--muted-2)}.field input,.field select,.field textarea,.copyInput,.treatmentTable input,.teamTable input,.teamTable select,.roleSelect{background:#02061785;color:#fff;border:1px solid var(--line)}.field input:focus,.field select:focus,.field textarea:focus,.copyInput:focus,.treatmentTable input:focus{outline:3px solid rgba(16,185,129,.22);border-color:#10b9819e}input:disabled,select:disabled,textarea:disabled{background:#0f172a6b;color:#64748b}.uploadZone{min-height:220px;align-items:flex-start;text-align:left}.uploadIcon{background:linear-gradient(135deg,var(--primary),var(--success))}.treatmentTable th,.patientTable th,.teamTable th{color:var(--muted)}.treatmentTable td,.patientTable td,.teamTable td{border-color:var(--line);color:var(--muted-2)}.financeBar,.totalCard,.approvalNote,.lockBanner,.activityList article{background:#02061766;border:1px solid var(--line);color:var(--muted-2)}.totalCard strong{color:#fff}.approvalCard.approved{border-color:#10b98170;background:linear-gradient(180deg,#10b98129,#0f172ac2)}.approvalIcon{background:#10b9811f;color:#a7f3d0}.stepFooter{background:#080b12d6;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.dentalChart,.modelBox,.tvModelBox,.tvVideoPlaceholder{background:#0206176b;border:1px solid var(--line)}.legend span,.mouthLegend span,.tooth strong{color:var(--muted-2)}.toothShape{box-shadow:inset 0 0 0 1px #02061747}.teamWrap{max-width:1360px;padding:28px 32px 56px 104px}.teamTableWrap{border:1px solid var(--line);border-radius:14px}.teamTable tr:hover td{background:#94a3b80f}.roleLegend article{background:#02061761;border-color:var(--line)}.pinState.set{background:#10b98124;color:#a7f3d0;border:1px solid rgba(16,185,129,.24)}.pinState.none{background:#f59e0b1f;color:#fde68a;border:1px solid rgba(245,158,11,.22)}.patientPublic{background:radial-gradient(circle at 18% -8%,rgba(12,92,171,.22),transparent 30rem),linear-gradient(180deg,#080b12,#0b1220 48%,#f4f7fb 48%);color:#0f172a}.patientShell{max-width:1240px;padding:24px}.patientHeader{background:#0f172ad6;color:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.patientHeader img{background:#fffffff5;border-radius:12px;padding:8px 12px}.patientHeader span{color:#a7f3d0}.patientHero{background:linear-gradient(135deg,#0c5cabf5,#080b12f0),radial-gradient(circle at 88% 12%,rgba(16,185,129,.28),transparent 22rem);border:1px solid rgba(255,255,255,.12);border-radius:24px;box-shadow:var(--shadow-lg)}.patientHero h1{color:#fff}.patientHero p:not(.eyebrow){color:#dbeafe}.patientHero aside{background:#02061759;border-color:#ffffff29}.patientTop,.includedGrid,.fileGrid{gap:16px}.patientPublic .panel,.patientPublic .identityCard,.patientPublic .treatmentViewer,.patientPublic .includedGrid article{background:#fff;color:#0f172a;border:1px solid #e2e8f0;box-shadow:0 18px 50px #0f172a14}.patientPublic .centerTitle{color:#f8fafc;text-shadow:0 1px 18px rgba(0,0,0,.22)}.patientPublic .patientTable th{color:#475569;background:#f8fafc}.patientPublic .patientTable td{color:#0f172a;border-color:#e2e8f0}.patientPublic .dentalChart,.patientPublic .tvModelBox,.patientPublic .tvVideoPlaceholder{background:#f8fafc;border-color:#e2e8f0}.patientPublic .tooth strong,.patientPublic .legend span{color:#475569}.patientPublic .tvRight,.patientPublic .tvVideoSection{background:#fff;color:#0f172a}.patientPublic .tvSequenceItem{background:#f8fafc;border-color:#e2e8f0}.patientPublic .tvSequenceItem.active{background:#e8f7ec;border-color:#10b98159}.patientPublic .tvStepDetail,.patientPublic .tvSequenceItem small,.patientPublic .kicker,.patientPublic .empty{color:#64748b}.patientActions a{background:linear-gradient(135deg,var(--primary),var(--success))}@media(max-width:1180px){.stepNav{grid-template-columns:repeat(3,1fr)}.dashHero{grid-template-columns:1fr}}@media(max-width:900px){.dashboard,.workspace{background:#080b12}.dashHeader,.wsHeader{padding:14px 16px}.dashHeader:before,.dashHeader:after,.wsHeader:before,.wsHeader:after{display:none}.dashBrand,.wsHeader{align-items:flex-start}.dashActions,.wsActions{width:100%;justify-content:flex-start}.dashHero,.casesGrid,.stepNav,.stepContent,.teamWrap{padding-left:16px;padding-right:16px}.casesGrid,.teamColumns,.patientHero,.patientTop,.treatmentViewer{grid-template-columns:1fr}.patientShell{padding:16px}}@media(max-width:640px){.dashHero{margin:16px}.dashStats{grid-template-columns:1fr 1fr}.stepNav{grid-template-columns:1fr}.stepFooter{position:static;flex-direction:column;align-items:stretch}.formGrid,.financeGrid,.publishGrid,.approvalGrid,.uploadGrid{grid-template-columns:1fr}.patientHeader{flex-direction:column;align-items:flex-start}.patientHero h1{font-size:42px}}@media(max-width:420px){.dashStats{grid-template-columns:1fr}.authCard,.stepPanel,.caseCard,.teamPanel{border-radius:14px}}:root{--brand-green: #66cc00;--brand-green-dark: #4ea800;--brand-navy: #2e3c54;--brand-navy-dark: #1a2f47;--brand-bluegrey: #e1e8ed;--brand-soft: #f2f5f7;--brand-page: #fafbfc;--brand-white: #ffffff;--green: var(--brand-green);--deep-green: var(--brand-green-dark);--primary: var(--brand-navy);--primary-2: var(--brand-navy-dark);--navy: var(--brand-navy);--navy-light: #3d4f6b;--blue: #4c7ca8;--taupe: #c7a66f;--taupe-dark: #8b6b3f;--bg: var(--brand-page);--surface: var(--brand-white);--surface-solid: var(--brand-white);--surface-2: #f7fafb;--soft: var(--brand-soft);--line: #dbe4ea;--line-strong: #c9d5de;--text: #1a2f47;--muted: #65758a;--muted-2: #46566b;--danger: #d94b4b;--warning: #e59b1f;--success: var(--brand-green);--ink: var(--brand-navy-dark);--ivory: #ffffff;--gold: #c7a66f;--mint: #eefbe8;--shadow-sm: 0 4px 14px rgba(26, 47, 71, .06);--shadow: 0 14px 40px rgba(26, 47, 71, .1);--shadow-lg: 0 28px 70px rgba(26, 47, 71, .16);--radius: 18px;--radius-sm: 12px;--font: "Montserrat", "Outfit", ui-sans-serif, system-ui, sans-serif;--display: "Bodoni Moda", Georgia, serif}body{background:radial-gradient(circle at 0% 0%,rgba(102,204,0,.12),transparent 30rem),linear-gradient(180deg,#fff,#fafbfc 36%,#f2f5f7);color:var(--text);font-family:var(--font)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(102,204,0,.32);outline-offset:3px}.dashboard,.workspace{min-height:100vh;background:linear-gradient(90deg,#ffffff 0 84px,transparent 84px),radial-gradient(circle at 14% 0%,rgba(102,204,0,.1),transparent 28rem),var(--brand-page)}.dashHeader,.wsHeader{min-height:82px;padding:16px 28px 16px 112px;background:#ffffffeb;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 1px #1a2f4708}.dashHeader:after,.wsHeader:after{content:"";position:fixed;left:0;top:0;bottom:0;width:84px;z-index:-1;background:#fff;border-right:1px solid var(--line)}.dashHeader:before,.wsHeader:before{display:none}.dashBrand img{display:block;width:156px;padding:0;background:transparent;filter:none}.dashBrand h1,.wsTitle h1{color:var(--brand-navy-dark);font-family:var(--display);font-size:28px;letter-spacing:-.04em;line-height:1.05}.dashCrumb,.eyebrow,.crumb{color:var(--brand-green-dark);letter-spacing:.15em;font-weight:800}.dashHeader::marker,.wsHeader::marker{display:none}.dashHeader>.dashBrand:before,.wsHeader>.btnGhost:before{content:"";position:fixed;left:18px;top:20px;width:48px;height:48px;border-radius:15px;background:url(https://beauticaclinic.net/wp-content/uploads/2026/08/cropped-BeauticaClinic-192x192.png) center/cover no-repeat #fff;box-shadow:0 10px 24px #2e3c541a}.dbBadge,.notice,.userBadge{background:#fff!important;color:var(--brand-navy)!important;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.dbBadge.online{background:var(--mint)!important;color:#347a00!important;border-color:#66cc0047}.userBadge b{background:var(--mint);color:#347a00}.btnPrimary,.btnGhost,.btnSmall{min-height:42px;border-radius:999px;font-weight:800;letter-spacing:-.01em}.btnPrimary{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-dark));color:#fff;box-shadow:0 12px 28px #66cc0038}.btnPrimary:hover{box-shadow:0 16px 36px #66cc004d}.btnGhost,.btnSmall{background:#fff;color:var(--brand-navy);box-shadow:inset 0 0 0 1px var(--line)}.btnGhost:hover,.btnSmall:hover{background:var(--brand-soft);color:var(--brand-navy-dark)}.btnSmall.danger,.iconDanger{background:#fff1f1;color:var(--danger);box-shadow:inset 0 0 0 1px #ffd3d3}.dashHero{max-width:1320px;margin:26px auto 0;padding:34px;border-radius:28px;color:#fff;background:linear-gradient(135deg,#1a2f47fa,#2e3c54f0),radial-gradient(circle at 88% 14%,rgba(102,204,0,.34),transparent 24rem);border:1px solid rgba(255,255,255,.16);box-shadow:var(--shadow-lg)}.dashHero h2{max-width:850px;color:#fff;font-family:var(--display);font-size:clamp(34px,4.5vw,62px);letter-spacing:-.06em;line-height:.95}.dashHero p:not(.eyebrow){color:#ffffffc2}.dashStats div{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:20px}.dashStats strong{color:#fff}.dashStats span{color:#ffffffb8}.casesGrid{max-width:1320px;padding:28px 32px 64px 112px;gap:18px}.caseCard{background:#fff;border:1px solid var(--line);border-radius:24px;color:var(--text);box-shadow:var(--shadow-sm)}.caseCard:hover{border-color:#66cc0075;box-shadow:var(--shadow)}.caseCard h3{color:var(--brand-navy-dark);font-family:var(--display);font-size:26px}.caseMeta,.progressLabel,.caseTags span{color:var(--muted)}.caseTags span{background:var(--brand-soft);border:1px solid var(--line)}.caseId{background:#eefbe8;color:#347a00;border:1px solid rgba(102,204,0,.24)}.statusPill{background:var(--brand-soft);color:var(--muted-2);border:1px solid var(--line)}.statusPill.published{background:#eefbe8;color:#347a00;border-color:#66cc004d}.statusPill.approved{background:#eef4ff;color:var(--brand-navy)}.progressBar{background:#e9eef2}.progressFill{background:linear-gradient(90deg,var(--brand-green),var(--brand-navy))}.emptyState{background:#fff;color:var(--brand-navy-dark);border:1px solid var(--line)}.wsTitle .crumb{color:var(--brand-green-dark)}.stepNav{max-width:1320px;padding:24px 32px 0 112px}.stepBtn{background:#fff;border:1px solid var(--line);color:var(--muted-2);border-radius:18px;box-shadow:var(--shadow-sm)}.stepBtn:hover{border-color:#66cc006b;background:#fbfefa}.stepBtn.active{background:linear-gradient(135deg,var(--brand-navy),var(--brand-navy-dark));border-color:var(--brand-navy-dark);color:#fff}.stepBtn.done:not(.active){background:var(--mint);color:#347a00;border-color:#66cc004d}.stepNum{background:var(--brand-soft);color:var(--brand-navy);border:1px solid var(--line)}.stepBtn.active .stepNum{background:var(--brand-green);color:#fff;border-color:var(--brand-green)}.stepContent{max-width:1320px;padding:24px 32px 32px 112px}.stepPanel,.panel,.identityCard,.publishCard,.approvalCard,.visitCard,.uploadZone,.teamPanel{background:#fff;border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow-sm);border-radius:24px}.stepHeader h2,.teamPanelHead h2,.publishCard h3,.approvalCard h3,.visitCard h3,.panel h3,.identityCard h2{color:var(--brand-navy-dark);font-family:var(--display);letter-spacing:-.04em}.stepHeader p,.empty,.kicker,.visitSubtotal{color:var(--muted)}.field span{color:var(--brand-navy)}.field input,.field select,.field textarea,.copyInput,.treatmentTable input,.teamTable input,.teamTable select,.roleSelect{background:#fff;color:var(--brand-navy-dark);border:1px solid var(--line-strong);border-radius:14px}.field input:focus,.field select:focus,.field textarea:focus,.copyInput:focus,.treatmentTable input:focus{outline:3px solid rgba(102,204,0,.2);border-color:var(--brand-green)}input:disabled,select:disabled,textarea:disabled{background:#f7fafb;color:#8492a5}.uploadIcon{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-dark));color:#fff}.treatmentTable th,.patientTable th,.teamTable th{color:var(--brand-navy);background:var(--brand-soft)}.treatmentTable td,.patientTable td,.teamTable td{color:var(--brand-navy-dark);border-color:var(--line)}.financeBar,.totalCard,.approvalNote,.lockBanner,.activityList article{background:var(--brand-soft);border:1px solid var(--line);color:var(--brand-navy)}.totalCard strong{color:var(--brand-navy-dark)}.approvalCard.approved{border-color:#66cc006b;background:linear-gradient(180deg,#fff,#f5fff0)}.approvalIcon{background:var(--mint);color:#347a00}.activityList p,.activityList span,.approvalStamp{color:var(--muted)}.stepFooter{background:#fffffff0;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.dentalChart,.modelBox,.tvModelBox,.tvVideoPlaceholder{background:#fbfcfd;border:1px solid var(--line)}.legend span,.mouthLegend span,.tooth strong{color:var(--brand-navy)}.authScreen{background:radial-gradient(circle at 0 0,rgba(102,204,0,.16),transparent 28rem),var(--brand-page)}.authCard{background:#fff;color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-lg)}.authHead img{background:transparent;border-radius:0;padding:0}.authHead h1{color:var(--brand-navy-dark);font-family:var(--display)}.authUserCard,.roleDetail{background:#fff;border:1px solid var(--line);color:var(--text)}.authUserCard:hover{border-color:#66cc007a}.authPinInput,.authSetup .field input,.authSetup .field select,.teamAdd .field input,.teamAdd .field select,.teamEdit .field input,.teamEdit .field select{background:#fff;color:var(--brand-navy-dark);border:1px solid var(--line)}.teamWrap{max-width:1320px;padding:28px 32px 56px 112px}.teamTableWrap{border:1px solid var(--line);border-radius:16px}.teamTable tr:hover td{background:#fbfefa}.memberCell small,.teamCount,.roleLegend p{color:var(--muted)}.roleLegend article{background:var(--brand-soft);border-color:var(--line)}.pinState.set{background:var(--mint);color:#347a00;border:1px solid rgba(102,204,0,.24)}.pinState.none{background:#fff8e8;color:#8a5b00;border:1px solid #ffe1a8}.patientPublic{background:radial-gradient(circle at 0% 0%,rgba(102,204,0,.12),transparent 30rem),linear-gradient(180deg,#fff,#fafbfc,#f2f5f7);color:var(--brand-navy-dark)}.patientShell{max-width:1180px;padding:24px}.patientHeader{background:#fff;color:var(--brand-navy-dark);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.patientHeader img{background:transparent;border-radius:0;padding:0;width:160px}.patientHeader span{color:var(--brand-green-dark)}.patientHero{color:#fff;background:linear-gradient(135deg,#1a2f47fa,#2e3c54f2),radial-gradient(circle at 85% 12%,rgba(102,204,0,.36),transparent 22rem);border:1px solid rgba(255,255,255,.14);border-radius:30px;box-shadow:var(--shadow-lg)}.patientHero h1{color:#fff;font-family:var(--display)}.patientHero p:not(.eyebrow){color:#ffffffc2}.patientHero aside{background:#ffffff1a;border-color:#ffffff2e}.patientPublic .panel,.patientPublic .identityCard,.patientPublic .treatmentViewer,.patientPublic .includedGrid article{background:#fff;color:var(--brand-navy-dark);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.patientPublic .centerTitle{color:var(--brand-navy-dark);text-shadow:none;font-family:var(--display)}.patientPublic .patientTable th{color:var(--brand-navy);background:var(--brand-soft)}.patientPublic .patientTable td{color:var(--brand-navy-dark);border-color:var(--line)}.patientPublic .dentalChart,.patientPublic .tvModelBox,.patientPublic .tvVideoPlaceholder{background:#fbfcfd;border-color:var(--line)}.patientPublic .tooth strong,.patientPublic .legend span{color:var(--brand-navy)}.patientPublic .tvRight,.patientPublic .tvVideoSection{background:#fff;color:var(--brand-navy-dark)}.patientPublic .tvSequenceItem{background:var(--brand-soft);border-color:var(--line)}.patientPublic .tvSequenceItem.active{background:var(--mint);border-color:#66cc0059}.patientPublic .tvStepDetail,.patientPublic .tvSequenceItem small,.patientPublic .kicker,.patientPublic .empty{color:var(--muted)}.patientActions a{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-dark))}@media(max-width:900px){.dashboard,.workspace{background:var(--brand-page)}.dashHeader,.wsHeader{padding:14px 16px}.dashHeader:after,.wsHeader:after,.dashHeader>.dashBrand:before,.wsHeader>.btnGhost:before{display:none}.dashBrand img{width:140px}.dashHero,.casesGrid,.stepNav,.stepContent,.teamWrap{padding-left:16px;padding-right:16px}.casesGrid,.teamColumns,.patientHero,.patientTop,.treatmentViewer{grid-template-columns:1fr}}@media(max-width:640px){.dashHero{margin:16px;padding:24px}.dashStats{grid-template-columns:1fr 1fr}.stepNav{grid-template-columns:1fr}.stepFooter{position:static;flex-direction:column;align-items:stretch}.formGrid,.financeGrid,.publishGrid,.approvalGrid,.uploadGrid{grid-template-columns:1fr}.patientHeader{flex-direction:column;align-items:flex-start}.patientHero h1{font-size:42px}}.sideNav{position:fixed;inset:0 auto 0 0;z-index:60;width:96px;padding:18px 12px;display:grid;grid-template-rows:auto 1fr auto;justify-items:center;gap:18px;background:#fffffff5;border-right:1px solid var(--line);box-shadow:10px 0 32px #1a2f470f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.sideBrand{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:#fff;box-shadow:var(--shadow-sm);border:1px solid var(--line)}.sideBrand img{width:44px;height:44px;object-fit:contain}.sideNavItems{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.sideBtn{position:relative;width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:#fff;color:var(--brand-navy);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.sideBtn:hover{background:var(--brand-soft);border-color:#66cc006b;color:var(--brand-navy-dark)}.sideBtn.active{background:var(--brand-navy);color:#fff;border-color:var(--brand-navy)}.sideBtn.primary{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-dark));color:#fff;border-color:var(--brand-green)}.sideBtn:disabled{opacity:.42;cursor:not-allowed}.sideBtn:after{content:attr(title);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%) translate(-4px);white-space:nowrap;background:var(--brand-navy-dark);color:#fff;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;opacity:0;pointer-events:none;transition:.16s ease;box-shadow:var(--shadow)}.sideBtn:hover:after,.sideBtn:focus-visible:after{opacity:1;transform:translateY(-50%) translate(0)}.uiIcon{width:22px;height:22px}.stepSide{grid-template-columns:1fr;gap:1px;font-weight:900}.stepSide span{font-size:10px;line-height:1}.stepSide.edit:not(.active){color:#347a00;background:var(--mint);border-color:#66cc0047}.stepSide.view:not(.active){color:var(--brand-navy)}.sideDivider{width:42px;height:1px;background:var(--line);margin:4px 0}.sideUser{display:grid;justify-items:center;gap:10px}.sideUser>span{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:1000;border:1px solid var(--line)}.dashHeader,.wsHeader{padding-left:124px}.dashHeader:after,.wsHeader:after,.dashHeader>.dashBrand:before,.wsHeader>.btnGhost:before{display:none!important}.dashHeader:before,.wsHeader:before{display:none!important}.casesGrid,.stepNav,.stepContent,.teamWrap{padding-left:124px}.wsHeader .btnGhost:first-child,.dashActions .btnGhost,.dashActions .btnPrimary{display:none}@media(max-width:900px){.sideNav{inset:auto 0 0;width:auto;height:74px;padding:8px 10px;grid-template-columns:auto 1fr auto;grid-template-rows:1fr;border-right:0;border-top:1px solid var(--line);box-shadow:0 -10px 32px #1a2f4714}.sideBrand{width:50px;height:50px;border-radius:16px}.sideBrand img{width:34px;height:34px}.sideNavItems{flex-direction:row;justify-content:center;overflow-x:auto;gap:8px}.sideBtn{width:50px;height:50px;border-radius:16px;flex:0 0 auto}.sideBtn:after{display:none}.sideDivider{width:1px;height:38px;margin:0 3px}.sideUser{grid-auto-flow:column;align-items:center}.sideUser>span{width:38px;height:38px;font-size:12px}.dashHeader,.wsHeader{padding-left:16px}.casesGrid,.stepNav,.stepContent,.teamWrap{padding-left:16px;padding-bottom:96px}}.dashTop{max-width:1320px;margin:0 auto;padding:34px 32px 0 124px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.dashTop h2{font-family:var(--display);font-size:clamp(34px,5vw,54px);line-height:1;letter-spacing:-.05em;color:var(--brand-navy-dark);margin-top:8px}.dashTopMeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.statCards{max-width:1320px;margin:22px auto 0;padding:0 32px 0 124px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.statCards div{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;display:grid;gap:6px;box-shadow:var(--shadow-sm)}.statCards strong{font-family:var(--display);font-size:40px;line-height:1;color:var(--brand-navy-dark)}.statCards span{color:var(--muted);font-size:13px;font-weight:700}.wsTop{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px}.wsTopTitle{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wsTopTitle h2{font-family:var(--display);font-size:clamp(26px,3.5vw,40px);letter-spacing:-.04em;color:var(--brand-navy-dark)}.wsTopMeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}@media(max-width:900px){.dashTop{padding:22px 16px 0}.statCards{padding:0 16px;grid-template-columns:1fr 1fr}}@media(max-width:560px){.statCards{grid-template-columns:1fr}.statCards strong{font-size:32px}}.patientPublic,.patientPreview{min-height:100vh;background:radial-gradient(circle at 0% 0%,rgba(102,204,0,.1),transparent 34rem),linear-gradient(180deg,#fff,#fafbfc 40%,#f2f5f7);color:var(--brand-navy-dark)}.patientPreview{padding:24px 32px}.patientShell{max-width:1080px;margin:0 auto;padding:22px 20px 40px}.ppBar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin-bottom:22px;background:#ffffffeb;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.ppBar img{width:132px;display:block}.ppBarMeta{display:grid;gap:2px;text-align:center}.ppBarMeta span{color:var(--brand-green-dark);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.16em}.ppBarMeta strong{font-size:14px;color:var(--brand-navy-dark);letter-spacing:.04em}.ppBarRight{display:flex;align-items:center;gap:10px}.ppVersion{font-size:12px;font-weight:800;color:var(--brand-navy);background:var(--brand-soft);border:1px solid var(--line);border-radius:999px;padding:7px 12px}.ppHero{display:grid;grid-template-columns:1.5fr .9fr;gap:22px;align-items:stretch;padding:38px;border-radius:30px;color:#fff;background:linear-gradient(135deg,#1a2f47fa,#2e3c54f0),radial-gradient(circle at 88% 10%,rgba(102,204,0,.4),transparent 24rem);border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-lg)}.ppHeroMain{min-width:0}.ppHero .eyebrow{color:#a6e56a}.ppHero h1{color:#fff;font-family:var(--display);font-size:clamp(34px,6vw,60px);line-height:.98;letter-spacing:-.05em;margin:10px 0 14px}.ppGoals{color:#ffffffc7;font-size:16px;line-height:1.6;max-width:560px}.ppFacts{display:grid;gap:10px;align-content:center}.ppFacts div{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:16px;padding:14px 16px}.ppFacts span{display:block;color:#ffffffad;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.1em}.ppFacts strong{display:block;margin-top:4px;font-size:20px;color:#fff;word-break:break-word}.patientHeroActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.patientHeroActions a,.patientHeroActions button{display:inline-flex;align-items:center;border-radius:999px;padding:11px 20px;font-weight:800;font-size:14px;cursor:pointer}.patientHeroActions a{background:linear-gradient(135deg,var(--brand-green),var(--brand-green-dark));color:#fff}.patientHeroActions button{background:#ffffff1f;color:#fff;box-shadow:inset 0 0 0 1px #ffffff3d}.patientTop{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px;margin-top:22px}.ppCard{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow-sm);min-width:0}.ppCard h2,.ppCard h3{color:var(--brand-navy-dark);font-family:var(--display);letter-spacing:-.03em}.ppCard h2{margin:0 0 16px;font-size:24px}.ppCard h3{margin:0;font-size:20px}.ppCard .kicker{color:var(--muted);font-size:13px;margin:4px 0 14px}.patientPublic .identityCard,.patientPreview .identityCard{background:linear-gradient(140deg,var(--brand-navy-dark),var(--brand-navy));border-color:transparent}.patientPublic .identityCard h2,.patientPreview .identityCard h2{color:#fff}.ppInfoGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ppInfoGrid .info{width:100%;border-bottom:0;padding:0}.ppInfoGrid .info span{color:#ffffffa8;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.ppInfoGrid .info strong{display:block;color:#fff;font-size:17px;margin-top:3px;word-break:break-word}.ppSection{margin-top:34px}.ppSectionHead{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}.ppSectionHead>span{flex:0 0 auto;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--mint);border:1px solid rgba(102,204,0,.3);color:#347a00;font-weight:900;font-size:14px}.ppSectionHead h2{font-family:var(--display);font-size:clamp(22px,3vw,30px);letter-spacing:-.04em;color:var(--brand-navy-dark);margin:0;line-height:1.1}.ppSectionHead p{margin:4px 0 0;color:var(--muted);font-size:14px}.ppVisitList{display:grid;gap:16px}.ppVisit{padding:0;overflow:hidden}.ppVisitHead{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:var(--brand-soft);border-bottom:1px solid var(--line)}.ppVisitHead h3{font-size:19px;margin:0}.ppVisitHead span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:#347a00;background:var(--mint);border:1px solid rgba(102,204,0,.28);border-radius:999px;padding:5px 11px;white-space:nowrap}.ppTableWrap{overflow-x:auto}.ppCard .patientTable{width:100%;border-collapse:collapse}.ppCard .patientTable th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--brand-navy);background:#fff;padding:14px 22px 8px;border-bottom:1px solid var(--line)}.ppCard .patientTable td{padding:14px 22px;border-top:1px solid var(--line);color:var(--brand-navy-dark);font-size:15px;vertical-align:top}.ppCard .patientTable tbody tr:first-child td{border-top:0}.ppCard .patientTable tr:hover td{background:#fbfefa}.numCol{text-align:right!important;width:72px;white-space:nowrap}.patientPublic .includedGrid,.patientPreview .includedGrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.includedGrid article{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm);padding:22px 16px;text-align:center;display:grid;align-content:start;justify-items:center}.includedGrid h3{color:var(--brand-navy-dark);font-size:14px;line-height:1.35;margin:14px 0 6px}.includedGrid p{color:var(--muted);font-size:12px;line-height:1.5}.lineIcon{width:46px;height:46px;border:2px solid var(--brand-green);border-radius:50%;background:var(--mint);position:relative;margin:0}.lineIcon:after{content:"";position:absolute;left:14px;top:11px;width:12px;height:20px;border:solid #347a00;border-width:0 3px 3px 0;transform:rotate(45deg)}.patientActions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:34px 0 26px}.patientActions a{display:inline-flex;align-items:center;border-radius:999px;padding:13px 24px;font-weight:800;background:var(--brand-navy);color:#fff}.patientActions .btnPrimary{padding:13px 24px}.ppFooter{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 22px;background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-sm)}.ppFooter img{width:116px}.ppFooter>div{display:grid;gap:2px}.ppFooter strong{color:var(--brand-navy-dark);font-size:14px}.ppFooter span{color:var(--muted);font-size:12px}.ppFooterCase{margin-left:auto;font-weight:800;color:var(--brand-navy)!important}.ppCard .dentalChart{background:#fbfcfd;border:1px solid var(--line);border-radius:18px}@media(max-width:900px){.ppHero{grid-template-columns:1fr;padding:28px}.patientTop{grid-template-columns:1fr}}@media(max-width:640px){.patientShell{padding:14px 14px 32px}.ppBar{flex-wrap:wrap;padding:12px 14px;gap:10px}.ppBarMeta{text-align:left}.ppBarRight{width:100%;justify-content:space-between}.ppBarRight .btnPrimary{flex:1;justify-content:center}.ppHero{padding:22px;border-radius:22px}.ppCard{padding:18px;border-radius:18px}.ppInfoGrid{grid-template-columns:1fr}.ppVisitHead{padding:14px 16px}.ppSectionHead>span{width:36px;height:36px;border-radius:12px;font-size:12px}.patientActions{flex-direction:column}.patientActions a,.patientActions .btnPrimary{width:100%;justify-content:center}.ppFooterCase{margin-left:0}.ppCard .patientTable thead{display:none}.ppCard .patientTable,.ppCard .patientTable tbody,.ppCard .patientTable tr,.ppCard .patientTable td{display:block;width:100%}.ppCard .patientTable tr{border-top:1px solid var(--line);padding:12px 0}.ppCard .patientTable tr:first-child{border-top:0}.ppCard .patientTable td{border:0;padding:5px 16px;display:flex;gap:10px;justify-content:space-between;align-items:flex-start;text-align:right}.ppCard .patientTable td:before{content:attr(data-label);flex:0 0 auto;text-align:left;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.ppCard .patientTable td:not([data-label]){display:none}.numCol{width:auto}}@page{size:A4;margin:14mm}@media print{.patientPublic,.patientPreview{background:#fff!important;padding:0!important;min-height:auto}.patientShell{max-width:none;padding:0}.screenOnly{display:none!important}.ppBar{position:static;box-shadow:none;border:0;border-bottom:2px solid var(--brand-navy-dark);border-radius:0;padding:0 0 10px;margin-bottom:16px;-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}.ppHero{color:var(--brand-navy-dark);background:#fff!important;border:1px solid var(--line);box-shadow:none;border-radius:14px;padding:18px;gap:16px}.ppHero h1,.ppFacts strong{color:var(--brand-navy-dark)}.ppHero .eyebrow{color:var(--brand-green-dark)}.ppGoals{color:var(--muted)}.ppFacts div{background:var(--brand-soft);border-color:var(--line)}.ppFacts span{color:var(--muted)}.ppHero .patientHeroActions{display:none!important}.patientTop{grid-template-columns:1fr 1.2fr;gap:12px;margin-top:14px}.ppCard{box-shadow:none;border:1px solid var(--line);border-radius:12px;padding:14px;break-inside:avoid}.identityCard{background:#fff!important;border:1px solid var(--line)}.identityCard h2{color:var(--brand-navy-dark)}.ppInfoGrid .info span{color:var(--muted)}.ppInfoGrid .info strong{color:var(--brand-navy-dark)}.ppSection{margin-top:18px;break-inside:auto}.ppSectionHead{break-after:avoid;margin-bottom:8px}.ppSectionHead>span{width:30px;height:30px;border-radius:8px;font-size:11px}.ppSectionHead h2{font-size:18px}.ppSectionHead p{display:none}.ppVisit{break-inside:avoid;padding:0}.ppVisitHead{padding:10px 14px;background:var(--brand-soft)}.ppVisitHead h3{font-size:15px}.ppCard .patientTable th,.ppCard .patientTable td{padding:8px 14px;font-size:12px}.ppCard .patientTable thead{display:table-header-group}.ppCard .patientTable tr{break-inside:avoid}.ppCard .patientTable tr:hover td{background:transparent}.dentalChart,.toothShape,.legend span,.includedGrid article,.ppFacts div{-webkit-print-color-adjust:exact;print-color-adjust:exact}.dentalChart{break-inside:avoid}.treatmentViewer{break-inside:avoid;grid-template-columns:1fr;box-shadow:none}.tvModelBox{min-height:300px}.includedGrid article{break-inside:avoid;box-shadow:none}.patientActions,.ppBar button,.ppBar .ppVersion,.tvTools,.tvHint,.tvVisitTabs,.tvControls,.tvVideoSection,.tvBeforeAfterToggle,.tvSelect{display:none!important}.tvModelBox{min-height:260px;border-color:var(--line)}.tvSequence{max-height:none;overflow:visible}.ppFooter{margin-top:16px;box-shadow:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:10px 0 0;break-inside:avoid}.ppFooter span{color:var(--muted)}img,video{max-width:100%!important}a{text-decoration:none;color:inherit}}.authForm{display:grid;gap:14px;max-width:520px}.authForm .field input{background:#fff;color:var(--brand-navy-dark);border:1px solid var(--line)}.authOk{border-radius:14px;background:#eefbf0;color:#216d31;border:1px solid rgba(102,204,0,.3);padding:12px 14px;font-weight:700;margin-bottom:16px}.authLink{background:none;border:0;padding:0;color:var(--brand-green, #4a9e12);font-weight:900;text-decoration:underline;cursor:pointer;font-size:inherit}.authFoot{font-size:14px}.authRoles{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.authRoles ul{list-style:none;display:grid;gap:14px;margin-top:14px}.authRoles li{background:var(--brand-soft);border:1px solid var(--line);border-radius:16px;padding:14px}.authRoles li p{margin:8px 0 6px}.authRoles li small{color:var(--muted);font-weight:700}.authRoles .roleChip{display:inline-block}.teamPanel.pending{border-color:#6c06;background:#fbfffa}.teamPanel.invite{background:var(--brand-soft)}.pendingList{list-style:none;display:grid;gap:12px}.pendingList li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px}.pendingText{display:grid;gap:2px;flex:1 1 200px}.pendingText small{color:var(--muted)}.pendingList .btnPrimary{width:auto;padding-inline:20px}.inviteRow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inviteRow input{flex:1 1 260px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff;color:var(--brand-navy-dark);font-weight:700}.btnPrimary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:720px){.pendingList li{flex-direction:column;align-items:stretch}.pendingList .roleSelect,.pendingList .btnPrimary{width:100%}}
