:root{--bg:#f5f7fb;--panel:#fff;--text:#172033;--muted:#6f7a8d;--line:#e5e9f2;--primary:#175f78;--primary2:#0f4558;--accent:#7cc7c4;--soft:#eaf6f6;--danger:#b63c48;--ok:#18865d;--shadow:0 12px 36px rgba(30,55,80,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px}a{color:var(--primary);text-decoration:none}.brand{display:flex;align-items:center;gap:10px;color:var(--text)}.brand span:last-child{display:flex;flex-direction:column}.brand small{color:var(--muted);font-size:11px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-weight:800}.public-header{height:76px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:0 24px}.public-header nav{display:flex;align-items:center;gap:24px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;background:var(--primary);color:#fff;padding:11px 17px;font-weight:700;cursor:pointer}.btn:hover{background:var(--primary2)}.btn.secondary{background:#fff;color:var(--primary);border:1px solid var(--line)}.btn.full{width:100%}.hero{max-width:1180px;margin:40px auto 0;padding:70px 24px 90px;display:grid;grid-template-columns:1.3fr .7fr;gap:70px;align-items:center}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--primary)}.hero h1{font-size:52px;line-height:1.05;margin:16px 0 20px;max-width:720px}.hero p{font-size:19px;line-height:1.7;color:var(--muted);max-width:720px}.hero-actions{display:flex;gap:12px;margin-top:28px}.hero-panel{background:linear-gradient(145deg,#174f67,#2e8590);padding:28px;border-radius:26px;display:grid;grid-template-columns:1fr 1fr;gap:14px;box-shadow:var(--shadow)}.stat{background:rgba(255,255,255,.12);padding:26px 18px;border-radius:16px;color:#fff}.stat b{display:block;font-size:30px}.stat span{opacity:.85}.section{max-width:1180px;margin:auto;padding:70px 24px}.section h2{font-size:32px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.cards article,.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:var(--shadow)}.cards p,.section p,.muted{color:var(--muted);line-height:1.6}.section.alt{background:var(--soft);max-width:none;padding-left:max(24px,calc((100% - 1132px)/2));padding-right:max(24px,calc((100% - 1132px)/2))}footer{padding:30px;text-align:center;color:var(--muted)}.auth-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#edf7f8,#f7f8fc)}.auth-card{width:min(440px,calc(100% - 30px));background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;box-shadow:var(--shadow)}.auth-card.wide{width:min(800px,calc(100% - 30px))}.center{justify-content:center;text-align:left}.auth-card h1{text-align:center;margin:26px 0 8px}.auth-card>p{text-align:center}.auth-card form{margin-top:24px}label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#39455a}input,select,textarea{width:100%;border:1px solid #dce2eb;border-radius:9px;padding:11px 12px;background:#fff;color:var(--text);font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#72aebb;box-shadow:0 0 0 3px rgba(69,149,164,.12)}textarea{min-height:100px;resize:vertical}.auth-card label{margin-bottom:15px}.grid-2,.grid-3{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.full,.span-2{grid-column:span 2}.span-3{grid-column:span 3}.alert{padding:12px 14px;border-radius:10px;margin:16px 0}.alert.error{background:#fff0f1;color:#8c2732}.alert.success{background:#eaf8f1;color:#166a4a}.admin{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:#102d3b;color:#dceaf0;padding:20px 14px;display:flex;flex-direction:column}.sidebar .brand{color:#fff;padding:3px 8px 20px}.sidebar .brand small{color:#9eb7c0}.sidebar nav{display:flex;flex-direction:column;gap:4px;overflow:auto}.sidebar nav a{color:#c9d9df;padding:10px 12px;border-radius:8px}.sidebar nav a:hover,.sidebar nav a.active{background:#1d4b5d;color:#fff}.sidebar nav a.disabled{opacity:.45;cursor:default}.nav-label{font-size:10px;font-weight:800;letter-spacing:.13em;color:#6f929f;margin:17px 12px 5px}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding:16px 10px 0;display:grid}.sidebar-foot span{font-weight:800}.sidebar-foot small{color:#91aeb8;margin:3px 0 9px}.sidebar-foot a{color:#fff}.main{margin-left:250px;width:calc(100% - 250px)}.topbar{height:92px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.topbar h1{font-size:24px;margin:0}.topbar p{margin:5px 0 0;color:var(--muted)}.content{padding:26px 30px 50px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:18px}.kpis article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}.kpis span,.kpis small{display:block;color:var(--muted)}.kpis strong{display:block;font-size:32px;margin:8px 0 2px}.dashboard-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:18px}.panel h2{margin:0 0 16px}.panel-head,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-head p{margin:4px 0;color:var(--muted)}.progress-list{display:grid;gap:10px}.progress-list div{display:flex;justify-content:space-between;padding:12px;background:#f8fafc;border-radius:9px}.progress-list span{color:var(--muted)}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;background:#eef1f5;color:#617084}.badge.ok{background:#e8f7f0;color:var(--ok)}.quick{display:grid;gap:10px}.quick a{background:#f6f9fb;padding:12px;border-radius:8px;font-weight:700}.toolbar{margin-bottom:16px}.search{display:flex;gap:8px;min-width:420px}.table-wrap{overflow:auto;padding:0}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.table-wrap th{font-size:12px;color:var(--muted);background:#fafbfd}.table-wrap td small{display:block;color:var(--muted);margin-top:3px}.empty{text-align:center!important;color:var(--muted);padding:40px!important}.form-page{display:grid;gap:18px}.form-page .panel{box-shadow:none}.form-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:900px){.public-header nav a:not(.btn){display:none}.hero{grid-template-columns:1fr;padding-top:35px}.hero h1{font-size:38px}.cards{grid-template-columns:1fr 1fr}.sidebar{width:78px}.sidebar .brand span:last-child,.sidebar nav a,.sidebar .nav-label,.sidebar-foot span,.sidebar-foot small{font-size:0}.sidebar nav a:before{content:'•';font-size:20px}.main{margin-left:78px;width:calc(100% - 78px)}.kpis{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}.span-3{grid-column:span 2}}@media(max-width:600px){.public-header{padding:0 16px}.hero{padding-left:16px;padding-right:16px}.hero-panel,.cards,.grid-2,.grid-3,.kpis{grid-template-columns:1fr}.span-2,.span-3,.full{grid-column:auto}.sidebar{display:none}.main{margin:0;width:100%}.topbar{padding:0 16px}.content{padding:18px 16px}.search{min-width:0;width:100%}.toolbar{align-items:stretch;flex-direction:column}.hero-actions{flex-direction:column}}
.top-actions{display:flex;gap:10px}.filter-bar{display:grid;grid-template-columns:1fr 1.2fr 1fr 1fr auto auto;gap:10px;align-items:end;margin-bottom:16px}.day-strip{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);padding:12px 16px;border-radius:12px;margin-bottom:16px}.day-strip.compact{min-width:250px;margin:0}.appointment-list{display:grid}.appointment-list>a{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);color:var(--text)}.appointment-list>a:last-child{border-bottom:0}.appointment-list time{font-weight:800;color:var(--primary)}.appointment-list small{display:block;color:var(--muted);margin-top:3px}.status{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eef1f5;color:#617084}.status-confirmed{background:#e9f7f0;color:#19704f}.status-arrived,.status-waiting{background:#fff5dc;color:#8a6416}.status-in_service{background:#e9f2ff;color:#285a9b}.status-completed{background:#e9f7f0;color:#19704f}.status-cancelled,.status-no_show{background:#fff0f1;color:#9b3642}.reception-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.reception-board{display:grid;gap:12px}.reception-card{display:grid;grid-template-columns:90px 1fr;background:#fff;border:1px solid var(--line);border-left:5px solid #cbd5df;border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.status-border-confirmed{border-left-color:#36a276}.status-border-arrived,.status-border-waiting{border-left-color:#d7a72e}.status-border-in_service{border-left-color:#3979c8}.status-border-completed{border-left-color:#36a276;opacity:.8}.status-border-cancelled,.status-border-no_show{border-left-color:#ca5561;opacity:.7}.reception-time{padding:20px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center}.reception-time b{font-size:22px}.reception-time small{color:var(--muted)}.reception-main{padding:18px}.reception-main h3{margin:0;font-size:18px}.reception-main p{margin:4px 0;color:var(--muted)}.note{display:block;background:#f8fafc;border-radius:8px;padding:9px 10px;margin:10px 0}.flow-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.flow-actions form{margin:0}.mini-btn{border:1px solid var(--line);background:#fff;color:#48556b;padding:7px 9px;border-radius:8px;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.mini-btn:hover{border-color:#9ab4be;color:var(--primary)}.mini-btn.current{background:var(--soft);color:var(--primary);cursor:default}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.link-danger{border:0;background:none;color:var(--danger);cursor:pointer;font:inherit}.inline-form select{min-width:120px;padding:7px}.copy-row{display:flex;gap:8px}.empty-state{text-align:center;color:var(--muted);padding:28px}.clinic-site{background:#fff}.clinic-header{max-width:1200px;height:82px;margin:auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center;position:relative}.clinic-brand{display:flex;align-items:center;gap:11px;color:var(--text)}.clinic-brand>span:last-child{display:flex;flex-direction:column}.clinic-brand small{color:var(--muted);font-size:11px}.clinic-header nav{display:flex;align-items:center;gap:24px}.clinic-header nav>a:not(.btn){color:#445066;font-weight:650}.menu-toggle{display:none}.clinic-hero{max-width:1200px;margin:0 auto;padding:80px 24px 95px;display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center}.clinic-hero h1{font-size:56px;line-height:1.03;margin:15px 0 20px;max-width:760px}.clinic-hero>div>p{font-size:19px;line-height:1.7;color:var(--muted);max-width:680px}.trust-row{display:flex;gap:18px;flex-wrap:wrap;margin-top:30px;font-size:13px;color:#445066}.smile-card{min-height:380px;border-radius:32px;background:linear-gradient(145deg,#e7f5f3,#f3f6fb);padding:40px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--shadow)}.smile-card h3{font-size:27px;margin:12px 0}.smile-card p{color:var(--muted);line-height:1.6}.smile-icon{font-size:90px;color:var(--primary);line-height:1}.clinic-section{max-width:1200px;margin:auto;padding:80px 24px}.clinic-section.soft{max-width:none;background:#f5faf9;padding-left:max(24px,calc((100% - 1152px)/2));padding-right:max(24px,calc((100% - 1152px)/2))}.section-heading{max-width:760px;margin-bottom:34px}.section-heading h2{font-size:38px;margin:10px 0 12px}.section-heading p{color:var(--muted);font-size:17px;line-height:1.7}.feature-cards,.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-cards article,.service-grid article,.team-card{border:1px solid var(--line);border-radius:18px;padding:24px;background:#fff}.feature-cards b,.service-grid h3{font-size:18px}.feature-cards p,.service-grid p,.team-card p{color:var(--muted);line-height:1.55}.service-grid{grid-template-columns:repeat(4,1fr)}.service-grid article>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--soft);color:var(--primary);font-weight:800}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.team-card{text-align:center}.avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;margin:0 auto 15px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;font-size:25px;font-weight:800}.team-card h3{margin:0}.team-card small{color:var(--muted)}.contact-section{display:grid;grid-template-columns:1fr .7fr;gap:60px;align-items:center}.contact-section h2{font-size:40px;margin:10px 0}.contact-section>div:first-child p{font-size:17px;line-height:1.7;color:var(--muted);max-width:650px}.contact-card{border-radius:22px;background:#102d3b;color:#fff;padding:30px}.contact-card p{color:#c9d9df;line-height:1.5}.clinic-footer{border-top:1px solid var(--line);max-width:1200px;margin:auto;padding:30px 24px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);align-items:center}.clinic-footer>div{display:flex;flex-direction:column;color:var(--text)}.booking-page{background:#f5f8fa;min-height:100vh}.booking-header{max-width:1180px;height:80px;margin:auto;padding:0 24px;display:flex;justify-content:space-between;align-items:center}.booking-shell{max-width:1100px;margin:20px auto 80px;padding:0 24px;display:grid;grid-template-columns:.75fr 1.25fr;gap:40px;align-items:start}.booking-intro{position:sticky;top:20px;padding:35px 0}.booking-intro h1{font-size:42px;line-height:1.08;margin:14px 0}.booking-intro>p{color:var(--muted);font-size:17px;line-height:1.65}.privacy-note{margin-top:28px;background:#eaf6f6;border-radius:14px;padding:16px;color:#3d5862;line-height:1.5}.booking-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:var(--shadow)}.booking-card h2{font-size:18px;margin:8px 0 17px}.booking-card h2:not(:first-of-type){margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.slots-wrap{margin:20px 0}.slots{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.slot-btn{border:1px solid #cdd8e0;background:#fff;border-radius:9px;padding:9px 13px;font-weight:700;color:var(--primary);cursor:pointer}.slot-btn.selected{background:var(--primary);border-color:var(--primary);color:#fff}.consent{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;font-weight:500;margin:20px 0}.consent input{width:auto;margin-top:3px}.confirmation-card{text-align:center}.success-icon{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto;background:#e9f7f0;color:#19704f;font-size:36px;font-weight:800}.appointment-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;text-align:left;margin:25px 0}.appointment-summary>div{background:#f7f9fb;border-radius:10px;padding:13px}.appointment-summary span{display:block;color:var(--muted);font-size:12px}.appointment-summary b{display:block;margin-top:4px}.confirm-actions{display:grid;gap:13px}.text-link{display:inline-block;margin-top:18px}.confirmation-card .brand{margin-bottom:20px}
@media(max-width:1000px){.filter-bar{grid-template-columns:1fr 1fr 1fr}.settings-grid,.booking-shell{grid-template-columns:1fr}.booking-intro{position:static}.service-grid,.team-grid{grid-template-columns:1fr 1fr}.clinic-hero{grid-template-columns:1fr}.smile-card{min-height:260px}.contact-section{grid-template-columns:1fr}}
@media(max-width:700px){.top-actions .btn.secondary{display:none}.filter-bar{grid-template-columns:1fr}.reception-card{grid-template-columns:65px 1fr}.reception-time{padding:12px}.reception-time b{font-size:18px}.reception-head{align-items:stretch;gap:10px;flex-direction:column}.day-strip.compact{min-width:0}.clinic-header{height:auto;padding-top:16px;padding-bottom:16px;flex-wrap:wrap}.menu-toggle{display:block;border:0;background:#f1f5f7;border-radius:8px;padding:8px 11px;font-size:20px}.clinic-header nav{display:none;width:100%;padding-top:15px;flex-direction:column;align-items:stretch}.clinic-header nav.open{display:flex}.clinic-header nav .btn{text-align:center}.clinic-hero{padding-top:50px;gap:30px}.clinic-hero h1{font-size:40px}.feature-cards,.service-grid,.team-grid{grid-template-columns:1fr}.contact-section h2,.section-heading h2{font-size:32px}.clinic-footer{flex-direction:column;align-items:flex-start}.booking-shell{padding:0 16px}.booking-card{padding:20px}.booking-intro h1{font-size:34px}.appointment-summary{grid-template-columns:1fr}}

/* LC Odonto v0.2.1 - padrão profissional de cadastros */
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.span-4{grid-column:span 4}.professional-form{max-width:1380px;margin:0 auto}.record-banner{background:linear-gradient(135deg,#143f52,#1d6b7d);color:#fff;border-radius:18px;padding:24px 28px;display:flex;justify-content:space-between;align-items:center;gap:30px;box-shadow:0 12px 30px rgba(16,45,59,.12)}.record-banner h2{font-size:24px;margin:4px 0 5px}.record-banner p{margin:0;color:#cfe2e8}.record-kicker{font-size:10px;font-weight:900;letter-spacing:.16em;color:#8ed3d0}.record-meta{min-width:180px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:13px 16px}.record-meta span,.record-meta b{display:block}.record-meta span{font-size:11px;color:#bcd4dc;margin-bottom:4px}.form-section{padding:0!important;overflow:hidden}.section-title{display:flex;gap:14px;align-items:center;padding:20px 24px;border-bottom:1px solid var(--line);background:#fbfcfd}.section-title>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--soft);color:var(--primary);font-size:12px;font-weight:900}.section-title h2{font-size:18px;margin:0}.section-title p{margin:4px 0 0;color:var(--muted);font-size:13px}.form-section>.grid-4,.form-section>.checkbox-grid{padding:24px}.professional-form label{font-size:13px;color:#37445a}.professional-form label em{color:var(--danger);font-style:normal}.professional-form input,.professional-form select,.professional-form textarea{min-height:44px;border-radius:9px;background:#fff}.professional-form textarea{min-height:96px}.checkbox-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.check-card{display:grid!important;grid-template-columns:auto 1fr!important;align-items:start!important;gap:12px!important;border:1px solid var(--line);border-radius:12px;padding:14px;background:#fbfcfd;font-weight:500!important}.check-card input{width:18px!important;height:18px!important;min-height:0!important;margin:2px 0 0}.check-card span{display:block}.check-card b,.check-card small{display:block}.check-card small{margin-top:3px;color:var(--muted);font-weight:400;line-height:1.4}.password-note{background:#f6f8fa;border:1px dashed #d6dde6;border-radius:10px;padding:14px;color:var(--muted);font-size:13px;line-height:1.55;align-self:end}.sticky-actions{position:sticky;bottom:0;background:rgba(245,247,251,.94);backdrop-filter:blur(8px);padding:14px 0;z-index:5;border-top:1px solid var(--line)}.table-action{display:inline-flex;padding:7px 11px;border:1px solid var(--line);border-radius:8px;font-weight:700;font-size:12px;background:#fff}.table-action:hover{border-color:#9ab4be}.no-margin{margin:3px 0 0}.is-loading{background-image:linear-gradient(90deg,#fff,#eef8f8,#fff);background-size:200% 100%;animation:lcLoad 1s linear infinite}@keyframes lcLoad{to{background-position:-200% 0}}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.span-4{grid-column:span 2}.checkbox-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.grid-4,.checkbox-grid{grid-template-columns:1fr}.span-2,.span-3,.span-4{grid-column:auto}.record-banner{align-items:flex-start;flex-direction:column}.record-meta{width:100%}.section-title,.form-section>.grid-4,.form-section>.checkbox-grid{padding-left:16px;padding-right:16px}.sticky-actions{position:static}}

/* LC Odonto v0.3.0 - prontuário clínico */
.table-actions{display:flex;gap:7px;justify-content:flex-end}.table-action.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.clinical-info-banner{display:flex;justify-content:space-between;gap:24px;align-items:center;background:#eef7f7;border:1px solid #d4e9e8;border-radius:14px;padding:16px 20px;margin-bottom:18px}.clinical-info-banner b,.clinical-info-banner span{display:block}.clinical-info-banner>div>span{color:#587079;margin-top:3px;font-size:13px}.security-pill{background:#fff;border:1px solid #d7e6e7;border-radius:999px;padding:7px 11px!important;color:#40616b!important;font-size:11px!important;font-weight:800}.clinical-alert{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;margin:2px}.clinical-alert.danger{background:#fff0f1;color:#a6313e}.clinical-alert.warn{background:#fff7e7;color:#916713}.patient-clinical-banner{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#123d50,#1d687c);border-radius:18px;padding:22px 25px;color:#fff;margin-bottom:14px}.patient-clinical-banner.compact{padding:17px 21px}.patient-avatar{flex:0 0 58px;width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.17);font-size:24px;font-weight:900}.patient-main{flex:1}.patient-main h2{margin:4px 0 6px;font-size:23px}.patient-facts{display:flex;gap:16px;flex-wrap:wrap;color:#cbe0e7;font-size:12px}.clinical-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.patient-clinical-banner .btn.secondary{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.2);color:#fff}.patient-nav{display:flex;align-items:center;gap:5px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:13px;padding:6px;margin-bottom:18px}.patient-nav a,.patient-nav>span{white-space:nowrap;padding:9px 13px;border-radius:8px;font-size:12px;font-weight:750;color:#526175}.patient-nav a.active,.patient-nav a:hover{background:var(--soft);color:var(--primary)}.patient-nav small{font-size:9px;color:#9aa4b1}.clinical-grid{display:grid;grid-template-columns:1.5fr .8fr;gap:18px}.clinical-card{padding:0;overflow:hidden}.card-title{padding:18px 20px;border-bottom:1px solid var(--line)}.card-title h2{font-size:17px;margin:0}.card-title span{font-size:11px;color:var(--muted)}.alert-stack{padding:5px 20px}.clinical-summary-row{padding:14px 0;border-bottom:1px solid var(--line)}.clinical-summary-row:last-child{border:0}.clinical-summary-row b{font-size:12px}.clinical-summary-row p{margin:5px 0 0;line-height:1.55;color:#4f5b6d}.clinical-dl{margin:0;padding:10px 20px}.clinical-dl>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}.clinical-dl>div:last-child{border:0}.clinical-dl dt{color:var(--muted)}.clinical-dl dd{font-weight:700;margin:0;text-align:right}.section-block{margin-top:28px;scroll-margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:12px}.section-head h2{margin:4px 0;font-size:21px}.section-head p{margin:0;color:var(--muted);font-size:13px}.risk-badge{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:850}.risk-low{background:#eaf8f1;color:#207251}.risk-moderate{background:#fff6df;color:#8d6714}.risk-high{background:#fff0f1;color:#a4313e}.risk-not_assessed{background:#eef1f5;color:#697485}.timeline{display:grid;gap:12px}.timeline-item{display:grid;grid-template-columns:70px 1fr;gap:12px}.timeline-date{background:#eaf5f5;border-radius:12px;padding:13px 8px;text-align:center;height:max-content}.timeline-date b,.timeline-date span{display:block}.timeline-date b{font-size:18px;color:var(--primary)}.timeline-date span{font-size:10px;color:var(--muted)}.timeline-content{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}.timeline-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.timeline-head>div>b,.timeline-head>div>span{display:block}.timeline-head>div>span{color:var(--muted);font-size:11px;margin-top:3px}.timeline-content p{color:#4b586a;line-height:1.55}.question-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;padding:8px 24px 20px}.health-question{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}.health-question:nth-child(odd){padding-right:20px}.health-question:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}.health-question>span{font-size:13px;line-height:1.4}.yes-no{display:flex;gap:5px}.yes-no label{display:flex!important;align-items:center!important;gap:4px!important;border:1px solid var(--line);padding:6px 8px;border-radius:8px;font-size:11px!important;white-space:nowrap}.yes-no input{width:auto!important;min-height:0!important}.signature-panel{padding:20px 22px;display:flex;justify-content:space-between;gap:28px;align-items:center;border-left:4px solid var(--primary)}.signature-panel h2{font-size:17px;margin:0}.signature-panel p{margin:4px 0 0;color:var(--muted);font-size:12px;max-width:650px}.sign-check{display:flex!important;grid-template-columns:auto 1fr!important;gap:10px!important;align-items:start!important;border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:360px}.sign-check input{width:17px!important;height:17px!important;min-height:0!important;margin-top:2px}.sign-check span,.sign-check b,.sign-check small{display:block}.sign-check small{color:var(--muted);font-weight:400;margin-top:3px}.signed-seal{background:#e7f6ee;color:#d6f6e7;border:1px solid rgba(255,255,255,.2);padding:8px 11px;border-radius:9px;font-size:11px;font-weight:800}.record-document{max-width:1100px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}.document-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:2px solid #173f52}.document-head h2{margin:4px 0;font-size:25px}.document-head p{margin:0;color:var(--muted)}.document-section{padding:18px 0;border-bottom:1px solid var(--line)}.document-section h3{font-size:13px;margin:0 0 7px}.document-section p{margin:0;line-height:1.7;color:#3f4b5c}.soap-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}.soap-grid>div{border:1px solid var(--line);border-radius:12px;padding:15px;position:relative}.soap-grid>div>span{position:absolute;right:12px;top:10px;font-size:28px;font-weight:900;color:#dce9ec}.soap-grid h3{margin:0 0 8px;font-size:13px}.soap-grid p{margin:0;line-height:1.6;color:#485568}.document-two{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.signature-box{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;background:#f7fafb;border-radius:12px;padding:16px}.signature-box small,.signature-box b,.signature-box span{display:block}.signature-box small{color:var(--muted);font-size:10px}.signature-box b{margin:4px 0}.signature-box span{font-size:11px;color:#5d6979}.addenda-block{margin-top:24px}.addenda-block>h3{font-size:16px}.addenda-block article{border-left:3px solid #7898a4;background:#f7f9fb;padding:14px 16px;margin:8px 0;border-radius:0 9px 9px 0}.addenda-block article p{margin:0 0 6px;line-height:1.6}.addenda-block article small{color:var(--muted)}.addendum-form{margin-top:24px;padding:18px;border:1px solid var(--line);border-radius:12px;background:#fbfcfd}.addendum-form h3{margin:0}.addendum-form p{color:var(--muted);font-size:12px}.addendum-form textarea{width:100%;min-height:100px;border:1px solid var(--line);border-radius:9px;padding:12px;margin-bottom:10px}.document-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
@media(max-width:1000px){.clinical-grid,.document-two,.soap-grid{grid-template-columns:1fr}.clinical-actions{width:100%}.patient-clinical-banner{flex-wrap:wrap}.question-grid{grid-template-columns:1fr}.health-question:nth-child(odd),.health-question:nth-child(even){padding-left:0;padding-right:0;border-left:0}.signature-panel{align-items:stretch;flex-direction:column}.sign-check{min-width:0}.signature-box{grid-template-columns:1fr}}
@media(max-width:700px){.section-head{align-items:stretch;flex-direction:column}.timeline-item{grid-template-columns:48px 1fr}.timeline-date{padding:9px 4px}.patient-nav{margin-left:-4px;margin-right:-4px}.record-document{padding:18px}.document-head{flex-direction:column}.patient-clinical-banner{align-items:flex-start}.clinical-actions .btn{width:100%;text-align:center}.clinical-info-banner{align-items:flex-start;flex-direction:column}}
@media print{body.admin .sidebar,body.admin .topbar,.document-actions,.addendum-form{display:none!important}body.admin .main{margin:0!important}.content{padding:0!important}.record-document{border:0;box-shadow:none;max-width:none}.main{margin:0!important}}

/* v0.4.0 — Odontograma profissional */
.odontogram-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.odontogram-board{overflow:hidden}.odontogram-legend{display:flex;flex-wrap:wrap;gap:7px}.lg{font-size:11px;font-weight:800;border-radius:999px;padding:6px 9px;background:#f1f4f7;border:1px solid var(--line)}.lg.caries{background:#fff0f0}.lg.restoration{background:#edf6ff}.lg.endodontic{background:#f5efff}.lg.crown{background:#fff8e8}.lg.missing{background:#eef0f2}.tooth-row{display:grid;grid-template-columns:repeat(8,minmax(58px,1fr));gap:8px;margin:14px 0}.tooth-row.deciduous{grid-template-columns:repeat(5,minmax(58px,92px));justify-content:center}.tooth-card{border:1px solid var(--line);border-radius:12px;padding:10px 5px;text-align:center;background:#fff;color:var(--text);min-height:95px;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:.15s}.tooth-card:hover,.tooth-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px rgba(23,95,120,.12);transform:translateY(-1px)}.tooth-icon{font-size:30px;line-height:1;color:#d7dde4;transform:scaleX(.7)}.tooth-card b{font-size:13px}.tooth-card small{font-size:9px;color:var(--muted);margin-top:4px;line-height:1.2}.state-caries .tooth-icon,.state-fracture .tooth-icon,.state-lesion .tooth-icon,.state-extraction_indicated .tooth-icon{color:#d15d65}.state-restoration .tooth-icon,.state-temporary_restoration .tooth-icon{color:#4e9ac0}.state-endodontic .tooth-icon{color:#8b73b5}.state-crown .tooth-icon,.state-implant .tooth-icon,.state-prosthesis .tooth-icon{color:#c69a42}.state-missing .tooth-icon{color:#8e98a5;opacity:.45}.state-healthy .tooth-icon{color:#7ab19d}.state-mobility .tooth-icon,.state-wear .tooth-icon{color:#d18b5d}.arch-divider{display:flex;justify-content:space-between;border-top:2px solid #dce4ea;border-bottom:2px solid #dce4ea;padding:6px 10px;font-size:9px;font-weight:900;letter-spacing:.15em;color:#8994a4;margin:10px 0}.deciduous-chart{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}.deciduous-chart summary{cursor:pointer;font-weight:800;color:var(--primary)}.odontogram-form{position:sticky;top:18px}.odontogram-form label{display:block;font-size:12px;font-weight:700;margin:11px 0}.odontogram-form input,.odontogram-form select,.odontogram-form textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:9px;padding:10px;background:#fff;color:var(--text)}.odontogram-history{display:grid;gap:9px}.odontogram-history article{display:grid;grid-template-columns:88px 1fr;gap:15px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px}.history-tooth{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--line)}.history-tooth b{font-size:25px;color:var(--primary)}.history-tooth span{font-size:10px;color:var(--muted);text-align:center}.odontogram-history p{margin:8px 0;line-height:1.55}.odontogram-history small{color:var(--muted)}.patient-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.patient-picker a{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:11px;padding:13px;background:#fbfcfd}.patient-picker a:hover{border-color:var(--primary);background:#f5fbfc}.patient-picker span{font-size:11px;color:var(--muted);margin-top:3px}
@media(max-width:1100px){.odontogram-layout{grid-template-columns:1fr}.odontogram-form{position:static}.tooth-row{grid-template-columns:repeat(4,1fr)}.patient-picker{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.tooth-row{grid-template-columns:repeat(2,1fr)}.tooth-row.deciduous{grid-template-columns:repeat(2,1fr)}.patient-picker{grid-template-columns:1fr}.odontogram-history article{grid-template-columns:58px 1fr}}

/* v0.5.0 — Tratamentos, orçamento e proposta profissional */
.badge.danger{background:#fff0f1;color:#a4313e}.large-badge{padding:8px 12px;font-size:12px}.money-kpi{font-size:24px!important}.treatment-toolbar{padding:14px 16px}.treatment-search{flex:1}.treatment-search select{max-width:210px}.toolbar-actions{display:flex;gap:8px}.form-section-title{display:flex;gap:14px;align-items:flex-start;padding-bottom:17px;margin-bottom:18px;border-bottom:1px solid var(--line)}.form-section-title>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#eaf5f5;color:var(--primary);font-weight:900}.form-section-title h2{font-size:18px;margin:0 0 4px}.form-section-title p{margin:0;color:var(--muted);font-size:12px}.treatment-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;background:linear-gradient(135deg,#173e50,#205e73);color:#fff;border-radius:17px;padding:24px 26px;margin-bottom:16px}.treatment-hero h2{font-size:26px;margin:4px 0}.treatment-hero p{margin:0;color:#c9dce3}.treatment-hero .record-kicker{color:#9dd4d6}.treatment-hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}.treatment-hero .btn.secondary{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.25);color:#fff}.treatment-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.treatment-summary-grid .panel{padding:17px 19px;box-shadow:none}.treatment-summary-grid span,.treatment-summary-grid small{display:block;color:var(--muted);font-size:11px}.treatment-summary-grid strong{display:block;font-size:21px;margin-top:5px}.treatment-summary-grid .primary-summary{background:#eaf6f6;border-color:#bcdfe0}.treatment-summary-grid .primary-summary strong{color:var(--primary);font-size:25px}.treatment-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.treatment-grid>aside{display:grid;gap:16px;position:sticky;top:16px}.treatment-items{padding:0;overflow:hidden}.treatment-items>.section-head{padding:20px 22px 8px}.treatment-item-list{display:grid}.treatment-item-list article{display:grid;grid-template-columns:42px 1fr 12px;gap:14px;padding:16px 21px;border-top:1px solid var(--line);align-items:start}.item-seq{width:34px;height:34px;display:grid;place-items:center;background:#f0f5f7;border-radius:9px;font-weight:900;color:var(--primary)}.item-top{display:flex;justify-content:space-between;gap:20px}.item-top b,.item-top span{display:block}.item-top span,.item-meta{font-size:11px;color:var(--muted);margin-top:4px}.item-main p{font-size:12px;color:#586578}.item-meta{display:flex;flex-wrap:wrap;gap:14px}.item-actions{display:flex;align-items:center;gap:10px;margin-top:10px}.item-actions form{margin:0}.item-actions select{padding:7px 9px;font-size:11px;width:auto}.link-danger{border:0;background:none;color:#a4313e;font-size:11px;font-weight:800;cursor:pointer}.status-dot{width:9px;height:9px;border-radius:50%;margin-top:8px;background:#9aa5b2}.item-status-approved,.item-status-completed{background:#3aa676}.item-status-scheduled{background:#c39a37}.item-status-in_progress{background:#3979c8}.item-status-cancelled{background:#c85561}.add-treatment-item{margin-top:16px}.add-treatment-item .btn{margin-top:14px}.plan-status-panel label,.status-form label{margin:11px 0;font-size:12px}.finance-link p{font-size:12px;line-height:1.5}.invoice-linked{display:grid;gap:6px;background:#f6f9fb;border-radius:10px;padding:13px}.invoice-linked b{font-size:16px}.invoice-linked span{font-size:11px;color:var(--muted)}
.print-budget{background:#eef1f5;padding:30px}.budget-document{max-width:900px;margin:auto;background:#fff;padding:42px 48px;box-shadow:0 10px 35px rgba(20,40,60,.12);color:#172033}.budget-document header{display:flex;justify-content:space-between;border-bottom:3px solid #174f67;padding-bottom:18px}.budget-brand{font-size:22px;font-weight:900;color:#174f67}.budget-document header small,.budget-code small{display:block;color:#6f7a8d}.budget-code{text-align:right}.budget-code b{font-size:17px}.budget-patient{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:25px 0;background:#f7fafb;border-radius:10px;padding:15px}.budget-patient small,.budget-patient b,.budget-patient span{display:block}.budget-patient small{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#83909f}.budget-patient b{margin:4px 0}.budget-patient span{font-size:11px;color:#697585}.budget-document h1{font-size:22px;margin:26px 0 14px}.budget-table{width:100%;border-collapse:collapse}.budget-table th,.budget-table td{padding:11px 9px;border-bottom:1px solid #e6eaf0;text-align:left;font-size:12px}.budget-table th{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#718091;background:#fafbfd}.budget-total{display:flex;justify-content:flex-end;margin-top:15px}.budget-total dl{width:310px}.budget-total dl div{display:flex;justify-content:space-between;padding:7px 0}.budget-total dt,.budget-total dd{margin:0}.budget-total .grand{border-top:2px solid #174f67;margin-top:5px;padding-top:11px;font-size:18px;font-weight:900;color:#174f67}.budget-conditions{margin-top:22px;padding:17px;background:#f7fafb;border-radius:10px}.budget-conditions h3{margin:0 0 8px;font-size:13px}.budget-conditions p{font-size:11px;line-height:1.6;margin:5px 0}.budget-signatures{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:55px}.budget-signatures div{text-align:center}.budget-signatures span{display:block;border-top:1px solid #4e5968;margin-bottom:8px}.budget-signatures b,.budget-signatures small{display:block}.budget-signatures small{font-size:10px;color:#7a8694;margin-top:3px}.budget-document footer{margin-top:38px;padding:15px 0 0;border-top:1px solid #e5e9f2;font-size:10px}.print-actions{text-align:center;margin:18px}.print-actions button{border:0;border-radius:9px;padding:12px 20px;background:#175f78;color:#fff;font-weight:800;cursor:pointer}
@media(max-width:1100px){.treatment-grid{grid-template-columns:1fr}.treatment-grid>aside{position:static}.treatment-summary-grid{grid-template-columns:1fr 1fr}.treatment-hero{align-items:flex-start;flex-direction:column}.treatment-hero-actions{justify-content:flex-start}}
@media(max-width:700px){.treatment-summary-grid{grid-template-columns:1fr}.treatment-toolbar,.toolbar-actions,.treatment-search{flex-direction:column;align-items:stretch}.treatment-search select{max-width:none}.item-top{flex-direction:column;gap:4px}.budget-document{padding:25px 20px}.budget-patient,.budget-signatures{grid-template-columns:1fr}.budget-document header{gap:15px;flex-direction:column}.budget-code{text-align:left}.print-budget{padding:0}}
@media print{.print-budget{background:#fff;padding:0}.budget-document{box-shadow:none;max-width:none;padding:12mm}.print-actions{display:none}}

/* LC Odonto v0.5.1 — Odontograma profissional */
.odont-context-bar{display:grid;grid-template-columns:1.25fr 1fr 1fr 1fr;gap:0;padding:0;overflow:hidden;margin-bottom:16px;border:1px solid var(--line)}
.context-field{padding:15px 17px;min-height:76px;border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;background:#fff}.context-field:last-child{border-right:0}.context-field>span{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:4px}.context-field>b{font-size:14px}.context-field>small{font-size:10px;color:var(--muted);margin-top:2px}.dentition-switch{display:flex;background:#edf2f5;padding:3px;border-radius:9px;gap:2px}.dentition-switch a{flex:1;padding:7px 8px;border-radius:7px;text-align:center;font-size:11px;font-weight:800;color:var(--muted)}.dentition-switch a.active{background:#fff;color:var(--primary);box-shadow:0 1px 4px rgba(17,42,55,.12)}
.odont-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.mini-stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 15px;display:flex;align-items:center;gap:12px}.mini-stat b{font-size:21px;line-height:1}.mini-stat small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.stat-dot{width:12px;height:36px;border-radius:8px;background:#dbe3e8}.stat-dot.caries{background:#df6469}.stat-dot.planned{background:#e4a746}.stat-dot.completed{background:#54a68b}.stat-dot.missing{background:#8f99a5}
.odontogram-pro-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;gap:18px;align-items:start}.odontogram-pro-board{min-width:0;padding-bottom:14px}.odont-board-head{margin-bottom:6px}.chart-side-labels{display:flex;gap:12px;font-size:8px;font-weight:900;letter-spacing:.1em;color:#99a3ae}.pro-legend{margin:10px 0 2px;display:flex;gap:6px;flex-wrap:wrap}.pro-legend .lg{display:flex;align-items:center;gap:6px;background:#fff}.pro-legend .lg i,.condition-label i{width:9px;height:9px;border-radius:50%;display:inline-block;background:#c9d1d8}.lg.healthy i{background:#61b881}.lg.caries i{background:#df6469}.lg.restoration i{background:#4f9fd1}.lg.endodontic i{background:#8b6ec3}.lg.crown i{background:#d3a247}.lg.implant i{background:#637d96}.lg.missing i{background:#9da6af}.lg.planned i{background:#e4a746}
.jaw-stage{position:relative;max-width:860px;margin:8px auto 0;background:linear-gradient(180deg,#fbfdfe 0%,#fff 50%,#fbfdfe 100%);border:1px solid #e2e9ed;border-radius:18px;overflow:hidden;min-height:500px}.jaw-svg{display:block;width:100%;height:auto;min-height:480px}.arch-guide{fill:none;stroke:#dbe5ea;stroke-width:1.4;stroke-dasharray:5 7}.midline{position:absolute;left:50%;top:64px;bottom:64px;border-left:1px dashed #dfe6eb;z-index:0}.jaw-label{position:absolute;left:18px;font-size:9px;font-weight:900;letter-spacing:.12em;color:#96a2ae;z-index:2}.jaw-label.upper{top:16px}.jaw-label.lower{bottom:16px}.svg-tooth-link{outline:none}.svg-tooth{cursor:pointer;transition:filter .16s ease}.svg-tooth .tooth-shape{fill:#f8fafb;stroke:#768795;stroke-width:1.55;transition:all .16s ease}.svg-tooth .tooth-highlight{fill:none;stroke:#fff;stroke-width:1.3;stroke-linecap:round;opacity:.75}.svg-tooth .tooth-number{font-size:12px;font-weight:800;fill:#526371}.svg-tooth:hover .tooth-shape,.svg-tooth.selected .tooth-shape{stroke:var(--primary);stroke-width:2.5;filter:drop-shadow(0 3px 4px rgba(25,83,103,.16))}.svg-tooth.selected .tooth-number{fill:var(--primary);font-size:13px}.svg-tooth.state-healthy .tooth-shape{fill:#c9efd8;stroke:#4e9c6d}.svg-tooth.state-caries .tooth-shape,.svg-tooth.state-fracture .tooth-shape,.svg-tooth.state-lesion .tooth-shape,.svg-tooth.state-extraction_indicated .tooth-shape{fill:#ffd9db;stroke:#c84d54}.svg-tooth.state-restoration .tooth-shape,.svg-tooth.state-temporary_restoration .tooth-shape{fill:#d9edfa;stroke:#3e8fbd}.svg-tooth.state-endodontic .tooth-shape{fill:#e8def9;stroke:#7757aa}.svg-tooth.state-crown .tooth-shape,.svg-tooth.state-prosthesis .tooth-shape{fill:#f8e7b8;stroke:#b78328}.svg-tooth.state-implant .tooth-shape{fill:#dae2e9;stroke:#526d85}.svg-tooth.state-missing .tooth-shape{fill:#f1f3f5;stroke:#9ca4ad;stroke-dasharray:3 3;opacity:.55}.svg-tooth.state-mobility .tooth-shape,.svg-tooth.state-wear .tooth-shape{fill:#ffe3cc;stroke:#c27842}.svg-tooth.state-sealant .tooth-shape{fill:#d8f1ee;stroke:#3b9a8c}.planned-dot{fill:#e4a746;stroke:#fff;stroke-width:1.5}.odont-chart-help{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;margin-top:8px;background:#f6f9fa;border-radius:10px;color:var(--muted);font-size:10px}.odont-chart-help b{color:var(--text)}
.tooth-detail-panel{position:sticky;top:18px;padding:18px}.tooth-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:13px;border-bottom:1px solid var(--line)}.tooth-detail-heading h2{font-size:25px;margin:3px 0}.tooth-detail-heading p{margin:0;color:var(--muted);font-size:11px}.tooth-status-orb{width:38px;height:38px;border-radius:50%;background:#d8e0e5;border:7px solid #f3f6f8}.tooth-status-orb.state-healthy{background:#61b881}.tooth-status-orb.state-caries,.tooth-status-orb.state-fracture,.tooth-status-orb.state-lesion,.tooth-status-orb.state-extraction_indicated{background:#df6469}.tooth-status-orb.state-restoration,.tooth-status-orb.state-temporary_restoration{background:#4f9fd1}.tooth-status-orb.state-endodontic{background:#8b6ec3}.tooth-status-orb.state-crown,.tooth-status-orb.state-prosthesis{background:#d3a247}.tooth-status-orb.state-implant{background:#637d96}.tooth-status-orb.state-missing{background:#9da6af}
.surface-status-map{padding:13px 0;border-bottom:1px solid var(--line)}.surface-map-title{font-size:10px;font-weight:900;color:var(--primary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.surface-mini-diagram{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.surface-cell{min-height:48px;border:1px solid var(--line);border-radius:8px;padding:6px 7px;background:#fafcfd;display:flex;flex-direction:column}.surface-cell b{font-size:11px}.surface-cell small{font-size:8px;color:var(--muted);line-height:1.15;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.surface-cell.state-healthy{border-color:#8dceb0;background:#effaf4}.surface-cell.state-caries,.surface-cell.state-fracture,.surface-cell.state-lesion,.surface-cell.state-extraction_indicated{border-color:#ef9ca0;background:#fff3f3}.surface-cell.state-restoration,.surface-cell.state-temporary_restoration{border-color:#9ac9e4;background:#f1f8fd}.surface-cell.state-endodontic{border-color:#b6a2dc;background:#f7f3fc}.surface-cell.state-crown,.surface-cell.state-prosthesis{border-color:#e0c376;background:#fff9e9}.surface-cell.state-implant{border-color:#9baaba;background:#f3f6f8}.surface-cell.state-missing{opacity:.6}
.tooth-record-form{padding-top:4px}.tooth-record-form>label,.tooth-record-form .form-grid label{display:block;font-size:11px;font-weight:800;margin:10px 0}.tooth-record-form select,.tooth-record-form textarea{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:9px;padding:9px;background:#fff;color:var(--text);font-size:12px}.surface-picker{border:0;margin:10px 0;padding:0}.surface-picker legend{font-size:11px;font-weight:900;color:var(--text);margin-bottom:6px}.surface-picker legend small{font-size:9px;font-weight:500;color:var(--muted)}.surface-picker-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:5px}.surface-pick{border:1px solid var(--line);border-radius:8px;background:#fafcfd;cursor:pointer;margin:0!important;position:relative}.surface-pick input{position:absolute;opacity:0}.surface-pick span{display:flex;align-items:center;gap:6px;padding:7px 8px;font-size:9px;color:var(--muted)}.surface-pick span b{font-size:11px;color:var(--text)}.surface-pick input:checked+span{background:#eaf5f7;color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);border-radius:7px}.surface-pick.whole{grid-column:1/-1}.surface-pick.whole span{justify-content:center;font-weight:800}.tooth-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.tooth-quick-actions a{background:#f3f7f9;border:1px solid var(--line);border-radius:8px;padding:8px;text-align:center;font-size:10px;font-weight:800;color:var(--primary)}
.tooth-empty-state{text-align:center;padding:28px 14px}.empty-tooth-illustration{font-size:56px;filter:grayscale(.15);margin-bottom:8px}.tooth-empty-state h2{font-size:20px;margin:4px 0}.tooth-empty-state p{color:var(--muted);font-size:11px;line-height:1.5}.empty-feature-list{display:grid;gap:6px;text-align:left;margin:18px auto 0;max-width:220px}.empty-feature-list span{font-size:10px;background:#f5f8fa;border-radius:7px;padding:7px 9px;color:#586876}
.tooth-timeline{padding:5px 18px}.tooth-timeline article{position:relative;display:grid;grid-template-columns:18px 1fr;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.tooth-timeline article:last-child{border-bottom:0}.timeline-marker{width:13px;height:13px;border-radius:50%;background:#bcc6ce;margin-top:4px;box-shadow:0 0 0 4px #f4f7f8}.timeline-marker.state-healthy{background:#61b881}.timeline-marker.state-caries,.timeline-marker.state-fracture,.timeline-marker.state-lesion,.timeline-marker.state-extraction_indicated{background:#df6469}.timeline-marker.state-restoration,.timeline-marker.state-temporary_restoration{background:#4f9fd1}.timeline-marker.state-endodontic{background:#8b6ec3}.timeline-marker.state-crown,.timeline-marker.state-prosthesis{background:#d3a247}.timeline-marker.state-implant{background:#637d96}.timeline-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:7px;color:var(--muted);font-size:9px}.timeline-meta b{color:var(--text)}.linked-info{background:#f6f8fa;border-radius:7px;padding:7px 9px!important;font-size:10px}.condition-label{display:inline-flex;align-items:center;gap:6px}.condition-label.state-healthy i{background:#61b881}.condition-label.state-caries i,.condition-label.state-fracture i,.condition-label.state-lesion i,.condition-label.state-extraction_indicated i{background:#df6469}.condition-label.state-restoration i,.condition-label.state-temporary_restoration i{background:#4f9fd1}.condition-label.state-endodontic i{background:#8b6ec3}.condition-label.state-crown i,.condition-label.state-prosthesis i{background:#d3a247}.condition-label.state-implant i{background:#637d96}.condition-label.state-missing i{background:#9da6af}.tooth-number-link{display:inline-flex;width:32px;height:28px;align-items:center;justify-content:center;background:#edf5f7;border-radius:7px;color:var(--primary)}.patient-picker small{font-size:9px;color:#8c98a4;margin-top:5px}.odont-patient-banner{margin-bottom:14px}
@media(max-width:1180px){.odontogram-pro-layout{grid-template-columns:1fr}.tooth-detail-panel{position:static}.odont-context-bar{grid-template-columns:1fr 1fr}.context-field:nth-child(2){border-right:0}.context-field:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:760px){.odont-context-bar,.odont-summary-grid{grid-template-columns:1fr}.context-field{border-right:0;border-bottom:1px solid var(--line)}.odont-summary-grid{grid-template-columns:1fr 1fr}.jaw-stage{min-height:350px;overflow:auto}.jaw-svg{min-width:680px}.odont-chart-help{display:block}.odont-chart-help span{display:block;margin:3px 0}.surface-picker-grid{grid-template-columns:1fr}.surface-pick.whole{grid-column:auto}.chart-side-labels{display:none}}
/* LC Odonto v0.6.0 - Financeiro profissional */
.finance-nav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 16px}.finance-nav a{padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#526371;font-weight:800;font-size:12px}.finance-nav a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.finance-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}.finance-kpis.four{grid-template-columns:repeat(4,1fr)}.finance-kpis article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px 18px;box-shadow:0 4px 15px rgba(30,55,80,.03)}.finance-kpis span{display:block;color:var(--muted);font-size:11px;font-weight:700}.finance-kpis strong{display:block;font-size:23px;margin:7px 0 2px}.finance-kpis small{color:#8e99a8}.finance-kpis .danger-kpi{border-color:#f0c9cd;background:#fff9f9}.finance-kpis .danger-kpi strong{color:var(--danger)}
.finance-dashboard{align-items:start}.finance-list{display:grid}.finance-list>a,.finance-row-static{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 0;border-bottom:1px solid var(--line);color:var(--text)}.finance-list>a:last-child,.finance-row-static:last-child{border-bottom:0}.finance-list b,.finance-row-static b{display:block;font-size:12px}.finance-list small,.finance-row-static small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.finance-list-value{text-align:right}.finance-list-value strong{display:block;font-size:12px;margin-bottom:3px}.finance-actions{margin-top:16px}.finance-quick{grid-template-columns:repeat(5,1fr)}
.finance-filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.finance-filters label{min-width:145px;flex:1;font-size:10px;font-weight:800}.finance-filters input,.finance-filters select{display:block;width:100%;margin-top:5px}.filter-panel{padding:14px 16px;margin-bottom:14px}.finance-table td small,.data-table td small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.finance-status-paid{background:#eaf8f1!important;color:#177451!important}.finance-status-open{background:#f2f5f7!important;color:#5d6874!important}.finance-status-partial{background:#fff5da!important;color:#8b6812!important}.finance-status-overdue{background:#fff0f1!important;color:#a43843!important}.finance-status-cancelled{background:#f1f1f1!important;color:#7c838c!important}
.invoice-hero{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.invoice-hero h2{font-size:26px;margin:4px 0}.invoice-hero p{margin:0;color:var(--muted)}.finance-two{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.installment-list article{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.installment-list article:last-child{border-bottom:0}.installment-no{width:34px;height:34px;border-radius:10px;background:#edf5f7;color:var(--primary);display:grid;place-items:center;font-weight:900}.installment-list b{font-size:12px}.installment-list small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.installment-side{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.btn.small{padding:7px 10px;font-size:10px}.payment-context{background:#eef7f8;border:1px solid #d7e9ec;border-radius:10px;padding:12px 14px;margin-bottom:14px}.payment-context b,.payment-context span{display:block}.payment-context span{color:var(--muted);font-size:11px;margin-top:3px}
.cash-unit{margin-bottom:14px;padding:12px 16px}.cash-unit form{max-width:360px}.cash-in{color:var(--ok)}.cash-out{color:var(--danger)}.close-cash{margin-top:14px}.commission-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.commission-summary article b,.commission-summary article span{display:block}.commission-summary article span{font-size:11px;color:var(--muted);margin-top:5px}.link-button{border:0;background:none;color:var(--primary);font-weight:800;cursor:pointer;padding:0}
@media(max-width:1200px){.finance-kpis{grid-template-columns:repeat(3,1fr)}.finance-quick{grid-template-columns:repeat(3,1fr)}}@media(max-width:850px){.finance-kpis,.finance-kpis.four,.commission-summary{grid-template-columns:1fr 1fr}.finance-two{grid-template-columns:1fr}.finance-quick{grid-template-columns:1fr 1fr}.installment-list article{grid-template-columns:38px 1fr}.installment-side{grid-column:2;justify-content:flex-start}}@media(max-width:560px){.finance-kpis,.finance-kpis.four,.commission-summary,.finance-quick{grid-template-columns:1fr}.finance-filters{display:grid;grid-template-columns:1fr;width:100%}.invoice-hero{align-items:flex-start;gap:12px;flex-direction:column}}
