@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f6f8fa;--white:#fff;--ink:#1d323d;--muted:#82909a;--line:#e7ecef;--teal:#148b7e;--teal-soft:#eaf6f2;--nav:#172e38;--purple:#8d79bf;--amber:#bc985c;--shadow:0 4px 20px #233c4a05;--radius:14px;font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);font-size:13px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}button{color:inherit}svg{display:block}button svg,.icon svg,[data-icon] svg{width:20px;height:20px;flex-shrink:0}button{display:inline-flex;align-items:center;justify-content:center;gap:8px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #50b5a980;outline-offset:3px}button,input,select,textarea{border:1px solid var(--line)}input,select,textarea{background:white;border-radius:8px;padding:11px 12px;width:100%;color:var(--ink);min-height:42px}input::placeholder,textarea::placeholder{color:#a0aab3}textarea{resize:vertical;min-height:90px}h1,h2,h3,h4,p{margin:0}h1{font-size:28px;letter-spacing:-1px;font-weight:800}h2{font-size:20px;letter-spacing:-.6px}h3{font-size:15px;font-weight:800}h4{font-size:13px}small{font-size:11px}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:800;color:var(--teal)}.sidebar{width:230px;position:fixed;inset:0 auto 0 0;background:var(--nav);color:#a4b4bd;display:flex;flex-direction:column;padding:30px 17px 0;z-index:30}.brand{display:flex;align-items:center;gap:10px;color:white;font-size:21px;font-weight:800;letter-spacing:-.6px;white-space:nowrap}.brand-light{font-weight:500;color:#9ad7ce}.brand small{display:block;font-size:6.7px;letter-spacing:2px;color:#8ba4ae;margin-top:6px;font-weight:600}.brand-mark{width:33px;height:40px;color:#82cfc3;flex-shrink:0}.brand-mark svg{width:33px;height:38px}.clinic-switch{display:flex;align-items:center;gap:10px;margin:32px 0 27px;background:#ffffff06;border:1px solid #ffffff10;border-radius:10px;padding:13px 10px;color:#e8f0f2;font-size:11px;font-weight:650}.clinic-switch small{display:block;color:#829ba7;font-size:9px;font-weight:400;margin-top:3px}.clinic-symbol{background:#ffffff09;padding:8px;border-radius:7px;color:#94afa9}.live-dot{display:inline-block;width:6px;height:6px;background:#62b6a0;border-radius:50%;flex-shrink:0}.clinic-switch .live-dot{margin-left:auto}.nav-caption{font-size:9px;letter-spacing:1.5px;padding:0 12px;margin-bottom:12px;color:#78919e}.nav-item{position:relative;display:flex;align-items:center;gap:12px;padding:13px 13px;border-radius:8px;font-size:12px;font-weight:600;margin:4px 0;transition:background .15s,color .15s}.nav-item svg{width:18px;height:18px}.nav-item:hover{background:#ffffff08;color:white}.nav-item.active{background:#2d514f;color:#cbf0e4}.nav-item.active:before{content:'';position:absolute;left:-17px;width:3px;height:20px;background:#85d5bf;border-radius:0 3px 3px 0}.nav-badge{margin-left:auto;font-size:10px;background:#ffffff12;border-radius:5px;padding:2px 6px;color:#d8f6ef}.sidebar-bottom{margin-top:auto}.sidebar-note{margin:30px 7px 20px;padding:20px 14px;background:linear-gradient(140deg,#2c454d,#203b46);border:1px solid #ffffff09;border-radius:10px;position:relative;overflow:hidden}.tiny-star{font-size:22px;color:#8ac5b7}.sidebar-note h4{margin:10px 0;font-size:11px;color:#d7e6e8}.sidebar-note p{font-size:10px;line-height:1.9;color:#8fa8b0}.note-lines{position:absolute;right:-22px;bottom:-42px;transform:rotate(-25deg)}.note-lines i{display:block;width:80px;height:80px;border:1px solid #8ac5b728;border-radius:50%;position:absolute;bottom:0;right:0}.note-lines i:nth-child(2){width:100px;height:100px}.note-lines i:nth-child(3){width:120px;height:120px}.user-block{border-top:1px solid #ffffff10;display:flex;align-items:center;gap:9px;padding:21px 0;margin-top:12px}.avatar{display:inline-flex;width:36px;height:36px;border-radius:11px;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:#eaf3f0;color:#478779;flex-shrink:0}.avatar-dark{color:#b7d6cb;background:#3b544f}.user-block b{display:block;font-size:10px;color:#dce9ec;font-weight:600}.user-block small{display:block;font-size:9px;color:#7896a1;margin-top:3px}.user-block form{margin-left:auto}.icon-button{border:0;background:transparent;padding:7px;border-radius:7px;flex-shrink:0}.icon-button:hover{background:#82909a10}.logout{color:#8ba2ad}.logout svg{width:16px;height:16px}.main-shell{margin-left:230px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:80px;background:#ffffffde;border-bottom:1px solid var(--line);padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}.breadcrumb{display:flex;align-items:center;gap:15px;font-size:10px;color:#94a0a7}.breadcrumb b{color:#536871;font-weight:650}.slash{color:#d3d9dd}.topbar-right{display:flex;align-items:center;gap:20px}.global-search{display:flex;align-items:center;gap:9px;color:#97a3aa}.global-search svg{width:16px;height:16px}.global-search input{border:0;min-height:30px;padding:5px 0;width:150px;font-size:11px;background:transparent}.global-search kbd{font-size:9px;font-family:inherit;border:1px solid var(--line);padding:2px 5px;border-radius:4px;white-space:nowrap}.top-date{font-size:10px;color:#80909a;border-left:1px solid var(--line);padding-left:20px}.top-avatar{width:31px;height:31px;border-radius:50%;background:#f0e9df;border:3px solid white;box-shadow:0 0 0 1px #e9e7e3;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#9f835d}.mobile-menu{display:none}main#main{padding:31px 32px 24px;flex:1;min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1{margin:4px 0 7px}.page-heading p{color:var(--muted);font-size:11px}.page-heading .eyebrow{font-size:9px;letter-spacing:1.5px}.heading-actions{display:flex;gap:9px;align-items:center}.button{border-radius:8px;padding:11px 15px;font-size:11px;font-weight:750;min-height:39px;white-space:nowrap;background:white;border:1px solid var(--line);transition:.15s}.button:hover{background:#f0f5f4}.button.primary{background:var(--teal);color:white;border-color:var(--teal);box-shadow:0 3px 6px #148b7e12}.button.primary:hover{background:#11786e}.button.soft{background:#edf6f3;color:var(--teal);border-color:#dbece5}.button.danger{color:#bd5962;background:#fff4f3;border-color:#f5dcd9}.button svg{width:16px;height:16px}.button.small{padding:7px 11px;min-height:32px;font-size:10px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:23px}.stat-card{display:flex;gap:14px;align-items:center;background:white;border:1px solid var(--line);box-shadow:var(--shadow);padding:19px 20px;border-radius:11px;position:relative}.stat-icon{width:42px;height:42px;background:#eef7f4;color:#429587;border-radius:11px;display:flex;align-items:center;justify-content:center}.stat-icon.purple{background:#f2eef8;color:#9a82c4}.stat-icon.amber{background:#fbf5e9;color:#bba16a}.stat-icon.blue{background:#edf3fb;color:#7398c3}.stat-icon svg{width:20px;height:20px}.stat-label{font-size:10px;color:#87949e;margin-bottom:5px}.stat-value{font-size:24px;line-height:1.1;letter-spacing:-.8px;font-weight:750}.stat-detail{font-size:9px;color:#8fa49d;position:absolute;right:15px;bottom:21px}.schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:20px;align-items:start}.panel{border:1px solid var(--line);border-radius:var(--radius);background:white;box-shadow:var(--shadow);overflow:hidden}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;padding:19px 20px;gap:12px;flex-wrap:wrap}.calendar-title{display:flex;align-items:center;gap:12px}.calendar-title h2{font-size:16px;white-space:nowrap}.week-tag{font-size:9px;color:#8b98a0;background:#f3f6f7;padding:4px 7px;border-radius:4px}.arrow-group{display:flex;gap:2px}.arrow-group button{padding:5px}.arrow-group svg{width:16px;height:16px}.calendar-controls{display:flex;align-items:center;gap:12px}.segmented{display:flex;background:#f3f5f6;padding:3px;border-radius:7px;gap:2px}.segmented button{border:0;background:none;font-size:10px;color:#8c969f;padding:6px 11px;border-radius:5px}.segmented button.active{background:white;color:#315d59;box-shadow:0 1px 4px #1a323b10;font-weight:700}.calendar-filterbar{display:flex;align-items:center;gap:12px;padding:0 20px 17px;justify-content:space-between}.doctor-filter{border:1px solid var(--line);display:flex;align-items:center;gap:7px;padding:0 10px;border-radius:7px;color:#95a2a9}.doctor-filter svg{width:14px;height:14px}.doctor-filter select{border:0;width:150px;min-height:31px;padding:6px 0;font-size:10px;background:transparent}.doctor-legend{display:flex;gap:13px;font-size:9px;color:#8d989e}.legend-item{display:flex;align-items:center;gap:5px;white-space:nowrap}.dot{width:6px;height:6px;display:inline-block;border-radius:50%;background:#78b6a9}.dot.purple{background:#aa98c8}.dot.amber{background:#c7ac73}.calendar-scroll{overflow:auto;max-height:695px;border-top:1px solid var(--line);scrollbar-width:thin;scrollbar-color:#d5dfdf transparent}.calendar-inner{min-width:680px}.day-headings{display:grid;grid-template-columns:48px repeat(var(--days,7),minmax(0,1fr));position:sticky;top:0;z-index:9;background:white;border-bottom:1px solid var(--line);height:67px}.day-headings .time-zone{font-size:8px;color:#a1a9af;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line)}.day-heading{border-right:1px solid var(--line);display:flex;justify-content:center;align-items:center;gap:9px}.day-heading .weekday{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#98a2a9}.day-heading .day-num{font-size:19px;font-weight:650;color:#546770;width:31px;height:31px;display:flex;align-items:center;justify-content:center;border-radius:9px}.day-heading.today{background:#f4faf8}.day-heading.today .day-num{color:white;background:var(--teal)}.day-heading.today .weekday{color:var(--teal)}.day-heading.weekend{background:#fcfdfd}.week-body{display:grid;grid-template-columns:48px repeat(var(--days,7),minmax(0,1fr));height:960px;position:relative}.hour-column{position:relative;border-right:1px solid var(--line);background:white;z-index:2}.hour-label{position:absolute;right:9px;font-size:8px;color:#a2acb1;transform:translateY(-50%)}.hour-label:first-child{transform:translateY(4px)}.day-column{position:relative;border-right:1px solid #edf0f2;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 29px,#f1f4f5 29px,#f1f4f5 30px,transparent 30px,transparent 59px,#e8edf0 59px,#e8edf0 60px);cursor:crosshair}.day-column.today{background-color:#fbfefd}.day-column.weekend{background-color:#fafcfc}.day-column.drag-over{background-color:#e8f6f0}.appointment{position:absolute;z-index:3;border:0;border-left:3px solid #77b5a7;border-radius:5px;background:#eaf5f0;color:#356a5d;text-align:left;display:block;overflow:hidden;padding:7px 7px;cursor:pointer;transition:box-shadow .15s;min-height:23px;box-shadow:0 1px 2px #00000003}.appointment:hover{box-shadow:0 3px 10px #1d323d20;z-index:6;filter:saturate(1.1)}.appointment.purple{background:#f0edf7;color:#74608f;border-left-color:#b09bcc}.appointment.amber{background:#faf3e5;color:#917747;border-left-color:#cfb17b}.appointment.cancelled,.appointment.no_show{opacity:.48;background:#f1f3f4;color:#89969b;border-left-color:#acb8bd;text-decoration:line-through}.appointment .appt-time{font-size:8px;display:flex;align-items:center;justify-content:space-between;gap:2px;opacity:.85;font-weight:650;white-space:nowrap}.appt-time svg{width:10px;height:10px}.appointment .appt-name{font-size:9px;font-weight:800;line-height:1.45;margin-top:5px;overflow:hidden;text-overflow:ellipsis}.appointment .appt-service{font-size:8px;line-height:1.5;margin-top:3px;opacity:.8}.appointment .appt-length{display:inline-flex;border:1px solid currentColor;border-radius:3px;padding:1px 4px;font-size:7px;margin-top:10px;opacity:.7}.appointment.compact{padding:3px 6px}.appointment.compact .appt-name{margin-top:1px;white-space:nowrap}.appointment.compact .appt-service{display:none}.now-line{position:absolute;left:0;right:0;height:1px;background:#dba583;z-index:5;pointer-events:none}.now-line:before{content:'';position:absolute;left:-3px;top:-3px;width:7px;height:7px;border-radius:50%;background:#dba583}.calendar-bottom{padding:12px 17px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#98a4aa;font-size:8px;border-top:1px solid var(--line)}.calendar-bottom span{display:flex;gap:5px;align-items:center}.calendar-bottom svg{width:12px;height:12px}.aside-card{padding:20px;margin-bottom:17px}.aside-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.aside-title h3{font-size:13px}.counter{font-size:9px;border:1px solid var(--line);padding:3px 6px;border-radius:4px;color:#8d9ca3}.today-date{color:#99a6ad;font-size:9px;margin-top:5px}.upcoming-label{font-size:8px;letter-spacing:1px;color:#8da198;display:flex;align-items:center;gap:6px;margin-bottom:10px}.next-patient{border:1px solid #dfede6;border-radius:10px;background:#f5faf7;padding:15px;margin-bottom:18px}.next-patient .avatar{width:35px;height:35px;border-radius:50%;background:#e2efe6}.next-patient .next-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}.next-patient b{font-size:10px;display:block}.next-patient small{font-size:9px;color:#8a9f95;display:block;margin-top:3px}.next-time{display:flex;align-items:center;gap:7px;color:#5a7b6d;font-size:10px;padding-top:10px;border-top:1px solid #e0ece5}.next-time svg{width:13px;height:13px}.next-patient .button{margin-top:12px;width:100%;font-size:9px}.day-patient{display:flex;gap:10px;margin:18px 0;align-items:flex-start;cursor:pointer}.day-patient:hover b{color:var(--teal)}.day-time{font-size:9px;color:#87979e;min-width:31px;padding-top:3px}.day-patient .patient-tick{width:3px;background:#8abbad;border-radius:2px;align-self:stretch;min-height:30px}.patient-tick.purple{background:#b6a2cd}.patient-tick.amber{background:#d3b986}.day-patient b{font-size:9px;display:block;line-height:1.5}.day-patient small{display:block;font-size:8px;line-height:1.6;color:#9aa5ac;margin-top:2px}.aside-link{font-size:9px;color:var(--teal);font-weight:700;border:0;background:none;display:flex;justify-content:space-between;width:100%;padding:10px 0 0;border-top:1px solid var(--line)}.aside-link svg{width:13px;height:13px}.quick-card{padding:20px;background:#edf4f2;position:relative;border-color:#e2ece7}.quick-card .eyebrow{font-size:8px}.quick-card h3{font-size:16px;line-height:1.5;margin-top:11px;letter-spacing:-.3px;max-width:150px}.quick-card p{font-size:9px;color:#8a9f96;line-height:1.8;margin:9px 0 15px}.quick-tooth{position:absolute;right:15px;top:25px;color:#a5c7bb;transform:rotate(12deg)}.quick-tooth svg{width:38px;height:44px}.quick-card .button{background:#fff9;border-color:#d8e8de;font-size:9px;color:#548773}.app-footer{display:flex;justify-content:space-between;padding:0 32px 18px;font-size:8px;color:#a3afb5}.app-footer span{display:flex;gap:6px;align-items:center}.app-footer .live-dot{width:4px;height:4px}.table-toolbar{display:flex;justify-content:space-between;gap:15px;padding:20px;border-bottom:1px solid var(--line);align-items:center}.search-field{position:relative;max-width:360px;width:100%}.search-field svg{position:absolute;left:12px;top:12px;width:16px;height:16px;color:#96a3a9}.search-field input{padding-left:36px;font-size:11px;min-height:39px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px}th{font-size:9px;color:#95a1a9;font-weight:600;padding:14px 20px;background:#fbfcfd;white-space:nowrap}td{padding:17px 20px;border-top:1px solid #f0f3f5;color:#71838d}td strong{color:#314c58;font-weight:750}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#f9fcfb}.person-cell{display:flex;align-items:center;gap:12px;min-width:170px}.person-cell small{display:block;color:#9ba8af;font-size:9px;margin-top:4px}.person-cell .avatar{font-size:10px}.status{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;background:#f2f5f6;color:#8999a1;font-size:8px;white-space:nowrap}.status.confirmed{background:#eaf5ee;color:#65947b}.status.scheduled{background:#f9f1e2;color:#b59b66}.status.completed{background:#edf2f9;color:#7b96b7}.status.arrived{background:#e3f3f0;color:#2c9586}.status.cancelled,.status.no_show{background:#faeeee;color:#b47b7b}.empty-state{padding:60px 25px;text-align:center;color:#9aa8af}.empty-state .empty-icon{width:55px;height:55px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#f0f6f3;color:#92b5a9;margin:0 auto 18px}.empty-state h3{color:#59716e;margin-bottom:9px}.empty-state p{font-size:11px;line-height:1.8;max-width:390px;margin:auto}.empty-state .button{margin-top:20px}.loading-state{display:flex;align-items:center;justify-content:center;gap:12px;color:#879e96;min-height:300px}.spinner{width:22px;height:22px;border:2px solid #dbe9e4;border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.profile-top{display:flex;align-items:center;gap:18px}.profile-top .avatar{width:60px;height:60px;font-size:20px;border-radius:17px}.profile-top h1{font-size:25px}.back-link{display:inline-flex;align-items:center;gap:6px;color:#879b94;font-size:10px;border:0;background:none;padding:0;margin-bottom:18px}.back-link svg{width:14px;height:14px}.profile-grid{display:grid;grid-template-columns:255px minmax(0,1fr);gap:22px}.profile-info{padding:22px}.profile-info h3{margin-bottom:20px}.info-row{margin:18px 0}.info-row dt{font-size:9px;color:#98a7af;margin-bottom:6px}.info-row dd{margin:0;font-size:11px;line-height:1.7}.allergy{background:#fcf2e7;color:#a98550;padding:12px;border-radius:8px;font-size:10px;line-height:1.7}.allergy b{display:block;margin-bottom:3px}.tabs{display:flex;gap:25px;padding:0 24px;border-bottom:1px solid var(--line)}.tabs button{border:0;background:none;padding:18px 0;font-size:11px;color:#8c9ca4;border-bottom:2px solid transparent;border-radius:0}.tabs button.active{color:var(--teal);border-bottom-color:var(--teal);font-weight:750}.profile-content{padding:24px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px}.section-head p{font-size:10px;color:#98a5ac;margin-top:5px}.tooth-chart{padding:22px 10px;background:#fcfdfd;border:1px solid #edf1f2;border-radius:12px;overflow:auto}.jaw{display:grid;grid-template-columns:repeat(16,minmax(27px,1fr));min-width:490px;gap:2px;position:relative;max-width:900px;margin:auto}.jaw.upper{border-bottom:1px dashed #dfe7e7;padding-bottom:12px;margin-bottom:12px}.tooth{background:none;border:0;padding:3px 0;display:flex;flex-direction:column;gap:6px;align-items:center;position:relative;border-radius:6px;color:#9baeb0;min-width:0}.tooth svg{width:28px;height:43px;overflow:visible;fill:#fff;stroke:currentColor;stroke-width:1.4;transition:.15s}.tooth .number{font-size:9px;font-weight:700;color:#84939b}.tooth:hover{background:#eef7f2}.tooth.selected{background:#e2f2e9;box-shadow:inset 0 0 0 1px #83bda4}.tooth.selected svg{fill:#bde3cf;stroke:#4c9979}.tooth.selected .number{color:#338564}.tooth.filled svg{fill:#d9e9f7;stroke:#8baccc}.tooth.caries svg{fill:#f8e3d9;stroke:#cda58f}.tooth.crown svg{fill:#f4ecd0;stroke:#b7a56d}.tooth.missing svg{fill:#f1f3f3;stroke:#d1d9da;stroke-dasharray:3 2}.tooth.treatment svg{fill:#e6dff2;stroke:#ab96c7}.tooth.lower svg{transform:rotate(180deg)}.chart-sides{display:flex;justify-content:space-between;color:#b4bfc4;font-size:8px;margin:0 8px 13px;text-transform:uppercase;letter-spacing:.8px}.tooth-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:15px;margin-top:20px;font-size:8px;color:#96a4ab}.tooth-legend i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px;background:#e1e9e9}.tooth-legend .filled{background:#adc9e3}.tooth-legend .caries{background:#e6b59c}.tooth-legend .crown{background:#d5c78f}.tooth-legend .treatment{background:#c4b2df}.tooth-legend .missing{background:#d0d9da}.chart-note{font-size:9px;color:#9ba9b0;text-align:center;margin-top:16px;line-height:1.7}.history-card{border:1px solid var(--line);border-radius:10px;padding:20px;margin-top:15px}.history-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.history-date{font-size:10px;color:#8e9ea7}.teeth-tags{display:flex;gap:5px}.tooth-tag{font-size:9px;background:#edf5f1;color:#699180;border-radius:4px;padding:3px 6px}.history-card h4{font-size:12px;line-height:1.6;margin:7px 0}.history-card p{font-size:10px;line-height:1.8;color:#8d9ba5;white-space:pre-wrap}.history-footer{display:flex;justify-content:space-between;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);font-size:10px;color:#97a4ac}.scan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;padding:22px}.scan-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:white}.scan-card .scan-preview{height:175px;background:#1b2932;display:flex;align-items:center;justify-content:center;width:100%;padding:0;border:0}.scan-card img{width:100%;height:100%;object-fit:contain}.scan-info{padding:15px}.scan-info h4{font-size:12px;margin-bottom:5px}.scan-info p{font-size:9px;color:#98a5ad;line-height:1.8}.scan-info a{display:inline-flex;gap:5px;align-items:center;color:var(--teal);font-size:10px;margin-top:10px}.scan-info svg{width:13px;height:13px}.report-chart{height:220px;display:flex;align-items:end;gap:10px;padding:20px 25px 38px;border-bottom:1px solid var(--line);overflow-x:auto}.chart-bar{flex:1;min-width:24px;max-width:65px;background:#9ec9ba;border-radius:5px 5px 0 0;position:relative;min-height:3px}.chart-bar:nth-child(even){background:#c3dcd2}.chart-bar span{position:absolute;bottom:-23px;width:100%;text-align:center;font-size:8px;color:#98a7ad}.report-period{display:flex;align-items:center;gap:8px}.report-period input{width:145px;min-height:36px;font-size:10px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.settings-card{padding:25px}.settings-card p{font-size:11px;line-height:1.9;color:#8d9fa7;margin:12px 0 18px}.doctor-row{display:flex;align-items:center;gap:11px;padding:16px 0;border-bottom:1px solid var(--line)}.doctor-row:last-child{border-bottom:0}.doctor-row b{font-size:11px;display:block}.doctor-row small{display:block;color:#97a5ac;font-size:9px;margin-top:4px}.doctor-row .dot{margin-left:auto}.settings-list{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px}.settings-list span{color:#8d9da5}.settings-list:last-child{border:0}
dialog{border:0;border-radius:17px;padding:0;width:min(640px,calc(100vw - 32px));max-height:92vh;color:var(--ink);box-shadow:0 24px 100px #142e3940;background:white}dialog.wide{width:min(860px,calc(100vw - 32px))}dialog::backdrop{background:#162e3b55;backdrop-filter:blur(3px)}.modal-header{padding:25px 27px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between;position:sticky;top:0;z-index:10;background:white}.modal-header .eyebrow{font-size:8px;margin-bottom:7px}.modal-header h2{font-size:21px}.modal-header p{font-size:10px;color:#8e9fa9;margin-top:7px}.modal-body{padding:23px 27px}.modal-footer{padding:18px 27px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;background:#fbfcfc;position:sticky;bottom:0;z-index:8}.modal-footer.spread{justify-content:space-between}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid .full{grid-column:1/-1}label{display:block;font-size:10px;font-weight:650;color:#627985}label input,label select,label textarea{display:block;margin-top:7px;font-size:11px;font-weight:400}label .help{display:block;font-size:9px;color:#9aabb3;margin-top:6px;font-weight:400}.label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.label-row label{font-size:10px}.link-button{border:0;background:none;font-size:10px;color:var(--teal);padding:0;display:inline-flex;align-items:center;gap:4px}.duration-options{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.duration-options button{font-size:10px;padding:7px 11px;border-radius:6px;background:white;color:#889ba6}.duration-options button.active{border-color:#7ab7a4;background:#f0f8f4;color:#388c70}.duration-summary{color:#89a196;font-size:10px;margin-top:10px}.form-error{background:#fff2ed;border:1px solid #f3d7ce;color:#b96c55;border-radius:8px;padding:11px 14px;font-size:11px;line-height:1.7;margin-bottom:18px}.form-error:empty{display:none}.form-hint{font-size:10px;line-height:1.8;color:#98a8af;background:#f5f9f7;padding:12px;border-radius:8px;margin-top:15px}.form-section-title{font-size:12px;padding:4px 0 0}.selected-teeth{font-size:10px;color:#78a18c;margin-top:12px;min-height:16px}.treatment-chart{padding:14px 4px}.treatment-chart .jaw{min-width:460px}.treatment-chart .tooth svg{width:25px;height:36px}.detail-person{display:flex;align-items:center;gap:13px;margin-bottom:23px}.detail-person .avatar{width:50px;height:50px;font-size:15px}.detail-person h3{font-size:17px}.detail-person p{color:#97a7b0;font-size:11px;margin-top:6px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px}.detail-item small{display:block;color:#9baab2;font-size:9px;margin-bottom:7px}.detail-item b{font-size:11px;line-height:1.6;font-weight:650}.detail-status{display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:17px;border-top:1px solid var(--line)}.detail-status select{width:170px;min-height:35px;font-size:10px}.upload-zone{position:relative;padding:30px;text-align:center;border:1.5px dashed #c3d7d1;border-radius:12px;background:#f7fbf9;color:#7d9a8e}.upload-zone svg{width:32px;height:32px;margin:0 auto 12px}.upload-zone p{font-size:11px;font-weight:650}.upload-zone small{display:block;font-size:9px;margin-top:8px;color:#a0b1aa}.upload-zone input{margin-top:18px;background:white;font-size:10px}.image-viewer{background:#15232c;padding:15px;text-align:center;overflow:auto}.image-viewer img{display:block;max-width:100%;max-height:68vh;margin:auto;object-fit:contain}.image-viewer.zoom img{max-width:none;max-height:none;width:150%}.toast-region{position:fixed;right:25px;bottom:25px;z-index:100;display:flex;flex-direction:column;gap:10px}.toast{display:flex;align-items:center;gap:10px;background:#24483e;color:#e4f6eb;border:1px solid #ffffff20;border-radius:10px;padding:15px 20px;box-shadow:0 6px 30px #15302d25;font-size:12px;animation:toast-in .2s ease;max-width:390px}.toast.error{background:#885a4a;color:white}.toast svg{width:17px;height:17px}@keyframes toast-in{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.login-page{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-story{background:var(--nav);color:white;padding:55px 65px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-story .brand{font-size:26px;gap:0}.login-story .light{color:#93c5b5;font-size:9px}.login-story h1{font-size:49px;line-height:1.24;letter-spacing:-2px;margin:23px 0}.login-story p{font-size:13px;line-height:1.9;color:#a4bbc2}.login-story>small{color:#6f919a;font-size:10px}.login-art{width:220px;color:#83baaa;margin:25px 0 0 160px}.login-panel{display:flex;align-items:center;justify-content:center;background:#fbfcfb;padding:40px}.login-box{width:350px}.login-pill{font-size:8px;letter-spacing:1.5px;color:#88a297}.login-box h2{font-size:29px;margin:17px 0 10px;letter-spacing:-1px}.login-box>p{color:#97a6ad;font-size:11px;margin-bottom:35px}.login-box label{margin:20px 0;font-size:11px}.login-box input{min-height:46px}.login-box .button{width:100%;justify-content:space-between;margin-top:8px;min-height:45px}.login-help{font-size:9px;color:#a7b3b8;line-height:1.9;margin-top:25px}
@media(min-width:1700px){.sidebar{width:250px;padding-left:25px;padding-right:25px}.main-shell{margin-left:250px}main#main{padding:35px 40px}.schedule-layout{grid-template-columns:minmax(0,1fr) 280px}.calendar-inner{min-width:760px}.appointment .appt-name{font-size:10px}.appointment .appt-service{font-size:9px}.appointment .appt-time{font-size:9px}}
@media(max-width:1340px){.schedule-layout{grid-template-columns:1fr}.schedule-aside{display:none}.stat-detail{display:none}.top-date{display:none}.calendar-scroll{max-height:710px}}
@media(max-width:1050px){.sidebar{width:205px;padding-left:12px;padding-right:12px}.main-shell{margin-left:205px}.brand{font-size:19px}.brand-mark{width:27px}.brand small{font-size:6px;letter-spacing:1.7px}.nav-item{font-size:11px;gap:10px}.nav-item.active:before{left:-12px}.topbar{padding:0 24px}.breadcrumb>span:first-of-type{display:none}.global-search kbd{display:none}main#main{padding:25px 24px}.stat-card{padding:16px 13px;gap:10px}.stat-icon{width:34px;height:34px}.stat-value{font-size:21px}.stat-label{font-size:9px}.profile-grid{grid-template-columns:210px minmax(0,1fr)}.doctor-legend{gap:9px}.settings-grid{grid-template-columns:1fr}.login-story{padding:45px}.login-story h1{font-size:40px}.login-art{margin-left:75px}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);width:230px;transition:transform .2s;box-shadow:5px 0 40px #172e3820}.sidebar.open{transform:translateX(0)}.main-shell{margin-left:0}.mobile-menu{display:inline-flex}.topbar{height:65px;padding:0 16px;gap:10px}.breadcrumb{gap:6px}.breadcrumb .slash{display:none}.topbar-right{gap:9px}.global-search{gap:4px}.global-search input{width:125px;font-size:10px}.top-avatar{display:none}main#main{padding:23px 16px}.page-heading{align-items:flex-start;gap:10px;margin-bottom:22px}h1{font-size:24px}.page-heading p{font-size:10px;line-height:1.7;max-width:230px}.page-heading .heading-actions{flex-direction:column;align-items:flex-end}.heading-actions .button{padding:10px;font-size:10px}.heading-actions .secondary-action{display:none}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.stat-card{padding:15px}.stat-label{font-size:10px}.stat-value{font-size:23px}.calendar-toolbar{padding:15px 12px;gap:15px}.calendar-title{gap:8px}.calendar-title h2{font-size:14px}.week-tag{display:none}.calendar-controls{width:100%;justify-content:space-between}.calendar-filterbar{padding:0 12px 14px;gap:10px}.doctor-legend{gap:7px;flex-wrap:wrap;justify-content:flex-end;font-size:7px}.doctor-filter select{width:110px}.calendar-scroll{max-height:650px}.calendar-inner{min-width:680px}.calendar-inner.day-mode{min-width:0}.calendar-bottom{font-size:7px;padding:10px}.calendar-bottom span:last-child{display:none}.app-footer{padding:0 16px 18px;font-size:7px}.app-footer span:last-child{display:none}.table-toolbar{padding:14px;gap:10px}th,td{padding:15px}.profile-grid{grid-template-columns:1fr}.profile-info{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px}.profile-info h3{grid-column:1/-1}.profile-info .info-row{margin:0 0 10px}.profile-info dl{display:contents}.profile-info .allergy{grid-column:1/-1}.profile-content{padding:16px}.tabs{gap:20px;padding:0 16px}.tabs button{font-size:10px}.profile-top{gap:10px}.profile-top h1{font-size:20px}.profile-top .avatar{width:45px;height:45px;font-size:16px}.form-grid{gap:15px}.modal-header{padding:20px}.modal-body{padding:20px}.modal-footer{padding:15px 20px;flex-wrap:wrap}.modal-footer .button{font-size:10px;padding:10px}.detail-grid{gap:15px}.report-period{flex-wrap:wrap;justify-content:flex-end}.report-period input{width:125px}.page-heading.report-heading{flex-wrap:wrap}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-panel{padding:30px}.scan-grid{padding:15px}.toast-region{right:16px;bottom:16px;left:16px}.toast{max-width:100%;font-size:11px}.tooth-chart{padding:15px 8px}.settings-card{padding:20px}}
.appointment .appt-length{align-items:center;gap:3px}.appointment .appt-length svg{width:9px;height:9px}
.tooth:not(.lower) svg{transform:rotate(180deg)}.tooth.lower svg{transform:none}
.long-stat{gap:10px;padding-left:15px;padding-right:15px}.long-stat .stat-icon{width:32px;height:32px;flex-shrink:0}.long-stat .stat-value{font-size:19px;white-space:nowrap}
@media(min-width:761px) and (max-width:1200px){.profile-grid{grid-template-columns:210px minmax(0,1fr)}.jaw{min-width:450px;grid-template-columns:repeat(16,minmax(24px,1fr))}.tooth svg{width:25px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.calendar-controls{flex-wrap:wrap}
.calendar-open-button{color:var(--teal);border-color:#c9e2dc;background:#f0f8f5}
.calendar-open-button svg{width:15px;height:15px}
.date-picker-body{padding:20px 24px 22px}
.date-picker-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.date-picker-toolbar>.icon-button{min-width:36px;min-height:40px}
.date-picker-selects{display:flex;gap:8px;flex:1;min-width:0}
.date-picker-selects select{font-size:13px;text-transform:capitalize;min-width:0}
.date-picker-selects #picker-month{flex:1.4}
.date-picker-selects #picker-year{flex:1}
.date-picker-weekdays,.date-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.date-picker-weekdays{margin-bottom:9px;text-align:center;color:var(--muted);font-size:11px}
.date-picker-day{position:relative;flex-direction:column;gap:4px;border:1px solid transparent;border-radius:10px;background:#f7f9fa;min-height:45px;padding:7px 2px;font-size:13px}
.date-picker-day:hover{background:#e1f2ec;border-color:#9acdbf}
.date-picker-day.outside-month{color:#9ca9af;background:transparent}
.date-picker-day.is-today{border-color:var(--teal);font-weight:800;color:var(--teal)}
.date-picker-day.is-selected{background:var(--teal);color:white}
.date-picker-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--teal)}
.date-picker-dot[hidden]{display:none}
.is-selected .date-picker-dot{background:white}
.date-picker-status{font-size:11px;color:var(--muted);padding:15px 0;min-height:44px}
.date-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:14px}
.date-picker-footer>span{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:7px}
.payment-method-label{display:block;color:var(--muted);font-size:10px;margin-top:5px}
@media(max-width:760px){.calendar-controls{gap:7px}.calendar-controls>.segmented{margin-left:auto}.date-picker-body{padding:16px}.date-picker-grid{gap:3px}.date-picker-toolbar{gap:4px}.date-picker-day{min-height:41px}.date-picker-selects{gap:5px}}
.topbar{position:sticky;top:0;z-index:20;flex-shrink:0}
.topbar-logout-form{display:flex;margin:0;flex-shrink:0}
.topbar-logout{min-height:40px;padding:9px 14px;color:var(--teal);border-color:#c9e2dc;background:#f0f8f5}
.topbar-logout:hover{background:#e1f2ec;border-color:#8fc4b7}
.sidebar{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.sidebar>*{flex-shrink:0}
.workflow-note{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.7;padding:16px 20px;margin:0 0 22px;border:1px solid #d8e9e4;background:#f0f8f5;border-radius:12px;color:#58746d}.workflow-note svg{width:18px;height:18px;flex-shrink:0;margin-top:2px}.plan-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;padding:22px}.plan-card{border:1px solid var(--border,#e2e9ea);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:14px}.plan-card-head,.plan-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.plan-number{font-size:9px;letter-spacing:1px;color:#75908a}.plan-card h3{font-size:19px}.plan-card p{font-size:12px;line-height:1.7;color:#75898e}.plan-card-foot{margin-top:auto;font-size:12px;border-top:1px solid #edf1f1;padding-top:16px}.plan-summary{display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:0 0 20px;color:#75898e;font-size:12px}.plan-summary b{margin-left:auto;color:#198a7c;font-size:22px}.plan-stages{margin-top:24px}.plan-stage{display:grid;grid-template-columns:35px 1fr auto;align-items:start;gap:16px;padding:20px 0;border-top:1px solid #e4eceb}.stage-number{font-size:21px;color:#a8c5bd}.plan-stage h4{margin:10px 0;font-size:15px}.plan-stage p{font-size:12px;line-height:1.7;margin-bottom:12px;white-space:pre-wrap;overflow-wrap:anywhere}.plan-stage b{font-size:13px;color:#168a7c}.plan-editor-head{margin:28px 0 16px}.plan-editor-stage{min-width:0;margin:16px 0 24px;border:1px solid #dce9e5;border-radius:12px;padding:18px}.plan-editor-stage legend{padding:0 8px;font-size:13px;font-weight:700;color:#1a8b7c}.stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#6e8c83}.plan-editor-stage .tooth-chart{margin:15px 0 22px;overflow-x:auto}.plan-editor-stage .tooth-legend{display:none}.plan-total{display:flex;align-items:center;justify-content:space-between;background:#ecf6f2;padding:18px;border-radius:10px;margin-bottom:20px;font-size:13px}.plan-total strong{font-size:22px;color:#168a7c}.check-label{display:flex!important;gap:10px;align-items:center;margin-top:18px}.check-label input{width:auto!important;min-height:0!important}.pre-line{white-space:pre-line}.earnings-banner{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#193a43;color:white;border-radius:18px;padding:30px 35px;margin-bottom:18px}.earnings-banner span{display:block;font-size:11px;color:#aac8c4;letter-spacing:1px}.earnings-banner strong{display:block;font-size:39px;letter-spacing:-1px;margin:10px 0}.earnings-banner p{font-size:12px;color:#b8d1cd;line-height:1.7}.earnings-banner b{display:block;font-size:24px;margin:12px 0}.earnings-banner small{color:#bad0cc}.rate-form{display:flex;align-items:flex-end;gap:10px;background:#f4f8f7;padding:14px;border-radius:10px;margin:0 0 20px}.rate-form label{flex:1;font-size:11px;display:flex;flex-direction:column;gap:8px}.rate-form input{max-width:160px;min-width:0;width:100%;border:1px solid #d4e3df;border-radius:8px;padding:10px;background:white;font:inherit;font-size:15px}.rate-form>span{padding:12px 0;color:#6e8c83}.staff-settings{grid-column:1/-1}.staff-settings small,.table-wrap td>small{display:block;margin-top:5px}.settings-list small{display:block;color:#9baaaa;margin-top:5px}.settings-card p{line-height:1.8}.table-toolbar .muted{font-size:11px;margin-top:8px}.user-block small{font-size:8px}.plan-stage .button{white-space:normal}.plan-editor-stage .tooth:disabled,.modal-body .tooth:disabled{opacity:1;cursor:default}[hidden]{display:none!important}
@media(max-width:760px){.earnings-banner{align-items:flex-start;flex-direction:column;padding:24px;gap:20px}.earnings-banner strong{font-size:32px}.plan-stage{grid-template-columns:24px 1fr}.plan-stage>div:last-child{grid-column:2}.plan-list{grid-template-columns:1fr;padding:14px}.plan-editor-stage{padding:10px}.plan-summary{gap:10px}.plan-editor-head{align-items:flex-start}.staff-settings .section-head{flex-wrap:wrap;gap:15px}.rate-form{flex-wrap:wrap}.plan-summary b{font-size:18px}}
@media(max-width:600px){.topbar .breadcrumb b{display:none}.topbar-right{flex:1;min-width:0}.global-search{flex:1;min-width:0}.global-search input{width:100%;min-width:0}.topbar-logout{padding:9px 12px}}
.plan-chart .tooth-legend{display:none}.plan-chart .chart-note{margin:6px 0 16px}

.treatment-groups-hint{font-size:11px;color:#81958e;line-height:1.8;margin:0 0 20px}
.treatment-editor-group .tooth.unavailable{opacity:.28;cursor:not-allowed}
.treatment-editor-group .form-grid{gap:15px}
.treatment-editor-group textarea{min-height:65px}
.treatment-editor-group{scroll-margin-top:125px}
.add-treatment-group{width:100%;justify-content:center;border-style:dashed;min-height:44px;margin-bottom:25px}
.treatment-common-fields{padding-top:20px;border-top:1px solid var(--line)}
.treatment-result{padding:15px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.treatment-result:last-of-type{border-bottom:0}
.treatment-result-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.treatment-result h4{font-size:12px;line-height:1.7;white-space:pre-wrap;margin:0 0 5px}
.treatment-result p{font-size:11px;line-height:1.8;white-space:pre-wrap;color:#7c919b}
.tooth-state-badge{border-radius:6px;padding:4px 8px;font-size:9px;color:#4b7166;background:#edf6f2}
.tooth-state-badge.filled{background:#eaf2fb;color:#5278a0}.tooth-state-badge.caries{background:#fff0e9;color:#ae6954}
.tooth-state-badge.crown{background:#fbf4df;color:#8c7837}.tooth-state-badge.missing{background:#eef1f2;color:#6b7b84}
.tooth-state-badge.treatment{background:#f0ebfa;color:#8064ac}
.treatment-table-details{min-width:240px;max-width:400px}.treatment-table-details .treatment-result:first-child{padding-top:0}
.treatment-table-details .treatment-result:last-child{padding-bottom:0}

.plan-print-controls{display:flex;align-items:flex-end;gap:12px;margin-left:auto}.plan-print-controls label{font-size:10px}.plan-print-controls select{width:135px;min-height:39px;padding:9px 10px;margin-top:6px;font-size:11px}.plan-print-controls>.button{min-height:39px}@media(max-width:600px){.plan-print-controls{width:100%;flex-wrap:wrap;gap:10px}.plan-print-controls label{flex:1}.plan-print-controls select{width:100%}}

.scan-heading-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.scan-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.scan-card-actions .button{font-size:10px}.scan-card-actions a{display:flex;align-items:center;gap:5px}.scan-card-actions a svg{width:14px;height:14px}@media(max-width:760px){#profile-content>.section-head:has(.scan-heading-actions){flex-wrap:wrap;gap:12px}.scan-heading-actions .button{font-size:10px;padding:8px}}

@media(max-width:600px){.table-toolbar:has(#scan-patient-filter){flex-wrap:wrap}.table-toolbar:has(#scan-patient-filter) .doctor-filter{flex:0 1 230px;max-width:100%;min-width:0}.table-toolbar #scan-patient-filter{width:100%!important;min-width:0;flex:1}}

.hour-label:last-child{transform:translateY(-100%)}
