a{color:inherit}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.page-head h2{font-size:1.125rem;margin:0 0 5px}.page-head p{font-size:0.6875rem;color:var(--muted);margin:0}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.table-toolbar{border-bottom:1px solid var(--line)}.toolbar-form{display:flex;gap:8px}.input-shell{min-width:280px;height:42px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:8px;padding:0 12px}.input-shell input{border:0;outline:0;background:transparent;color:var(--text);width:100%;font:inherit}.table-actions,.table-actions form{display:flex;gap:5px;margin:0}.table-actions a,.table-actions button{width:31px;height:31px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--muted);padding:0}.table-actions .icon{width:15px}.table-patient{display:flex;align-items:center;gap:8px}.table-patient .avatar{width:34px;height:34px;border-radius:10px;font-size:0.625rem}.pagination-wrap{display:flex;justify-content:space-between;align-items:center;padding:14px;border-top:1px solid var(--line);font-size:0.625rem}.pagination-wrap>div{display:flex;gap:5px}.page-link-btn{min-width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;text-decoration:none}.page-link-btn.active{background:var(--brand);color:#fff}.form-control,.form-select{background:var(--surface);border-color:var(--line);color:var(--text);border-radius:11px;font:inherit;font-size:0.75rem;min-height:42px}.form-control:focus,.form-select:focus{background:var(--surface);color:var(--text);border-color:#8fc3c3;box-shadow:0 0 0 4px rgba(17,148,156,.08)}label{font-size:0.625rem;color:var(--muted);margin-bottom:6px}.form-switch-box{border:1px solid var(--line);border-radius:12px;padding:16px 48px 12px 12px;background:var(--surface-2);min-height:58px}.due-list{display:flex;flex-direction:column}.due-row{display:grid;grid-template-columns:90px 1fr auto;gap:12px;align-items:center;padding:13px 17px;border-bottom:1px solid var(--line);text-decoration:none}.due-row>span{font-size:0.5625rem;background:var(--brand-soft);color:var(--brand);border-radius:9px;padding:7px;text-align:center}.due-row b{font-size:0.625rem;display:block}.due-row small{font-size:0.5rem;color:var(--muted);display:block}.patient-profile-card{display:flex;align-items:center;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:18px 20px;box-shadow:var(--shadow-sm);margin-bottom:16px}.patient-main{display:flex;align-items:center;gap:13px;min-width:250px}.patient-xl{width:64px;height:64px;border-radius:19px;font-size:1.0625rem}.profile-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;flex:1}.profile-meta span{display:block;font-size:0.5rem;color:var(--muted)}.profile-meta b{font-size:0.625rem}.detail-grid{display:grid;grid-template-columns:280px 1fr;gap:16px}.detail-content{display:flex;flex-direction:column;gap:16px}.info-list>div{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}.info-list p{font-size:0.625rem;line-height:2}.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.permission-card{border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--surface-2)}.permission-card h5{font-size:0.6875rem;color:var(--brand)}.permission-card label{display:grid;grid-template-columns:18px 1fr;gap:6px;padding:7px 0;border-bottom:1px dashed var(--line);cursor:pointer}.permission-card code{grid-column:2;font-size:0.4375rem}.text-danger{color:var(--danger)!important}.text-success{color:var(--success)!important}.login-page,.install-page{min-height:100vh;background:radial-gradient(circle at 80% 15%,#d9f0ef,transparent 34%),linear-gradient(135deg,#f8fbfb,#eef6f5);display:grid;place-items:center;padding:24px}.login-shell{width:min(1040px,100%);min-height:610px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:28px;overflow:hidden;box-shadow:0 30px 90px rgba(7,93,99,.16)}.login-brand{background:linear-gradient(145deg,#075d63,#0b858b);color:#fff;padding:58px;display:flex;flex-direction:column;justify-content:center}.login-brand img{width:235px;height:110px;object-fit:contain;background:#fff;border-radius:20px;padding:10px}.login-brand h1{font-size:1.75rem;margin:40px 0 12px}.login-brand p{font-size:0.75rem;line-height:2}.login-brand div{display:flex;gap:8px;flex-wrap:wrap}.login-brand span{font-size:0.5625rem;border:1px solid #ffffff33;border-radius:9px;padding:7px}.login-card{padding:65px;display:flex;flex-direction:column;justify-content:center}.login-logo{display:none}.login-card h2{font-size:1.3125rem}.login-card>p{font-size:0.625rem;color:#71868a}.login-card label{display:block;margin-top:14px}.login-card .btn{height:48px;margin-top:18px}.login-card small{text-align:center;margin-top:16px}.pass{position:relative}.pass button{position:absolute;left:8px;top:8px;border:0;background:#eef5f4;color:#075d63;border-radius:8px;padding:6px 9px;font-size:0.5625rem}.install-card{width:min(580px,100%);background:#fff;border-radius:24px;padding:30px;box-shadow:0 24px 70px rgba(7,93,99,.14)}.install-card img{width:190px;height:85px;object-fit:contain;display:block;margin:auto}.install-card h1{text-align:center;font-size:1.3125rem}.install-card p{text-align:center;color:#71868a}.install-spec{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px;background:#f7fbfa;border-radius:14px;margin:20px 0}.install-spec b{text-align:left}.search-result{display:flex;align-items:center;gap:10px;padding:10px;border-radius:11px;text-decoration:none}.search-result:hover{background:var(--surface-2)}.search-result small{display:block;color:var(--muted);font-size:0.5625rem}.modal h5{font-size:0.875rem}.panel-header>a{font-size:0.625rem;color:var(--brand);text-decoration:none}.switch-row{cursor:pointer}
@media(max-width:1100px){.permission-grid{grid-template-columns:repeat(2,1fr)}.profile-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.login-shell{grid-template-columns:1fr;max-width:540px;min-height:auto}.login-brand{display:none}.login-card{padding:40px}.login-logo{display:block;width:190px;height:90px;object-fit:contain;margin:auto}.detail-grid{grid-template-columns:1fr}.patient-profile-card{flex-wrap:wrap}.profile-meta{width:100%}}
@media(max-width:767px){.toolbar-form{flex-direction:column}.input-shell{min-width:0}.permission-grid{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.page-actions{width:100%}.due-row{grid-template-columns:75px 1fr}.due-row>strong{grid-column:2}.login-card{padding:28px 22px}}
.settings-columns{display:grid;grid-template-columns:1.3fr .7fr;gap:16px}.mb-3{margin-bottom:1rem}@media(max-width:900px){.settings-columns{grid-template-columns:1fr}}
/* Product branding and vendor credit */
.app-footer{height:auto;min-height:58px;gap:18px}.footer-product{display:flex;flex-direction:column;gap:2px}.footer-product>span{color:var(--text);font-weight:700;font-size:0.625rem}.footer-product small{font-size:0.5rem;color:var(--muted)}.footer-designer{margin-right:auto;display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--muted);transition:.18s}.footer-designer:hover{color:var(--brand)}.footer-designer span{font-size:0.5rem}.footer-designer img{width:92px;height:30px;object-fit:contain}.login-page{grid-template-rows:minmax(0,1fr) auto;align-items:center}.login-shell{align-self:center}.auth-designer{padding:14px 0 2px;align-self:end}.auth-designer a{display:flex;align-items:center;justify-content:center;gap:9px;text-decoration:none;color:#657d80;font-size:0.5625rem}.auth-designer img{width:95px;height:31px;object-fit:contain}.brand-settings-box{display:grid;grid-template-columns:170px 1fr;gap:16px;align-items:center;border:1px dashed #a8cccc;background:var(--surface-2);padding:14px;border-radius:16px;margin-bottom:15px}.brand-settings-preview{height:112px;background:var(--surface);border:1px solid var(--line);border-radius:14px;display:grid;place-items:center;overflow:hidden}.brand-settings-preview img{max-width:92%;max-height:95px;object-fit:contain}.brand-settings-box strong{font-size:0.6875rem}.brand-settings-box p{font-size:0.5625rem;color:var(--muted);margin:4px 0 9px}.brand-settings-box .form-control{min-height:38px;height:auto;padding:7px}.settings-side-stack{display:flex;flex-direction:column;gap:16px}.settings-side-stack form{margin:0}.settings-subtitle{font-size:0.75rem;margin:0 0 14px}.product-info-card .panel-body>div{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:0.5625rem}.product-info-card .panel-body>div span{color:var(--muted)}.product-info-card .panel-body>a{margin-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-decoration:none;color:var(--muted);font-size:0.5rem}.product-info-card img{width:110px;height:36px;object-fit:contain}
@media(max-width:767px){.app-footer{padding:8px 12px;min-height:62px}.footer-product small{display:none}.footer-designer span{display:none}.footer-designer img{width:82px}.brand-settings-box{grid-template-columns:1fr}.brand-settings-preview{height:100px}}
.product-info-card .product-update-link{padding:10px 0 12px;margin:0!important;border-bottom:1px solid var(--line);color:var(--brand)!important}.product-update-link b{font-size:0.5625rem}.system-tool-page{min-height:100vh;background:radial-gradient(circle at 85% 10%,#d8f1ef,transparent 30%),linear-gradient(145deg,#f7fbfb,#edf5f5);display:grid;grid-template-rows:1fr auto;place-items:center;padding:25px}.system-tool-card{width:min(650px,100%);background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:27px;box-shadow:0 25px 80px rgba(7,93,99,.14)}.system-tool-head{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:18px}.system-tool-head img{width:130px;height:70px;object-fit:contain}.system-tool-head h1{font-size:1.125rem;margin:0 0 5px}.system-tool-head p{font-size:0.5625rem;color:var(--muted);margin:0}.update-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.update-summary>div{background:var(--surface-2);border:1px solid var(--line);border-radius:13px;padding:12px;text-align:center}.update-summary span{font-size:0.5rem;color:var(--muted);display:block}.update-summary b{font-size:0.75rem;display:block;margin-top:5px}.pending-list{display:flex;flex-direction:column;gap:6px;margin:0 0 18px}.pending-list code{direction:ltr;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:8px;font-size:0.5625rem}.empty-update{text-align:center;color:var(--muted);background:var(--surface-2);border-radius:13px;padding:18px;font-size:0.625rem;margin-bottom:18px}@media(max-width:560px){.system-tool-page{padding:12px}.system-tool-card{padding:20px}.system-tool-head{align-items:flex-start}.system-tool-head img{width:95px;height:52px}.update-summary{grid-template-columns:1fr}}

/* Product polish: installer security notice */
.installer-security-alert{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:14px;padding:14px 16px;margin-bottom:18px;border:1px solid #f1c98a;border-radius:16px;background:#fff8e9;box-shadow:var(--shadow-sm)}
.installer-security-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#fff0cf;color:#a86a05}.installer-security-icon .icon{width:22px;height:22px}.installer-security-alert strong{font-size:0.75rem}.installer-security-alert p{font-size:0.5625rem;color:#806842;margin:4px 0 0;line-height:1.8}.installer-security-alert form{margin:0}.installer-security-alert .btn-danger{white-space:nowrap;font-size:0.625rem}
html[data-theme="dark"] .installer-security-alert{background:#3a3020;border-color:#66502a}.ltr-text,.ltr{direction:ltr;text-align:left;display:inline-block}

/* Dashboard additions */
.dashboard-quick-panel{margin-bottom:18px}.quick-action{display:block;text-decoration:none}.dashboard-notice{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:18px;border:1px solid #f0d3a1;border-radius:16px;background:var(--surface);text-decoration:none;box-shadow:var(--shadow-sm)}.dashboard-notice>.icon{width:24px;height:24px;color:var(--warning)}.dashboard-notice div{flex:1}.dashboard-notice strong{display:block;font-size:0.6875rem}.dashboard-notice span{display:block;font-size:0.5625rem;color:var(--muted);margin-top:3px}.dashboard-notice>b{font-size:0.5625rem;color:var(--brand)}

/* Weekly appointments calendar */
.appointment-summary{margin-bottom:16px}.weekly-calendar-panel{margin-bottom:18px;overflow:hidden}.calendar-toolbar p{font-size:0.5625rem;color:var(--muted);margin:4px 0 0}.week-navigation{display:flex;gap:7px;flex-wrap:wrap}.week-navigation .btn{font-size:0.5625rem}.weekly-calendar-wrap{overflow:auto;overscroll-behavior-inline:contain}.schedule.weekly-schedule{grid-template-columns:76px repeat(7,minmax(138px,1fr));min-width:1150px}.weekly-schedule>div{min-height:82px}.weekly-schedule .schedule-head{position:sticky;top:0;z-index:3;min-height:66px!important}.weekly-schedule .schedule-corner{right:0;z-index:4}.weekly-schedule .schedule-head.is-today{background:var(--brand-soft);color:var(--brand)}.weekly-schedule .time-cell{position:sticky;right:0;z-index:2}.weekly-schedule .slot{padding:6px;display:flex;flex-direction:column;gap:5px;align-items:stretch}.weekly-schedule .slot.is-today{background:rgba(12,132,139,.035)}.weekly-schedule .slot.is-off-day{background:rgba(120,130,132,.045)}.weekly-schedule .schedule-head.is-past{background:var(--surface-2);color:var(--muted)}.weekly-schedule .schedule-head.is-past small{opacity:.72}.past-day-badge{display:inline-flex;margin-top:5px;padding:2px 6px;border-radius:999px;background:rgba(112,128,132,.12);color:var(--muted);font-size:.5rem;font-weight:750}.weekly-schedule .slot.is-past{background:repeating-linear-gradient(135deg,rgba(112,128,132,.035),rgba(112,128,132,.035) 8px,rgba(112,128,132,.065) 8px,rgba(112,128,132,.065) 16px);cursor:not-allowed}.weekly-schedule .slot.is-past .slot-card{opacity:.72;filter:saturate(.72);cursor:pointer}.weekly-schedule .slot.is-past .slot-add{display:none}.weekly-schedule .slot-card{height:auto;min-height:62px;display:flex;flex-direction:column;text-decoration:none;padding:8px;border-right-width:3px;transition:.16s}.weekly-schedule .slot-card:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(7,93,99,.12)}.weekly-schedule .slot-card span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weekly-schedule .slot-card small{margin-top:auto;opacity:.8}.slot-status-success{border-color:var(--success)!important;background:#e7f7f0!important;color:#167d5b!important}.slot-status-warning{border-color:var(--warning)!important;background:#fff3db!important;color:#a56508!important}.slot-status-danger{border-color:var(--danger)!important;background:#ffe9ec!important;color:#b93647!important}.slot-status-info{border-color:#4c79c6!important;background:#edf3fd!important;color:#3a67af!important}.slot-add{min-height:60px;border:1px dashed transparent;border-radius:9px;display:grid;place-items:center;text-decoration:none;color:transparent;font-size:1.25rem;transition:.15s}.slot:hover .slot-add{border-color:var(--line);color:var(--muted);background:var(--surface-2)}.week-list-panel{margin-bottom:18px}.panel-count{font-size:0.5625rem;color:var(--muted);background:var(--surface-2);padding:6px 9px;border-radius:9px}
html[data-theme="dark"] .slot-status-success{background:#19372e!important;color:#6fc9a8!important}html[data-theme="dark"] .slot-status-warning{background:#3e321d!important;color:#e6b65f!important}html[data-theme="dark"] .slot-status-danger{background:#3c2227!important;color:#e47d89!important}html[data-theme="dark"] .slot-status-info{background:#1d2f48!important;color:#8db2ec!important}

/* Scrollable forms and permission management */
.modal-dialog-scrollable .modal-content{overflow:hidden}.modal-scroll-form{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 3.5rem);overflow:hidden}.modal-scroll-form .modal-body{overflow-y:auto;min-height:0;overscroll-behavior:contain}.modal-scroll-form .modal-footer{flex:0 0 auto;background:var(--surface)}.permission-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:24px 0 12px;position:sticky;top:-20px;z-index:2;background:var(--surface);padding:12px 0 10px;border-bottom:1px solid var(--line)}.permission-heading h4{font-size:1rem;margin:0}.permission-heading p{font-size:0.5625rem;color:var(--muted);margin:4px 0 0}.permission-heading>div:last-child{display:flex;gap:6px}.permission-grid{align-items:start}.permission-card{padding:0;overflow:hidden}.permission-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;background:var(--surface);border-bottom:1px solid var(--line)}.permission-card h5{margin:0;font-size:0.6875rem}.permission-group-check{display:flex!important;grid-template-columns:none!important;align-items:center;gap:5px!important;padding:0!important;border:0!important;font-size:0.5rem!important}.permission-option{display:flex!important;align-items:center;gap:8px!important;padding:10px 12px!important;margin:0!important}.permission-option input,.permission-group-check input{accent-color:var(--brand);width:16px;height:16px;flex:0 0 auto}.permission-option span{font-size:0.5625rem;color:var(--text)}.form-hint{display:block;font-size:0.5rem;color:var(--muted);margin-top:5px}

@media(max-width:767px){.installer-security-alert{grid-template-columns:40px 1fr}.installer-security-alert form{grid-column:1/-1}.installer-security-alert .btn{width:100%}.calendar-toolbar{align-items:flex-start;flex-direction:column}.week-navigation{width:100%}.week-navigation .btn{flex:1}.appointment-summary{grid-template-columns:repeat(2,1fr)}.permission-heading{align-items:flex-start;flex-direction:column}.permission-heading>div:last-child{width:100%}.permission-heading .btn{flex:1}.modal-scroll-form{max-height:calc(100vh - 1rem)}}

/* Persian date picker */
.jalali-field{position:relative}.jalali-input-row{display:flex;gap:10px}.jalali-display-wrap{position:relative;flex:1}.jalali-display-wrap .form-control{padding-left:48px;cursor:pointer}.jalali-open-button{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--brand,#0b7a80);display:grid;place-items:center}.jalali-open-button:hover{background:rgba(11,122,128,.08)}.jalali-time{max-width:145px;direction:ltr;text-align:center}.jalali-popover{position:absolute;z-index:1085;top:calc(100% + 8px);right:0;width:330px;max-width:calc(100vw - 42px);padding:16px;border:1px solid var(--border,#dbe5e6);border-radius:18px;background:var(--panel,#fff);box-shadow:0 22px 60px rgba(17,51,55,.2);display:none}.jalali-field.open .jalali-popover{display:block}.jalali-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.jalali-head button{width:36px;height:36px;border:1px solid var(--border,#dbe5e6);border-radius:10px;background:var(--panel,#fff);font-size:1.5rem;line-height:1;color:var(--text,#17383b)}.jalali-title{font-size:0.875rem}.jalali-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.jalali-week{font-size:0.6875rem;color:var(--muted,#829598);padding:4px 0}.jalali-day,.jalali-empty{height:34px;border:0;border-radius:9px;background:transparent;color:var(--text,#17383b);display:grid;place-items:center}.jalali-day:hover{background:rgba(11,122,128,.09)}.jalali-day.today{box-shadow:inset 0 0 0 1px var(--brand,#0b7a80)}.jalali-day.selected{background:var(--brand,#0b7a80);color:#fff}.jalali-day.friday{color:#d65363}.jalali-day.selected.friday{color:#fff}.jalali-day.disabled,.jalali-day:disabled{color:var(--muted,#829598);opacity:.32;cursor:not-allowed;background:transparent;box-shadow:none}.jalali-day.disabled:hover,.jalali-day:disabled:hover{background:transparent}.jalali-day.disabled.friday,.jalali-day:disabled.friday{color:#d9a2a8}.jalali-day.disabled.selected,.jalali-day:disabled.selected{background:transparent;color:var(--muted,#829598)}.jalali-actions{display:flex;justify-content:space-between;border-top:1px solid var(--border,#dbe5e6);margin-top:12px;padding-top:10px}.jalali-actions button{border:0;background:transparent;color:var(--brand,#0b7a80);font-size:0.75rem}.jalali-field.is-readonly .jalali-display-wrap .form-control{cursor:default}

/* Appointment patient selector */
.appointment-patient-section{padding-bottom:4px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-heading h4{font-size:1.0625rem;margin:0 0 4px}.section-heading p{margin:0;color:var(--muted,#829598);font-size:0.75rem}.patient-mode-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.patient-mode-card{cursor:pointer}.patient-mode-card input{position:absolute;opacity:0;pointer-events:none}.patient-mode-card>span{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;border:1px solid var(--border,#dbe5e6);border-radius:16px;padding:14px;background:var(--soft,#f7fafb);transition:.2s}.patient-mode-card svg{grid-row:1/3;width:22px;height:22px;color:var(--brand,#0b7a80);margin:auto}.patient-mode-card b{font-size:0.875rem}.patient-mode-card small{font-size:0.6875rem;color:var(--muted,#829598)}.patient-mode-card input:checked+span{border-color:var(--brand,#0b7a80);background:rgba(11,122,128,.07);box-shadow:0 0 0 3px rgba(11,122,128,.08)}.patient-mode-panel[hidden]{display:none!important}.patient-mode-panel{border:1px dashed var(--border,#dbe5e6);border-radius:16px;padding:16px}.form-divider{margin:22px 0;border-color:var(--border,#dbe5e6);opacity:1}

/* SMS management */
.sms-provider-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.sms-provider-card{display:flex;flex-direction:column;justify-content:space-between;min-height:170px;border:1px solid var(--border,#dbe5e6);border-radius:18px;padding:16px;background:var(--panel,#fff);transition:.2s}.sms-provider-card.active{border-color:var(--brand,#0b7a80);box-shadow:0 10px 30px rgba(11,122,128,.1)}.sms-provider-card h3{font-size:0.875rem;margin:10px 0 7px}.sms-provider-card p{font-size:0.6875rem;line-height:1.8;color:var(--muted,#829598);margin:0}.sms-provider-card a{font-size:0.6875rem;color:var(--brand,#0b7a80);margin-top:12px}.provider-check{width:30px;height:30px;border-radius:10px;background:var(--soft,#f3f7f7);display:grid;place-items:center;color:var(--muted,#829598)}.sms-provider-card.active .provider-check{background:var(--brand,#0b7a80);color:#fff}.sms-settings-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:18px;align-items:start;margin-bottom:18px}.sms-settings-grid>form{min-width:0}.sms-main-switch span{display:flex;flex-direction:column}.sms-main-switch small,.field-help{display:block;color:var(--muted,#829598);font-size:0.6875rem;margin-top:4px}.ltr-input{direction:ltr;text-align:left}.sms-test-card{position:sticky;top:90px}.sms-events-panel>.panel-header{align-items:flex-start}.sms-variable-list{display:flex;flex-wrap:wrap;gap:6px;max-width:440px;justify-content:flex-end}.sms-variable-list span{font-family:monospace;direction:ltr;background:var(--soft,#f3f7f7);border:1px solid var(--border,#dbe5e6);border-radius:8px;padding:4px 7px;font-size:0.625rem}.sms-events-list{display:grid;gap:14px}.sms-event-card{border:1px solid var(--border,#dbe5e6);border-radius:18px;overflow:hidden;background:var(--panel,#fff)}.sms-event-card>header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--soft,#f7fafb);border-bottom:1px solid var(--border,#dbe5e6)}.sms-event-card>header span{font-size:0.625rem;color:var(--brand,#0b7a80)}.sms-event-card>header h4{font-size:0.9375rem;margin:3px 0 0}.sms-event-card>header code{direction:ltr;font-size:0.625rem;color:#b03873;background:rgba(176,56,115,.08);padding:5px 8px;border-radius:8px}.sms-event-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.sms-recipient-config{padding:16px;min-width:0}.sms-recipient-config+ .sms-recipient-config{border-right:1px solid var(--border,#dbe5e6)}.recipient-config-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.recipient-config-head>div{display:flex;align-items:center;gap:8px}.recipient-config-head svg{color:var(--brand,#0b7a80)}.sms-recipient-config>label{font-size:0.6875rem;color:var(--muted,#829598);margin:10px 0 6px}.sms-recipient-config textarea{font-size:0.75rem;line-height:1.8}.sms-recipient-config.is-disabled{background:var(--soft,#f7fafb)}.recipient-not-applicable{display:grid;place-items:center;min-height:190px;color:var(--muted,#829598);font-size:0.75rem;border:1px dashed var(--border,#dbe5e6);border-radius:14px}.mini-switch{margin:0!important}.mini-switch input{display:none}.mini-switch span{display:block;width:42px;height:23px;border-radius:99px;background:#cbd7d8;position:relative;transition:.2s}.mini-switch span:after{content:"";position:absolute;top:3px;right:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 4px #0002}.mini-switch input:checked+span{background:var(--brand,#0b7a80)}.mini-switch input:checked+span:after{right:22px}.manager-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:154px;overflow:auto;border:1px solid var(--border,#dbe5e6);border-radius:12px;padding:8px}.manager-picker label{display:flex;align-items:center;gap:7px;border:1px solid transparent;border-radius:9px;padding:7px;cursor:pointer}.manager-picker label:hover{background:var(--soft,#f7fafb)}.manager-picker input{accent-color:var(--brand,#0b7a80)}.manager-picker span{display:flex;flex-direction:column;min-width:0}.manager-picker b{font-size:0.6875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manager-picker small{font-size:0.5625rem;color:var(--muted,#829598);direction:ltr}.sms-error-text{display:block;max-width:280px;color:#c74350;margin-top:5px;white-space:normal}.sms-recipient-config [data-sms-pattern-fields]{margin-top:8px}.sms-recipient-config [data-sms-text-fields]{margin-top:8px}

@media(max-width:1200px){.sms-provider-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.sms-settings-grid{grid-template-columns:1fr}.sms-test-card{position:static}.sms-event-columns{grid-template-columns:1fr}.sms-recipient-config+ .sms-recipient-config{border-right:0;border-top:1px solid var(--border,#dbe5e6)}.sms-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.jalali-input-row{flex-direction:column}.jalali-time{max-width:none}.jalali-popover{right:auto;left:0;width:310px}.patient-mode-switch,.sms-provider-grid{grid-template-columns:1fr}.sms-variable-list{justify-content:flex-start}.manager-picker{grid-template-columns:1fr}}
.jalali-field.has-error .jalali-display-wrap .form-control{border-color:#dc5261;box-shadow:0 0 0 3px rgba(220,82,97,.1)}
.manager-picker label.is-disabled{opacity:.55;cursor:not-allowed;background:var(--surface-soft)}
.manager-picker label.is-disabled input{cursor:not-allowed}

.database-update-alert{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:16px 18px;margin-bottom:18px;border:1px solid #7fc6ca;background:linear-gradient(135deg,#edfafa,#f7ffff);border-radius:18px;box-shadow:0 10px 28px rgba(11,122,128,.08)}.database-update-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#d8f2f3;color:var(--brand,#0b7a80)}.database-update-icon .icon{width:24px;height:24px}.database-update-alert strong{display:block;font-size:0.875rem;color:var(--text,#17383b);margin-bottom:4px}.database-update-alert p{margin:0;color:var(--muted,#72888b);font-size:0.6875rem;line-height:1.8}.secret-field{display:grid;gap:8px}.secret-saved-state{display:flex;align-items:center;gap:8px;min-height:38px;padding:8px 10px;border:1px solid #b9e0d0;background:#effaf5;border-radius:11px;font-size:0.625rem;color:#28775a}.secret-saved-state span{display:flex;align-items:center;gap:5px;font-weight:700}.secret-saved-state .icon{width:15px;height:15px}.secret-saved-state code{direction:ltr;color:#185d48;background:#dff3e9;padding:3px 7px;border-radius:7px}.secret-saved-state small{margin-right:auto;color:#628578}.secret-remove{display:flex;align-items:center;gap:6px;font-size:0.625rem;color:#a4424b;cursor:pointer}.secret-remove input{accent-color:#c74350}.sms-provider-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:760px){.database-update-alert{grid-template-columns:auto 1fr}.database-update-alert .btn{grid-column:1/-1}.secret-saved-state{flex-wrap:wrap}.secret-saved-state small{margin-right:0}.sms-provider-grid{grid-template-columns:1fr}}


/* Cross-browser patient combobox */
.patient-combobox-shell{position:relative}.patient-native-select[hidden]{display:none!important}.patient-combobox{position:relative}.patient-combobox-control{position:relative}.patient-combobox-input{padding-left:48px!important}.patient-combobox-input::-webkit-search-cancel-button{display:none}.patient-combobox-toggle{position:absolute;left:7px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:9px;background:var(--surface-2,#f3f7f7);color:var(--muted,#71868a);font:700 20px/1 sans-serif;display:grid;place-items:center;cursor:pointer;transition:.18s}.patient-combobox.open .patient-combobox-toggle{transform:translateY(-50%) rotate(180deg);color:var(--brand,#0b7a80)}.patient-combobox-menu{position:absolute;z-index:1095;top:calc(100% + 7px);right:0;left:0;max-height:270px;overflow:auto;padding:7px;border:1px solid var(--line,#dbe5e6);border-radius:14px;background:var(--surface,#fff);box-shadow:0 18px 45px rgba(17,51,55,.18);scrollbar-width:thin}.patient-combobox-menu[hidden]{display:none!important}.patient-combobox-option{width:100%;border:0;background:transparent;color:var(--text,#17383b);font:inherit;text-align:right;border-radius:10px;padding:10px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.patient-combobox-option:hover,.patient-combobox-option.active{background:var(--brand-soft,#e8f5f4);color:var(--brand,#0b7a80)}.patient-combobox-option[aria-selected=true]{box-shadow:inset 3px 0 0 var(--brand,#0b7a80)}.patient-combobox-option span{font-size:0.75rem;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patient-combobox-option small{font-size:0.625rem;color:var(--muted,#71868a);direction:ltr;white-space:nowrap}.patient-combobox-empty{padding:18px 12px;text-align:center;color:var(--muted,#71868a);font-size:0.6875rem}.patient-combobox-input:invalid:not(:focus){border-color:#dc5261}
@media(max-width:600px){.patient-combobox-option{align-items:flex-start;flex-direction:column;gap:3px}.patient-combobox-option small{direction:rtl}}


/* v3.3.0 scheduled messaging, font controls and update suggestions */
.font-scale-picker{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.font-scale-picker label{cursor:pointer;min-width:0}.font-scale-picker input{position:absolute;opacity:0;pointer-events:none}.font-scale-picker span{min-height:94px;border:1px solid var(--border,#dbe5e6);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px;background:var(--surface,#fff);transition:.18s}.font-scale-picker b{font-size:0.75rem}.font-scale-picker small{color:var(--brand,#0b7a80)}.font-scale-picker em{font-style:normal;color:var(--muted,#829598);margin-top:auto;white-space:nowrap;overflow:hidden}.font-scale-picker input:checked+span{border-color:var(--brand,#0b7a80);background:var(--brand-soft,#e8f5f4);box-shadow:0 0 0 3px rgba(11,122,128,.08)}.settings-hint{color:var(--muted,#829598);font-size:0.6875rem;margin-top:-4px}
.sms-scheduler-panel{margin-bottom:18px}.sms-schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.sms-schedule-card{border:1px solid var(--border,#dbe5e6);border-radius:16px;padding:15px;background:var(--surface,#fff)}.schedule-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.schedule-card-head span{font-size:0.625rem;color:var(--brand,#0b7a80)}.schedule-card-head h4{font-size:0.875rem;margin:3px 0}.sms-schedule-card>p{font-size:0.625rem;line-height:1.9;color:var(--muted,#829598);min-height:42px}.sms-schedule-card label{font-size:0.625rem;color:var(--muted,#829598);margin-bottom:5px}.sms-schedule-card small{display:block;color:var(--muted,#829598);margin-top:4px;font-size:0.5625rem}.scheduler-runtime-box,.cron-config-box{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--border,#dbe5e6);border-radius:15px;padding:14px 16px;margin-top:12px;background:var(--soft,#f7fafb)}.scheduler-runtime-box p,.cron-config-box p{margin:4px 0 0;color:var(--muted,#829598);font-size:0.625rem;line-height:1.8}.cron-config-box{display:block}.cron-url-row{display:flex;gap:8px;margin:10px 0 7px}.cron-url-row input{font-family:monospace;font-size:0.625rem}.scheduler-run-form{border-top:1px solid var(--border,#dbe5e6);padding:12px 16px;display:flex;align-items:center;justify-content:flex-end;gap:12px}.scheduler-run-form span{color:var(--muted,#829598);font-size:0.625rem}
.update-suggestion-panel{margin-top:18px}.update-suggestion-panel>.panel-header>a{color:var(--brand,#0b7a80);font-weight:700;direction:ltr}.suggestion-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr)}.suggestion-form{border-left:1px solid var(--border,#dbe5e6)}.suggestion-terms{border:1px solid #f0d89d;background:#fff9e9;border-radius:15px;padding:14px 16px;margin-bottom:16px;color:#705b28}.suggestion-terms h4{font-size:0.8125rem;margin:0 0 8px}.suggestion-terms ul{margin:0;padding-right:18px;line-height:2;font-size:0.625rem}.suggestion-agree{display:flex;align-items:center;gap:8px;margin-top:16px;font-weight:650}.suggestion-agree input{accent-color:var(--brand,#0b7a80);width:17px;height:17px}.suggestion-history{min-width:0}.suggestion-history h4{font-size:0.875rem;margin-bottom:12px}.suggestion-history article{border:1px solid var(--border,#dbe5e6);border-radius:13px;padding:12px;margin-bottom:9px;background:var(--surface,#fff)}.suggestion-history article header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.suggestion-history article header b{font-size:0.6875rem}.suggestion-history article p{font-size:0.625rem;line-height:1.8;color:var(--muted,#829598);margin:8px 0}.suggestion-history article footer{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted,#829598);font-size:0.5625rem}.suggestion-history article>small{display:block;color:#b36a20;margin-top:7px}
@media(max-width:1100px){.font-scale-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.sms-schedule-grid{grid-template-columns:1fr}.suggestion-layout{grid-template-columns:1fr}.suggestion-form{border-left:0;border-bottom:1px solid var(--border,#dbe5e6)}}
@media(max-width:600px){.font-scale-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.cron-url-row,.scheduler-run-form{flex-direction:column;align-items:stretch}.scheduler-runtime-box{align-items:flex-start}.suggestion-terms ul{padding-right:15px}}
html[data-theme="dark"] .suggestion-terms{background:#332d1f;border-color:#5f5030;color:#e8d39a}
html[data-theme="dark"] .font-scale-picker span,html[data-theme="dark"] .sms-schedule-card,html[data-theme="dark"] .suggestion-history article{background:var(--surface,#152427)}

/* v3.3.2: hard lock for appointment dates before today */
.weekly-schedule [data-bookable="0"]{cursor:not-allowed}
.weekly-schedule .slot[data-bookable="0"] .slot-add{display:none!important;visibility:hidden!important;pointer-events:none!important}
.weekly-schedule .schedule-head[data-bookable="0"]{background:var(--surface-2);color:var(--muted)}
.weekly-schedule .slot[data-bookable="0"]{background:repeating-linear-gradient(135deg,rgba(112,128,132,.035),rgba(112,128,132,.035) 8px,rgba(112,128,132,.065) 8px,rgba(112,128,132,.065) 16px)}

/* Medino 1.0 — clinical, scheduling, billing, backup and security suite */
.clinical-patient-filter{margin-bottom:16px}.clinical-patient-filter .panel-body{padding:16px}.clinical-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);gap:16px;align-items:start}.treatment-plan-workspace{display:flex;flex-direction:column;gap:16px}.module-tabs{display:flex;align-items:center;gap:6px;overflow:auto;margin:0 0 16px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-sm);scrollbar-width:thin}.module-tabs a{flex:0 0 auto;min-height:38px;padding:9px 14px;border-radius:10px;color:var(--muted);font-size:.6875rem;font-weight:700;text-decoration:none;white-space:nowrap}.module-tabs a:hover{background:var(--surface-2);color:var(--brand)}.module-tabs a.active{background:var(--brand-soft);color:var(--brand);box-shadow:inset 0 0 0 1px rgba(17,148,156,.16)}
.split-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.6fr);gap:16px;align-items:start}.split-layout.wide-main{grid-template-columns:minmax(0,1.65fr) minmax(330px,.55fr)}.split-layout>form,.document-layout>form,.backup-side>form{min-width:0}.weekday-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.weekday-picker label{margin:0;cursor:pointer}.weekday-picker input{position:absolute;opacity:0;pointer-events:none}.weekday-picker span{display:grid;place-items:center;min-height:38px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font-size:.625rem;transition:.18s}.weekday-picker input:checked+span{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:750}.table-warning-row{background:rgba(220,138,22,.075)}.table-warning-row:hover{background:rgba(220,138,22,.12)}

/* Odontogram */
.odontogram-panel{overflow:hidden}.odontogram-panel .panel-body{padding:18px}.odontogram{display:flex;flex-direction:column;gap:18px;overflow:auto;padding:8px 2px 14px}.tooth-row{display:grid;grid-template-columns:repeat(16,minmax(42px,1fr));gap:6px;min-width:790px}.tooth-row+.tooth-row{padding-top:17px;border-top:1px dashed var(--line)}.tooth-button{--tooth-accent:#9fb1b3;--tooth-soft:rgba(159,177,179,.12);position:relative;min-height:74px;border:1px solid rgba(159,177,179,.35);border-radius:13px;background:linear-gradient(180deg,var(--surface) 0%,var(--tooth-soft) 100%);color:var(--text);padding:7px 4px 6px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;text-decoration:none;transition:.18s;overflow:hidden}.tooth-button:hover,.tooth-button.active,.tooth-button.selected{border-color:var(--tooth-accent);transform:translateY(-2px);box-shadow:0 7px 18px rgba(7,93,99,.09)}.tooth-button.active,.tooth-button.selected{box-shadow:0 0 0 3px rgba(17,148,156,.12)}.tooth-button b{font-size:.6875rem}.tooth-button small{max-width:100%;font-size:.46rem;color:var(--tooth-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}.tooth-shape{width:28px;height:31px;border:2px solid currentColor;border-radius:48% 48% 36% 36%;background:var(--surface);position:relative;color:var(--tooth-accent)}.tooth-shape:after{content:"";position:absolute;inset:5px;border:1px solid currentColor;border-radius:50%;opacity:.42}.tooth-button.healthy,.tooth-state.healthy{--tooth-accent:#7a9396;--tooth-soft:rgba(122,147,150,.12);color:#7a9396}.tooth-button[data-status="پوسیدگی"],.tooth-state.caries{--tooth-accent:#c74b57;--tooth-soft:rgba(199,75,87,.14);color:#c74b57}.tooth-button[data-status="ترمیم‌شده"],.tooth-state.filled{--tooth-accent:#3978d4;--tooth-soft:rgba(57,120,212,.14);color:#3978d4}.tooth-button[data-status="روکش"],.tooth-state.crown{--tooth-accent:#b88422;--tooth-soft:rgba(184,132,34,.16);color:#b88422}.tooth-button[data-status="عصب‌کشی‌شده"],.tooth-state.root{--tooth-accent:#8a60bf;--tooth-soft:rgba(138,96,191,.16);color:#8a60bf}.tooth-button[data-status="ایمپلنت"],.tooth-state.implant{--tooth-accent:#1b966c;--tooth-soft:rgba(27,150,108,.16);color:#1b966c}.tooth-button[data-status="شکستگی"],.tooth-state.fracture{--tooth-accent:#d46d2e;--tooth-soft:rgba(212,109,46,.16);color:#d46d2e}.tooth-button[data-status="نیازمند بررسی"],.tooth-state.review,.tooth-button.warning,.tooth-state.warning{--tooth-accent:#d18a16;--tooth-soft:rgba(209,138,22,.16);color:#d18a16}.tooth-button[data-status="کشیده‌شده"],.tooth-button[data-status="غایب"],.tooth-button.missing,.tooth-state.missing{--tooth-accent:#8a9b9f;--tooth-soft:rgba(138,155,159,.10);color:#8a9b9f}.tooth-button[data-status="کشیده‌شده"] .tooth-shape,.tooth-button[data-status="غایب"] .tooth-shape,.tooth-button.missing .tooth-shape,.tooth-state.missing{opacity:.35}.odontogram-legend{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.odontogram-legend span{display:flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid currentColor;border-radius:9px;background:rgba(255,255,255,.6);font-size:.5rem}.odontogram-legend i{width:9px;height:9px;border-radius:50%;background:currentColor}.tooth-editor{position:sticky;top:100px}.tooth-editor .panel-body{display:flex;flex-direction:column;gap:10px}.surface-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.surface-picker label{cursor:pointer;margin:0}.surface-picker input{position:absolute;opacity:0}.surface-picker span{height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);font-weight:800;color:var(--muted)}.surface-picker input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}.tooth-state{display:inline-flex;align-items:center;gap:5px}.tooth-state:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}

/* Treatment plans */
.plan-layout{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:560px}.plan-list{border-left:1px solid var(--line);background:var(--surface-2);padding:10px;max-height:760px;overflow:auto}.plan-list-item{display:flex;flex-direction:column;gap:5px;padding:12px;margin-bottom:7px;border:1px solid transparent;border-radius:12px;text-decoration:none;color:var(--text);background:var(--surface)}.plan-list-item:hover,.plan-list-item.active{border-color:#b9d8d8;background:var(--brand-soft)}.plan-list-item b{font-size:.6875rem}.plan-list-item small{font-size:.5625rem;color:var(--muted)}.plan-list-item span{display:flex;justify-content:space-between;gap:8px}.plan-detail{min-width:0;padding:16px}.plan-summary-form{border:1px solid var(--line);border-radius:15px;background:var(--surface-2);padding:15px;margin-bottom:14px}.plan-summary-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:15px;padding-top:13px;border-top:1px solid var(--line)}.plan-summary-actions>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.plan-summary-actions span{font-size:.5625rem;color:var(--muted)}.plan-summary-actions strong{font-size:.75rem;color:var(--brand)}.add-plan-item{border:1px dashed #a8cccc;border-radius:14px;background:rgba(232,245,244,.45);padding:14px;margin-top:14px}.inline-item-status{display:grid;grid-template-columns:minmax(120px,1fr) 90px 80px minmax(150px,1fr) auto;gap:7px;align-items:end}.inline-item-status select,.inline-item-status input{min-width:0}.inline-item-status button{height:38px}.treatment-plan-workspace .data-table td{vertical-align:middle}

/* Documents */
.document-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.document-summary article{border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm);padding:14px}.document-summary span{display:block;color:var(--muted);font-size:.5625rem}.document-summary strong{display:block;margin-top:5px;font-size:.875rem}.document-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:16px;align-items:start}.document-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px}.document-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--surface);transition:.18s}.document-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.document-preview{height:145px;display:grid;place-items:center;background:linear-gradient(145deg,var(--surface-2),var(--brand-soft));text-decoration:none;color:var(--brand);overflow:hidden}.document-preview img{width:100%;height:100%;object-fit:cover}.document-preview .icon{width:42px;height:42px}.document-preview span{font-size:.625rem;font-weight:800}.document-info{padding:12px}.document-info h4{font-size:.6875rem;margin:9px 0 5px}.document-info p{height:36px;margin:0;color:var(--muted);font-size:.5625rem;line-height:1.8;overflow:hidden}.document-info>small{display:block;margin-top:8px;color:var(--muted);font-size:.5rem}.document-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.document-actions form{margin:0}.document-upload-panel{position:sticky;top:100px}.document-upload-panel .field-help{display:block;margin-top:-8px}

/* Billing */
.billing-layout{display:grid;grid-template-columns:285px minmax(0,1fr);min-height:610px}.invoice-list{max-height:800px;overflow:auto;border-left:1px solid var(--line);background:var(--surface-2);padding:9px}.invoice-list-item{display:grid;grid-template-columns:1fr auto;gap:7px;padding:11px;margin-bottom:7px;border:1px solid transparent;border-radius:12px;background:var(--surface);text-decoration:none;color:var(--text)}.invoice-list-item:hover,.invoice-list-item.active{border-color:#b7d8d8;background:var(--brand-soft)}.invoice-list-item span{min-width:0}.invoice-list-item b{display:block;font-size:.6875rem}.invoice-list-item small{display:block;margin-top:3px;color:var(--muted);font-size:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invoice-list-item em{font-style:normal;align-self:start}.invoice-list-item>strong{grid-column:1/-1;font-size:.5625rem;color:var(--warning)}.invoice-detail{min-width:0;padding:16px}.invoice-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}.invoice-detail-head h3{font-size:1rem;margin:0}.invoice-detail-head p{margin:4px 0 0;color:var(--muted);font-size:.625rem}.invoice-detail-head>div:last-child{display:flex;align-items:center;gap:7px}.invoice-meta-form,.invoice-add-row{padding:14px 0;border-bottom:1px solid var(--line)}.invoice-totals{display:flex;align-items:center;justify-content:flex-end;gap:15px;flex-wrap:wrap;padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);margin-top:13px}.invoice-totals span{font-size:.5625rem;color:var(--muted)}.invoice-totals strong{font-size:.6875rem}.invoice-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.invoice-actions form{margin:0}.payment-zone{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:14px;margin-top:15px}.payment-zone>section,.payment-forms{border:1px solid var(--line);border-radius:14px;padding:13px}.payment-zone h4{font-size:.75rem;margin:0 0 12px}.payment-forms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;background:var(--surface-2)}.payment-forms form{padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.cash-session-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:15px}.cash-session-summary div{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.cash-session-summary span{display:block;color:var(--muted);font-size:.5rem}.cash-session-summary b{display:block;margin-top:5px;font-size:.6875rem}.cash-close-form{display:grid;grid-template-columns:1fr 1.5fr auto;gap:9px;align-items:end;padding:15px;border-top:1px solid var(--line)}.cash-open-form{max-width:460px;margin:0 auto;padding:16px}

/* Backup and health */
.health-score{display:flex;align-items:center;gap:18px;padding:18px 20px;margin-bottom:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,var(--surface),var(--brand-soft));box-shadow:var(--shadow-sm)}.health-score-ring{--score:0;width:92px;height:92px;flex:0 0 92px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(var(--brand) calc(var(--score)*1%),var(--line) 0)}.health-score-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--surface)}.health-score-ring strong,.health-score-ring span{position:relative;z-index:1}.health-score-ring strong{font-size:1rem}.health-score-ring span{position:absolute;bottom:23px;color:var(--muted);font-size:.4375rem}.health-score h2{font-size:1rem;margin:0 0 5px}.health-score p{margin:0;color:var(--muted);font-size:.625rem}.health-score form{margin-right:auto}.health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.health-card{display:flex;align-items:flex-start;gap:10px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.health-card>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted)}.health-card .icon{width:17px;height:17px}.health-card.ok{border-color:rgba(27,150,108,.25)}.health-card.ok>span{background:rgba(27,150,108,.1);color:var(--success)}.health-card.issue{border-color:rgba(220,138,22,.3)}.health-card.issue>span{background:rgba(220,138,22,.1);color:var(--warning)}.health-card h4{font-size:.625rem;margin:1px 0 4px}.health-card p{font-size:.5rem;color:var(--muted);line-height:1.7;margin:0}.backup-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.55fr);gap:16px;align-items:start}.backup-side{display:flex;flex-direction:column;gap:16px}.restore-panel{border-color:rgba(217,77,92,.25)}

/* Security */
.security-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:16px}.security-overview article{display:flex;align-items:center;gap:11px;padding:15px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm)}.security-overview article>.icon{width:38px;height:38px;padding:9px;border-radius:12px;background:var(--brand-soft);color:var(--brand)}.security-overview span{display:block;color:var(--muted);font-size:.5625rem}.security-overview strong{display:block;margin-top:4px;font-size:.75rem}.security-two-factor-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:16px}.two-factor-intro{padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.two-factor-intro h4,.two-factor-enabled h4{font-size:.8125rem}.two-factor-intro p,.two-factor-enabled p{color:var(--muted);font-size:.625rem;line-height:2}.two-factor-setup ol{padding-right:18px;color:var(--muted);font-size:.625rem;line-height:2}.secret-copy{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);direction:ltr}.secret-copy code{flex:1;font-size:.75rem;letter-spacing:.08em;overflow-wrap:anywhere}.secret-copy button{border:0;border-radius:8px;background:var(--brand);color:#fff;padding:7px 10px;font:inherit;font-size:.5625rem}.confirm-two-factor{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:13px}.confirm-two-factor label{grid-column:1/-1}.recovery-code-box{border:1px solid rgba(220,138,22,.35);background:rgba(220,138,22,.08);border-radius:14px;padding:14px;margin-bottom:14px}.recovery-code-box h4{font-size:.75rem}.recovery-code-box>div{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;direction:ltr}.recovery-code-box code{display:block;padding:8px;border:1px dashed rgba(220,138,22,.5);border-radius:8px;background:var(--surface);text-align:center}.two-factor-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.two-factor-actions form{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px}.security-guidance{display:flex;flex-direction:column;gap:9px}.security-guidance p{margin:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--muted);font-size:.625rem;line-height:1.8}.admin-security-actions{display:flex;gap:5px}.admin-security-actions select{max-width:155px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:.5625rem;padding:5px}.security-policy-panel .switch-row{border:1px solid var(--line);border-radius:12px;padding:10px 12px}.security-policy-panel .switch-row b{display:block;font-size:.625rem}.security-policy-panel .switch-row small{display:block;color:var(--muted);font-size:.5rem}

/* Shared refinements */
.data-table.compact th,.data-table.compact td{padding:8px 9px}.field-help{display:block;color:var(--muted);font-size:.5rem;line-height:1.8}.panel-count{font-size:.5625rem;color:var(--muted);padding:5px 8px;border-radius:8px;background:var(--surface-2)}.text-warning{color:var(--warning)!important}.summary-strip .summary-mini strong .text-success{font-size:inherit}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger);border-color:var(--danger);filter:brightness(.94);color:#fff}

@media(max-width:1350px){.clinical-grid,.document-layout,.backup-layout{grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr)}.document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.clinical-grid,.split-layout,.split-layout.wide-main,.document-layout,.backup-layout,.security-two-factor-layout{grid-template-columns:1fr}.tooth-editor,.document-upload-panel{position:static}.plan-layout,.billing-layout{grid-template-columns:240px minmax(0,1fr)}.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.document-summary,.cash-session-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.plan-layout,.billing-layout{grid-template-columns:1fr}.plan-list,.invoice-list{border-left:0;border-bottom:1px solid var(--line);max-height:250px}.plan-summary-actions,.invoice-detail-head,.health-score{align-items:flex-start;flex-direction:column}.health-score form{margin-right:0;width:100%}.health-score .btn{width:100%}.payment-zone{grid-template-columns:1fr}.security-overview{grid-template-columns:1fr}.inline-item-status{grid-template-columns:1fr 1fr}.inline-item-status>*:last-child{grid-column:1/-1}.cash-close-form{grid-template-columns:1fr}.health-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.document-summary,.document-grid,.health-grid,.cash-session-summary,.payment-forms,.two-factor-actions{grid-template-columns:1fr}.weekday-picker{grid-template-columns:repeat(2,1fr)}.plan-detail,.invoice-detail{padding:11px}.plan-summary-actions>div:last-child,.invoice-actions{width:100%}.plan-summary-actions .btn,.invoice-actions .btn{flex:1}.surface-picker{grid-template-columns:repeat(3,1fr)}.health-score-ring{width:76px;height:76px;flex-basis:76px}.document-preview{height:170px}.recovery-code-box>div{grid-template-columns:1fr}.confirm-two-factor{grid-template-columns:1fr}.tooth-row{min-width:720px}.module-tabs{border-radius:12px}.admin-security-actions{flex-direction:column}}
html[data-theme="dark"] .table-warning-row{background:rgba(220,138,22,.12)}html[data-theme="dark"] .add-plan-item{background:rgba(17,148,156,.08)}html[data-theme="dark"] .health-score{background:linear-gradient(135deg,var(--surface),rgba(17,148,156,.1))}html[data-theme="dark"] .document-preview{background:linear-gradient(145deg,var(--surface-2),rgba(17,148,156,.12))}
.advanced-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:18px}.advanced-dashboard-grid a{display:flex;flex-direction:column;min-height:112px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--text);transition:.18s}.advanced-dashboard-grid a:hover{border-color:#b7d7d7;transform:translateY(-2px)}.advanced-dashboard-grid span{font-size:.5625rem;color:var(--muted)}.advanced-dashboard-grid strong{font-size:.875rem;margin:7px 0;color:var(--brand)}.advanced-dashboard-grid small{margin-top:auto;color:var(--muted);font-size:.5rem}@media(max-width:1000px){.advanced-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.advanced-dashboard-grid{grid-template-columns:1fr}}

.patient-documents-inline .panel-body{padding-top:0}.patient-documents-inline .document-summary{margin-top:0}.patient-documents-inline .document-layout{margin-top:12px}



/* Read-only public demo account */
.readonly-demo-notice{display:flex;align-items:center;gap:8px;border:1px solid rgba(17,148,156,.24);background:rgba(17,148,156,.08);color:var(--text);border-radius:14px;padding:12px 14px;margin-bottom:16px}.readonly-demo-notice strong{color:var(--brand)}body[data-readonly-demo="1"] form[aria-disabled="true"]{opacity:.72}body[data-readonly-demo="1"] form[aria-disabled="true"] :is(input,select,textarea,button):disabled{cursor:not-allowed}html[data-theme="dark"] .readonly-demo-notice{background:rgba(17,148,156,.13)}
