*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0e13;--bg-card: #111720;--bg-raised: #161d28;--bg-input: #0d1219;--border: #1e2733;--border-hover: #33414f;--text: #e8edf4;--text-muted: #97a5b6;--text-dim: #62707f;--primary: #4fb0dd;--primary-hover: #6cc2ea;--primary-ink: #06222e;--danger: #e8503f;--danger-hover: #f26a59;--success: #55c7b4;--amber: #ffb057;--shadow: none;--shadow-card: none;--focus: 0 0 0 2px var(--bg), 0 0 0 4px var(--primary);--radius: 12px;--radius-sm: 8px;--font-sans: "DM Sans", -apple-system, sans-serif;--font-mono: "DM Mono", "SF Mono", monospace;--st-healthy: #47586c;--st-healthy-ink: #8296ab;--st-cavity: #ff6b5e;--st-in-treatment: #ffb057;--st-filled: #74a8dc;--st-crown: #a68ce0;--st-root-canal: #d68fc4;--st-implant: #55c7b4;--st-missing: #3f4b59;--st-unknown: #7c8aa0}[data-theme=light]{--bg: #f4f6f9;--bg-card: #ffffff;--bg-raised: #fafbfd;--bg-input: #f7f9fb;--border: #dfe5ec;--border-hover: #b9c4d1;--text: #131a22;--text-muted: #556373;--text-dim: #8895a5;--primary: #1b7fae;--primary-hover: #14688f;--primary-ink: #ffffff;--danger: #d4453a;--danger-hover: #b8352b;--success: #16806f;--amber: #b4700d;--shadow: 0 1px 2px rgba(19, 26, 34, .05);--shadow-card: 0 1px 3px rgba(19, 26, 34, .06);--st-healthy: #b3bec9;--st-healthy-ink: #7b8896;--st-cavity: #d4453a;--st-in-treatment: #b4700d;--st-filled: #2f76b8;--st-crown: #7a54c0;--st-root-canal: #b5559a;--st-implant: #12796a;--st-missing: #c2cad3;--st-unknown: #8895a5}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:16px;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--bg-card);box-shadow:var(--shadow)}.app-logo{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--text)}.logo-icon{font-size:24px}.logo-text{font-size:20px;font-weight:700;letter-spacing:-.5px}.app-subtitle{color:var(--text-dim);font-size:14px}.app-main{flex:1;padding:24px;max-width:1400px;margin:0 auto;width:100%}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:var(--shadow-card)}.card h3{font-size:14px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:8px;font-family:var(--font-sans);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){border-color:var(--border-hover);color:var(--text)}.btn-back{padding:4px 8px;font-size:13px;margin-bottom:8px}input[type=text],input[type=date],textarea{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-sans);font-size:14px;outline:none;transition:border-color .15s}input:focus,textarea:focus{border-color:var(--primary)}.loading{color:var(--text-dim);text-align:center;padding:40px}.empty-state{color:var(--text-dim);font-size:14px;text-align:center;padding:20px}.screen-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.screen-header h1{font-size:24px;font-weight:700;letter-spacing:-.5px}.patient-dob{font-size:13px;color:var(--text-dim);font-family:var(--font-mono)}.search-input{margin-bottom:16px}.new-patient-form{display:flex;gap:12px;align-items:flex-end;margin-bottom:16px;flex-wrap:wrap}.new-patient-form input{flex:1;min-width:200px}.form-actions{display:flex;gap:8px}.patient-list{display:flex;flex-direction:column;gap:8px}.patient-card{display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:border-color .15s}.patient-card:hover{border-color:var(--border-hover)}.patient-info{display:flex;flex-direction:column}.patient-name{font-size:16px;font-weight:600}.patient-meta{font-size:13px;color:var(--text-dim);font-family:var(--font-mono)}.patient-arrow{color:var(--text-dim);font-size:18px}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:20px}.detail-main,.detail-sidebar{display:flex;flex-direction:column;gap:16px}.jaw-map-container{width:100%}.jaw-map-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px;justify-content:center}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:10px;height:10px;border-radius:3px}.legend-label{font-size:11px;color:var(--text-dim);font-family:var(--font-mono)}.jaw-svg{width:100%;max-width:860px;margin:0 auto;display:block}.tooth-group{transition:transform .15s}.tooth-group:hover{filter:brightness(1.3)}.tooth-selected rect,.tooth-selected line{filter:brightness(1.4)}@keyframes toothGlow{0%,to{opacity:.4}50%{opacity:1}}.tooth-glow{animation:toothGlow .8s ease-in-out infinite}.tooth-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.tooth-detail-title{display:flex;align-items:center;gap:12px}.tooth-number-large{font-family:var(--font-mono);font-size:28px;font-weight:700}.tooth-status-badge{padding:4px 12px;border-radius:20px;font-size:13px;font-weight:600;border:1px solid}.btn-close{background:transparent;border:1px solid var(--border);color:var(--text-dim);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-close:hover{border-color:var(--border-hover);color:var(--text)}.tooth-detail-section{margin-bottom:16px}.tooth-detail-section h4{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin-bottom:8px}.tooth-detail-section p{font-size:14px;color:var(--text-muted)}.tooth-detail-empty{color:var(--text-dim);font-size:14px}.status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}.status-option{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-family:var(--font-sans);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s}.status-option:hover{border-color:var(--border-hover);color:var(--text)}.status-option.active{font-weight:700}.status-dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}.intervention-list{display:flex;flex-direction:column;gap:8px}.intervention-item{display:flex;gap:12px;padding:8px 12px;background:var(--bg);border-radius:8px;font-size:13px}.intervention-date{font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap}.intervention-text{color:var(--text-muted)}.session-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.session-left,.session-right{display:flex;flex-direction:column;gap:16px}.mode-toggle{display:flex;gap:4px;background:var(--bg);border-radius:10px;padding:4px;margin-bottom:16px}.mode-btn{flex:1 1 0;min-width:0;padding:10px 8px;background:transparent;border:none;border-radius:8px;color:var(--text-dim);font-family:var(--font-sans);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.mode-btn.active{background:var(--bg-card);color:var(--text);box-shadow:0 1px 3px #0000004d}.mode-btn:hover:not(.active){color:var(--text-muted)}.voice-panel{display:flex;flex-direction:column;gap:16px;align-items:center}.voice-btn{width:120px;height:120px;border-radius:50%;border:3px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:all .2s;position:relative}.voice-btn:hover:not(:disabled){transform:scale(1.05)}.voice-btn:disabled{opacity:.5;cursor:not-allowed}.voice-btn.recording{background:var(--danger);border-color:var(--danger);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 20px #ef444400}}.voice-btn-icon{font-size:32px}.voice-btn-label{font-size:14px;font-weight:700;font-family:var(--font-sans);letter-spacing:1px}.live-transcript{width:100%;padding:12px 16px;background:var(--bg);border-radius:8px;border:1px solid var(--danger)}.recording-indicator{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--danger);font-weight:600;margin-bottom:8px}.recording-dot{width:8px;height:8px;border-radius:50%;background:var(--danger);animation:blink 1s ease-in-out infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.transcript-text{font-size:14px;color:var(--text-muted);font-style:italic}.processing-indicator{display:flex;align-items:center;gap:10px;color:var(--primary);font-size:14px;font-weight:600}.spinner{width:18px;height:18px;border:2px solid var(--border);border-top:2px solid var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.manual-input{width:100%;display:flex;gap:8px;align-items:flex-end}.manual-input textarea{flex:1;resize:none}.assistant-message{display:flex;gap:10px;padding:12px 16px;background:#1a2332;border-radius:10px;border:1px solid #1e3a5f}.assistant-icon{font-size:20px;flex-shrink:0}.assistant-message p{font-size:14px;color:var(--text-muted)}.session-log-card{max-height:400px;overflow-y:auto}.session-log{display:flex;flex-direction:column;gap:12px}.log-entry{padding:12px;background:var(--bg);border-radius:8px}.log-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.log-time{font-family:var(--font-mono);font-size:12px;color:var(--text-dim)}.log-mode{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}.log-mode.pregled{background:#3b82f626;color:var(--primary)}.log-mode.intervencija{background:#f9731626;color:#f97316}.log-transcript{font-size:14px;color:var(--text);margin-bottom:8px}.log-teeth{display:flex;flex-wrap:wrap;gap:6px}.log-tooth-badge{font-family:var(--font-mono);font-size:11px;padding:3px 8px;background:#22c55e1a;border:1px solid rgba(34,197,94,.2);border-radius:6px;color:var(--success)}.visit-list{display:flex;flex-direction:column;gap:16px}.visit-item{padding-bottom:16px;border-bottom:1px solid var(--border)}.visit-item:last-child{border-bottom:none;padding-bottom:0}.visit-date{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--primary);display:block;margin-bottom:8px}.visit-entries{display:flex;flex-direction:column;gap:6px}.visit-entry{display:flex;gap:10px;align-items:baseline;font-size:13px}.visit-time{font-family:var(--font-mono);color:var(--text-dim);font-size:12px;white-space:nowrap}.visit-transcript{color:var(--text-muted);flex:1}.visit-mode-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:6px;background:#3b82f61a;color:var(--primary);white-space:nowrap}.header-right{display:flex;align-items:center;gap:12px;margin-left:auto}.theme-toggle{background:transparent;border:1px solid var(--border);color:var(--text-muted);width:34px;height:34px;border-radius:8px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}.theme-toggle:hover{border-color:var(--primary);color:var(--primary)}.app-nav{display:flex;gap:4px;margin-left:16px}.nav-link{padding:6px 14px;border-radius:8px;font-size:14px;font-weight:600;color:var(--text-muted);text-decoration:none;transition:all .15s}.nav-link:hover{color:var(--text);background:#ffffff0d}.nav-link--active{background:#3b82f626;color:var(--primary)}.screen-title{font-size:24px;font-weight:700;letter-spacing:-.5px}.screen-header-left{display:flex;align-items:center;gap:20px}.screen-header-right{display:flex;flex-wrap:wrap;gap:10px;align-items:center;min-width:0}.btn-sm{padding:5px 10px;font-size:13px}.text-input{width:100%;padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-sans);font-size:14px;outline:none;transition:border-color .15s}.text-input:focus{border-color:var(--primary)}.textarea{resize:vertical;min-height:60px}.select-input{padding:10px 14px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-sans);font-size:14px;outline:none;cursor:pointer}.select-input--sm{padding:6px 10px;font-size:13px}.select-input:focus{border-color:var(--primary)}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:13px;font-weight:600;color:var(--text-muted)}.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.error-msg{color:var(--danger);font-size:13px}.save-msg{color:var(--success);font-size:13px;font-weight:600}.sched-settings{max-width:900px}.sched-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}.working-hours-list{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.wh-row{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;background:var(--bg)}.wh-row--active{background:#3b82f60d;border:1px solid rgba(59,130,246,.15)}.wh-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;min-width:130px}.wh-toggle input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;cursor:pointer}.wh-day{font-size:14px;font-weight:600}.wh-times{display:flex;align-items:center;gap:8px}.time-input{padding:6px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font-mono);font-size:13px;outline:none}.time-input:focus{border-color:var(--primary)}.wh-sep{color:var(--text-dim)}.slot-duration-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border);margin-bottom:16px}.slot-label{font-size:14px;font-weight:600;color:var(--text-muted)}.sched-save-row{display:flex;align-items:center;gap:12px}.services-list{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.service-row{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg);border-radius:8px;min-height:44px}.service-edit{display:flex;gap:8px;align-items:center;width:100%}.service-info{display:flex;align-items:center;gap:12px}.service-name{font-size:14px;font-weight:600}.service-duration{font-size:13px;color:var(--text-dim);font-family:var(--font-mono)}.service-actions{display:flex;gap:6px}.add-service-form{display:flex;gap:8px;align-items:center;padding-top:12px;border-top:1px solid var(--border)}.calendar-screen{display:flex;flex-direction:column;height:calc(100vh - 120px)}.week-stats{display:flex;gap:16px}.week-stat{display:flex;align-items:baseline;gap:5px}.week-stat-num{font-size:22px;font-weight:700;color:var(--primary)}.week-stat-label{font-size:13px;color:var(--text-dim)}.week-nav{display:flex;align-items:center;gap:8px;margin-bottom:16px}.week-range{font-size:15px;font-weight:600;color:var(--text-muted);margin-left:8px}.calendar-wrap{flex:1;overflow-x:auto;overscroll-behavior-x:contain;overflow-y:auto;border:1px solid var(--border);border-radius:12px}.week-calendar{display:flex;flex-direction:column;min-width:900px}.wc-header-row{display:grid;grid-template-columns:60px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:10}.wc-time-gutter{width:60px;flex-shrink:0}.wc-day-header{padding:10px 8px;text-align:center;border-left:1px solid var(--border)}.wc-day-header--today .wc-day-name{color:var(--primary);font-weight:700}.wc-day-name{font-size:13px;font-weight:600;color:var(--text-muted)}.wc-body{display:grid;grid-template-columns:60px repeat(7,1fr)}.wc-time-gutter{display:flex;flex-direction:column}.wc-hour-label{height:64px;padding:4px 8px 0;font-family:var(--font-mono);font-size:11px;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap}.wc-day-col{position:relative;border-left:1px solid var(--border)}.wc-day-col--today{background:#3b82f608}.wc-hour-slot{position:absolute;left:0;right:0;height:64px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.wc-hour-slot:hover{background:#3b82f612}.wc-appt{position:absolute;left:3px;right:3px;border-radius:6px;padding:4px 6px;cursor:pointer;overflow:hidden;transition:filter .15s;z-index:2}.wc-appt:hover{filter:brightness(1.2)}.wc-appt-time{font-family:var(--font-mono);font-size:10px;display:block;opacity:.8}.wc-appt:has(.wc-appt-dentist-badge) .wc-appt-time,.wc-appt:has(.wc-appt-dentist-badge) .wc-appt-name{padding-right:20px}.wc-appt-name{font-size:12px;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-appt-service{font-size:11px;display:block;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:18px;font-weight:700}.modal-close{background:transparent;border:1px solid var(--border);color:var(--text-dim);width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .15s}.modal-close:hover{border-color:var(--border-hover);color:var(--text)}.modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:16px}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid var(--border);margin-top:4px}.modal-footer-right{display:flex;gap:8px}.slots-grid{display:flex;flex-wrap:wrap;gap:6px}.slots-grid--lg{gap:10px}.slot-btn{padding:7px 12px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-family:var(--font-mono);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.slot-btn:hover{border-color:var(--primary);color:var(--primary)}.slot-btn--active{background:#3b82f626;border-color:var(--primary);color:var(--primary)}.slot-btn--lg{padding:10px 16px;font-size:15px}.slots-loading,.slots-empty,.slots-hint{font-size:13px;color:var(--text-dim);padding:8px 0}.booking-page{min-height:100vh;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:32px 16px 80px}.booking-header{text-align:center;margin-bottom:32px}.booking-logo{display:flex;align-items:center;justify-content:center;gap:10px;font-size:28px;font-weight:700;margin-bottom:8px}.booking-tagline{color:var(--text-dim);font-size:15px}.booking-steps{display:flex;gap:0;margin-bottom:32px;width:100%;max-width:520px}.booking-step-dot{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}.booking-step-dot:before{content:"";position:absolute;top:12px;left:50%;right:-50%;height:2px;background:var(--border)}.booking-step-dot:last-child:before{display:none}.booking-step-dot span:first-child{width:28px;height:28px;border-radius:50%;background:var(--bg-card);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text-dim);position:relative;z-index:1}.booking-step-dot.active span:first-child{background:var(--primary);border-color:var(--primary);color:#fff}.booking-step-dot.done span:first-child{background:var(--success);border-color:var(--success);color:#fff}.bsd-label{font-size:11px;color:var(--text-dim);font-weight:600}.booking-step-dot.active .bsd-label{color:var(--primary)}.booking-content{width:100%;max-width:520px}.booking-back{margin-bottom:16px}.booking-step-title{font-size:20px;font-weight:700;margin-bottom:20px}.booking-services{display:flex;flex-direction:column;gap:10px}.booking-service-card{padding:16px 20px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:all .15s;color:var(--text);font-family:var(--font-sans)}.booking-service-card:hover{border-color:var(--primary)}.booking-service-card--active{border-color:var(--primary);background:#3b82f614}.bsc-name{font-size:16px;font-weight:600}.bsc-duration{font-size:14px;color:var(--text-dim);font-family:var(--font-mono)}.booking-dates{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.booking-date-btn{padding:8px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-family:var(--font-sans);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}.booking-date-btn:hover{border-color:var(--primary);color:var(--primary)}.booking-date-btn--active{background:#3b82f61f;border-color:var(--primary);color:var(--primary)}.booking-nav{margin-top:24px;display:flex;justify-content:flex-end}.booking-summary-bar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;font-size:14px;font-weight:600;color:var(--text-muted)}.booking-form{display:flex;flex-direction:column;gap:16px}.booking-confirmed{text-align:center;padding:40px 20px}.booking-confirmed-icon{width:64px;height:64px;border-radius:50%;background:#22c55e26;border:2px solid var(--success);color:var(--success);font-size:28px;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.booking-confirmed h2{font-size:22px;font-weight:700;margin-bottom:16px}.booking-confirmed-details{display:flex;flex-direction:column;gap:4px;margin-bottom:16px;font-size:15px;color:var(--text-muted)}.booking-confirmed-note{font-size:13px;color:var(--text-dim);margin-bottom:24px}.patient-filter-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:16px}.filter-tab{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.filter-tab:hover{border-color:var(--border-hover);color:var(--text)}.filter-tab--active{border-color:currentColor;font-weight:600}.filter-tab-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.filter-tab-count{font-size:11px;font-weight:700;background:var(--bg);padding:1px 6px;border-radius:10px;opacity:.8}[data-theme=light] .filter-tab-count{background:#e8f0fb}.dentists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:20px}.dentist-profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:16px}.dentist-profile-top{display:flex;align-items:flex-start;gap:14px}.dentist-profile-avatar{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:#fff;flex-shrink:0}.dentist-profile-info{display:flex;flex-direction:column;gap:3px;min-width:0}.dentist-profile-name{font-size:16px;font-weight:700;color:var(--text);margin:0}.dentist-profile-spec{font-size:12px;color:var(--text-muted);font-weight:500}.dentist-profile-reg{font-size:11px;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.03em}.dentist-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(112px,100%),1fr));gap:8px}.dentist-stat-box{display:flex;flex-direction:column;align-items:center;padding:10px 8px;background:var(--bg);border-radius:8px;border:1px solid var(--border);gap:2px}[data-theme=light] .dentist-stat-box{background:#f5f9ff}.dentist-stat-value{font-size:22px;font-weight:700;color:var(--text);line-height:1}.dentist-stat-label{font-size:11px;font-weight:600;color:var(--text-muted);text-align:center;line-height:1.2}.dentist-stat-sub{font-size:10px;color:var(--text-dim);text-align:center}.dentist-profile-actions{display:flex;gap:8px;border-top:1px solid var(--border);padding-top:12px}.dentist-reg{font-size:11px;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.03em}.patient-meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:2px}.patient-dentist-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;border:1px solid currentColor;letter-spacing:.01em;white-space:nowrap}.patient-primary-dentist{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px;border:1px solid currentColor;margin-top:6px}.visit-header-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.visit-dentist-tag{font-size:11px;font-weight:600;white-space:nowrap}.session-dentist-bar{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;flex-wrap:wrap}.session-dentist-label{font-size:13px;font-weight:600;color:var(--text-muted);white-space:nowrap}.session-dentist-select{width:auto;min-width:220px;font-weight:600;transition:border-color .2s,color .2s}.session-dentist-note{font-size:12px;color:var(--amber);font-weight:500}.dentist-filter-wrap{display:flex;align-items:center}.dentist-filter-select{min-width:180px;font-weight:500;transition:border-color .2s,color .2s}.wc-appt-dentist-badge{position:absolute;top:4px;right:4px;width:18px;height:18px;border-radius:50%;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dentists-settings-card{grid-column:span 2}.dentists-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.dentist-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;gap:12px}.dentist-info{display:flex;align-items:center;gap:12px}.dentist-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.dentist-text{display:flex;flex-direction:column;gap:2px}.dentist-name{font-weight:600;font-size:14px;color:var(--text)}.dentist-spec{font-size:12px;color:var(--text-muted)}.dentist-edit{display:flex;flex-direction:column;gap:8px;width:100%}.dentist-edit-actions{display:flex;gap:8px}.add-dentist-form{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--border);margin-top:4px}.color-picker-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.color-label{font-size:12px;color:var(--text-muted);font-weight:500}.color-dot{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .15s;padding:0}.color-dot:hover{transform:scale(1.2)}.color-dot--active{border-color:var(--text);box-shadow:0 0 0 2px var(--bg-card),0 0 0 4px currentColor;transform:scale(1.15)}[data-theme=light] .assistant-message{background:#eff6ff;border-color:#bfdbfe}[data-theme=light] .wh-row{background:#f5f9ff}[data-theme=light] .wh-row--active{background:#eff6ff;border-color:#93c5fd}[data-theme=light] .time-input{background:var(--bg-input);border-color:var(--border);color:var(--text)}[data-theme=light] .service-row,[data-theme=light] .log-entry{background:#f5f9ff}[data-theme=light] .log-mode.pregled{background:#1a6cd41a;color:var(--primary)}[data-theme=light] .log-mode.intervencija{background:#ea580c1a;color:#ea580c}[data-theme=light] .intervention-item{background:#f5f9ff}[data-theme=light] .mode-btn.active{background:#fff;box-shadow:0 1px 4px #0e366e1f}[data-theme=light] .mode-toggle{background:#e8f0fb}[data-theme=light] .slot-btn{background:#f5f9ff}[data-theme=light] .slot-btn--active{background:#dbeafe;border-color:var(--primary);color:var(--primary)}[data-theme=light] .booking-service-card{background:#fff}[data-theme=light] .booking-service-card--active{background:#dbeafe}[data-theme=light] .booking-date-btn{background:#fff}[data-theme=light] .booking-date-btn--active{background:#dbeafe}[data-theme=light] .booking-summary-bar{background:#eff6ff;border-color:#bfdbfe}[data-theme=light] .modal{background:#fff}[data-theme=light] .modal-overlay{background:#0c1e3866}[data-theme=light] .wc-day-col--today{background:#1a6cd40a}[data-theme=light] .wc-hour-slot:hover{background:#1a6cd40f}[data-theme=light] .wc-header-row{background:#f5f9ff}[data-theme=light] .calendar-wrap{border-color:var(--border)}[data-theme=light] .patient-card:hover{border-color:var(--primary);box-shadow:0 2px 8px #1a6cd414}[data-theme=light] .visit-mode-badge{background:#1a6cd414;color:var(--primary)}[data-theme=light] .log-tooth-badge{background:#16a34a14;border-color:#16a34a33;color:#15803d}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.icon{display:block;flex:none}.app-header{padding:14px 28px;background:var(--bg-card);border-bottom:1px solid var(--border)}.logo-icon{display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:0}.logo-text{font-size:18px;font-weight:600;letter-spacing:-.2px}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.tooth-group:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--radius-sm)}.legend-dot{width:9px;height:9px;border-radius:2px;outline:1px solid color-mix(in srgb,currentColor 0%,transparent)}.jaw-map-legend{gap:10px 16px;padding-bottom:4px}.legend-label{color:var(--text-muted)}.voice-btn{width:116px;height:116px;border:1px solid var(--border-hover);background:var(--bg-raised);color:var(--primary);gap:7px;box-shadow:inset 0 1px #ffffff0a;transition:border-color .18s ease,color .18s ease,background .18s ease}.voice-btn:hover:not(:disabled){transform:none;border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--bg-raised))}.voice-btn-icon{font-size:0;line-height:0}.voice-btn-label{font-size:11px;font-weight:600;letter-spacing:1.4px;color:var(--text-muted)}.voice-btn.recording{border-color:var(--danger);color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--bg-raised))}.assistant-icon{font-size:0;color:var(--primary);flex-shrink:0;margin-top:2px}.btn{gap:8px;border-radius:var(--radius-sm)}.btn .icon{margin-left:-2px}.record,.record-chart{display:flex;flex-direction:column;gap:16px}.record-meta{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:6px}.record-meta__sep{width:3px;height:3px;border-radius:50%;background:var(--text-dim);flex:none}.patient-primary-dentist{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;border:none;padding:0;background:none}.dentist-swatch{width:7px;height:7px;border-radius:50%;flex:none}.card--chart{padding:24px 24px 28px}.card--chart .jaw-svg{max-width:1000px}.record-history .visit-item{padding-bottom:20px}.record-history .visit-header-row{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border)}.record-history .visit-date{margin-bottom:0;font-size:13px;letter-spacing:.02em}.record-history .visit-entries{gap:2px}.record-history .visit-entry{display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:9px 8px 9px 0;border-radius:var(--radius-sm)}.record-history .visit-entry:hover{background:var(--bg-raised)}.record-history .visit-time{font-family:var(--font-mono);font-size:12.5px;color:var(--text-dim)}.record-history .visit-transcript{font-size:15px;line-height:1.5;color:var(--text)}.record-history .visit-mode-badge{justify-self:end}@media(max-width:760px){.record-history .visit-entry{grid-template-columns:54px 1fr}.record-history .visit-mode-badge{grid-column:2;justify-self:start}}.record-history .visit-entries,.record-history .visit-header-row{max-width:980px}.session-screen .session-dentist-bar{padding:0;background:none;border:none;border-radius:0;margin:-4px 0 20px;gap:10px}.session-screen .session-dentist-label{color:var(--text-dim)}.session-screen .session-dentist-select{padding:5px 10px;font-size:13px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm)}.session-layout{grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:18px;align-items:start}.session-right .mode-toggle{display:inline-flex;gap:2px;padding:3px;margin-bottom:20px;border:1px solid var(--border);border-radius:9px}.session-right .mode-btn{flex:0 0 auto;padding:6px 16px;font-size:13px}.session-log-card{max-height:none;min-height:260px}.session-log{gap:8px}.log-entry{padding:12px 14px;background:var(--bg-raised);border:1px solid var(--border)}.log-transcript{font-size:14.5px;line-height:1.5;color:var(--text)}@media(max-width:1080px){.session-layout{grid-template-columns:1fr}}.voice-panel{flex-direction:row;flex-wrap:wrap;align-items:center;gap:20px}.voice-panel .voice-btn{flex:none}.voice-panel .manual-input{flex:1 1 240px;width:auto;align-items:stretch}.voice-panel .manual-input textarea{min-height:74px}.voice-panel .live-transcript,.voice-panel .processing-indicator{flex:1 1 100%;order:3}.assistant-message{background:var(--bg-raised);border:1px solid var(--border)}.error-banner{padding:10px 14px;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger);border-radius:var(--radius-sm);font-size:13.5px}.error-state{padding:32px;text-align:center;color:var(--danger)}.form-error{color:var(--danger);font-size:13px;margin-top:6px}.form-hint,.settings-hint,.surface-hint,.pending-hint{color:var(--text-dim);font-size:12.5px;line-height:1.5}.settings-hint{margin:-4px 0 16px}.surface-hint{margin-top:8px}.app-boot{min-height:100vh;display:grid;place-items:center;background:var(--bg)}.login-screen{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:24px}.login-card{width:100%;max-width:380px;padding:36px 32px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.login-brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:600;color:var(--text)}.login-brand .logo-icon{color:var(--primary);display:flex}.login-subtitle{color:var(--text-dim);font-size:13px;margin:4px 0 28px}.login-error{padding:9px 12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);color:var(--danger);font-size:13px;margin-bottom:14px}.login-submit{width:100%;justify-content:center;margin-top:6px}.login-note{margin-top:22px;padding-top:16px;border-top:1px solid var(--border);color:var(--text-dim);font-size:11.5px;line-height:1.6}.user-menu{position:relative}.user-menu-trigger{display:flex;flex-direction:column;align-items:flex-end;gap:1px;padding:5px 10px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:inherit}.user-menu-trigger:hover{border-color:var(--border-hover)}.user-menu-trigger:focus-visible{outline:none;box-shadow:var(--focus)}.user-menu-name{color:var(--text);font-size:13px;font-weight:500}.user-menu-role{color:var(--text-dim);font-size:10.5px;letter-spacing:.04em;text-transform:uppercase}.user-menu-panel{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;padding:5px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:40}.user-menu-item{display:block;width:100%;padding:8px 10px;text-align:left;background:transparent;border:0;border-radius:6px;color:var(--text-muted);font-family:inherit;font-size:13px;cursor:pointer}.user-menu-item:hover{background:var(--bg-input);color:var(--text)}.medical-alerts{margin-bottom:18px;padding:12px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card)}.medical-alerts--critical{border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 7%,var(--bg-card))}.medical-alerts-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.medical-alerts-title{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.medical-alerts--critical .medical-alerts-title{color:var(--danger)}.medical-alerts-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.medical-alert{display:inline-flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg-raised);font-size:13px;color:var(--text)}.medical-alert--critical{border-color:color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);font-weight:500}.medical-alert--warning{border-color:color-mix(in srgb,var(--amber) 45%,transparent);color:var(--amber)}.medical-alert-kind{font-size:10px;letter-spacing:.06em;text-transform:uppercase;opacity:.75}.medical-alert-notes{color:var(--text-dim);font-size:12px}.medical-alert-remove{background:transparent;border:0;color:inherit;opacity:.5;cursor:pointer;font-size:12px;padding:0 2px}.medical-alert-remove:hover{opacity:1}.medical-alert-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.medical-alert-form .text-input{flex:1 1 200px}.surface-grid{display:flex;flex-wrap:wrap;gap:6px}.surface-btn{position:relative;min-width:42px;padding:7px 10px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-mono);font-size:13px;cursor:pointer}.surface-btn:hover{border-color:var(--border-hover)}.surface-btn:focus-visible{outline:none;box-shadow:var(--focus)}.surface-btn--selected{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 12%,transparent)}.surface-dot{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%}.tooth-notes-edit{display:flex;flex-direction:column;gap:8px}.pending-card{border-color:color-mix(in srgb,var(--amber) 40%,transparent)}.pending-card h3{display:flex;align-items:center;gap:7px;color:var(--amber)}.pending-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.pending-item{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-raised)}.pending-item-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pending-tooth{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--text)}.pending-status{font-size:13px;color:var(--text-muted)}.pending-surfaces{font-family:var(--font-mono);font-size:12px;color:var(--text-dim)}.pending-confidence{margin-left:auto;font-family:var(--font-mono);font-size:11.5px;color:var(--amber)}.pending-transcript{margin:6px 0 10px;font-size:13px;color:var(--text-dim);font-style:italic}.pending-actions{display:flex;gap:8px}.log-undo{margin-left:auto;display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;color:var(--text-dim);font-family:inherit;font-size:11.5px;cursor:pointer}.log-undo:hover{color:var(--primary)}.log-reverted-tag{margin-left:auto;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-dim)}.log-entry--reverted{opacity:.55}.log-entry--reverted .log-transcript{text-decoration:line-through}.log-entry--failed{border-left:2px solid var(--danger);padding-left:10px}.log-failed-note{color:var(--danger);font-size:12px;margin-top:4px}.log-rejected-note{color:var(--amber);font-size:12px;margin-top:4px}.voice-feedback{min-height:0}.voice-notice{margin-top:8px;padding:7px 10px;border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-muted);font-size:12.5px;line-height:1.5}.recording-count{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}.patient-picker{position:relative}.patient-picker--selected{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input)}.patient-picker-chosen{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-size:14px;font-weight:500}.patient-picker-search{position:relative}.patient-picker-search .text-input{padding-left:34px;width:100%}.patient-picker-search .search-icon,.search-wrap .search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--text-dim);pointer-events:none}.patient-picker-results{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;padding:4px;background:var(--bg-raised);border:1px solid var(--border-hover);border-radius:var(--radius-sm);z-index:30}.patient-picker-result{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 10px;text-align:left;background:transparent;border:0;border-radius:6px;cursor:pointer;font-family:inherit}.patient-picker-result:hover{background:var(--bg-input)}.patient-picker-name{color:var(--text);font-size:14px}.patient-picker-meta{color:var(--text-dim);font-size:12px;font-family:var(--font-mono)}.patient-picker-empty{padding:10px;color:var(--text-dim);font-size:13px}.patient-picker-new{margin-top:6px}.patient-picker-create{display:flex;flex-direction:column;gap:8px}.booking-requests{margin-bottom:18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--primary) 35%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--primary) 6%,var(--bg-card))}.booking-requests-head h3{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}.booking-requests-count{padding:1px 7px;border-radius:999px;background:var(--primary);color:var(--primary-ink);font-size:11px;font-family:var(--font-mono)}.booking-requests-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.booking-request{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card)}.booking-request-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.booking-request-when{font-family:var(--font-mono);font-size:13px;color:var(--primary)}.booking-request-name{font-size:14px;font-weight:500;color:var(--text)}.booking-request-meta{font-size:12.5px;color:var(--text-dim)}.booking-request-notes{flex-basis:100%;font-size:12.5px;color:var(--text-muted);font-style:italic}.booking-request-actions{display:flex;align-items:center;gap:8px}.search-wrap{position:relative;margin-bottom:16px}.search-wrap .search-input{width:100%;padding-left:34px;margin-bottom:0}.patient-alert-flag{display:inline-flex;margin-left:7px;color:var(--danger);vertical-align:middle}.patient-meta--dentition{color:var(--amber)}.patient-phone{font-family:var(--font-mono);font-size:13px;color:var(--text-muted)}.screen-header-actions{display:flex;gap:8px}.card-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-header-row h3{margin:0}.card-header-meta{font-size:12.5px;color:var(--text-dim)}.select-input--compact{padding:5px 9px;font-size:12.5px;max-width:100%}.text-input--time{width:108px;max-width:100%;min-width:0}.text-input--num{width:92px;max-width:100%;min-width:0}.settings-tabs{display:flex;flex-wrap:wrap;gap:4px 2px;margin-bottom:18px;border-bottom:1px solid var(--border)}.settings-tab{padding:9px 14px;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--text-dim);font-family:inherit;font-size:13.5px;cursor:pointer}.settings-tab:hover{color:var(--text-muted)}.settings-tab--active{color:var(--primary);border-bottom-color:var(--primary)}.settings-tab:focus-visible{outline:none;box-shadow:var(--focus)}.hours-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.hours-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-raised)}.hours-row--closed{opacity:.6}.hours-day{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--text);cursor:pointer}.hours-range{display:flex;flex-wrap:wrap;align-items:center;gap:7px;min-width:0}.hours-sep{color:var(--text-dim)}.hours-closed{color:var(--text-dim);font-size:12.5px}.service-row,.team-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-raised)}.service-row--inactive{opacity:.5}.service-name,.team-name{font-size:14px;color:var(--text);flex:1 1 auto}.service-duration,.service-price,.team-spec,.team-reg{font-size:12.5px;color:var(--text-dim);font-family:var(--font-mono)}.service-actions,.team-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.services-list,.team-list{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.service-add,.team-add{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px;border-top:1px solid var(--border)}.service-add .text-input:first-child,.team-add .text-input:first-child{flex:1 1 180px}.team-row{flex-wrap:wrap}.team-row-main{display:flex;flex-wrap:wrap;align-items:center;gap:10px;flex:1 1 auto;min-width:0}.team-row-main>*{min-width:0;overflow-wrap:anywhere}.color-swatches{display:flex;gap:4px}.color-swatch{width:16px;height:16px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.color-swatch--active{border-color:var(--text)}.color-swatch:focus-visible{outline:none;box-shadow:var(--focus)}.dentist-hours{flex-basis:100%;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.week-loading{color:var(--text-dim);font-size:12.5px;margin-left:10px}.wc-day-col--closed{background:color-mix(in srgb,var(--bg-input) 60%,transparent)}.wc-appt--completed{opacity:.65}.wc-appt--no_show{opacity:.5;text-decoration:line-through}.public-booking{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:24px}.public-card{width:100%;max-width:480px;padding:34px 30px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.public-logo{display:inline-flex;align-items:center;gap:9px;color:var(--primary);font-size:18px;font-weight:600}.public-card h1{margin:14px 0 20px;font-size:22px;color:var(--text)}.public-steps{display:flex;gap:6px;list-style:none;margin-bottom:22px;counter-reset:step}.public-steps li{flex:1;padding:7px 4px;border-top:2px solid var(--border);color:var(--text-dim);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}.public-steps li.active{border-top-color:var(--primary);color:var(--primary)}.public-step{display:flex;flex-direction:column;gap:14px}.public-service-list{display:flex;flex-direction:column;gap:7px}.public-service{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-raised);cursor:pointer;font-family:inherit;text-align:left}.public-service:hover{border-color:var(--border-hover)}.public-service--active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}.public-service-name{color:var(--text);font-size:14.5px}.public-service-duration{color:var(--text-dim);font-size:12.5px;font-family:var(--font-mono)}.public-next{align-self:flex-start}.public-nav{display:flex;justify-content:space-between;gap:10px;margin-top:6px}.public-summary{padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text-muted);font-size:13.5px}.public-card--confirmed{text-align:center}.public-confirm-when{margin:12px 0;font-size:16px;color:var(--primary);font-weight:500}.public-confirm-note{color:var(--text-muted);font-size:14px;line-height:1.6}.public-confirm-sub{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);color:var(--text-dim);font-size:12.5px}@media(max-width:720px){.booking-request{flex-direction:column;align-items:stretch}.booking-request-actions{flex-wrap:wrap}.hours-row{flex-direction:column;align-items:stretch;gap:8px}.service-add,.team-add{flex-direction:column}.service-add .text-input,.team-add .text-input{width:100%}}.lang-select{padding:5px 8px;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-dim);font-family:inherit;font-size:12px;cursor:pointer}.lang-select:hover{border-color:var(--border-hover);color:var(--text-muted)}.lang-select:focus-visible{outline:none;box-shadow:var(--focus)}.screen-lock{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:24px;background:var(--bg)}.screen-lock-panel{width:min(380px,100%);display:flex;flex-direction:column;gap:10px;padding:28px;background:var(--bg-card);border:1px solid var(--border);border-radius:14px}.screen-lock-badge{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:var(--primary);background:var(--accent-soft)}.screen-lock-panel h2{margin:6px 0 0;font-size:19px}.screen-lock-hint{margin:0 0 6px;color:var(--text-muted);font-size:13.5px;line-height:1.5}.screen-lock-panel label{font-size:13px;color:var(--text-muted)}.screen-lock-actions{display:flex;gap:10px;margin-top:8px}.screen-lock-actions .btn{flex:1}.service-add{align-items:flex-end;gap:14px}.service-add .form-group{flex:0 1 auto;min-width:max-content}.service-add .service-add-name{flex:1 1 180px;min-width:0}@media(max-width:560px){.service-add .form-group{flex:1 1 100%}}.exact-time{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border)}.exact-time label{font-size:13px;color:var(--text-muted)}.exact-time-note{flex:1 1 100%;font-size:12px;color:var(--text-dim)}:root,[data-theme=light]{color-scheme:light;--bg: #f3f6fa;--bg-card: #ffffff;--bg-raised: #f8fafc;--bg-input: #ffffff;--border: #dee6ec;--border-hover: #afc1cb;--text: #172b3a;--text-muted: #596d7c;--text-dim: #697b88;--primary: #007d79;--primary-hover: #00635f;--primary-ink: #ffffff;--accent-soft: #e5f4f1;--danger: #bb363c;--danger-hover: #9b272f;--success: #167460;--amber: #92620c;--shadow: 0 1px 2px #18334405;--shadow-card: 0 2px 6px #18334404;--radius: 14px;--radius-sm: 8px;--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: var(--font-sans);--focus: 0 0 0 3px color-mix(in srgb, var(--primary) 23%, transparent);--st-healthy: #9cafbb;--st-healthy-ink: #496675;--st-unknown: #879da9;--st-cavity: #c53d45;--st-filled: #3978b5;--st-crown: #8158ae;--st-root-canal: #a64e84;--st-implant: #138371;--st-in-treatment: #b67616;--st-missing: #8797a1}[data-theme=dark]{color-scheme:dark;--bg: #101b24;--bg-card: #182630;--bg-raised: #1d2e3a;--bg-input: #13222c;--border: #31434f;--border-hover: #58707e;--text: #edf4f7;--text-muted: #b1c2cc;--text-dim: #97adb9;--primary: #73d7cb;--primary-hover: #97e7dc;--primary-ink: #092e2c;--accent-soft: #213f42;--danger: #ff9797;--danger-hover: #ffb4b4;--success: #88d4b9;--amber: #f0c379;--st-healthy: #7897a5;--st-healthy-ink: #c1d1da;--st-unknown: #8fa5b1;--st-cavity: #ff8f96;--st-filled: #85b9ef;--st-crown: #bea0e6;--st-root-canal: #e69dce;--st-implant: #77d5c4;--st-in-treatment: #e9ba70;--st-missing: #9aadb7}html{font-size:16px;scroll-behavior:smooth}body{font-size:1rem;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:3px;box-shadow:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:16px;z-index:500;padding:12px 18px;background:var(--primary);color:var(--primary-ink);border-radius:8px}.skip-link:focus{top:12px}.app{display:grid;grid-template-columns:224px minmax(0,1fr);grid-template-rows:76px 1fr;min-height:100vh}.app-sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:30px 16px 20px;z-index:50}.app-logo{gap:10px;padding:0 12px}.app-logo .logo-icon{width:34px;height:38px;display:grid;place-items:center;background:var(--primary);color:var(--primary-ink);border-radius:11px 11px 15px 15px}.logo-text{font-size:27px;font-weight:700;letter-spacing:-1.2px}.logo-period{color:var(--primary)}.practice-label{display:flex;align-items:center;gap:10px;margin:36px 4px 28px;padding:12px 6px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-weight:600;font-size:.875rem}.practice-label small{display:block;color:var(--text-dim);font-size:.75rem;font-weight:400;margin-top:3px}.practice-monogram{display:grid;place-items:center;width:32px;height:34px;border:1px solid var(--border);border-radius:8px;color:var(--primary);flex:none}.app-nav{display:flex;flex-direction:column;gap:6px;margin:0;padding:0}.app-nav .nav-link,.sidebar-bottom .nav-link{display:flex;gap:11px;align-items:center;border:none;border-radius:8px;padding:12px;min-height:46px;color:var(--text-muted);font-size:.875rem;font-weight:500;text-decoration:none;white-space:normal}.app-nav .nav-link:hover,.sidebar-bottom .nav-link:hover{background:var(--bg-raised);color:var(--text)}.app-nav .nav-link--active{background:var(--accent-soft);color:var(--primary);font-weight:700}.app-nav .nav-link--active:after{display:none}.nav-link .icon--external{margin-left:auto;flex:none}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-bottom .nav-link{font-size:.8125rem;min-height:42px}.sidebar-note{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:.75rem;margin:24px 12px 0;border-top:1px solid var(--border);padding-top:18px}.sidebar-note .icon{flex:none}.app-header{grid-column:2;grid-row:1;padding:0 36px;margin:0;border:none;border-bottom:1px solid var(--border);background:var(--bg-card);box-shadow:none;justify-content:space-between;min-width:0}.header-breadcrumb{display:flex;gap:12px;align-items:center;font-size:.8125rem;color:var(--text-dim)}.header-breadcrumb strong{font-weight:500;color:var(--text)}.header-right{margin:0;display:flex;align-items:center;gap:16px}.theme-toggle{width:36px;height:36px;border:1px solid var(--border);border-radius:50%;color:var(--text-muted);background:var(--bg-card)}.lang-select{font-size:.8125rem;color:var(--text-muted);border:0;background:transparent;min-height:38px;padding:4px}.user-menu-trigger{display:flex;flex-direction:row;align-items:center;gap:9px;border:0;padding:4px}.user-avatar{width:36px;height:36px;display:grid;place-items:center;background:var(--accent-soft);color:var(--primary);font-size:.75rem;font-weight:700;border-radius:50%}.user-menu-copy{display:flex;flex-direction:column;align-items:flex-start}.user-menu-name{font-size:.875rem;font-weight:600}.user-menu-role{font-size:.75rem;letter-spacing:0;text-transform:none}.user-menu-panel{background:var(--bg-card);box-shadow:0 12px 40px #172b3a15;border-radius:10px;padding:6px;min-width:200px}.user-menu-item{padding:12px;font-size:.875rem}.app-main{grid-column:2;grid-row:2;padding:38px 36px 60px;margin:0 auto;width:100%;max-width:1600px;min-width:0}.screen{max-width:none;margin:0}.screen-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin-bottom:28px}.screen-header h1{font-size:2rem;line-height:1.22;font-weight:650;letter-spacing:-.9px;color:var(--text);display:flex;align-items:center;gap:12px}.page-description{font-size:.9375rem;margin-top:9px;color:var(--text-muted)}.page-count{font-size:.8125rem;line-height:24px;letter-spacing:0;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);padding:0 8px;border-radius:6px;font-weight:500}.card{border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-card);background:var(--bg-card);padding:24px}.card h3,.card h2{text-transform:none;letter-spacing:-.2px;font-size:1.0625rem;font-weight:600;color:var(--text)}h2{font-size:1.25rem;font-weight:600;letter-spacing:-.3px}.card h4{text-transform:none;letter-spacing:0;font-size:.875rem;color:var(--text-muted);font-weight:500}.btn{border-radius:8px;min-height:42px;padding:10px 16px;gap:8px;font-size:.875rem;font-weight:600;line-height:1.4;justify-content:center;box-shadow:none;transition:background .15s,border-color .15s}.btn-primary{background:var(--primary);color:var(--primary-ink);border:1px solid transparent}.btn-primary:hover:not(:disabled){background:var(--primary-hover);color:var(--primary-ink)}.btn-ghost{color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-raised);border-color:var(--border-hover)}.btn:disabled{opacity:.55}.btn-sm{min-height:36px;font-size:.8125rem;padding:8px 12px}.btn-back{border:none;padding:0;min-height:26px;background:none;margin-bottom:8px;justify-content:flex-start;color:var(--text-muted);font-size:.8125rem}.btn-close{min-width:36px;min-height:36px;display:grid;place-items:center;border-radius:8px}.text-input,.select-input,.search-input,input[type=text],input[type=date],input[type=tel],input[type=email],input[type=password],textarea{font-family:var(--font-sans);font-size:.9375rem;line-height:1.5;color:var(--text);border:1px solid var(--border);background:var(--bg-input);border-radius:8px;min-height:42px;padding:10px 12px}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:var(--text-dim);opacity:1}.form-group label,.form-label{font-size:.875rem;font-weight:500;color:var(--text);margin-bottom:7px}.form-actions{display:flex;flex-wrap:wrap;gap:8px}.error-banner,.error-state,.login-error{border-radius:8px;padding:12px 16px;font-size:.875rem;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);background:color-mix(in srgb,var(--danger) 7%,var(--bg-card))}.empty-state,.loading{font-size:.9375rem;color:var(--text-muted)}.patient-directory{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.patient-filter-tabs{display:flex;gap:20px;padding:0 24px;margin:0;border-bottom:1px solid var(--border);overflow-x:auto}.patient-filter-tabs .filter-tab{border:0;border-bottom:2px solid transparent;border-radius:0;background:none;padding:18px 0 16px;min-height:58px;font-size:.875rem;color:var(--text-muted);white-space:nowrap}.patient-filter-tabs .filter-tab--active{color:var(--primary);border-bottom-color:var(--primary)}.filter-tab-count{font-size:.75rem;background:var(--bg-raised);border-radius:5px;min-width:22px;padding:1px 5px}.directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px}.directory-toolbar .search-wrap{margin:0;width:min(380px,100%)}.directory-toolbar .search-input{padding-left:40px;min-height:42px;background:var(--bg-raised);width:100%}.directory-result{color:var(--text-dim);font-size:.8125rem;white-space:nowrap}.patient-list{display:block;gap:0}.patient-table-head,.patient-row{display:grid;grid-template-columns:minmax(200px,1.6fr) minmax(130px,1fr) minmax(110px,.85fr) minmax(90px,.65fr) 18px;align-items:center;column-gap:18px;padding:0 24px}.patient-table-head{min-height:44px;background:var(--bg-raised);color:var(--text-dim);font-size:.8125rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.patient-row{min-height:88px;padding-top:16px;padding-bottom:16px;text-decoration:none;color:var(--text);border-bottom:1px solid var(--border);transition:background .15s}.patient-row:last-child{border-bottom:none}.patient-row:hover{background:var(--bg-raised)}.patient-row:focus-visible{outline-offset:-3px}.patient-identity{display:flex;gap:13px;align-items:center;min-width:0}.patient-avatar{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;color:var(--primary);background:var(--accent-soft);font-size:.875rem;font-weight:600}.patient-row:nth-child(3n) .patient-avatar{color:#546ba5;background:#edf0f9}.patient-row:nth-child(3n+1) .patient-avatar{color:#785e91;background:#f1edf7}[data-theme=dark] .patient-row .patient-avatar{color:var(--primary);background:var(--accent-soft)}.patient-name{display:flex;align-items:center;gap:7px;font-size:.9375rem;font-weight:600;line-height:1.4}.patient-secondary{display:block;font-size:.8125rem;color:var(--text-dim);margin-top:5px}.patient-contact,.patient-clinician,.patient-visits{font-size:.875rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.patient-clinician{display:flex;align-items:center;gap:6px}.patient-open{color:var(--text-dim)}.directory-empty{padding:56px 24px;text-align:center;color:var(--text-muted)}.directory-empty h3{font-size:1rem;margin:14px 0 8px}.directory-empty p{font-size:.875rem}.new-patient-form{margin-bottom:24px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.new-patient-form h2,.new-patient-form .form-actions,.new-patient-form .form-hint{grid-column:1 / -1}.record{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:22px}.record-chart{min-width:0;gap:20px}.record-meta{gap:10px;margin-top:10px}.record-meta .patient-dob,.record-meta .patient-phone,.record-meta .patient-primary-dentist{font:inherit;font-size:.875rem;color:var(--text-muted)}.screen-header-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.chart-heading,.card-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.chart-heading h2,.card-header-row h2{margin:0;font-size:1.0625rem}.chart-heading p,.chart-description{margin-top:5px;font-size:.8125rem;color:var(--text-dim)}.subtle-badge{font-size:.75rem;padding:5px 8px;border-radius:5px;background:var(--bg-raised);color:var(--text-muted);white-space:nowrap}.card--chart{padding:24px}.jaw-map-container{width:100%;min-width:0;overflow-x:auto}.jaw-svg,.card--chart .jaw-svg{width:100%;max-width:none;min-height:220px;margin:10px 0 20px;display:block}.jaw-map-legend{display:flex;justify-content:flex-start;gap:10px 16px;border-top:1px solid var(--border);padding-top:18px;margin:0;flex-wrap:wrap}.legend-item{font-size:.75rem;color:var(--text-muted);gap:6px}.legend-dot{width:7px;height:7px;border-radius:2px}.tooth-group:hover rect{stroke-width:2.5}.tooth-group:focus-visible{outline:none}.tooth-group:focus-visible rect{stroke:var(--primary);stroke-width:3}.tooth-selected rect{stroke:var(--primary)}.tooth-selection-empty{display:flex;gap:16px;align-items:center;padding:22px 24px;color:var(--text-dim);border:1px dashed var(--border-hover);border-radius:12px}.tooth-selection-empty .icon{flex:none}.tooth-selection-empty h3{font-size:.9375rem;font-weight:500;color:var(--text-muted)}.tooth-selection-empty p{margin-top:5px;font-size:.8125rem}.tooth-detail-header{padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--border)}.tooth-number-large{display:grid;place-items:center;width:48px;height:48px;border-radius:10px;background:var(--accent-soft);color:var(--primary);font:600 1.5rem var(--font-sans)}.tooth-status-badge{font:500 .8125rem var(--font-sans);border-radius:6px;padding:5px 9px}.tooth-detail-section{margin-top:20px;margin-bottom:0}.surface-grid{display:flex;gap:8px}.surface-btn{width:48px;height:46px;border-radius:8px;font-size:.9375rem;background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted)}.surface-btn--selected{background:var(--accent-soft);border-color:var(--primary);color:var(--primary)}.surface-hint{font-size:.8125rem;line-height:1.5}.status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.status-option{min-height:42px;border-radius:7px;padding:9px 10px;font-size:.8125rem;line-height:1.3;text-align:left}.restoration-options{display:flex;flex-wrap:wrap;gap:10px 20px}.restoration-options label{display:flex;gap:8px;align-items:center;font-size:.875rem}input[type=checkbox]{accent-color:var(--primary);width:17px;height:17px}.history-card{padding:22px}.record-history .visit-item{border:none;border-bottom:1px solid var(--border);padding:0 0 18px;margin-bottom:20px}.record-history .visit-item:last-child{margin-bottom:0;border-bottom:0}.record-history .visit-header-row{display:flex;flex-wrap:wrap;gap:5px 10px;padding-bottom:10px;border:0}.record-history .visit-date{font:600 .875rem var(--font-sans);color:var(--text)}.record-history .visit-entry{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding:12px 0;border:0}.record-history .visit-time{font:400 .75rem var(--font-sans);color:var(--text-dim)}.record-history .visit-transcript{font-size:.875rem;line-height:1.5}.record-history .visit-transcript small{display:block;font-size:.75rem;color:var(--text-dim);margin-top:4px}.record-history .visit-mode-badge{display:none}.activity-empty{display:flex;align-items:flex-start;gap:12px;padding:14px 0;color:var(--text-dim)}.activity-empty .icon{flex:none}.activity-empty p{font-size:.875rem;line-height:1.6}.medical-alerts{border-radius:10px;padding:16px 20px;background:var(--bg-card);border-color:var(--border);margin-bottom:22px}.medical-alerts--critical{background:color-mix(in srgb,var(--danger) 6%,var(--bg-card));border-color:color-mix(in srgb,var(--danger) 32%,var(--border))}.medical-alerts-title{font-size:.8125rem;letter-spacing:0;text-transform:none;font-weight:600}.session-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,1fr);gap:22px;align-items:start}.session-left,.session-right{display:flex;flex-direction:column;gap:20px;min-width:0}.save-indicator{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--success);margin-top:10px}.save-indicator--error{color:var(--danger)}.session-screen .session-dentist-bar{display:flex;align-items:center;gap:12px;border:0;padding:0;margin:0 0 22px;background:transparent}.session-dentist-bar label{font-size:.875rem;color:var(--text-muted)}.session-dentist-bar .select-input{width:auto;min-width:170px;font-size:.875rem}.panel-heading{display:flex;gap:9px;align-items:center;margin-bottom:18px}.panel-heading .icon{color:var(--primary)}.panel-heading h2{margin:0;font-size:1.0625rem}.session-right .mode-toggle{display:flex;width:100%;max-width:none;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:4px;gap:4px;margin:0 0 16px}.session-right .mode-btn{flex:1;padding:9px 12px;font-size:.875rem;min-height:36px;color:var(--text-muted);border-radius:5px;background:transparent}.session-right .mode-btn.active{background:var(--bg-card);color:var(--primary);box-shadow:0 1px 4px #172b3a15}.capture-hint{color:var(--text-dim);font-size:.8125rem;line-height:1.65;margin-bottom:18px}.voice-panel{display:flex;flex-direction:column;align-items:stretch;gap:14px}.voice-panel .voice-btn{width:100%;height:58px;min-height:58px;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;border:1px solid var(--primary);border-radius:10px;background:var(--accent-soft);color:var(--primary);padding:10px 18px;box-shadow:none}.voice-panel .voice-btn:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 15%,var(--bg-card));border-color:var(--primary);box-shadow:none;transform:none}.voice-btn .voice-btn-label{font-family:inherit;font-size:.9375rem;letter-spacing:0;font-weight:600;text-transform:none}.voice-btn .voice-btn-icon{display:flex;font-size:20px}.voice-btn .voice-btn-icon svg{width:22px;height:22px}.voice-panel .voice-btn.recording{background:color-mix(in srgb,var(--danger) 10%,var(--bg-card));color:var(--danger);border-color:var(--danger);animation:none}.voice-btn.recording .voice-btn-label{color:var(--danger)}.voice-panel .manual-input{display:flex;flex-direction:column;gap:9px;margin:0;width:100%}.manual-input-label{font-size:.8125rem;color:var(--text-dim)}.voice-panel .manual-input textarea{min-height:84px;font-size:.875rem;background:var(--bg-raised)}.manual-input .btn{align-self:flex-end;min-width:90px}.voice-feedback:empty{display:none}.processing-indicator,.voice-notice,.recording-indicator{font-size:.8125rem}.session-log-card{padding:22px;max-height:420px;overflow-y:auto}.log-entry{padding:14px 0;border-bottom:1px solid var(--border);margin:0;background:transparent;border-radius:0}.log-entry p{font-size:.875rem;line-height:1.55;margin-bottom:8px}.log-entry .btn{float:right}.log-entry:after{content:"";display:block;clear:both}.entry-state{display:inline-flex;font-size:.75rem;padding:3px 7px;border-radius:5px;color:var(--text-muted);background:var(--bg-raised);margin:4px 0}.entry-state--applied{color:var(--success);background:color-mix(in srgb,var(--success) 9%,var(--bg-card))}.entry-state--review,.entry-state--queued{color:var(--amber);background:color-mix(in srgb,var(--amber) 9%,var(--bg-card))}.entry-state--failed{color:var(--danger)}.pending-card{border-color:color-mix(in srgb,var(--amber) 35%,var(--border))}.review-entry{padding:16px 0;border-top:1px solid var(--border)}.review-entry:first-of-type{padding-top:0;border-top:none}.review-entry .log-transcript{font-size:.9375rem}.review-entry>p{color:var(--text-muted);font-size:.875rem;line-height:1.6;margin:8px 0}.review-entry ul{padding-left:19px;font-size:.875rem;margin:14px 0}.review-entry li{margin:8px 0}.dentist-profile-card{border:1px solid var(--border);border-top-width:2px!important;border-radius:12px;box-shadow:none;background:var(--bg-card)}.dentist-profile-name{font-size:1.25rem}.dentist-profile-avatar{border-radius:12px;width:52px;height:52px;font-size:1rem}.dentist-stat-value{font-family:var(--font-sans);font-size:1.6rem;letter-spacing:-.6px}.dentist-stat-label,.dentist-stat-sub{font-size:.8125rem;text-transform:none;letter-spacing:0}.modal{border-radius:16px;box-shadow:0 24px 80px #172b3a30}.modal-overlay{background:#101f3066;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.settings-tab,.calendar-view-btn{font-size:.875rem;text-transform:none;letter-spacing:0}.public-card{border-radius:18px}.login-screen{display:grid;grid-template-columns:44% 56%;padding:0;background:var(--bg-card)}.login-intro{min-height:100vh;padding:54px 56px;background:#075957;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.login-wordmark{display:flex;align-items:center;gap:12px;font-size:2rem;font-weight:600;letter-spacing:-1px}.login-intro-copy{margin:60px 0;max-width:390px}.login-intro h1{font-size:clamp(2.5rem,4vw,3.75rem);font-weight:500;line-height:1.1;letter-spacing:-2px;margin-bottom:24px}.login-intro p{font-size:1rem;color:#c6e5df;line-height:1.8;max-width:330px}.login-features{display:flex;flex-direction:column;gap:18px;border-top:1px solid #ffffff36;padding-top:26px}.login-features span{display:flex;align-items:center;gap:12px;color:#d6eee9;font-size:.9375rem}.login-form-side{display:grid;place-items:center;padding:48px}.login-card{width:100%;max-width:420px;padding:0;background:transparent;border:0;box-shadow:none}.login-card .login-brand{display:none}.login-card h2{font-size:1.875rem;letter-spacing:-.75px}.login-subtitle{font-size:.9375rem;color:var(--text-muted);margin:12px 0 32px}.login-card .form-group{margin-bottom:22px}.login-card .text-input{width:100%;min-height:48px;background:var(--bg-raised)}.login-submit{min-height:48px}.login-note{font-size:.8125rem;line-height:1.7;color:var(--text-dim);margin-top:28px}@media(min-width:1600px){.app-main{padding-top:44px}.jaw-svg{min-height:280px}}@media(max-width:1250px){.app{grid-template-columns:196px minmax(0,1fr)}.app-sidebar{width:196px;padding-left:12px;padding-right:12px}.app-header{padding:0 24px}.app-main{padding:28px 24px 48px}.patient-table-head,.patient-row{grid-template-columns:minmax(190px,1.5fr) minmax(115px,1fr) minmax(100px,.8fr) 18px;gap:14px}.patient-table-head span:nth-child(4),.patient-visits{display:none}.record{grid-template-columns:minmax(0,1fr)}.record-history .visit-entry{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px}.session-layout{grid-template-columns:minmax(0,1.2fr) minmax(300px,1fr);gap:16px}.session-layout .card{padding:20px}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.screen-header h1{font-size:1.75rem}}@media(max-width:1000px){.app{grid-template-columns:180px minmax(0,1fr)}.app-sidebar{width:180px}.app-nav .nav-link{font-size:.8125rem;padding:10px;gap:9px}.header-breadcrumb>span,.header-breadcrumb>.icon{display:none}.session-layout{grid-template-columns:minmax(0,1fr)}.session-right{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.pending-card{grid-column:1 / -1;grid-row:1}.screen-header{align-items:flex-start}.patient-table-head,.patient-row{grid-template-columns:minmax(170px,1.4fr) minmax(110px,1fr) 18px}.patient-table-head span:nth-child(3),.patient-clinician{display:none}.login-intro{padding:40px 32px}}@media(max-width:760px){.app{display:block;padding-top:72px}.app-sidebar{position:static;width:100%;padding:14px 18px;border-right:0;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:16px;overflow-x:auto}.app-logo,.practice-label,.sidebar-note{display:none}.app-nav{flex-direction:row;gap:5px}.app-nav .nav-link{min-height:38px;padding:8px 10px;white-space:nowrap}.app-nav .nav-link .icon{width:17px}.sidebar-bottom{margin:0;padding:0;display:flex}.sidebar-bottom .nav-link{font-size:.8125rem;white-space:nowrap}.app-header{position:absolute;top:0;left:0;right:0;height:72px;padding:0 20px}.header-breadcrumb:before{content:"DentAI.";color:var(--primary);font-size:1.5rem;font-weight:700;letter-spacing:-.8px}.header-breadcrumb strong{display:none}.header-right{gap:10px}.user-menu-copy{display:none}.app-main{padding:26px 18px 40px}.screen-header{flex-wrap:wrap;gap:16px;margin-bottom:22px}.screen-header h1{font-size:1.75rem}.screen-header-actions{justify-content:flex-start}.page-description{font-size:.875rem}.patient-filter-tabs{padding:0 16px;gap:18px}.directory-toolbar{padding:16px}.directory-result{display:none}.directory-toolbar .search-wrap{width:100%}.patient-table-head{display:none}.patient-row{grid-template-columns:minmax(0,1fr) 18px;padding:16px;min-height:80px}.patient-contact{display:none}.patient-avatar{width:38px;height:38px}.patient-name{font-size:.9375rem}.new-patient-form{grid-template-columns:1fr}.card{padding:20px}.chart-heading,.card-header-row{flex-wrap:wrap}.jaw-svg,.card--chart .jaw-svg{min-width:490px;min-height:200px}.jaw-map-legend{min-width:0;padding-top:14px}.session-right{display:flex}.session-dentist-bar{flex-wrap:wrap}.save-indicator{line-height:1.5}.login-screen{display:flex;flex-direction:column}.login-intro{min-height:auto;padding:28px 26px}.login-wordmark{font-size:1.625rem}.login-intro-copy{margin:24px 0 0}.login-intro h1{font-size:2rem;line-height:1.2;letter-spacing:-.8px;margin-bottom:0}.login-intro-copy p,.login-features{display:none}.login-form-side{padding:34px 26px}.login-card h2{font-size:1.5rem}.dentists-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.session-header-actions{display:flex;align-items:flex-end;gap:14px}.session-header-actions .session-dentist-bar{flex-direction:column;align-items:flex-start;gap:6px;margin:0}.session-header-actions .session-dentist-bar label{font-size:.75rem}.session-header-actions .select-input{min-width:165px;max-width:240px}.tooth-group.tooth-selected rect{stroke:var(--primary)}.medical-alerts:not(.medical-alerts--critical){padding-top:12px;padding-bottom:12px}.password-panel{position:absolute;right:20px;top:70px;width:min(360px,calc(100vw - 40px));z-index:100;box-shadow:0 12px 40px #172b3a20}.password-panel label{display:block;font-size:.875rem;margin:14px 0 6px}.password-panel input{width:100%}.password-panel .form-actions{margin-top:18px}@media(max-width:760px){.session-header-actions{width:100%;align-items:flex-end;justify-content:space-between;gap:12px}.session-header-actions .select-input{min-width:0;max-width:180px;width:100%}.session-header-actions .btn{flex:none}}@media(pointer:coarse),(max-width:760px){.btn,.settings-tab,.filter-tab,.app-nav .nav-link,.sidebar-bottom .nav-link,.user-menu-trigger,.theme-toggle,.lang-select,.select-input,.text-input,.search-input,.session-right .mode-btn,.mode-btn{min-height:44px}.theme-toggle,.btn--icon,.icon-button{min-width:44px}.service-actions,.team-row-actions,.user-row-controls,.screen-header-right{gap:8px;row-gap:8px}}:where(button,a,select,input,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus)}.field-hint{display:block;font-size:.8125rem;color:var(--text-dim);margin-top:6px;line-height:1.5;font-weight:400}.setup-card .form-group{margin-bottom:18px}.checkbox-row{display:flex;gap:10px;align-items:flex-start;font-size:.875rem;color:var(--text);cursor:pointer;line-height:1.45}.checkbox-row input{margin-top:2px;flex:none}.notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 16px;border-radius:10px;border:1px solid var(--border);background:var(--bg-raised);font-size:.875rem;color:var(--text);margin:0 0 18px}.notice--success{border-color:color-mix(in srgb,var(--success) 35%,var(--border));background:color-mix(in srgb,var(--success) 7%,var(--bg-card))}.notice--warn{border-color:color-mix(in srgb,var(--amber) 35%,var(--border));background:color-mix(in srgb,var(--amber) 7%,var(--bg-card))}.notice p{flex-basis:100%;margin:0;color:var(--text-muted);font-size:.8125rem}.password-reveal{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem;padding:4px 10px;border-radius:6px;background:var(--bg-card);border:1px solid var(--border);letter-spacing:.5px;-webkit-user-select:all;user-select:all}.badge{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:5px;font-size:.75rem;font-weight:600;background:var(--accent-soft);color:var(--primary);white-space:nowrap}.badge--muted{background:var(--bg-raised);color:var(--text-dim)}.badge--ok{background:color-mix(in srgb,var(--success) 12%,var(--bg-card));color:var(--success)}.badge--warn{background:color-mix(in srgb,var(--amber) 12%,var(--bg-card));color:var(--amber)}.users-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin:18px 0 26px}.user-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 18px;padding:14px 18px;border-bottom:1px solid var(--border)}.user-row:last-child{border-bottom:0}.user-row--inactive{opacity:.6}.user-row-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 240px}.user-row-main>*{min-width:0}.user-row-name{display:flex;align-items:center;flex-wrap:wrap;font-weight:600;font-size:.9375rem;overflow-wrap:anywhere}.user-row-meta{display:block;font-size:.8125rem;color:var(--text-dim);margin-top:2px;overflow-wrap:anywhere}.user-row-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.inline-form{flex-basis:100%;padding-top:12px;border-top:1px dashed var(--border)}.inline-form label{display:block;font-size:.8125rem;color:var(--text-muted);margin-bottom:6px}.inline-form-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form-row .text-input{flex:1 1 180px;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.user-create{border-top:1px solid var(--border);padding-top:22px}.user-create h4{margin-bottom:14px}.user-create-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px 18px}.user-create-grid .form-group{display:flex;flex-direction:column}.user-create .btn-primary{margin-top:12px}.google-panel{display:flex;flex-direction:column;gap:18px}.google-panel .notice{margin:0}.google-how{display:grid;gap:10px;padding:0;margin:16px 0 0;list-style:none}.google-how li{display:flex;gap:10px;font-size:.875rem;color:var(--text-muted);line-height:1.55}.google-how .icon{color:var(--primary);flex:none;margin-top:3px}.google-steps{margin:14px 0 18px 20px;display:grid;gap:8px;font-size:.875rem;line-height:1.55;color:var(--text)}.copy-field{display:flex;flex-direction:column;gap:6px}.copy-field-label{font-size:.8125rem;color:var(--text-muted)}.copy-field-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.copy-field code{flex:1 1 260px;min-width:0;overflow-wrap:anywhere;padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-raised);font-size:.8125rem;-webkit-user-select:all;user-select:all}.calendar-rows{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:12px;overflow:hidden}.card>.notice+.calendar-rows,.card>.settings-hint+.calendar-rows{margin-top:14px}.calendar-row{padding:18px 20px;border-bottom:1px solid var(--border)}.calendar-row:last-child{border-bottom:0}.calendar-row-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.calendar-row-title{display:flex;gap:10px;align-items:flex-start}.calendar-row-title .dentist-swatch{width:10px;height:10px;border-radius:3px;margin-top:7px;flex:none}.calendar-row-title strong{display:block;font-size:.9375rem}.calendar-row-hint{display:block;font-size:.8125rem;color:var(--text-dim);margin-top:2px}.calendar-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px 20px;margin:16px 0 0}.calendar-facts dt{font-size:.75rem;color:var(--text-dim)}.calendar-facts dd{margin:3px 0 0;font-size:.875rem;overflow-wrap:anywhere;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.calendar-row>.notice{margin-top:14px}.calendar-row-controls{display:grid;gap:14px;margin-top:16px;padding-top:16px;border-top:1px dashed var(--border)}.calendar-row-controls .form-group{display:flex;flex-direction:column;max-width:360px}.btn-link{background:none;border:0;padding:0;min-height:0;color:var(--primary);font-weight:600;font-size:.8125rem;cursor:pointer}.btn-link:hover:not(:disabled){text-decoration:underline}.practice-name-field{display:flex;flex-direction:column;max-width:420px;margin-bottom:20px}.wc-busy{position:absolute;left:2px;right:2px;border-radius:6px;z-index:0;pointer-events:none;overflow:hidden;padding:3px 6px;font-size:.6875rem;color:var(--text-dim);border:1px dashed color-mix(in srgb,var(--text-dim) 45%,transparent);background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--text-dim) 13%,transparent) 0 6px,transparent 6px 12px)}.wc-appt{z-index:1}.form-error-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}@media(max-width:760px){.user-row-controls{width:100%}.calendar-row{padding:16px}.calendar-row-head .btn{width:100%}}.setup-screen{align-items:stretch}.setup-screen .login-intro{align-self:stretch}.setup-screen .login-form-side{align-content:start;padding-top:56px;padding-bottom:56px}.google-installer{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.google-installer>summary{cursor:pointer;font-size:13px;color:var(--text-muted, #6b7280);list-style:revert}.google-installer>summary:hover{color:var(--text, inherit)}.google-installer[open]>summary{margin-bottom:10px}
