:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#2c2933;background:#f7f7fa;font-synthesis:none;--accent:#7052a2;--muted:#85818e;--border:#e9e7ef;--sidebar:222px;--hour:76px}*{box-sizing:border-box}body{margin:0;font-size:14px}button,input,select,textarea{font:inherit}button,a,select,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #ac91d7;outline-offset:3px}a{color:inherit;text-decoration:none}svg{width:19px;height:19px;flex-shrink:0;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);position:fixed;inset:0 auto 0 0;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:32px 17px 22px;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:0 12px;margin-bottom:47px;font-size:22px;font-weight:650;letter-spacing:-.6px}.brand-mark{background:#7052a2;color:#fff;font-family:Georgia,serif;font-weight:normal;letter-spacing:-2px;font-size:24px;width:46px;height:46px;border-radius:15px;display:flex;align-items:center;justify-content:center;padding-right:4px}.brand-mark span{color:#ddcba1;font-size:27px}.brand-caption{display:block;font-size:8px;letter-spacing:2.1px;font-weight:700;color:#a19ba9;margin-top:5px}.workspace-label{font-size:9px;letter-spacing:1.6px;font-weight:700;color:#aaa4b2;padding-left:15px;margin-bottom:14px}nav{display:flex;flex-direction:column;gap:7px}.nav-item{border:0;background:transparent;color:#817a8d;display:flex;align-items:center;gap:13px;text-align:left;width:100%;padding:13px 15px;border-radius:9px;font-weight:550;font-size:13px}.nav-item:hover{background:#faf8fc;color:#51465f}.nav-item.active{color:#7052a2;background:#f0eaf8}.nav-item.active:after{content:"";width:5px;height:5px;background:#9474bd;border-radius:50%;margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:32px}.pilot-card{display:flex;align-items:flex-start;gap:9px;background:#faf9fc;border:1px solid #eeeaf4;border-radius:10px;padding:14px 12px;font-size:12px;font-weight:600}.pilot-card small{display:block;font-size:10px;line-height:1.6;color:#918699;font-weight:400;margin-top:4px}.pilot-dot{width:7px;height:7px;background:#9c87b8;border-radius:50%;margin-top:4px}.profile-label{font-size:10px;display:block;color:#918899;margin:22px 2px 8px}.sidebar select{width:100%;border:1px solid var(--border);border-radius:8px;background:#fff;padding:10px;font-size:11px;color:#51485e}.profile-hint{font-size:10px;line-height:1.6;color:#a49cab;margin:9px 2px 0}.workspace{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));min-width:0}.demo-banner{height:34px;background:#f5f0e6;color:#897857;display:flex;align-items:center;gap:7px;padding:0 34px;font-size:10px;border-bottom:1px solid #ebe4d5}.demo-banner strong{font-weight:600}.demo-dot{height:5px;width:5px;background:#bc9955;border-radius:50%}.demo-detail{margin-left:auto;opacity:.8}.banner-separator{padding:0 3px}.app-header{background:#fff;border-bottom:1px solid var(--border);min-height:103px;padding:24px 34px;display:flex;align-items:center;justify-content:space-between}.eyebrow{font-size:9px;font-weight:650;letter-spacing:1.6px;color:#a49bad;margin-bottom:7px}h1{font-size:27px;font-weight:600;letter-spacing:-1px}h2{font-size:22px;font-weight:600;letter-spacing:-.5px}.header-right{display:flex;align-items:center;gap:20px}.connection{font-size:10px;color:#648a76;display:flex;align-items:center;gap:6px;white-space:nowrap}.connection>span{width:6px;height:6px;background:#72a88d;border-radius:50%}.connection.waiting,.connection.offline{color:#a28862}.connection.waiting>span,.connection.offline>span{background:#c6a267}.unit-control select{border:1px solid var(--border);border-radius:7px;padding:9px 30px 9px 12px;color:#62566d;background:#fff;font-size:12px}.user-avatar{border-radius:50%;background:#eee8f5;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#8a6da9}main{padding:28px 32px 0;min-height:calc(100vh - 184px)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.date-label{font-size:19px;font-weight:600;letter-spacing:-.5px;margin-bottom:5px;text-transform:capitalize}.date-subtitle{font-size:11px;color:#9b95a5}.date-actions,.toolbar-buttons{display:flex;align-items:center;gap:8px}.date-actions{gap:12px}.date-arrows{display:flex;gap:0;border:1px solid var(--border);border-radius:7px;background:#fff;overflow:hidden}.icon-button{border:0;background:transparent;color:#82738f;width:33px;height:33px;display:flex;align-items:center;justify-content:center;font-size:27px;font-weight:300}.icon-button:hover{background:#f2eef7}.icon-button svg{width:16px;height:16px}.button{border:1px solid #e3deeb;background:#fff;color:#6f5b82;border-radius:8px;padding:11px 14px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.button:hover{background:#f7f3fc}.button svg{width:16px;height:16px}.button.primary{background:#7052a2;border-color:#7052a2;color:#fff;box-shadow:0 3px 5px #7052a21a}.button.primary:hover{background:#63468f}.button.small{padding:8px 11px}.button.danger{color:#aa4c65;border-color:#e9c9d2}.date-picker{position:relative;display:inline-flex}.date-picker input{width:33px;height:33px;border:0;background:#fff;color:transparent;border-radius:6px;padding:0}.date-picker input::-webkit-datetime-edit{display:none}.date-picker input::-webkit-calendar-picker-indicator{margin:auto;width:16px;height:16px;opacity:.4;cursor:pointer}.schedule-card{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 3px 12px #30243d03}.schedule-summary{display:flex;align-items:center;gap:20px;padding:15px 19px;border-bottom:1px solid var(--border);min-height:55px}.stat{font-size:11px;color:#948c9f;display:flex;gap:7px;align-items:center}.stat strong{color:#4d425c;font-weight:650}.stat svg{width:15px;height:15px;color:#b0a5be}.summary-right{margin-left:auto;display:flex;gap:8px;align-items:center}.view-toggle{display:flex;padding:3px;background:#f7f5f9;border-radius:6px;gap:2px}.view-toggle button{background:none;border:0;padding:6px 11px;border-radius:4px;color:#9b90a8;font-size:10px}.view-toggle button.selected{background:#fff;box-shadow:0 1px 4px #32244010;color:#715783}.calendar-scroll{overflow:auto;max-height:680px;position:relative;scrollbar-width:thin;scrollbar-color:#ded8e6 #fff}.calendar-grid{display:grid;min-width:calc(61px + var(--columns) * 170px);grid-template-columns:61px repeat(var(--columns),minmax(150px,1fr));position:relative}.time-heading{height:70px;background:#fff;position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:center;color:#b1a8bb;border-bottom:1px solid var(--border);font-size:9px}.professional-heading{height:70px;padding:14px 12px;display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:4;background:#fff;border-left:1px solid var(--border);border-bottom:1px solid var(--border)}.avatar{background:var(--tint,#ede7f5);color:var(--ink,#80629f);border-radius:50%;height:32px;width:32px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:650;flex-shrink:0}.professional-name{font-size:12px;font-weight:600;color:#5c506c}.professional-meta{font-size:9px;margin-top:5px;color:#a79dad}.professional-meta .mini-dot{width:4px;height:4px;display:inline-block;background:#94bba5;border-radius:50%;margin-right:4px;vertical-align:middle}.time-column{height:836px;position:relative;background:#fff;z-index:2}.time-tick{position:absolute;right:13px;font-size:9px;color:#ada3b6;transform:translateY(-5px)}.time-tick:first-child{transform:translateY(5px)}.professional-column{position:relative;height:836px;border-left:1px solid var(--border);background:repeating-linear-gradient(to bottom,#fff 0px,#fff 37px,#f5f3f8 37px,#f5f3f8 38px,#fff 38px,#fff 75px,#eeebf3 75px,#eeebf3 76px)}.slot-button{position:absolute;left:0;right:0;width:100%;border:0;background:none;cursor:pointer}.slot-button:hover,.slot-button:focus-visible{background:#7052a212}.slot-button:focus-visible{outline:2px solid #a68abd;outline-offset:-2px}.appointment,.block-card{position:absolute;left:5px;right:5px;border:1px solid transparent;border-left:3px solid var(--card-accent,#aa8cc9);background:var(--card-bg,#f1eaf9);padding:10px 11px;border-radius:7px;color:var(--card-ink,#806292);text-align:left;cursor:pointer;overflow:hidden;transition:box-shadow .15s,transform .15s}.appointment:hover,.block-card:hover{z-index:3;box-shadow:0 5px 13px #48325e20;transform:translateY(-1px)}.appointment-time{font-size:9px;font-weight:600;opacity:.78;display:flex;justify-content:space-between;align-items:center;gap:4px}.appointment-time svg{width:12px;height:12px}.appointment-name{font-size:12px;font-weight:650;margin:7px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-service{font-size:10px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment-team{font-size:9px;opacity:.7;margin-top:9px}.block-card{background:repeating-linear-gradient(135deg,#f3f1f5,#f3f1f5 7px,#efedf2 7px,#efedf2 8px);border:1px solid #e4dfea;color:#9687a1;padding:10px}.block-card .appointment-name{font-size:11px;font-weight:500}.calendar-legend{display:flex;gap:19px;align-items:center;padding:13px 20px;border-top:1px solid var(--border);font-size:9px;color:#a69bad}.legend-item{display:flex;align-items:center;gap:6px}.legend-square{width:7px;height:7px;border-radius:2px;background:#c2add8}.legend-square.green{background:#a7cbbd}.legend-square.gray{background:#ddd7e4}.legend-detail{margin-left:auto}.app-footer{display:flex;justify-content:space-between;padding:21px 34px;font-size:9px;color:#b7afc0}.app-footer>span:first-child{font-weight:600;color:#a598b3}.loading-state,.empty-state{padding:70px 25px;text-align:center;color:#9f92ad;line-height:1.7}.loading-state{display:flex;align-items:center;justify-content:center;gap:10px}.empty-state h3{font-size:15px;color:#6f607e;font-weight:550;margin-bottom:6px}.empty-state p{font-size:12px}.empty-state .button{margin-top:20px}.spinner{width:18px;height:18px;border:2px solid #e8dff2;border-top-color:#9473b8;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.drawer{position:fixed;inset:0 0 0 auto;margin:0;max-height:100%;height:100%;width:440px;max-width:100%;border:0;border-left:1px solid #e8e0ef;padding:0;background:#fff;box-shadow:-15px 0 50px #30223d14;color:#3f334c}.drawer::backdrop{background:#21132b36;backdrop-filter:blur(2px)}.drawer form{display:flex;flex-direction:column;min-height:100%}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:27px 27px 23px;border-bottom:1px solid var(--border)}.drawer-body{padding:25px 27px;flex:1}.drawer-actions{display:flex;justify-content:flex-end;gap:9px;padding:20px 27px;border-top:1px solid var(--border);background:#fff;position:sticky;bottom:0}.drawer-actions .danger{margin-right:auto}.field{display:block;margin-bottom:21px}.field-label{display:block;font-size:11px;font-weight:600;color:#7d6a8f;margin-bottom:8px}.field input,.field select,.field textarea{width:100%;border:1px solid #e5deec;border-radius:7px;background:#fff;color:#574664;padding:12px;font-size:12px;min-height:42px}.field textarea{resize:vertical;line-height:1.6}.field input:disabled,.field select:disabled{background:#f9f7fb}.field-hint{font-size:10px;color:#a395ae;line-height:1.6;margin-top:7px}.form-row{display:flex;gap:12px}.form-row>.field{flex:1;min-width:0}.professional-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check-card{border:1px solid #e9e2f0;padding:10px;border-radius:7px;display:flex;gap:8px;align-items:center;font-size:11px;cursor:pointer}.check-card:has(input:checked){border-color:#b49acb;background:#f9f5fc}.check-card input{accent-color:#8060a7;width:auto;min-height:auto}.check-card small{display:block;color:#a598b2;font-size:9px;margin-top:3px}.form-note{border-radius:8px;background:#f6f3fa;padding:13px 14px;font-size:11px;line-height:1.7;color:#8c77a0;margin-bottom:21px}.form-error{margin:0 27px 18px;background:#fdf0f2;border:1px solid #efd0da;border-radius:8px;padding:12px;color:#a84e6e;font-size:12px;line-height:1.6}.form-error[hidden]{display:none}.toast{position:fixed;bottom:25px;left:calc(50% + 80px);transform:translateX(-50%);background:#46334f;color:#fff;padding:13px 21px;border-radius:9px;box-shadow:0 6px 25px #30233825;font-size:12px;z-index:100;max-width:calc(100% - 30px)}.toast[hidden]{display:none}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 24px}.section-heading h2{font-size:19px}.section-heading p{font-size:11px;color:#a092ad;margin-top:7px;line-height:1.6}.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:17px}.person-card{background:#fff;border:1px solid var(--border);border-radius:11px;padding:23px}.person-card .avatar{width:45px;height:45px;font-size:14px;margin-bottom:16px}.person-card h3{font-size:15px;font-weight:600}.person-card>p{font-size:11px;color:#9e8fab;line-height:1.8;margin-top:7px}.person-card .button{margin-top:19px}.chip{display:inline-block;background:#f3eef8;border-radius:5px;color:#9077a4;font-size:10px;padding:5px 8px;margin:12px 5px 0 0}.notice{background:#f5f1e9;border:1px solid #eee5d7;border-radius:8px;color:#9b8765;font-size:11px;line-height:1.7;padding:13px 17px;margin-bottom:20px}.settings-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden}.settings-toolbar{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;gap:15px;align-items:center;justify-content:space-between}.settings-toolbar select{border:1px solid #e4ddec;padding:9px 14px;border-radius:6px;color:#756383;background:#fff;font-size:12px}.settings-table{width:100%;border-collapse:collapse;text-align:left}.settings-table th{font-size:10px;font-weight:600;color:#9c8caa;padding:15px 22px;background:#fcfbfd}.settings-table td{padding:18px 22px;border-top:1px solid #f0ebf5;font-size:12px;color:#6c597d}.settings-table th:not(:first-child),.settings-table td:not(:first-child){text-align:center;width:90px}.settings-table input{width:16px;height:16px;accent-color:#8060a7;cursor:pointer}.settings-footer{border-top:1px solid var(--border);padding:17px 22px;display:flex;align-items:center;justify-content:space-between;color:#a091ae;font-size:10px}.audit-list{display:flex;flex-direction:column;gap:10px}.audit-entry{padding:18px 20px;background:#fff;border:1px solid var(--border);border-radius:9px}.audit-entry summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:15px;list-style:none}.audit-entry h3{font-size:12px;font-weight:600}.audit-entry p{font-size:10px;color:#a192ad;margin-top:6px}.audit-entry time{font-size:10px;color:#ac9db6;white-space:nowrap}.audit-entry pre{font-size:10px;line-height:1.7;background:#faf8fc;padding:15px;border-radius:6px;white-space:pre-wrap;word-break:break-word;color:#90799e;max-height:270px;overflow:auto;margin-top:20px}.list-table-wrap{overflow-x:auto}.list-table{width:100%;border-collapse:collapse;min-width:650px}.list-table th{text-align:left;color:#aa9bb7;background:#fdfcfe;padding:17px 20px;font-size:10px;font-weight:500}.list-table td{padding:18px 20px;font-size:12px;border-top:1px solid #f0ebf5;color:#71617f}.list-table tr.clickable{cursor:pointer}.list-table tr.clickable:hover{background:#fcfafd}.list-table small{display:block;color:#aa9bb7;font-size:10px;margin-top:5px}.detail-row{display:flex;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #f0ebf5;font-size:12px}.detail-row>span:first-child{color:#a18fad}.detail-row>strong{font-weight:500;text-align:right;color:#715d82}.capacity-line{font-size:10px;color:#aa8b65;background:#fbf6eb;padding:9px 20px;border-bottom:1px solid #f0e6d3}.form-divider{height:1px;background:var(--border);margin:20px 0}.short-card .appointment-name{margin-top:4px}.short-card .appointment-team{display:none}.mobile-heading{display:none}.filter-search{display:flex;align-items:center;border:1px solid var(--border);border-radius:7px;padding:6px 9px;gap:7px;background:white}.filter-search svg{width:14px;height:14px;color:#b0a2ba}.filter-search input{border:0;width:155px;outline:none;font-size:10px;color:#776286;background:none}.results-note{font-size:10px;color:#a38eaf;padding:10px 18px;border-bottom:1px solid var(--border)}
@media(min-width:1550px){main{padding:32px 45px 0}.app-header{padding:27px 45px}.calendar-scroll{max-height:730px}.appointment{padding:12px 14px}}
@media(max-width:1100px){:root{--sidebar:185px}.sidebar{padding-left:12px;padding-right:12px}.brand{gap:9px;padding-left:8px;font-size:20px}.brand-mark{width:39px;height:39px}.app-header{padding:23px}.demo-banner{padding:0 23px}main{padding:23px 21px 0}.header-right{gap:12px}.toolbar{flex-wrap:wrap}.toolbar-buttons{margin-left:auto}.schedule-summary{gap:14px;padding-left:15px;padding-right:15px}.filter-search input{width:110px}.demo-detail{display:none}}
@media(max-width:760px){:root{--sidebar:68px}.sidebar{padding:18px 8px}.brand{padding:0;justify-content:center;margin-bottom:28px}.brand>span:last-child,.workspace-label,.nav-label,.nav-item.active:after,.pilot-card,.profile-label,.profile-hint{display:none}.brand-mark{width:40px;height:40px;font-size:23px}.nav-item{justify-content:center;padding:14px 0}.nav-item svg{width:21px;height:21px}.sidebar select{font-size:0;padding:10px 4px;height:38px}.sidebar select option{font-size:12px}.demo-banner{font-size:8px;height:29px;padding:0 13px;gap:4px}.banner-separator{padding:0}.app-header{min-height:84px;padding:18px 15px}.app-header h1{font-size:23px}.eyebrow{font-size:8px}.header-right{gap:9px}.user-avatar{display:none}.connection{font-size:0;gap:0}.connection>span{width:7px;height:7px}.unit-control select{font-size:11px;padding:8px}.toolbar{gap:15px;margin-bottom:16px}.date-label{font-size:16px}.date-subtitle{font-size:10px}.date-actions{gap:8px}.toolbar-buttons{width:100%;margin-left:0;flex-wrap:wrap}.toolbar-buttons .button{flex:1 1 125px;min-width:0;padding:11px 8px;font-size:10px}.date-arrows .icon-button{width:29px;height:31px}.button.small{font-size:10px;padding:8px}.date-picker input{width:29px}.schedule-summary{flex-wrap:wrap;gap:10px;padding:12px}.stat{font-size:10px}.stat svg{display:none}.summary-right{width:100%;justify-content:space-between}.filter-search{flex:1}.filter-search input{width:100%;font-size:11px}.schedule-card{border-radius:9px}.calendar-scroll{max-height:620px}.calendar-legend{gap:11px;padding:12px;font-size:8px}.legend-detail{display:none}main{padding:20px 13px 0}.app-footer{padding:18px 13px;font-size:8px;gap:15px}.app-footer>span:first-child{display:none}.toast{left:50%;font-size:11px;width:max-content}.people-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start;gap:10px}.section-heading h2{font-size:17px}.section-heading p{font-size:10px}.settings-table th,.settings-table td{padding:13px 9px;font-size:10px}.settings-table th:not(:first-child),.settings-table td:not(:first-child){width:45px}.settings-toolbar,.settings-footer{padding:15px 13px}.settings-toolbar select{font-size:11px}.settings-footer{gap:10px;line-height:1.6}.settings-footer .button{font-size:10px}.audit-entry summary{align-items:flex-start;flex-direction:column;gap:6px}.drawer{width:100%}.drawer-header,.drawer-body{padding:22px}.drawer-actions{padding:17px 22px}.form-error{margin-left:22px;margin-right:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
[hidden]{display:none!important}.signed-in-account{display:flex;align-items:center;gap:12px;max-width:250px}.signed-in-account>span{font-size:11px;color:#73627f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-screen .sidebar,.auth-screen .app-header{display:none}.auth-screen .workspace{margin-left:0;width:100%}.auth-screen main{min-height:calc(100vh - 95px);display:flex;justify-content:center;align-items:center;padding:38px 20px}.auth-card{width:100%;max-width:430px;background:#fff;border:1px solid var(--border);border-radius:17px;padding:35px;box-shadow:0 12px 45px #39234c08}.auth-mark{display:flex;align-items:center;justify-content:center;background:#7052a2;border-radius:14px;width:48px;height:48px;color:#fff;font-family:Georgia,serif;font-size:27px;letter-spacing:-2px;margin-bottom:25px}.auth-kicker{font-size:10px!important;letter-spacing:1.5px;font-weight:650;color:#9276a6!important;margin-bottom:9px!important}.auth-card h1{font-size:25px;line-height:1.25;letter-spacing:-.7px;margin-bottom:12px}.auth-card>p{font-size:12px;line-height:1.7;color:#918399;margin-bottom:23px}.auth-card form .field{margin-bottom:17px}.auth-card form>.button{width:100%;margin-top:7px;min-height:43px}.auth-card .auth-footnote{font-size:10px;margin:22px 0 0;padding-top:19px;border-top:1px solid var(--border);line-height:1.8}.auth-error{padding:11px 12px;background:#fdf1f3;border:1px solid #f1d6df;color:#a65371;border-radius:7px;font-size:11px;line-height:1.6;margin-bottom:13px}.connection-card>p{margin-bottom:17px}.auth-screen .app-footer{max-width:1000px;margin:auto}.auth-screen .demo-banner{justify-content:center;flex-wrap:wrap;min-height:34px;height:auto;padding-top:8px;padding-bottom:8px}.auth-screen .demo-detail{margin-left:15px}.auth-card input[name="code"]{font-size:24px;letter-spacing:7px;text-align:center}.auth-card input[name="email"],.auth-card input[name="password"]{font-size:14px}
@media(max-width:760px){.signed-in-account{gap:6px;max-width:160px}.signed-in-account>span{max-width:85px;font-size:10px}.signed-in-account .button{font-size:10px;padding:7px 9px}.auth-screen main{padding:24px 16px}.auth-card{padding:27px 23px}.auth-screen .demo-banner{font-size:9px;white-space:normal}.auth-screen .demo-detail{display:block;width:100%;margin:0;text-align:center}.auth-card input[name="email"],.auth-card input[name="password"]{font-size:16px}.auth-card h1{font-size:23px}.auth-screen .app-footer{justify-content:center}}
@media(max-width:480px){.date-actions{flex-wrap:wrap;width:100%}.date-actions>div:first-child{flex:1 0 100%;margin-bottom:2px}.date-label{font-size:16px}.date-subtitle{font-size:10px}.toolbar-buttons .button{flex-basis:120px}.demo-banner{font-size:7px;white-space:nowrap}.professional-heading{padding-left:10px;padding-right:10px}.app-header{padding-left:13px;padding-right:13px}.form-row{gap:9px}.professional-checks{grid-template-columns:1fr}}
.pending-operation{margin:18px 32px 0;padding:13px 16px;border:1px solid #e9dfc9;border-radius:8px;background:#fbf6e9;color:#8b7552;font-size:11px;display:flex;align-items:center;justify-content:space-between;gap:14px}.pending-operation .button{white-space:normal}@media(max-width:760px){.pending-operation{margin:15px 13px 0;align-items:flex-start;flex-direction:column;font-size:11px}}
.client-picker .field-hint,.service-picker .field-hint{color:#766780;font-size:11px}.client-results{max-height:250px;overflow-y:auto;overscroll-behavior:contain;border:1px solid #d9cde5;border-radius:8px;margin-top:9px;background:#fff;scroll-padding:4px}.client-option{display:flex;flex-direction:column;gap:4px;width:100%;min-height:54px;padding:11px 13px;border:0;border-bottom:1px solid #eee7f4;border-radius:0;background:#fff;color:#493757;text-align:left;font-size:13px;line-height:1.4;cursor:pointer;white-space:normal;overflow-wrap:anywhere}.client-option:last-child{border-bottom:0}.client-option:hover,.client-option.is-active{background:#eee5f8;color:#462562;box-shadow:inset 3px 0 #8060a7}.client-option-meta{color:#73627e;font-size:11px}.picker-status{font-size:11px;line-height:1.6;color:#6a547b;margin-top:9px;overflow-wrap:anywhere}.client-picker input:focus-visible,.service-picker input:focus-visible,.service-picker select:focus-visible{outline:2px solid #8060a7;outline-offset:2px}.service-picker input{margin-bottom:9px}.service-picker select{min-height:46px}.client-picker input,.service-picker input{min-height:46px}.client-picker input[type=hidden]{display:none}.drawer-actions{z-index:2}@media(max-width:760px){.client-picker input,.service-picker input,.service-picker select{font-size:16px}.client-results{max-height:225px}.client-option{min-height:58px;font-size:14px}}
@media(max-width:1000px){.app-header{flex-wrap:wrap;gap:17px}.app-header>div:first-child{min-width:0}.header-right{width:100%;min-width:0;max-width:100%;flex-wrap:wrap;justify-content:space-between}.signed-in-account{min-width:0;max-width:100%}.signed-in-account .button{flex-shrink:0}.unit-control{min-width:0;max-width:100%}.unit-control select{max-width:100%}.date-actions{flex-wrap:wrap;min-width:0;max-width:100%}.date-actions>div:first-child{min-width:0}.date-label{overflow-wrap:anywhere}.date-arrows,.date-picker{flex-shrink:0}.toolbar-buttons{width:100%;margin-left:0;flex-wrap:wrap}.toolbar-buttons .button{flex:1 1 150px;min-width:0;max-width:100%;white-space:normal}.schedule-summary{flex-wrap:wrap}.summary-right{width:100%;margin-left:0;justify-content:space-between;flex-wrap:wrap}.section-heading,.settings-toolbar,.settings-footer,.calendar-legend{flex-wrap:wrap;gap:12px}.settings-toolbar>div{min-width:0}.settings-toolbar select{max-width:100%}.app-footer{flex-wrap:wrap;gap:10px}.outbox-actions{flex-wrap:wrap}.outbox-actions .button{white-space:normal}.pending-operation{flex-wrap:wrap}}
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.permission-card{border:1px solid var(--border);border-radius:11px;background:#fff;padding:21px}.permission-card h3{font-size:15px;font-weight:600;margin:0 0 14px}.permission-card ul{list-style:none;margin:0;padding:0}.permission-card li{display:flex;flex-direction:column;gap:7px;font-size:12px;line-height:1.5;border-top:1px solid #f0eaf4;padding:13px 0}.permission-card li:last-child{padding-bottom:0}.permission-state{font-size:11px;color:#7d6c86}.permission-state.allowed{color:#427359}.permission-footnote{font-size:11px;line-height:1.7;color:#796a83;margin:18px 0}.permission-fields{border:1px solid #e6ddeb;border-radius:9px;padding:7px 14px 12px;margin:0 0 20px;min-width:0}.permission-fields legend{font-size:13px;font-weight:600;padding:0 6px;color:#614879}.permission-choice{display:flex;gap:11px;align-items:flex-start;min-height:48px;padding:11px 0;font-size:12px;line-height:1.5;cursor:pointer}.permission-choice input{width:18px;height:18px;accent-color:#8060a7;flex:none;margin-top:1px}.permission-choice small{display:block;font-size:10px;color:#897990;margin-top:3px}.permission-choice:has(input:disabled){color:#8d8095;cursor:default}@media(max-width:760px){.permission-grid{grid-template-columns:1fr}.permission-choice{font-size:14px;min-height:52px}.permission-card{padding:18px}}

.outbox-section{margin-top:35px;padding-top:26px;border-top:1px solid var(--border)}.outbox-counts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:18px 0}.outbox-counts>div{display:flex;flex-direction:column;gap:7px;padding:16px 12px;border:1px solid var(--border);border-radius:9px;background:#fff}.outbox-counts strong{font-size:23px;color:#5a416f}.outbox-counts span{font-size:10px;color:#7b6a87;line-height:1.5}.outbox-events{border:1px solid var(--border);border-radius:10px;background:#fff;overflow:hidden}.outbox-event{padding:17px 20px;border-bottom:1px solid var(--border)}.outbox-event:last-child{border:0}.outbox-event summary{display:flex;justify-content:space-between;align-items:center;gap:15px;cursor:pointer;font-size:12px;font-weight:600;min-height:30px}.outbox-event summary:before{content:'›';font-size:18px;color:#9b83b0}.outbox-event[open] summary:before{content:'⌄'}.outbox-event summary>span{flex:1}.outbox-event time{font-size:10px;font-weight:400;color:#8b7a96}.outbox-event ul{list-style:none;padding:0;margin:13px 0 0}.outbox-event li{border-top:1px solid #f1ecf5;padding:12px 0;line-height:1.6}.outbox-event li>div{display:flex;gap:12px;justify-content:space-between;font-size:11px}.outbox-event li strong{font-weight:550}.outbox-event li span,.outbox-event small,.outbox-event p{font-size:10px;color:#86748f}.outbox-event p{margin-top:9px;overflow-wrap:anywhere}.outbox-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px}.outbox-actions p{font-size:11px;color:#7f6c8c;line-height:1.6}.outbox-empty{padding:28px 20px;border:1px dashed #ddd2e7;border-radius:9px;background:#fff;text-align:center}.outbox-empty h3{font-size:14px;font-weight:550;margin-bottom:8px}.outbox-empty p{font-size:11px;color:#8e7d99;line-height:1.6}@media(max-width:900px){.outbox-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:480px){.outbox-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.outbox-event{padding:14px}.outbox-event summary{flex-wrap:wrap;gap:8px}.outbox-event time{width:100%;padding-left:18px}.outbox-actions{align-items:stretch;flex-direction:column}.outbox-actions .button{min-height:44px}}

/* Agenda display preferences share geometry with the calendar hit testing. */
.agenda-kpis{display:flex;align-items:center;flex-wrap:wrap;gap:20px}
.agenda-finance-kpis{display:contents}
.agenda-finance-kpis[hidden]{display:none}
.agenda-finance-kpis .stat{flex-wrap:wrap;row-gap:3px}
.agenda-display-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;padding:12px 18px;border-bottom:1px solid var(--border);background:#fcfafe}
.therapist-filter{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary);min-width:0}
.therapist-filter select{min-height:36px;max-width:100%;padding:7px 27px 7px 10px;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit}
.therapist-filter select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.therapist-filter-help{flex:1 0 100%;order:5;font-size:10px;line-height:1.5;color:var(--muted)}
@media(max-width:760px){.therapist-filter{flex:1 1 100%;justify-content:space-between;font-size:12px}.therapist-filter select{min-height:44px;font-size:16px;max-width:75%}.therapist-filter-help{font-size:11px}}
.agenda-size-controls{display:flex;align-items:center;flex-wrap:wrap;gap:18px}
.agenda-size-controls label{display:flex;align-items:center;gap:8px;font-size:11px;color:#786584}
.agenda-size-controls select{border:1px solid #e2d8eb;border-radius:6px;padding:7px 25px 7px 10px;background:#fff;color:#574465;font:inherit;min-height:34px;max-width:145px}
.agenda-size-controls select:disabled{opacity:.5}
.agenda-display-controls .button{flex:none;white-space:nowrap;min-height:34px}
.calendar-grid{min-width:calc(61px + var(--columns) * var(--column-width));grid-template-columns:61px repeat(var(--columns),minmax(var(--column-width),1fr))}
.time-column,.professional-column{height:var(--day-height)}
.professional-column{background:repeating-linear-gradient(to bottom,#fff 0,#fff calc(var(--half-hour) - 1px),#f5f3f8 calc(var(--half-hour) - 1px),#f5f3f8 var(--half-hour),#fff var(--half-hour),#fff calc(var(--hour-height) - 1px),#eeebf3 calc(var(--hour-height) - 1px),#eeebf3 var(--hour-height))}
.time-tick:last-child{transform:translateY(-100%)}
.expanded-context{display:none}
body.agenda-expanded-open{overflow:hidden}
main.agenda-expanded{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;gap:0;width:auto;max-width:none;height:100vh;height:100dvh;min-height:0;padding:18px 24px;background:#f8f6fa;overflow:auto}
.agenda-expanded .expanded-context{display:block;flex:none;font-size:10px;letter-spacing:.6px;color:#7e698c;margin-bottom:12px}
.agenda-expanded .toolbar,.agenda-expanded>.notice{flex:none}
.agenda-expanded .schedule-card{display:flex;flex-direction:column;flex:1;min-height:230px}
.agenda-expanded .schedule-summary,.agenda-expanded .agenda-display-controls,.agenda-expanded .calendar-legend{flex:none}
.agenda-expanded #schedule-region{flex:1;min-height:80px;overflow:auto}
.agenda-expanded .calendar-scroll{max-height:none;height:100%}
.discard-confirmation{display:flex;flex-direction:column;gap:14px;width:100%;padding:4px 0}
.discard-confirmation strong{font-size:14px;color:#664c77}
.discard-confirmation p{font-size:11px;line-height:1.6;color:#82708e;margin:5px 0 0}
.discard-confirmation>div:last-child{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.discard-confirmation .button{white-space:normal}
.discard-confirmation .danger{margin-right:0}
@media(max-width:760px){
 .agenda-display-controls{align-items:flex-start;padding:11px 12px;gap:10px;flex-wrap:wrap}
 .agenda-size-controls{gap:10px;flex:1 1 230px}
 .agenda-size-controls label{align-items:flex-start;flex-direction:column;gap:5px;font-size:10px}
 .agenda-size-controls select{font-size:14px;max-width:140px;min-height:38px}
 .agenda-display-controls .button{align-self:flex-end;min-height:38px}
 .agenda-kpis{gap:12px}
 main.agenda-expanded{padding:12px}
 .agenda-expanded .toolbar{margin-bottom:15px}
 .discard-confirmation>div:last-child{display:grid;grid-template-columns:1fr}
 .discard-confirmation .button{min-height:44px}
}

.block-card.short-card .appointment-name{display:none}
.block-card.tiny-card{padding:0 7px}
.block-card.tiny-card .appointment-time{font-size:8px;line-height:1;gap:2px;margin:0}
.block-card.tiny-card .appointment-time svg{width:8px;height:8px;flex:none}

/* Quick summaries use only the current authorized schedule projection. */
.appointment,.block-card{padding-right:38px}
.appointment:focus-visible,.block-card:focus-visible,.summary-trigger:focus-visible{outline:3px solid #9e7dc4;outline-offset:1px;z-index:3}
.summary-trigger{border:1px solid #dfd3ea;border-radius:7px;background:#fff;color:#715188;font:inherit;font-size:11px;min-height:32px;padding:7px 10px;cursor:pointer}
.summary-trigger.on-calendar{position:absolute;right:6px;z-index:3;width:30px;min-height:0;padding:0;border:0;border-radius:0 6px 0 6px;background:#ffffff80;color:#70507f;font-family:Georgia,serif;font-size:14px;font-weight:bold;line-height:1}
.summary-trigger:hover{background:#fff;box-shadow:0 1px 4px #452c5b18}
.block-summary-list{padding:20px;border-top:1px solid var(--border)}
.block-summary-list>h3{font-size:13px;font-weight:600;color:#7a6588;margin:0 0 12px}
.block-summary-row{display:flex;align-items:center;gap:14px;border-top:1px solid #eee8f4;padding:12px 0}
.block-summary-open{flex:1;min-width:0;border:0;background:none;color:#7a6588;text-align:left;padding:4px 0;cursor:pointer}
.block-summary-open strong,.block-summary-open span,.block-summary-open small{display:block;overflow-wrap:anywhere;line-height:1.5}
.block-summary-open strong{font-size:12px}.block-summary-open span{font-size:11px;margin:4px 0}.block-summary-open small{font-size:11px;color:#9d8aaa}
.block-summary-row>.summary-trigger{flex:none;min-height:44px}
.agenda-summary{position:fixed;z-index:65;width:min(340px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;border:1px solid #ddd1e9;border-radius:14px;background:#fff;box-shadow:0 14px 48px #30213f28;padding:20px;color:#594464;overscroll-behavior:contain}
.agenda-summary[hidden]{display:none}
.summary-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}
.summary-header>div{flex:1;min-width:0}
.summary-header p{margin:0 0 6px;font-size:10px;line-height:1.5;color:#9b87a7;overflow-wrap:anywhere}
.summary-header h2{margin:0;font-size:16px;line-height:1.35;letter-spacing:-.2px}
.summary-header .icon-button{flex:none;width:32px;height:32px;border:1px solid #eee7f4;border-radius:7px;font-size:24px}
.summary-fields{margin:0;display:grid;gap:13px}
.summary-fields>div{min-width:0}
.summary-fields dt{font-size:10px;color:#9d88aa;margin-bottom:4px}
.summary-fields dd{margin:0;font-size:12px;line-height:1.55;color:#624d70;white-space:pre-wrap;overflow-wrap:anywhere}
.agenda-summary footer{margin-top:20px;padding-top:16px;border-top:1px solid #eee7f4}
.agenda-summary footer .button{width:100%;white-space:normal;min-height:38px}
@media(max-width:600px){
 .agenda-summary{padding:20px;max-height:calc(100dvh - 24px)}
 .summary-header h2{font-size:18px}
 .summary-fields dt{font-size:12px}
 .summary-fields dd{font-size:14px}
 .summary-header .icon-button{height:40px;width:40px}
 .agenda-summary footer .button{min-height:44px;font-size:12px}
 .summary-trigger.on-calendar{width:36px}
 .summary-trigger:not(.on-calendar){min-height:44px;font-size:13px}
 .block-summary-list{padding:16px}
 .block-summary-open strong{font-size:14px}.block-summary-open span,.block-summary-open small{font-size:12px}
 .appointment,.block-card{padding-right:42px}
}

.time-selects{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}
.room-catalog-tile{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px;background:#fff;border:1px solid var(--border);border-radius:12px;margin-bottom:28px}
.room-catalog-tile h2{font-size:18px;margin:0 0 7px}.room-catalog-tile p{font-size:12px;color:#93809f;line-height:1.6}
.room-catalog-list{margin:10px 0 18px}.room-catalog-row{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--border)}
.room-catalog-row>div{flex:1;min-width:0}.room-catalog-row strong{display:block;font-size:14px;font-weight:550;color:#644c74;overflow-wrap:anywhere}
.room-catalog-row span{display:block;margin-top:5px;font-size:11px;color:#9b89a7;line-height:1.6;overflow-wrap:anywhere}
.room-catalog-row .button{flex:none;min-height:40px}.room-unavailability-heading{margin:26px 0 14px;padding-top:23px;border-top:1px solid var(--border)}
.room-unavailability-heading h3{font-size:15px;font-weight:550;margin-bottom:7px}.room-unavailability-heading p{font-size:11px;color:#95819f}
.room-day-status{padding:14px 18px;border-bottom:1px solid #eadfcb;background:#fcf8ef}.room-day-status h3{font-size:11px;font-weight:600;color:#9e8357;margin-bottom:10px}
.room-day-status>div{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:8px}.room-day-status span{font-size:11px;color:#967d55;line-height:1.6;min-width:0;overflow-wrap:anywhere}
.room-day-status small{display:block;font-size:10px;color:#a18c6e}.room-day-status .button{flex:none}
@media(max-width:600px){.room-catalog-tile{padding:18px;flex-direction:column;align-items:stretch;gap:15px}.room-catalog-tile .button{min-height:44px}.room-catalog-row .button,.room-day-status .button{min-height:44px}.room-day-status{padding:12px}.room-day-status span{font-size:12px}.room-day-status small{font-size:11px}}
.client-card{margin-top:14px;padding:16px;border:1px solid #e4d8ee;border-radius:10px;background:#fcfafe;color:#654d77;overflow-wrap:anywhere}
.client-card h3{font-size:16px;font-weight:600}.client-card h4{font-size:13px;margin:20px 0 5px}.client-card .field-hint{line-height:1.7;margin-top:10px}
.client-card-data{margin:14px 0}.client-card-data dt{font-size:11px;color:#897496}.client-card-data dd{margin:4px 0 0;font-size:14px}
.client-local-history{list-style:none;padding:0;margin:12px 0 0;max-height:280px;overflow-y:auto;overscroll-behavior:contain}
.client-local-history li{padding:13px 0;border-top:1px solid #e9dff0}.client-local-history strong{font-weight:550;font-size:12px}.client-local-history span{display:block;font-size:11px;line-height:1.6;margin-top:4px;color:#8a7398}
.favorite-service-list{margin-top:14px}.favorite-service-row{display:flex;gap:12px;align-items:center;min-height:62px;padding:13px 0;border-bottom:1px solid var(--border);cursor:pointer}
.favorite-service-row input{flex:none;width:18px;height:18px;accent-color:#7052a2}.favorite-service-row span{min-width:0;overflow-wrap:anywhere}.favorite-service-row strong{font-weight:550;font-size:13px;color:#654d77}.favorite-service-row small{display:block;margin-top:5px;font-size:11px;color:#9680a3}
.favorite-obsolete{margin-top:24px;padding:15px;background:#fbf6eb;border-radius:8px}.favorite-obsolete h3{font-size:13px;color:#987d54}
#client-card-toggle[hidden],.client-card[hidden],.favorite-service-row[hidden]{display:none}
@media(max-width:600px){#client-card-toggle{min-height:44px}.client-card{padding:14px}.favorite-service-row{min-height:68px}#favorite-service-search{font-size:16px}}
.group-start-button{margin:12px 0 0;display:flex;min-height:44px}#create-appointment-group[hidden]{display:none}
.group-quantity{display:flex;gap:12px;align-items:center;margin:18px 0 6px}.group-quantity .field{flex:1;min-width:0;margin-bottom:0}.group-quantity .button{flex:none;margin-top:20px}
.group-item{border:1px solid #e2d9eb;border-radius:12px;margin:22px 0;padding:18px;background:#fdfbff}.group-item h3{font-size:16px;color:#684c81;font-weight:600;margin-bottom:19px}.group-item .field:last-child{margin-bottom:0}.group-item .professional-checks{grid-template-columns:1fr}
.group-item input[type=search]{margin-bottom:8px}.group-item .field-hint{line-height:1.6}.group-item .time-selects{max-width:200px}
#group-total{margin-top:16px}#group-remove-confirmation .button{margin:5px 6px 0 0}
@media(max-width:600px){.group-item{padding:15px}.group-item input,.group-item select,.group-item textarea{font-size:16px}.group-quantity{align-items:stretch;flex-direction:column;gap:8px}.group-quantity .button{margin-top:0;min-height:44px}}
.time-selects select{min-width:0;width:100%;min-height:42px}
.appointment-finance{border-top:1px solid var(--border);padding-top:22px;margin-top:24px}.appointment-finance h3{font-size:15px;color:#614477;margin-bottom:9px}.appointment-finance p{font-size:12px;line-height:1.7;color:#8a719d;margin-bottom:14px}
.finance-mode-note{padding:14px 16px;border:1px solid #e8dcc3;border-radius:9px;background:#fcf8ed;color:#806a42;font-size:12px;line-height:1.7;margin-bottom:20px}
.finance-integration-status{--finance-integration-detail:#695c73;padding:14px 16px;margin:0 0 20px;border:1px solid var(--border);border-radius:10px;background:var(--surface,#fff);color:var(--text,#624377);overflow-wrap:anywhere}.finance-integration-heading{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.5}.finance-integration-heading svg{width:18px;height:18px;flex:0 0 18px;margin-top:1px}.finance-integration-status p{font-size:12px;line-height:1.6;margin:8px 0 0;color:var(--finance-integration-detail)}.finance-integration-status small{display:block;font-size:11px;line-height:1.6;margin-top:8px;color:var(--finance-integration-detail)}.finance-integration-status[data-status="confirmed"]{border-color:#b3d1bf;background:#f4faf6}.finance-integration-status[data-status="confirmed"] .finance-integration-heading{color:#336d48}.finance-integration-status:is([data-status="blocked"],[data-status="unavailable"]){border-color:#e4d1ac;background:#fcf8ed}.finance-integration-status:is([data-status="blocked"],[data-status="unavailable"]) .finance-integration-heading{color:#806a42}:root[data-theme="dark"] .finance-integration-status{--finance-integration-detail:#c7b9d4}:root[data-theme="dark"] .finance-integration-status[data-status="confirmed"]{background:#20362b;border-color:#456854}:root[data-theme="dark"] .finance-integration-status[data-status="confirmed"] .finance-integration-heading{color:#acd5ba}:root[data-theme="dark"] .finance-integration-status:is([data-status="blocked"],[data-status="unavailable"]){background:#392e21;border-color:#625139}:root[data-theme="dark"] .finance-integration-status:is([data-status="blocked"],[data-status="unavailable"]) .finance-integration-heading{color:#e9cf9e}
.finance-state{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:18px 0}.finance-state strong{font-size:16px;color:#634779}.finance-state span{font-size:11px;color:#9881a7}
.finance-totals{margin:14px 0 24px;border:1px solid var(--border);border-radius:10px;padding:5px 16px}.finance-totals>div{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border)}.finance-totals>div:last-child{border-bottom:0}.finance-totals dt{font-size:12px;color:#877094;min-width:0}.finance-totals dd{margin:0;font-size:14px;color:#624377;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.finance-totals>div:last-child dd{font-weight:650}
.finance-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.finance-buttons .button{flex:1;min-height:44px;white-space:normal}.finance-payments-title{font-size:15px;margin:26px 0 14px;color:#634779}
.finance-payments{list-style:none;margin:0;padding:0}.finance-payments li{border-top:1px solid var(--border);padding:16px 0}.finance-payments strong{display:block;font-size:13px;color:#624377}.finance-payments span{display:block;margin-top:6px;font-size:11px;line-height:1.6;color:#8d749d}.finance-payments .button{margin-top:11px;min-height:40px}.finance-blocked{flex-basis:100%;font-size:12px;line-height:1.7;color:#8b6846}
@media(max-width:600px){.finance-mode-note{font-size:12px}.finance-state{align-items:flex-start;flex-direction:column;gap:6px}.finance-buttons{flex-direction:column}.finance-payments .button{min-height:44px}.finance-totals{padding:5px 13px}.finance-totals dd{font-size:14px}.finance-form-fields input,.finance-form-fields select,.finance-form-fields textarea{font-size:16px;min-height:44px}}
.time-selects>span{font-weight:600;color:#806b8c}
.reason-catalog{border:1px solid var(--border);border-radius:12px;background:#fff;overflow:hidden}
.reason-row{display:flex;align-items:center;gap:16px;padding:20px;border-bottom:1px solid var(--border)}
.reason-row:last-child{border-bottom:0}
.reason-row>div{flex:1;min-width:0}
.reason-row h3{font-size:14px;color:#594467;margin:0;overflow-wrap:anywhere}
.reason-row p{font-size:11px;color:#82708e;line-height:1.6;margin:6px 0 0}
.reason-row .chip{white-space:nowrap}
.reason-row .chip.inactive{color:#807887;background:#f1eef3}
.reason-active{display:flex;align-items:flex-start;gap:10px;color:#655271;font-size:13px;line-height:1.5;margin:8px 0 14px}
.reason-active input{flex:none;width:18px;height:18px;accent-color:#80629f}
.context-audit{border-top:1px solid var(--border);padding-top:20px;margin-top:25px}
.context-audit>button{width:100%;justify-content:center;white-space:normal}
#context-audit-result{margin-top:18px}
#context-audit-result>h3{font-size:14px;color:#594467;margin:0 0 8px}
.context-audit .audit-entry{margin-bottom:10px;min-width:0}
.context-audit .audit-entry summary{align-items:flex-start;gap:10px;flex-wrap:wrap}
.context-audit .audit-entry summary time{font-size:10px}
.context-audit .audit-entry h3{font-size:12px}
.audit-changes{padding:0 20px 14px;margin:0;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.audit-changes>div{padding:10px 0;border-top:1px solid var(--border)}
.audit-changes dt{color:#624d72;font-weight:600}
.audit-changes dd{margin:4px 0 0;color:#82708e}
.audit-changes dd span{display:block;white-space:pre-wrap}
.audit-entry>.button{margin:0 20px 18px}
.audit-empty{padding:20px;color:#82708e;font-size:12px}
.audit-toolbar{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 18px;min-width:0}
.audit-toolbar label{display:grid;gap:7px;font-size:12px;font-weight:600;max-width:100%;min-width:0}
.audit-toolbar select{height:44px;max-width:100%;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--surface,#fff);color:var(--text,#2c2933);padding:0 12px}
.audit-page-note{font-size:12px;line-height:1.6;color:#695c73;margin:0 0 14px;overflow-wrap:anywhere}
.audit-page-feedback:empty{display:none}
.audit-page-feedback{display:grid;gap:10px;margin-bottom:14px;min-width:0;overflow-wrap:anywhere}
.audit-page-feedback>.button{justify-self:start}
.audit-pagination{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding:16px 0 8px;margin-top:16px;min-width:0}
.audit-pagination>span{font-size:12px;line-height:1.5;color:#695c73;overflow-wrap:anywhere}
:root[data-theme="dark"] :is(.audit-page-note,.audit-pagination>span){color:var(--text-secondary)}
.audit-pagination>div{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.audit-pagination .button,.audit-context-heading .button,.audit-page-feedback .button,#audit-refresh{min-height:44px}
.audit-context-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;min-width:0}
.audit-context-heading h3{font-size:14px;line-height:1.5;overflow-wrap:anywhere;min-width:0}
#audit-result,.context-audit,.audit-list,.audit-entry,.audit-entry summary>div{min-width:0;max-width:100%;overflow-wrap:anywhere}
@media(max-width:480px){.audit-pagination{align-items:flex-start;flex-direction:column}.audit-pagination>div{width:100%}.audit-pagination>div>.button{flex:1;justify-content:center}.audit-toolbar,.audit-toolbar label,.audit-toolbar select{width:100%}.audit-context-heading h3{flex:1 1 130px}}
/* Appearance choices belong to the signed-in account in this browser. */
:root{color-scheme:light;--surface:#fff;--surface-soft:#f7f5fa;--text:#2c2933;--text-secondary:#c7b9d4;--grid-half:#f5f3f8;--grid-hour:#eeebf3}
.header-right{gap:12px;flex-wrap:wrap}
.theme-control{display:flex;align-items:center;gap:7px;font-size:11px;color:#786584}
.theme-control select{min-height:36px;border:1px solid var(--border);border-radius:7px;padding:7px 24px 7px 9px;background:var(--surface);color:inherit;font:inherit}
.auth-screen .app-header{display:flex;justify-content:flex-end;min-height:0;padding:14px 20px;background:transparent;border:0}
.auth-screen .app-header>div:first-child,.auth-screen .app-header .connection{display:none}
.auth-screen .header-right{width:auto}
.auth-screen main{min-height:calc(100vh - 159px)}
.professional-heading{min-width:0}
.professional-label{min-width:0}
.professional-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-grid[data-density="slim"],.calendar-grid[data-density="avatar"]{grid-template-columns:61px repeat(var(--columns),var(--column-width))}
.calendar-grid[data-density="slim"] .professional-heading{flex-direction:column;justify-content:center;gap:4px;padding:5px}
.calendar-grid[data-density="slim"] .professional-label{max-width:100%;text-align:center}
.calendar-grid[data-density="slim"] .professional-meta{display:none}
.calendar-grid[data-density="slim"] .appointment,.calendar-grid[data-density="slim"] .block-card{padding-left:5px;padding-right:30px}
.calendar-grid[data-density="avatar"] .professional-heading{justify-content:center;padding:10px 4px}
.calendar-grid[data-density="avatar"] .professional-label{position:absolute;top:61px;left:4px;z-index:6;min-width:150px;max-width:240px;padding:10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);box-shadow:0 5px 20px #21132b25;visibility:hidden}
.calendar-grid[data-density="avatar"] .professional-heading:hover,.calendar-grid[data-density="avatar"] .professional-heading:focus{z-index:6}
.calendar-grid[data-density="avatar"] .professional-heading:hover .professional-label,.calendar-grid[data-density="avatar"] .professional-heading:focus .professional-label{visibility:visible}
.calendar-grid[data-density="avatar"] .professional-heading:focus-visible{outline:3px solid #ac91d7;outline-offset:-4px}
.calendar-grid[data-density="avatar"] .professional-name{white-space:normal;overflow-wrap:anywhere}
.calendar-grid[data-density="avatar"] .appointment,.calendar-grid[data-density="avatar"] .block-card{left:3px;right:3px;padding:25px 4px 3px}
.calendar-grid[data-density="avatar"] .appointment-name,.calendar-grid[data-density="avatar"] .appointment-service,.calendar-grid[data-density="avatar"] .appointment-team{display:none}
.calendar-grid[data-density="avatar"] .appointment-time{font-size:9px;line-height:1.3;white-space:normal;opacity:1}
.calendar-grid[data-density="avatar"] .summary-trigger.on-calendar{right:4px;width:30px}
.calendar-grid[data-density="avatar"] .tiny-card{padding:0 4px}
.calendar-grid[data-density="avatar"] .tiny-card .appointment-time{visibility:hidden}

/* Dark palette covers the agenda, panels, catalogs, audit and account entry. */
:root[data-theme="dark"]{color-scheme:dark;color:#f1eaf6;background:#19161f;--accent:#c6a5ef;--muted:#b9adca;--border:#43384f;--surface:#231e2b;--surface-soft:#302737;--text:#f1eaf6;--text-secondary:#c7b9d4;--grid-half:#302936;--grid-hour:#493c54}
:root[data-theme="dark"] :is(.sidebar,.app-header,.schedule-card,.time-heading,.professional-heading,.time-column,.drawer,.drawer-actions,.person-card,.settings-card,.audit-entry,.auth-card,.permission-card,.outbox-counts>div,.outbox-events,.outbox-empty,.agenda-summary,.room-catalog-tile,.reason-catalog,.client-results,.client-option,.date-arrows){background:var(--surface);color:var(--text);border-color:var(--border)}
:root[data-theme="dark"] :is(.pilot-card,.view-toggle,.form-note,.chip,.audit-entry pre,.agenda-display-controls,.client-card,.group-item,.reason-row .chip.inactive){background:var(--surface-soft);color:var(--text-secondary);border-color:var(--border)}
:root[data-theme="dark"] :is(.nav-item,.icon-button,.button,.theme-control,.sidebar select,.unit-control select,.settings-toolbar select,.agenda-size-controls select,.field input,.field select,.field textarea,.filter-search input,.client-option,.summary-trigger,.block-summary-open,.drawer){color:var(--text)}
:root[data-theme="dark"] :is(.button,.sidebar select,.unit-control select,.settings-toolbar select,.agenda-size-controls select,.field input,.field select,.field textarea,.filter-search,.summary-trigger,.date-picker input){background:var(--surface);border-color:var(--border)}
:root[data-theme="dark"] :is(.button:hover,.icon-button:hover,.nav-item:hover,.view-toggle button.selected,.client-option:hover,.client-option.is-active,.check-card:has(input:checked),.list-table tr.clickable:hover){background:#3c2e4a;color:#edddff;border-color:#9175ac}
:root[data-theme="dark"] .nav-item.active{background:#3e2f50;color:#dfc4ff}
:root[data-theme="dark"] .button.primary{background:#9166c5;border-color:#aa83d7;color:#fff}
:root[data-theme="dark"] .button.primary:hover{background:#a079d0}
:root[data-theme="dark"] .button.danger{color:#ffafc1;border-color:#a46579}
:root[data-theme="dark"] :is(.field input:disabled,.field select:disabled){background:#302a36}
:root[data-theme="dark"] :is(.professional-name,.stat strong,.detail-row>strong,.summary-fields dd,.room-catalog-row strong,.favorite-service-row strong,.group-item h3,.appointment-finance h3,.finance-state strong,.finance-totals dd,.finance-payments-title,.finance-payments strong,.reason-row h3,#context-audit-result>h3,.audit-changes dt,.discard-confirmation strong,.empty-state h3,.permission-fields legend,.outbox-counts strong){color:var(--text)}
:root[data-theme="dark"] :is(.brand-caption,.workspace-label,.pilot-card small,.profile-label,.profile-hint,.eyebrow,.date-subtitle,.stat,.stat svg,.view-toggle button,.professional-meta,.time-heading,.time-tick,.calendar-legend,.app-footer,.app-footer>span:first-child,.loading-state,.empty-state,.field-label,.field-hint,.check-card small,.section-heading p,.person-card>p,.settings-table th,.settings-table td,.settings-footer,.audit-entry p,.audit-entry time,.list-table th,.list-table td,.list-table small,.detail-row>span:first-child,.filter-search svg,.results-note,.signed-in-account>span,.auth-card>p,.client-picker .field-hint,.service-picker .field-hint,.client-option-meta,.picker-status,.permission-state,.permission-footnote,.permission-choice small,.permission-choice:has(input:disabled),.outbox-counts span,.outbox-event time,.outbox-event li span,.outbox-event small,.outbox-event p,.outbox-actions p,.outbox-empty p,.agenda-size-controls label,.expanded-context,.discard-confirmation p,.block-summary-list>h3,.block-summary-open small,.summary-header p,.summary-fields dt,.room-catalog-tile p,.room-catalog-row span,.room-unavailability-heading p,.client-card-data dt,.client-local-history span,.favorite-service-row small,.appointment-finance p,.finance-state span,.finance-totals dt,.finance-payments span,.time-selects>span,.reason-row p,.reason-active,.audit-changes dd,.audit-empty){color:var(--text-secondary)}
:root[data-theme="dark"] .auth-kicker{color:#d0aceb!important}
:root[data-theme="dark"] :is(.settings-table th,.list-table th){background:#2c2535}
:root[data-theme="dark"] :is(.settings-table td,.list-table td,.detail-row,.client-option,.permission-card li,.permission-fields,.outbox-event li,.block-summary-row,.summary-header .icon-button,.agenda-summary footer,.client-card,.client-local-history li,.favorite-service-row,.group-item,.appointment-finance,.finance-state,.finance-totals,.finance-payments,.context-audit,.audit-changes>div){border-color:var(--border)}
:root[data-theme="dark"] :is(.demo-banner,.notice,.capacity-line,.pending-operation,.room-day-status,.favorite-obsolete,.finance-mode-note){background:#392e21;color:#e9cf9e;border-color:#625139}
:root[data-theme="dark"] :is(.room-day-status h3,.room-day-status span,.room-day-status small,.favorite-obsolete h3,.finance-blocked,.connection.waiting,.connection.offline){color:#e9cf9e}
:root[data-theme="dark"] :is(.connection,.permission-state.allowed){color:#a9d4bd}
:root[data-theme="dark"] :is(.form-error,.auth-error){background:#462733;color:#ffc3d1;border-color:#92566b}
:root[data-theme="dark"] .avatar,:root[data-theme="dark"] .user-avatar{background:#443253;color:#ead9fa}
:root[data-theme="dark"] main.agenda-expanded{background:#19161f}
:root[data-theme="dark"] .calendar-scroll{scrollbar-color:#685675 var(--surface)}
:root[data-theme="dark"] .professional-column{background:repeating-linear-gradient(to bottom,var(--surface) 0,var(--surface) calc(var(--half-hour) - 1px),var(--grid-half) calc(var(--half-hour) - 1px),var(--grid-half) var(--half-hour),var(--surface) var(--half-hour),var(--surface) calc(var(--hour-height) - 1px),var(--grid-hour) calc(var(--hour-height) - 1px),var(--grid-hour) var(--hour-height))}
:root[data-theme="dark"] .slot-button:hover{background:#c9a4ee09}
:root[data-theme="dark"] .appointment{background:color-mix(in srgb,var(--card-accent) 24%,#231e2b);color:#f5ecfc;border-left-color:var(--card-accent)}
:root[data-theme="dark"] .block-card{background:repeating-linear-gradient(135deg,#39323f,#39323f 7px,#302936 7px,#302936 8px);color:#ddd0e7;border-color:#65566f}
:root[data-theme="dark"] .summary-trigger.on-calendar{background:#4a3b59;color:#f2ddff}
:root[data-theme="dark"] .summary-trigger:hover{background:#604d73}
:root[data-theme="dark"] .drawer::backdrop{background:#0b0812a6}
:root[data-theme="dark"] .date-picker input{color:transparent}
:root[data-theme="dark"] .date-picker input::-webkit-calendar-picker-indicator{opacity:.9}
/* Calendar cues remain distinguishable without color and may coexist. */
.appointment{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding-top:6px;padding-bottom:5px}
.appointment .appointment-name{margin:3px 0 2px}
.appointment-cues{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex:none;max-width:45%;min-width:0}.appointment-time-range{min-width:0;overflow:hidden;white-space:nowrap}.appointment-room{font-size:10px;font-weight:700;line-height:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appointment.short-card{padding-top:4px;padding-bottom:3px}
.appointment.short-card .appointment-name{font-size:11px;margin:1px 0}
.appointment.short-card .appointment-service{display:none}
.appointment.appointment-multi{border-left-width:6px;border-left-style:double}
.appointment.appointment-group{border-top:2px dashed currentColor}
.appointment-group-mark{position:absolute;right:8px;bottom:5px;border:1px dashed currentColor;border-radius:3px;font-size:8px;font-weight:700;line-height:12px;text-align:center;width:14px;height:14px}
.legend-square.legend-multi{height:11px;width:12px;background:none;border-left:6px double #5e8c77}
.legend-square.legend-group{height:10px;width:12px;background:none;border:1px dashed #806292}
.calendar-grid[data-density="avatar"] .appointment-room{font-size:8px;line-height:10px}.calendar-grid[data-density="avatar"] .appointment-cues{gap:2px}.calendar-grid[data-density="avatar"] .appointment-cues svg{width:9px;height:9px}
.calendar-grid[data-density="avatar"] .appointment-group-mark{right:3px;bottom:3px;width:11px;height:11px;line-height:9px;font-size:7px}
.calendar-grid[data-density="avatar"] .appointment .appointment-time{max-height:12px;white-space:nowrap;overflow:hidden}
.calendar-grid[data-density="avatar"] .appointment-end{display:none}
.calendar-grid[data-density="avatar"] .appointment.short-card{padding-top:25px}
.summary-values{gap:12px}
.summary-values dd{display:flex;gap:10px;align-items:flex-start}
.summary-values dd>svg,.summary-price-symbol{flex:none;width:17px;height:17px;color:#927aa4}
.summary-values dd>span:last-child{min-width:0}
.summary-values .summary-time dd{font-size:14px;font-weight:600}
.summary-values .summary-client dd{font-size:15px;font-weight:650}
.summary-values .summary-price{border-top:1px solid var(--border);padding-top:13px}
.summary-values .summary-price dd{font-size:16px;font-weight:650}
.summary-values .summary-received dd{font-weight:600}
.appointment-progress-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;line-height:1}.appointment-progress-icon svg{width:13px;height:13px}.appointment-progress-label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.appointment-progress-label svg{width:15px;height:15px;flex:none}
.summary-progress-editor{display:grid;gap:7px;min-width:0;flex:1}.summary-progress-editor select{width:100%;min-width:0;min-height:36px;border:1px solid var(--border);border-radius:8px;background:var(--surface,#fff);color:var(--text,#624d70);font:inherit;padding:7px 10px}.summary-progress-editor .button{justify-self:start}.summary-progress-editor .field-hint:empty{display:none}.summary-progress-editor .field-hint{margin:0;line-height:1.5}.summary-progress-editor :disabled{opacity:.65;cursor:default}.summary-progress-editor select:focus-visible{outline:2px solid #9e7dc4;outline-offset:2px}
@media(max-width:760px){.summary-progress-editor select{min-height:44px;font-size:16px}.summary-progress-editor .button{min-height:40px}}
.summary-values .summary-payments dd{font-size:11px;line-height:1.6}
.summary-price-symbol{border:1px solid currentColor;border-radius:50%;font-size:11px;text-align:center;font-weight:500;line-height:15px}
:root[data-theme="dark"] .summary-values dd>svg,:root[data-theme="dark"] .summary-price-symbol{color:#cab1e2}
:root[data-theme="dark"] .legend-square.legend-multi{border-color:#a1c7b5}
:root[data-theme="dark"] .legend-square.legend-group{border-color:#ceb2e5}
@media(max-width:760px){.theme-control select{font-size:16px;min-height:40px;max-width:110px}.theme-control{font-size:10px}.header-right{gap:9px}.calendar-grid[data-density="slim"] .summary-trigger.on-calendar{width:30px}}
@media(max-width:600px){
 .time-selects select{font-size:16px;min-height:44px}
 .reason-row{flex-wrap:wrap;gap:12px;padding:16px}
 .reason-row>div{flex-basis:100%}
 .reason-row .button{margin-left:auto;min-height:42px}
 .context-audit>button{min-height:44px}
 .audit-changes{padding:0 14px 12px}
}
.unit-hours-notice{display:flex;align-items:center;gap:12px;justify-content:space-between;margin:12px;line-height:1.6}
.unit-hours-notice .button{flex:none}
.unit-hours-week{display:grid;gap:18px;margin-top:20px}
.unit-hours-day{border:1px solid var(--border);border-radius:10px;padding:15px;min-width:0}
.unit-hours-day legend{padding:0 6px;font-weight:600}
.unit-hours-open{display:flex;align-items:center;gap:9px;margin-bottom:14px;min-height:32px;font-size:12px}
.unit-hours-open input{accent-color:var(--accent);width:18px;height:18px}
.unit-hours-period{display:grid;grid-template-columns:60px minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:6px;margin-bottom:9px;font-size:11px}
.unit-hours-period label{min-width:0}
.unit-hours-period input{width:100%;min-width:0;min-height:42px;border:1px solid var(--border);border-radius:7px;padding:8px;background:var(--surface,#fff);color:inherit}
.unit-hours-day details summary{padding:9px 0;cursor:pointer;font-size:12px;color:var(--accent)}
.unit-hours-period input:disabled{opacity:.45}
@media(max-width:600px){.unit-hours-notice{align-items:flex-start;flex-direction:column}.unit-hours-period{grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr)}.unit-hours-period>span:first-child{grid-column:1/-1}.unit-hours-period input{font-size:16px;min-height:44px}}
.booking-context{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;color:var(--text,#2c2933);font-size:13px}
.booking-context span,.booking-intro,.booking-status{color:var(--muted);font-size:12px;line-height:1.6}
.booking-intro{margin-bottom:20px}.booking-status{margin-bottom:12px}
.catalog-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.catalog-categories{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 22px}
.catalog-categories button{cursor:pointer;border:1px solid var(--border);min-height:36px}
.catalog-family{border:1px solid var(--border);border-radius:12px;padding:16px;margin:12px 0;background:var(--surface,#fff)}
.catalog-family[hidden]{display:none}
.catalog-family header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.catalog-family header>div{min-width:0}.catalog-family h3{font-size:14px;line-height:1.5;margin:0 0 4px;overflow-wrap:anywhere}
.catalog-family small{color:var(--muted);font-size:11px;line-height:1.5}
.catalog-variant{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}
.catalog-variant>div{min-width:0}.catalog-variant strong,.catalog-variant span,.catalog-variant small{display:block;overflow-wrap:anywhere}
.catalog-variant strong{font-size:12px}.catalog-variant span{font-size:12px;margin:5px 0;color:var(--muted)}
.price-category h3{font-size:15px;margin:24px 0 12px}.price-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px}
.price-table{width:100%;border-collapse:collapse;font-size:12px}.price-table th,.price-table td{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}
.price-table th{font-weight:600;background:var(--surface-soft,#f7f5fa)}.price-table td:first-child{min-width:145px;overflow-wrap:anywhere}
.price-table tr:last-child td{border-bottom:0}.price-table td:not(:first-child){white-space:nowrap}
@media(max-width:600px){.catalog-family{padding:12px}.catalog-actions .button{min-height:44px}.catalog-categories button{min-height:44px}.catalog-variant{gap:8px}.price-table th,.price-table td{padding:10px 8px;font-size:11px}}
.booking-services{display:flex;flex-direction:column;gap:9px}
.booking-client-profile{border:1px solid var(--border);border-radius:12px;padding:18px;background:var(--surface);overflow-wrap:anywhere}
.booking-client-profile h3{font-size:17px;margin:0 0 12px}.booking-client-profile h4{font-size:13px;margin:22px 0 8px}
.booking-client-profile>.field-hint:first-child{margin:0}.booking-client-profile .client-local-history{margin-bottom:0}
.booking-client-name{font-size:14px;font-weight:600;color:var(--accent);overflow-wrap:anywhere;margin:0 0 18px}
.booking-client-review{margin:-4px 0 18px}
.booking-service{width:100%;min-height:70px;display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--surface,#fff);color:var(--text,#2c2933);text-align:left}
.booking-service:hover{background:var(--surface-soft,#f7f5fa);border-color:var(--accent)}
.booking-service-copy{min-width:0;flex:1}.booking-service-copy strong{display:block;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.booking-service-copy small{display:block;margin-top:6px;font-size:11px;color:var(--muted)}
.booking-service-copy strong>span{color:var(--accent)}.booking-price{font-size:12px;line-height:1.4;max-width:110px;text-align:right;color:var(--accent)}
.booking-service>svg{width:16px;height:16px;color:var(--muted)}.booking-empty{padding:22px 14px;color:var(--muted);font-size:13px;line-height:1.6}
@media(max-width:600px){#booking-search{font-size:16px;min-height:44px}.booking-service{padding:13px 11px;gap:9px}.booking-price{font-size:11px;max-width:84px}.booking-service>svg{width:13px}}
.discount-type-list{display:grid;gap:12px;margin:20px 0}.discount-type-list .reason-row{align-items:center}.discount-type-list h3{overflow-wrap:anywhere}.discount-type-list .chip{margin-top:8px}
.finance-discount-selection{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--accent);overflow-wrap:anywhere}.finance-discount-selection svg{flex:0 0 16px;width:16px;height:16px}
#finance-cash-discount .form-note strong{font-size:19px;display:block;margin-bottom:10px}#finance-cash-discount .form-note p{margin:8px 0;line-height:1.6}
.commission-preview>h3{font-size:16px;margin-top:25px}.commission-participations{display:grid;gap:10px;margin:16px 0}
.commission-participation,.commission-record{padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--surface)}
.commission-participation>div,.commission-record>header,.commission-total{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.commission-participation h3,.commission-record h3{font-size:14px;margin:0;overflow-wrap:anywhere}.commission-participation strong{font-size:16px;color:var(--accent)}
.commission-participation p{font-size:12px;line-height:1.6;color:var(--muted);margin:8px 0}.commission-record{margin:14px 0}.commission-total{font-size:13px;padding:10px 0}.commission-total strong{font-size:16px}
/* Compact cards retain their summary through the card itself, without a second narrow target. */
.calendar-grid:is([data-density="compact"],[data-density="slim"],[data-density="avatar"]) .summary-trigger.on-calendar{display:none}
.calendar-grid[data-density="compact"] :is(.appointment,.block-card){padding-right:11px}
.calendar-grid[data-density="slim"] :is(.appointment,.block-card){padding-right:5px}

/* Keep the date readable when the desktop panel narrows between breakpoints. */
.agenda-shell #main>.toolbar{flex-wrap:wrap}
.agenda-shell .date-actions{flex-shrink:0}
.agenda-shell .agenda-date-navigation .agenda-central-date{min-width:118px;white-space:nowrap}
.agenda-shell .agenda-central-date .agenda-select-label{white-space:nowrap;overflow-wrap:normal;text-align:center}
.calendar-grid[data-density="avatar"] :is(.appointment,.block-card){padding:6px 4px 3px}
.calendar-grid[data-density="avatar"] .appointment.short-card{padding-top:4px}
.calendar-grid[data-density="avatar"] .block-card.tiny-card{padding-top:0;padding-bottom:0}
.professional-heading{padding-top:12px;padding-bottom:12px}
.professional-avatar-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px}
.avatar.professional-menu-trigger{width:44px;height:44px;border:1px solid transparent;padding:0;font:inherit;font-size:12px;font-weight:650;color:var(--ink,#80629f)}
.professional-menu-trigger:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--surface-soft)}
.professional-menu-trigger:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.professional-menu-trigger[aria-expanded="true"]{border-color:var(--accent);box-shadow:0 0 0 3px var(--surface-soft)}
.professional-heading.is-individual{box-shadow:inset 0 -3px var(--accent)}
.professional-count-badge{display:none;position:absolute;top:-3px;right:-4px;min-width:20px;height:20px;padding:0 4px;border:2px solid var(--surface);border-radius:12px;background:#7052a2;color:#fff;font-size:10px;font-weight:700;line-height:1;pointer-events:none;white-space:nowrap}
.calendar-grid:is([data-density="slim"],[data-density="avatar"]) .professional-count-badge{display:flex;align-items:center;justify-content:center}
.calendar-grid[data-density="slim"] .professional-heading{gap:2px;padding:4px}
.calendar-grid[data-density="slim"] .professional-name{font-size:11px;line-height:14px}
.calendar-grid[data-density="avatar"] .professional-heading:focus-within{z-index:6}
.calendar-grid[data-density="avatar"] .professional-heading:focus-within .professional-label{visibility:visible}
.calendar-grid[data-density="avatar"] .professional-label{pointer-events:none}
.calendar-grid[data-density="avatar"] .professional-heading:has(.professional-menu-trigger[aria-expanded="true"]) .professional-label{visibility:hidden}
.calendar-actions-popover{position:fixed;z-index:70;width:min(300px,calc(100vw - 24px));max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px);overflow:auto;overscroll-behavior:contain;padding:8px;border:1px solid var(--border);border-radius:13px;background:var(--surface);color:var(--text);box-shadow:0 12px 36px #30213f2b}
.calendar-actions-popover[hidden]{display:none}
.calendar-actions-heading{margin:0 0 5px;padding:9px 10px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}
.calendar-actions-heading small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:4px}
.calendar-action-option{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;border:0;border-radius:8px;padding:12px 10px;background:transparent;color:var(--text);text-align:left;font-size:13px;font-weight:550;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
.calendar-action-option svg{flex:0 0 20px;width:20px;height:20px;color:var(--accent)}
.calendar-action-option:hover,.calendar-action-option:focus-visible{background:var(--surface-soft)}
.calendar-action-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.individual-agenda-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:12px 15px;border-bottom:1px solid var(--border);background:var(--surface-soft);color:var(--text);font-size:12px;line-height:1.5}
.individual-agenda-bar>div{min-width:0;overflow-wrap:anywhere}
.individual-agenda-bar strong{font-weight:650}
.individual-agenda-bar small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.individual-agenda-bar .button{min-height:40px;white-space:normal}
:root[data-theme="dark"] .avatar.professional-menu-trigger{color:#ead9fa}
:root[data-theme="dark"] .professional-count-badge{background:#c6a5ef;color:#231e2b}
:root[data-theme="dark"] .calendar-actions-popover{box-shadow:0 12px 36px #07050c88}
/* Period views keep their own scroll area; the page never grows to fit seven days. */
.period-tools{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface-soft)}
.period-tools label{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--text);flex:none}
.period-tools select{max-width:240px;min-height:38px;border:1px solid var(--border);border-radius:7px;padding:7px 25px 7px 10px;background:var(--surface);color:var(--text);font:inherit}
.period-tools p{max-width:470px;font-size:11px;line-height:1.6;color:var(--muted);margin:0}
.period-scroll{max-width:100%;overflow:auto;overscroll-behavior:contain;max-height:760px;scrollbar-gutter:stable}
.period-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.period-grid-wrap{background:var(--surface);min-width:910px}
.period-week{min-width:1120px}
.period-grid,.period-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.period-weekdays{position:sticky;top:0;z-index:1;background:var(--surface-soft);border-bottom:1px solid var(--border)}
.period-weekdays span{padding:12px;text-align:center;font-size:11px;font-weight:650;color:var(--muted)}
.period-day{min-width:0;padding:11px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;align-items:stretch;gap:9px}
.period-day:nth-child(7n){border-right:0}
.period-day>header{display:flex;align-items:center;gap:6px;justify-content:space-between}
.period-day-heading{border:0;background:transparent;font-size:12px;font-weight:650;color:var(--text);padding:5px 0;text-align:left;line-height:1.5;min-height:32px;border-radius:5px}
.period-today .period-day-heading{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.period-count{min-width:21px;height:21px;padding:2px 5px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:12px;color:var(--muted);font-size:10px}
.period-hours,.period-capacity{font-size:10px;line-height:1.5;color:var(--muted);margin:0}
.period-capacity{border-left:2px solid var(--accent);padding-left:6px}
.period-events{display:flex;flex-direction:column;gap:7px}
.period-event{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;min-width:0;padding:9px 8px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:7px;background:var(--surface-soft);color:var(--text);text-align:left;font-size:11px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.period-event strong{font-size:12px;font-weight:650}
.period-event>span:not(.period-event-time),.period-event small{font-size:10px;color:var(--muted)}
.period-event-time{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:650}
.period-event-time svg{width:12px;height:12px;flex:none}
.period-event-multi{border-left-width:5px;border-left-style:double;border-left-color:#669581}
.period-event-group{border-bottom:2px dashed var(--accent)}
.period-group-mark{margin-left:auto;font-size:9px;padding:0 3px;border:1px solid var(--border);border-radius:3px}
.period-event-block,.period-event-room{border-left-color:var(--muted);background:var(--surface)}
.period-event-room{border-left-style:dashed}
.period-event:hover,.period-event:focus-visible,.period-open-day:hover,.period-day-heading:hover{box-shadow:inset 0 0 0 1px var(--accent)}
.period-event:focus-visible,.period-day-heading:focus-visible,.period-open-day:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.period-empty{padding:15px 0;font-size:11px;color:var(--muted);margin:0}
.period-open-day{margin-top:auto;min-height:36px;border:0;border-radius:6px;padding:8px 5px;background:transparent;color:var(--accent);text-align:left;font-size:11px;font-weight:550;white-space:normal}
.period-month .period-day{min-height:170px;padding:9px}
.period-month .period-event{flex-direction:row;align-items:center;gap:5px;min-height:31px;padding:6px 5px}
.period-month .period-event-time{flex:none;font-size:9px;gap:0}
.period-month .period-event strong{font-size:10px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.period-month .period-event .period-event-end,.period-month .period-event-time svg,.period-month .period-event>span:not(.period-event-time),.period-month .period-event small{display:none}
.period-month .period-group-mark{position:absolute;right:2px;top:-4px;background:var(--surface);font-size:8px}
.period-outside{background:var(--surface-soft)}
.period-outside .period-day-heading{color:var(--muted);font-weight:500}
.period-closed .period-hours{font-weight:650}
.period-week .period-day{min-height:360px}
.agenda-expanded .period-scroll{max-height:none;height:100%}
.schedule-card,.schedule-summary,.summary-right,#schedule-region{min-width:0}
@media(max-width:760px){.period-tools{align-items:flex-start;flex-direction:column;gap:10px;padding:12px}.period-tools label{width:100%;flex-wrap:wrap}.period-tools select{font-size:16px;max-width:100%;min-width:0;flex:1}.period-tools p{font-size:11px}.period-scroll{max-height:650px}.period-month{min-width:980px}.period-week{min-width:1400px}.view-toggle{max-width:100%;overflow:auto}.view-toggle button{min-height:36px;white-space:nowrap}.period-day-heading,.period-open-day{min-height:44px}.period-event{padding:10px 8px;min-height:54px}.period-month .period-event{min-height:36px}.summary-right .view-toggle{flex-shrink:0}.summary-right .filter-search{min-width:150px}}
@media(max-width:600px){.calendar-action-option{min-height:50px;font-size:14px}.individual-agenda-bar{padding:12px;gap:10px}.individual-agenda-bar .button{min-height:44px}}
/* Each general unit keeps a bounded list so four desktop panels remain visible. */
.general-toolbar{gap:16px;flex-wrap:wrap}
.general-toolbar>.button{flex:none}
.general-toolbar .date-actions{flex-wrap:wrap;gap:12px}
.general-note{padding:10px 18px;border-bottom:1px solid var(--border);font-size:11px;line-height:1.6;color:var(--muted);background:var(--surface-soft)}
.general-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:14px;background:var(--surface-soft)}
.general-panel{height:clamp(200px,calc((100dvh - 450px)/2),390px);min-width:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.general-panel>header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:64px;padding:12px 14px;border-bottom:1px solid var(--border);flex:none}
.general-panel>header>div{min-width:0}
.general-panel h2{font-size:15px;line-height:1.3;font-weight:650}
.general-panel header p{font-size:10px;line-height:1.5;margin-top:5px;color:var(--muted)}
.general-panel header .button{white-space:nowrap;font-size:11px;min-height:34px;padding:6px 9px}
.general-panel header .button svg{width:14px;height:14px}
.general-events{overflow:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:10px;scrollbar-gutter:stable;display:flex;flex-direction:column;gap:7px}
.general-events:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.general-event{display:flex;flex-direction:row;gap:12px;align-items:flex-start;padding:9px 10px;min-height:67px;flex:none}
.general-event-time{display:grid;grid-template-columns:13px 1fr;column-gap:5px;flex:none;width:63px;color:var(--text)}
.general-event-time svg{width:12px;height:12px;grid-row:1/3;margin-top:3px}
.general-event-time strong{font-size:12px}
.general-event-time small{font-size:10px;color:var(--muted)}
.general-event-body{display:flex;flex-direction:column;min-width:0;gap:3px}
.general-event-body strong{font-size:12px;color:var(--text)}
.general-event-body>span,.general-event-body small{font-size:10px;color:var(--muted);line-height:1.4}
.general-group-mark{margin-left:auto;border:1px solid var(--border);border-radius:4px;padding:0 4px;font-size:9px;color:var(--accent)}
.general-empty{font-size:12px;line-height:1.6;color:var(--muted);padding:28px 10px}
.general-capacity{font-size:10px;line-height:1.4;color:var(--accent);padding:6px 14px;background:var(--surface-soft);flex:none}
.general-panel-unavailable{border-style:dashed}
.general-panel-unavailable>header>svg{color:var(--muted)}
.general-unavailable{margin:auto 0;padding:20px 24px;color:var(--muted);line-height:1.6}
.general-unavailable strong{font-size:12px;font-weight:550;color:var(--text)}
.general-unavailable p{font-size:11px;margin-top:7px;max-width:410px}
.agenda-expanded .general-schedule #schedule-region{overflow:hidden}
.agenda-expanded .general-grid{height:100%;grid-template-rows:repeat(2,minmax(0,1fr))}
.agenda-expanded .general-panel{height:auto;min-height:0}
.agenda-expanded .general-note{flex:none}
@media(max-width:1000px){.general-toolbar>.button{margin-left:0}.general-panel{height:310px}.general-schedule .summary-right{gap:12px}}
@media(max-width:700px){.general-grid{grid-template-columns:1fr;padding:10px;gap:12px}.general-panel{height:330px}.general-toolbar>.button{width:100%;justify-content:center;min-height:44px}.general-panel header .button{min-height:44px}.general-panel>header{padding:12px}.general-event{min-height:76px;padding:11px 9px}.general-event-body strong{font-size:13px}.general-schedule .filter-search{flex:1;min-width:150px}.general-schedule .filter-search input{font-size:16px}.general-unavailable{padding:20px}.general-panel-unavailable{height:200px}.agenda-expanded .general-schedule #schedule-region{overflow:auto}.agenda-expanded .general-grid{height:auto;grid-template-rows:none}.agenda-expanded .general-panel{height:330px}.agenda-expanded .general-panel-unavailable{height:200px}}
/* External bookings convey occupation only; they never use local record actions. */
.external-appointment,.external-event{display:flex;flex-direction:column;align-items:stretch;gap:5px;min-width:0;overflow:hidden;border:1px dashed #6f899c;border-left:3px dashed #6f899c;border-radius:7px;background:#edf3f7;color:#36586d;text-align:left;line-height:1.4;font-size:11px;padding:9px;cursor:pointer}
.external-appointment{position:absolute;left:5px;right:5px;z-index:2}
.external-event{width:100%;flex:none}
.external-appointment strong,.external-event strong{font-size:12px;font-weight:650;overflow-wrap:anywhere}
.external-time{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:650}
.external-time svg{width:12px;height:12px;flex:none}
.external-readonly{font-size:9px;opacity:.85}
.external-appointment:hover,.external-event:hover{background:#e2ecf3}
.external-appointment:focus-visible,.external-event:focus-visible{outline:3px solid #6f899c;outline-offset:1px}
.external-appointment.short-card{padding:3px 6px;gap:1px}
.external-appointment.short-card strong{font-size:10px}
.external-appointment.short-card .external-readonly{display:none}
.external-summary-list{padding:18px;display:flex;flex-direction:column;gap:10px}
.external-summary-list h3{font-size:13px;color:var(--muted)}
.external-summary{padding:17px 20px;display:flex;flex-direction:column;gap:13px}
.external-summary>p{display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.6}
.external-summary .field-hint{font-size:11px;margin:0;color:var(--muted)}
.legend-square.legend-external{background:#edf3f7;border:1px dashed #6f899c}
.external-only-column{background-color:var(--surface-soft)}
.calendar-grid[data-density="compact"] .external-appointment{padding:6px}
.calendar-grid[data-density="slim"] .external-appointment,.calendar-grid[data-density="avatar"] .external-appointment{left:3px;right:3px;padding:5px 3px;gap:4px}
.calendar-grid[data-density="slim"] .external-appointment strong,.calendar-grid[data-density="avatar"] .external-appointment strong{font-size:10px}
.calendar-grid[data-density="slim"] .external-appointment .external-end,.calendar-grid[data-density="avatar"] .external-appointment .external-end,.calendar-grid[data-density="avatar"] .external-appointment .external-time svg,.calendar-grid[data-density="slim"] .external-readonly,.calendar-grid[data-density="avatar"] .external-readonly{display:none}
.period-month .external-period{flex-direction:row;align-items:center;gap:5px;min-height:31px;padding:6px 5px}
.period-month .external-period .external-time{flex:none;font-size:9px}
.period-month .external-period strong{font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.period-month .external-period>span:not(.external-time),.period-month .external-period .external-end,.period-month .external-period svg{display:none}
.external-general{display:grid;grid-template-columns:83px minmax(0,1fr);column-gap:10px}
.external-general .external-time{grid-row:1/4;align-self:start}
.external-general>span:not(.external-time){grid-column:2}
.visibility-enable{display:flex;align-items:flex-start;gap:10px;margin:20px 0;line-height:1.6;font-size:13px;font-weight:550}
.visibility-enable input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex:none}
.visibility-unit-options{border:1px solid var(--border);border-radius:9px;padding:12px}
.visibility-unit-options legend{padding:0 6px;color:var(--muted);font-size:12px}
.visibility-unit-options[hidden]{display:none}
.visibility-unit-options .favorite-service-row{min-height:46px}
:root[data-theme="dark"] .external-appointment,:root[data-theme="dark"] .external-event{background:#233746;color:#c3deef;border-color:#86adc5}
:root[data-theme="dark"] .external-appointment:hover,:root[data-theme="dark"] .external-event:hover{background:#2c4658}
:root[data-theme="dark"] .legend-square.legend-external{background:#233746;border-color:#86adc5}
@media(max-width:700px){.external-event{min-height:54px;padding:10px}.external-general{grid-template-columns:78px minmax(0,1fr)}.external-summary>p{font-size:13px}.visibility-enable,.visibility-unit-options .favorite-service-row{min-height:44px}.period-month .external-period{min-height:36px}}
.octadesk-agenda-return{margin:16px 24px 0;padding:14px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--border,#d9d2e4);border-radius:12px;background:var(--surface,#fff);color:var(--text,#32293f)}
.octadesk-agenda-return[hidden]{display:none}
.octadesk-agenda-return small{width:100%;opacity:.8}
[data-theme="dark"] .octadesk-agenda-return{background:#24212b;color:#f1edf7;border-color:#51445f}
@media(max-width:600px){.octadesk-agenda-return{margin:12px;padding:12px}}

:root[data-theme="dark"] .slot-button:hover,:root[data-theme="dark"] .slot-button:focus-visible{background:#c6a5ef1a}
.slot-button{scroll-margin-top:78px;scroll-margin-bottom:8px}
/* Preview one hour without enlarging the half-hour click target or crossing columns. */
.professional-column > .slot-button:hover + .slot-button{background:#7052a212}
:root[data-theme="dark"] .professional-column > .slot-button:hover + .slot-button{background:#c6a5ef1a}
.auth-entry-actions{display:grid;gap:10px}.auth-entry-actions .button{white-space:normal;min-height:44px;text-align:center}
.device-push-card,.device-push-deliveries{padding:24px;max-width:850px;margin-bottom:20px}.device-push-card h3,.device-push-deliveries h3{font-size:17px;margin-bottom:12px}.device-push-card>p{line-height:1.6;margin:12px 0}.device-push-card .notice{margin:18px 0;display:block}.device-push-card .notice small{display:block;margin-top:10px;line-height:1.5}.device-push-status{padding:16px;border:1px solid var(--border);border-radius:10px;margin:18px 0;display:grid;gap:8px}.device-push-status span,.device-push-message{font-size:13px;line-height:1.6}.device-push-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.device-push-deliveries ul{list-style:none;padding:0;margin:0}.device-push-deliveries li{display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--border);padding:13px 0;font-size:12px}.device-push-deliveries time{white-space:nowrap;color:var(--muted)}

/* Administrative massage-upgrade report. Values remain server-confirmed and read-only. */
.upgrade-heading{gap:20px}.upgrade-heading p{max-width:650px}
.upgrade-filters{display:grid;grid-template-columns:repeat(2,minmax(125px,.8fr)) repeat(2,minmax(150px,1fr)) auto;gap:14px;align-items:end;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}
.upgrade-filters label{display:grid;gap:8px;min-width:0;font-size:12px;color:var(--muted)}
.upgrade-filters input,.upgrade-filters select{min-height:44px;min-width:0;max-width:100%;width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px}
.upgrade-filters .button{min-height:44px}.upgrade-filters>p{grid-column:1/-1;font-size:11px;line-height:1.6;color:var(--muted)}
.upgrade-report-status{font-size:11px;line-height:1.6;color:var(--muted);min-height:42px;padding:13px 1px}
.upgrade-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}
.upgrade-metrics article{display:grid;gap:10px;padding:22px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.upgrade-metrics span{font-size:12px;color:var(--muted)}.upgrade-metrics strong{font-size:28px;font-weight:650;letter-spacing:-.6px;color:var(--text);overflow-wrap:anywhere}.upgrade-metrics small{font-size:11px;color:var(--muted);line-height:1.5}
.upgrade-breakdowns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.upgrade-breakdown{padding:20px;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-width:0}
.upgrade-breakdown h3,.upgrade-history h3{font-size:14px;font-weight:600;color:var(--text)}.upgrade-breakdown>p{font-size:12px;line-height:1.6;margin-top:15px;color:var(--muted)}
.upgrade-breakdown ul{padding:0;margin:14px 0 0;list-style:none}.upgrade-breakdown li{display:grid;grid-template-columns:1fr auto;column-gap:14px;row-gap:5px;padding:13px 0;border-top:1px solid var(--border);min-width:0}.upgrade-breakdown li strong{font-size:12px;font-weight:550;overflow-wrap:anywhere}.upgrade-breakdown li span{grid-column:1;font-size:11px;color:var(--muted);line-height:1.5}.upgrade-breakdown li b{grid-column:2;grid-row:1/3;align-self:center;font-size:13px;font-weight:600;color:var(--accent)}
.upgrade-method{font-size:11px;line-height:1.75;color:var(--muted);margin:18px 0 22px;max-width:1080px}
.upgrade-history{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.upgrade-history-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px}.upgrade-history-heading>span{font-size:11px;color:var(--muted)}
.upgrade-table-wrap{overflow-x:auto}.upgrade-table{width:100%;border-collapse:collapse;text-align:left;table-layout:fixed}.upgrade-table th,.upgrade-table td{padding:16px;border-top:1px solid var(--border);vertical-align:top;overflow-wrap:anywhere}.upgrade-table th{font-size:11px;font-weight:550;background:var(--surface-soft);color:var(--muted)}.upgrade-table th:nth-child(1){width:24%}.upgrade-table th:nth-child(2){width:32%}.upgrade-table th:nth-child(3){width:19%}.upgrade-table th:nth-child(4){width:25%}.upgrade-table td{font-size:12px;line-height:1.55;color:var(--text)}.upgrade-table strong{font-size:12px;font-weight:550}.upgrade-table td>span{display:block}.upgrade-table small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:6px}.upgrade-table b{font-size:11px;font-weight:550;white-space:nowrap}.upgrade-service-after{margin-top:8px}.upgrade-service-after svg{width:14px;height:14px;vertical-align:middle;margin-right:5px;color:var(--accent)}.upgrade-record-id{font-family:ui-monospace,monospace;font-size:9px!important}.upgrade-table .upgrade-status{font-size:10px;font-weight:600;color:var(--muted);display:inline-block;padding:4px 7px;background:var(--surface-soft);border:1px solid var(--border);border-radius:5px}.upgrade-table .upgrade-status.is-credited{color:var(--accent);border-color:var(--accent)}.upgrade-credit{display:block;margin-top:7px;color:var(--accent)}
.upgrade-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-top:1px solid var(--border);font-size:11px;color:var(--muted)}.upgrade-pagination>div{display:flex;gap:8px}
.upgrade-table .upgrade-audit{margin-top:10px;white-space:normal;text-align:left;font-size:10px;line-height:1.5}
@media(max-width:1200px){.upgrade-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.upgrade-filters>.button{justify-self:start}.upgrade-metrics article{padding:17px}.upgrade-metrics strong{font-size:24px}}
@media(max-width:760px){.upgrade-heading{align-items:flex-start}.upgrade-heading h2{font-size:20px}.upgrade-filters{padding:15px;gap:13px}.upgrade-filters label{grid-column:1/-1}.upgrade-filters input,.upgrade-filters select{font-size:16px}.upgrade-filters>.button{width:100%;grid-column:1/-1}.upgrade-metrics,.upgrade-breakdowns{grid-template-columns:1fr;gap:12px}.upgrade-metrics article{gap:7px}.upgrade-breakdown{padding:17px}.upgrade-breakdown li{column-gap:9px}.upgrade-breakdown li b{font-size:12px}.upgrade-history-heading{padding:17px;align-items:flex-start}.upgrade-table-wrap{overflow:visible}.upgrade-table,.upgrade-table tbody,.upgrade-table tr,.upgrade-table td{display:block;width:100%}.upgrade-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.upgrade-table tr{padding:16px 17px;border-top:1px solid var(--border)}.upgrade-table td{border:0;padding:0 0 16px}.upgrade-table td:last-child{padding-bottom:0}.upgrade-table td:before{content:attr(data-label);display:block;font-size:10px;color:var(--muted);margin-bottom:6px}.upgrade-pagination{padding:15px 17px;align-items:flex-start;flex-direction:column}.upgrade-pagination>div{width:100%}.upgrade-pagination .button{flex:1;min-height:44px}.upgrade-heading>.button{padding:10px;min-height:44px}.upgrade-record-id{overflow-wrap:anywhere}}
@media(max-width:600px){.device-push-card,.device-push-deliveries{padding:18px}.device-push-actions{flex-direction:column}.device-push-actions .button{white-space:normal;min-height:44px}.device-push-deliveries li{flex-direction:column;gap:7px}}
/* Drawer controls and layered dialogs share the same light/dark surfaces. */
.drawer-header-tools{display:flex;flex-direction:column;align-items:flex-end;gap:10px;flex:none}
.drawer-context-actions{display:flex;align-items:center;gap:8px}
.drawer-context-actions:empty{display:none}
.header-select{position:relative;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--border);border-radius:10px;background:var(--surface,#fff);color:var(--accent);cursor:pointer}
.header-select>span[data-header-icon]{display:flex}
.header-select>select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.header-select:focus-within{outline:3px solid #ac91d7;outline-offset:2px}
.header-select:hover{background:var(--surface-soft,#f5f0fa)}
.overlay-dialog{border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 80px #1d142b40;padding:24px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);background:var(--surface,#fff);color:var(--text,#2c2933);overflow:auto}
.overlay-dialog::backdrop{background:#21142b55}
.discard-dialog{width:440px}.discard-dialog .discard-confirmation{padding:0;background:none;border:0}.discard-dialog h2{font-size:20px}.discard-dialog p{margin:12px 0 22px;line-height:1.6}.discard-dialog .discard-confirmation>div:last-child{display:flex;flex-wrap:wrap;gap:10px}
.client-dialog{width:600px}.client-dialog .summary-header{padding:0 0 18px}.client-dialog .client-card{padding:0;margin:0;background:none;border:0}
.client-input-row{display:flex;align-items:stretch;gap:8px}.client-input-row>input{min-width:0;flex:1}.client-card-arrow{height:44px;width:44px;flex:none;border:1px solid var(--border);border-radius:8px;color:var(--accent)}
.professional-selects{display:grid;gap:10px}.professional-selects select{width:100%}
.drawer .field input[type="date"],.drawer .field input[type="time"],.drawer .time-selects select{height:44px;min-height:44px;max-height:44px;padding-top:0;padding-bottom:0}
.drawer .field input[type="date"]{-webkit-appearance:none;appearance:none;min-width:0;width:100%}
.drawer .field input[type="date"]::-webkit-date-and-time-value{text-align:left;line-height:44px}
.drawer .field input[type="color"]{height:48px;padding:5px;max-width:140px}
.category-swatch{display:inline-block;width:12px;height:12px;border:1px solid #0002;border-radius:50%;vertical-align:middle;margin-right:6px;flex:none}
.summary-room-editor{display:grid;gap:6px;min-width:0;width:100%}.summary-room-editor select{max-width:100%;min-width:0;padding:8px;border:1px solid var(--border);border-radius:7px;background:var(--surface,#fff);color:var(--text,#2c2933)}.summary-room-editor .button{justify-self:start}
@media(min-width:901px){.agenda-display-controls{justify-content:flex-start}.agenda-display-controls>[data-action="expand-agenda"]{margin-left:auto}.agenda-size-controls{gap:14px}}
@media(max-width:600px){.overlay-dialog{padding:20px}.drawer-header{padding-bottom:20px}.header-select{width:44px;height:44px}.client-dialog .summary-header h2{font-size:20px}.professional-selects select{min-height:44px;font-size:16px}.summary-room-editor select{font-size:16px}}

.cancellation-choices{display:grid;gap:12px;margin:22px 0}.cancellation-choices .button{justify-content:flex-start;min-height:52px;white-space:normal;text-align:left}
.group-cancellation-summary{border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:18px;background:var(--surface-soft)}.group-cancellation-summary>p{font-size:13px;line-height:1.6}.group-cancellation-summary ol{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px}.group-cancellation-summary li{padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--surface);display:grid;gap:7px;font-size:12px;overflow-wrap:anywhere}.group-cancellation-summary li strong{font-size:14px}.group-cancellation-summary small{color:var(--accent)}.group-cancellation-summary .already-cancelled{color:var(--muted)}
.therapist-topbar{display:flex;align-items:center;gap:15px}.therapist-topbar .icon-button{width:44px;height:44px}.therapist-topbar svg{width:24px;height:24px}.therapist-brand{font-size:32px;font-weight:750;letter-spacing:-2px;color:var(--text)}.therapist-brand>span{color:var(--accent)}
.therapist-menu-backdrop{position:fixed;inset:0;background:#21142b55;border:0;z-index:59;cursor:pointer}
.therapist-shell .sidebar{transform:translateX(-100%);transition:transform .16s ease;width:240px;z-index:60;padding:28px 20px;display:flex}.therapist-shell.therapist-menu-open .sidebar{transform:translateX(0)}.therapist-shell .workspace{margin-left:0;width:100%}.therapist-shell .sidebar .nav-label{display:inline}.therapist-shell .sidebar .workspace-label,.therapist-shell .sidebar .brand-caption{display:block}.therapist-shell .sidebar .pilot-card{display:flex}.therapist-shell .sidebar .brand>span:last-child{display:block}.therapist-shell .sidebar .nav-item{justify-content:flex-start;padding:12px 15px}
.therapist-shell .app-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.therapist-shell .header-right{width:auto;gap:12px;flex-wrap:wrap;justify-content:flex-end}.therapist-shell .unit-control select{max-width:220px;min-height:44px}
.therapist-settings-card{max-width:620px;padding:24px;background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:18px}.therapist-settings-card h3{font-size:17px;margin-bottom:18px}.therapist-settings-card>p{margin-bottom:18px;line-height:1.6}.therapist-settings-card .field{max-width:360px}.therapist-settings-card select{min-height:44px}
@media(max-width:600px){.therapist-shell .app-header{padding:14px 16px;gap:10px}.therapist-shell .header-right{gap:8px;flex:1}.therapist-shell .unit-control select{max-width:180px;width:100%;font-size:14px}.therapist-shell .connection{display:none}.therapist-settings-card{padding:20px}.therapist-settings-card select{font-size:16px}.group-cancellation-summary{padding:14px}.therapist-topbar{gap:9px}}

/* Compact appointment information; keep validation and exceptional-state hints visible. */
#service-note:empty,#service-filter-status:empty,#booking-status:empty,#client-search-status:empty{display:none}
.drawer .professional-selects select{height:44px;min-height:44px;max-height:44px;padding-top:0;padding-bottom:0}
.header-select{background:#7052a2;border-color:#7052a2;color:#fff;width:50px;padding:0 12px 0 0}.header-select:hover{background:#63468f;border-color:#63468f}
.header-select::after{content:'';position:absolute;right:7px;top:50%;margin-top:-4px;width:5px;height:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);pointer-events:none}
.header-select>select{color:var(--text,#2c2933);background:var(--surface,#fff)}
:root[data-theme="dark"] .header-select{background:#fff;border-color:#fff;color:#7052a2}:root[data-theme="dark"] .header-select:hover{background:#f2edf8;border-color:#f2edf8}

.drawer #client-search{height:44px;min-height:44px;max-height:44px;padding-top:0;padding-bottom:0}
.app-header.agenda-header{min-height:68px;padding-top:12px;padding-bottom:12px;gap:12px}
.agenda-header #app-heading .eyebrow{display:none}.agenda-header h1{font-size:19px;line-height:1.3;letter-spacing:-.4px}
.appointment,.block-card{padding-right:11px}
.summary-appointment-fields{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}
.summary-appointment-fields>.summary-value{grid-column:1/-1}
.summary-appointment-fields>.summary-progress{grid-column:1}.summary-appointment-fields>.summary-room{grid-column:2}
.summary-appointment-fields :is(.summary-progress,.summary-room) dd{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
.summary-appointment-fields :is(.summary-progress-editor,.summary-room-editor) select{width:100%;min-height:44px}
.summary-appointment-fields :is(.summary-progress-editor,.summary-room-editor) .button{width:100%;min-height:40px;padding:7px 5px;white-space:normal}
.summary-room-editor .field-hint:empty{display:none}
@media(max-width:760px){.app-header.agenda-header{gap:10px;padding-top:10px;padding-bottom:10px}.agenda-header h1{font-size:18px}.appointment,.block-card{padding-right:10px}}

/* Local drawer presentation: the dialog moves only when first opened. */
@keyframes drawer-enter{from{transform:translateX(18px);opacity:.25}to{transform:translateX(0);opacity:1}}
.drawer[open],.client-dialog[open]{animation:drawer-enter 160ms ease-out}
@media(prefers-reduced-motion:reduce){.drawer[open],.client-dialog[open]{animation:none}}
.client-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:440px;max-width:100%;height:100%;height:100dvh;max-height:100%;border-radius:0;border-width:0 0 0 1px;padding:24px;box-shadow:-15px 0 50px #30223d30;overscroll-behavior:contain}
.drawer form,.drawer-body,.drawer-header>div,.drawer .field,.drawer .form-row>*,.client-dialog>*{min-width:0;max-width:100%}
.drawer-header>div:first-child{flex:1}.drawer-header{gap:12px}.drawer h2,.drawer h3,.drawer p,.client-dialog h2,.client-dialog p,.client-dialog dd,.client-local-history li,.appointment-review-dialog dd{overflow-wrap:anywhere}
.drawer .field input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=color]),.drawer .field select,.drawer .professional-selects select,.drawer .time-selects select{height:44px;min-height:44px;max-height:44px;min-width:0;padding-top:0;padding-bottom:0}
.drawer .field textarea{max-width:100%;min-width:0;overflow-wrap:anywhere}.drawer select{min-width:0;max-width:100%}
.drawer .button,.drawer .icon-button,.client-dialog .button,.client-dialog .icon-button,.appointment-review-dialog .button,.appointment-review-dialog .icon-button{min-height:44px}
.drawer .icon-button,.client-dialog .icon-button,.appointment-review-dialog .icon-button{min-width:44px;flex-shrink:0}
.drawer .button,.client-dialog .button,.appointment-review-dialog .button{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}
.drawer-actions{flex-wrap:wrap;gap:8px}.drawer-actions>.button{flex:1 1 90px}.drawer .finance-totals>div,.drawer .finance-state{min-width:0;gap:12px}.drawer .finance-totals dd{min-width:0;overflow-wrap:anywhere}.drawer .course-assignment .form-row>.field{min-width:0}
.finance-payment{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;column-gap:10px}.finance-payment>.payment-description:only-child{grid-column:1/-1}.finance-payment .payment-state{display:flex;align-items:center;justify-content:center;margin-top:0;min-height:24px;color:var(--accent)}.finance-payment .payment-state-received{color:#398260}.finance-payment .payment-state-reversed{color:#a44b64}.finance-payment .payment-state-partial{color:#9a7025}.payment-description{min-width:0;overflow-wrap:anywhere}.finance-payment .payment-reverse{margin:0;width:44px;height:44px;border:1px solid var(--border);border-radius:8px;color:var(--accent)}
.appointment-review-dialog{width:520px}.appointment-review-dialog .summary-header{gap:12px;padding:0 0 16px}.appointment-review-dialog .summary-header h2{min-width:0;overflow-wrap:anywhere}.appointment-review-data{display:grid;gap:0;margin:0}.appointment-review-data>div{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,2fr);gap:14px;padding:11px 0;border-bottom:1px solid var(--border)}.appointment-review-data dt{color:var(--text-secondary,#85728f);font-size:12px}.appointment-review-data dd{margin:0;min-width:0;font-size:13px;line-height:1.5;white-space:pre-wrap}.overlay-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:22px}.overlay-actions .button{flex:1 1 140px}.agenda-expand-button{width:44px;min-width:44px;min-height:44px;padding:10px}
@media(max-width:400px){.drawer-header,.drawer-body,.drawer-actions,.client-dialog{padding-left:16px;padding-right:16px}.drawer .form-row{gap:8px}.drawer .time-selects{gap:4px}.appointment-review-dialog{padding:18px}.appointment-review-data>div{grid-template-columns:minmax(78px,1fr) minmax(0,1.8fr);gap:10px}.client-local-history li{flex-wrap:wrap}}
.drawer .header-select{height:44px;min-height:44px}
.appointment-review-data dt{color:#766780}
:root[data-theme="dark"] .appointment-review-data dt{color:#c7b9d4}

/* Agenda owns the viewport; each view has one vertical scrolling surface. */
body:has(.agenda-shell),body:has(dialog[open]){overflow:hidden}
.app-shell.agenda-shell{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.agenda-shell .sidebar{overflow-y:auto}
.agenda-shell .workspace{height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.agenda-shell .workspace> :not(main){flex:none}
.agenda-shell #main{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;padding-bottom:0}
.agenda-shell #main> :not(.schedule-card){flex:none}
.agenda-shell #main>.schedule-card{display:flex;flex-direction:column;flex:1;min-height:0}
.agenda-shell :is(.schedule-summary,.agenda-display-controls,.calendar-legend,.general-note){flex:none}
.agenda-shell #schedule-region{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}
.agenda-shell #schedule-region:has(>.calendar-scroll),.agenda-shell #schedule-region:has(>.period-scroll){display:flex;flex-direction:column;overflow:hidden}
.agenda-shell #schedule-region>:not(.calendar-scroll):not(.period-scroll){flex:none}
.agenda-shell #schedule-region>.calendar-scroll,.agenda-shell #schedule-region>.period-scroll{flex:1;min-height:0;max-height:none;height:auto;overflow:auto;overscroll-behavior:contain}
.agenda-shell .app-footer{padding-top:10px;padding-bottom:10px}
.agenda-shell main.agenda-expanded{height:100vh;height:100dvh;min-height:0;overflow:hidden}
.agenda-shell .general-schedule #schedule-region{overflow:hidden}
.agenda-shell .general-grid{height:100%;grid-template-rows:repeat(2,minmax(0,1fr))}
.agenda-shell .general-panel{position:relative}
.agenda-shell .general-column-grid .general-panel{height:auto;min-height:0}
.agenda-shell .general-column-grid.general-panel-expanded{grid-template-rows:minmax(0,1fr)}
.agenda-shell .general-column-grid.general-panel-expanded .general-panel.is-expanded{height:auto;min-height:0}
.block-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}
.block-card .appointment-time{justify-content:flex-start;flex:none}
.block-card .appointment-name{flex:none}
.drawer{height:100vh;height:100dvh;max-height:100dvh;overflow:hidden}
.drawer>form{height:100%;min-height:0;overflow:hidden}
.drawer-header,.drawer-actions,.drawer>#drawer-form>#form-error{flex:none}
.drawer-body{min-height:0;overflow:auto;overscroll-behavior:contain}
.drawer-actions{position:static}
/* On small/short screens the agenda, including its controls, scrolls as one.
   Inner grids retain horizontal scrolling, but grow fully in the vertical axis. */
@media(max-width:760px),(max-height:700px){
 .agenda-shell #main,.agenda-shell main.agenda-expanded{overflow:auto;overscroll-behavior:contain}
 .agenda-shell #main>.schedule-card{flex:none;min-height:0;overflow:visible}
 .agenda-shell #schedule-region,.agenda-shell .general-schedule #schedule-region{flex:none;overflow:visible}
 .agenda-shell #schedule-region>.calendar-scroll,.agenda-shell #schedule-region>.period-scroll{flex:none;height:auto;max-height:none;overflow:auto}
 .agenda-shell .general-grid{height:auto;grid-template-rows:none}
 .agenda-shell .general-column-grid .general-panel{height:auto;min-height:0}
 .agenda-shell .general-column-grid .general-calendar-scroll{flex:none;height:auto;max-height:none}
 .agenda-shell .app-footer{display:none}
 .agenda-shell main.agenda-expanded .schedule-card{min-height:0}
}

/* M1: the native fields still own values; enhanced triggers own presentation. */
.header-select-field{display:flex;align-items:center;min-width:0}
.header-select.agenda-select-trigger::after{display:none}
.header-select.agenda-select-trigger{padding:10px 8px;gap:5px}
.summary-progress-editor>.agenda-select-trigger,.summary-room-editor>.agenda-select-trigger{min-height:44px;width:100%;font-size:12px}
.drawer .appointment-field-select{height:44px;min-height:44px;max-height:44px;width:100%;padding-top:0;padding-bottom:0;font-size:12px}
.drawer .appointment-field-select .agenda-select-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.drawer .appointment-field-select[aria-invalid="true"]{border-color:#ad5272;outline:2px solid #ad52724d;outline-offset:1px}
@media(max-width:760px){.summary-progress-editor>.agenda-select-trigger,.summary-room-editor>.agenda-select-trigger{font-size:16px}}
@media(max-width:760px){.drawer .appointment-field-select{font-size:16px}}

/* Hour and minute controls share the drawer's field height and stay within it. */
.drawer .time-selects>.agenda-select-trigger{width:100%;min-width:0;height:44px;min-height:44px;max-height:44px;padding:0 8px;gap:6px}
.drawer .appointment-time-select .agenda-select-label{font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:clip}
.drawer .appointment-time-select .agenda-select-chevron{margin-left:0;margin-right:1px}
.drawer .agenda-date-trigger{height:44px;min-height:44px;max-height:44px;width:100%;min-width:0}
.drawer .time-selects>select[hidden]{display:none!important}
@media(max-width:400px){.drawer .time-selects>.agenda-select-trigger{padding-left:6px;padding-right:6px;gap:4px}}

/* Observation drafts stay in the drawer; persisted notes use independent versions. */
.appointment-notes{min-width:0;display:grid;gap:10px;margin:18px 0}
.appointment-notes>header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.appointment-notes h3{font-size:14px;margin:0}
#appointment-notes-list{display:grid;gap:9px;min-width:0}
.appointment-note-row{display:grid;gap:8px;text-align:left;width:100%;min-width:0;min-height:44px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;font:inherit}
.appointment-note-row:hover{border-color:var(--accent)}
.appointment-note-text{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;min-width:0;line-height:1.5}
.appointment-note-meta{font-size:12px;line-height:1.5;color:#746580;overflow-wrap:anywhere;min-width:0}
:root[data-theme="dark"] .appointment-note-meta{color:#c7b9d4}
.appointment-note-dialog{width:560px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:20px;box-sizing:border-box;overflow:auto;overscroll-behavior:contain}
.appointment-note-dialog form{min-width:0;display:grid;gap:14px}
.appointment-note-dialog .summary-header{gap:10px;min-width:0}
.appointment-note-dialog h2{overflow-wrap:anywhere;margin:0;font-size:20px}
.appointment-note-dialog textarea{box-sizing:border-box;width:100%;max-width:100%;min-height:160px;resize:vertical;font:inherit;line-height:1.5;overflow-wrap:anywhere}
.appointment-note-dialog :is(button,input,textarea){min-height:44px}
.appointment-note-dialog :is(.form-note,.form-error){min-width:0;white-space:normal;overflow-wrap:anywhere}
.appointment-note-dialog .overlay-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;min-width:0}
.appointment-note-dialog .overlay-actions button{white-space:normal;flex:0 1 auto}
@media(max-width:760px){.appointment-note-dialog{padding:16px}.appointment-note-dialog textarea{font-size:16px}.appointment-notes>header .button{min-height:44px}}

/* Optional vehicle fields remain within each appointment and unit. */
.vehicle-fields{min-width:0}.vehicle-fields input{min-width:0;width:100%;min-height:44px;box-sizing:border-box}
.vehicle-history{min-width:0;margin:12px 0;padding:12px;border:1px solid var(--border);border-radius:10px}
.vehicle-history dl{display:grid;grid-template-columns:1fr 2fr;gap:12px;margin:0}.vehicle-history dl>div{min-width:0}.vehicle-history dt{font-size:12px;color:var(--muted)}.vehicle-history dd{margin:4px 0 0;overflow-wrap:anywhere}
.vehicle-setting-choice{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer}.vehicle-setting-choice input{width:20px;height:20px;flex:0 0 20px}.vehicle-setting-choice span{min-width:0;overflow-wrap:anywhere}
.summary-vehicle-plate span,.summary-vehicle-model span{overflow-wrap:anywhere;min-width:0}
@media(max-width:420px){.vehicle-fields{grid-template-columns:1fr}.vehicle-history dl{grid-template-columns:1fr}}
/* Resize controls are separate from the card: ordinary touch scrolling stays native. */
.block-resize-handle{position:absolute;z-index:9;left:var(--resize-left);width:calc(var(--resize-width)/2);height:14px;min-height:0;padding:0;border:0;border-radius:5px;background:transparent;color:var(--text,#584065);transform:translateY(-50%);cursor:ns-resize;touch-action:none;user-select:none;-webkit-user-select:none}
.block-resize-end{left:calc(var(--resize-left) + var(--resize-width)/2)}
.block-resize-handle>span{display:block;width:min(24px,70%);height:3px;margin:auto;border-radius:4px;background:currentColor;opacity:.55}
.block-resize-handle:hover,.block-resize-handle:focus-visible{background:var(--surface,#fff);outline:2px solid #9a78bd;outline-offset:0}
.block-resize-handle:hover>span,.block-resize-handle:focus-visible>span{opacity:1}
.block-resizing{outline:2px solid #9170b4!important;z-index:8!important;opacity:.88;pointer-events:none}
.block-resize-active{user-select:none;-webkit-user-select:none;cursor:ns-resize}
.block-resize-feedback{position:fixed;z-index:90;left:50%;bottom:16px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:max-content;max-width:calc(100vw - 24px);padding:12px 16px;background:var(--surface,#fff);color:var(--text,#44324f);border:1px solid var(--border,#dacde5);border-radius:12px;box-shadow:0 8px 28px #21172d30;overflow-wrap:anywhere}
.block-resize-feedback>div{min-width:0}.block-resize-feedback strong{font-size:14px;font-variant-numeric:tabular-nums}.block-resize-feedback small{display:block;font-size:11px;margin-top:4px}.block-resize-feedback .button{flex:none;min-height:44px}
.agenda-summary footer [data-action="summary-resize-block"]{margin-top:8px}
@media(pointer:coarse){
 .block-resize-handle:not(.resize-armed){display:none}
 .block-resize-handle.resize-armed{width:44px;height:44px;min-height:44px;background:var(--surface,#fff);border:2px solid #9876b8;border-radius:10px;box-shadow:0 2px 8px #21172d25;left:clamp(0px,var(--resize-left),calc(100% - 44px));transform:translateY(var(--resize-touch-offset,-22px));z-index:12}
 .block-resize-end.resize-armed{left:clamp(0px,calc(var(--resize-left) + var(--resize-width) - 44px),calc(100% - 44px))}
 .block-resize-handle.resize-armed>span{width:18px;height:3px;opacity:1}
 .block-resize-handle.resize-armed::after{display:block;font-size:9px;line-height:1;margin-top:5px;content:'Início'}
 .block-resize-end.resize-armed::after{content:'Fim'}
 .block-resize-feedback{bottom:12px;padding:10px;gap:8px}.block-resize-feedback small{display:none}
}
/* Appointment colors are a personal display preference; shape and labels retain meaning. */
.agenda-color-control{display:flex;align-items:center;gap:8px;min-width:0;font-size:11px;color:var(--text)}
.agenda-color-control select{min-width:128px;max-width:100%;min-height:44px;border:1px solid var(--border);border-radius:7px;padding:8px 28px 8px 10px;background:var(--surface);color:var(--text);font:inherit}
.appointment-color-legend{display:flex;align-items:flex-start;gap:12px;padding:8px 18px;border-bottom:1px solid var(--border);min-width:0;max-width:100%;background:var(--surface);color:var(--text);font-size:11px;line-height:1.5;flex:none}
.appointment-color-legend>strong{padding-top:3px;font-size:10px;font-weight:650;flex:none}
.appointment-color-legend-items{display:flex;flex-wrap:wrap;align-items:flex-start;gap:5px 14px;min-width:0;max-height:72px;overflow:auto;scrollbar-width:thin;overscroll-behavior:contain;flex:1}
.appointment-color-legend-items>span{display:inline-flex;align-items:center;gap:6px;min-height:22px;min-width:0;max-width:100%;overflow-wrap:anywhere}
.appointment-color-legend-items i{width:10px;height:10px;flex:none;border-radius:3px;background:var(--appointment-paint);box-shadow:0 0 0 1px color-mix(in srgb,var(--text) 15%,transparent)}
.appointment-color-legend-items:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.schedule-card :is(.appointment,.period-event)[data-color-mode]{--card-accent:var(--appointment-color);background:color-mix(in srgb,var(--appointment-color) 12%,var(--surface));background-image:none;color:var(--text);border-left-color:var(--appointment-color)}
.schedule-card :is(.appointment,.period-event)[data-color-mode]::after{content:"";position:absolute;right:0;top:0;bottom:0;width:4px;background:var(--appointment-paint);pointer-events:none;border-radius:0 4px 4px 0}
.schedule-card :is(.appointment,.period-event)[data-color-mode] :is(.appointment-time,.appointment-name,.appointment-service,.appointment-team,.general-event-time,.general-event-body,.general-event-body>strong){color:var(--text);opacity:1}
.schedule-card .period-event[data-color-mode] :is(small,.general-event-body>span),.schedule-card .period-event[data-color-mode]>span:not(.period-event-time){color:var(--text)}
.schedule-card .appointment-color-row>td{background:color-mix(in srgb,var(--appointment-color) 8%,var(--surface));color:var(--text)}
.schedule-card .appointment-color-row small{color:var(--text)}
.schedule-card .appointment-color-row:hover>td{background:color-mix(in srgb,var(--appointment-color) 14%,var(--surface))}
.schedule-card .appointment-color-row>td:first-child{position:relative;border-left:3px solid var(--appointment-color)}
.schedule-card .appointment-color-row>td:first-child::before{content:"";display:inline-block;vertical-align:middle;width:9px;height:16px;border-radius:2px;background:var(--appointment-paint);margin-right:7px}
:root[data-theme="dark"] .schedule-card :is(.appointment,.period-event)[data-color-mode]{background:color-mix(in srgb,var(--appointment-color) 20%,var(--surface));color:var(--text);border-left-color:color-mix(in srgb,var(--appointment-color) 72%,#fff)}
:root[data-theme="dark"] .schedule-card :is(.appointment,.period-event)[data-color-mode]::after,:root[data-theme="dark"] .appointment-color-legend-items i,:root[data-theme="dark"] .period-dot-button[data-color-mode] .period-dot,:root[data-theme="dark"] .appointment-color-row>td:first-child::before{filter:brightness(1.35)}
@media(max-width:760px){.agenda-color-control{font-size:12px}.agenda-color-control select{font-size:16px}.appointment-color-legend{padding:8px 12px;gap:8px}.appointment-color-legend-items{max-height:66px;gap:3px 10px}}

/* Colaboradores: one profile for the catalog and the agenda shortcut. */
.collaborator-search{max-width:460px;margin:22px 0 14px}.collaborator-search input{min-height:44px}
.collaborator-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));align-items:stretch}
.collaborator-card{min-width:0;display:flex;flex-direction:column;text-align:left;padding:16px}
.collaborator-card-heading{display:flex;gap:10px;align-items:flex-start;min-width:0}.collaborator-card-identity{min-width:0;flex:1;align-self:center}
.collaborator-card .avatar{flex:none;width:44px;height:44px;margin:0;background:var(--surface-muted,#f2edf8);color:var(--text)}
.collaborator-card h3{margin:0;color:var(--text);font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.collaborator-card p{margin:5px 0 0;font-size:12px;line-height:1.5;color:var(--text-secondary,#695c73)}
.collaborator-card-actions{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:8px;max-width:40%;min-width:44px}
.collaborator-card .collaborator-profile-open{margin:0;padding:10px;width:44px;min-width:44px;min-height:44px;justify-content:center}
.collaborator-unit-tags{display:flex;justify-content:flex-end;gap:6px;flex-wrap:wrap}.collaborator-unit-tags .chip{margin:0;white-space:normal;overflow-wrap:anywhere;text-align:right}
.collaborator-empty{grid-column:1/-1}.collaborator-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-bottom:18px;border-bottom:1px solid var(--border);margin-bottom:20px}
.collaborator-tabs .button{min-height:44px;min-width:0;white-space:normal;justify-content:center;font-size:13px;padding:10px}
.collaborator-tabs .button[aria-pressed="true"]{background:var(--accent,#795695);color:#fff;border-color:var(--accent,#795695)}
.collaborator-profile-content{min-width:0;overflow-wrap:anywhere}.collaborator-overview>div{margin-bottom:20px}
.collaborator-overview dd{line-height:1.55}.collaborator-assignments{margin:20px 0}.collaborator-assignments h3{font-size:14px;margin:0 0 12px;color:var(--text)}
.collaborator-assignments ul{list-style:none;margin:0;padding:0}.collaborator-assignments li{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px}
.collaborator-assignments time{font-variant-numeric:tabular-nums;color:var(--text-secondary,#695c73)}
.collaborator-settings{display:grid;gap:12px}.collaborator-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:76px;max-width:100%;width:100%;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface,#fff);color:var(--text);cursor:pointer;text-align:left;font:inherit}
.collaborator-setting>span{min-width:0}.collaborator-setting strong{display:block;font-size:14px;line-height:1.45;overflow-wrap:anywhere}.collaborator-setting small{display:block;font-size:12px;line-height:1.5;margin-top:4px;color:var(--text-secondary,#695c73);overflow-wrap:anywhere}
.collaborator-setting>svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5}
.collaborator-setting:hover{background:var(--surface-muted,#f7f3fb)}.collaborator-setting:focus-visible,.collaborator-tabs .button:focus-visible{outline:2px solid var(--accent,#795695);outline-offset:3px}
.collaborator-profile-back{min-width:44px;min-height:44px;flex:none}.collaborator-profile-back svg{width:20px;height:20px}
.professional-contacts-fields input,.pilot-invitation input{min-height:44px;max-width:100%;width:100%;min-width:0}
.pilot-invitation{border-top:1px solid var(--border);margin-top:24px;padding-top:22px;min-width:0;overflow-wrap:anywhere}.pilot-invitation h3{font-size:15px;color:var(--text);margin:0 0 16px}.pilot-invitation .field-hint{font-size:12px;line-height:1.6;color:var(--text-secondary,#695c73)}
.pilot-invitation-status{display:grid;gap:7px;padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted,#f7f3fb);font-size:13px;line-height:1.5;color:var(--text)}.pilot-invitation-status span{overflow-wrap:anywhere}
.pilot-invitation-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.pilot-invitation .button{min-height:44px;min-width:0;white-space:normal;line-height:1.4}.pilot-invitation-actions .button{flex:1 1 150px}.pilot-invitation #pilot-invitation-secret:empty{display:none}.pilot-invitation #pilot-invitation-secret{margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}
:root[data-theme="dark"] .pilot-invitation-status{background:var(--surface-hover,#342b40)}
:root:not([data-theme="dark"]) :is(.pilot-invitation .field-hint,.professional-contacts-fields .field-hint,.pilot-invitation .form-note,.professional-contacts-fields .form-note,.professional-contacts-fields .field-label,.pilot-invitation .field-label){color:#695c73}
:root:not([data-theme="dark"]) :is(.collaborator-card p,.collaborator-setting small,.collaborator-assignments time,.collaborator-overview dt,.collaborator-assignments .field-hint){color:#695c73}
:root[data-theme="dark"] .collaborator-tabs .button[aria-pressed="true"]{background:#f2e9fb;color:#342240;border-color:#f2e9fb}
:root[data-theme="dark"] .collaborator-card .avatar{background:var(--surface-hover,#342b40);color:var(--text)}
:root[data-theme="dark"] .collaborator-setting:hover{background:var(--surface-hover,#342b40)}
@media(max-width:400px){.collaborator-card{padding:16px}.collaborator-card-heading{gap:9px}.collaborator-tabs{gap:6px}.collaborator-tabs .button{font-size:12px;padding:8px 6px}.collaborator-setting{padding:13px;gap:10px}}
.professional-notifications{min-width:0;max-width:100%;overflow-wrap:anywhere}.professional-notifications .form-note,.professional-notifications .field-hint{color:var(--text-secondary,#695c73);font-size:12px;line-height:1.6}.professional-notification-modes{display:grid;gap:8px;margin:22px 0 12px;padding:0;border:0;min-width:0}.professional-notification-modes legend{font-size:13px;font-weight:650;color:var(--text);margin-bottom:12px}.professional-notification-modes label{display:flex;align-items:center;gap:11px;padding:11px 13px;min-height:44px;border:1px solid var(--border);border-radius:9px;background:var(--surface,#fff);color:var(--text);font-size:13px;cursor:pointer}.professional-notification-modes label:has(input:checked){border-color:var(--accent,#7052a2);background:var(--surface-muted,#f7f3fb)}.professional-notifications input[type="radio"],.professional-notifications input[type="checkbox"]{width:18px;height:18px;min-height:18px;padding:0;flex:none;margin:0;accent-color:var(--accent,#7052a2)}
#professional-notification-matrix{display:grid;gap:16px;margin:24px 0}.professional-notification-event{border:0;border-bottom:1px solid var(--border);margin:0;padding:0 0 16px;min-width:0}.professional-notification-event legend{padding:0;margin-bottom:10px;color:var(--text);font-size:13px;font-weight:600;line-height:1.5}.professional-notification-channels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.professional-notification-channels label{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:44px;padding:10px 5px;border:1px solid var(--border);border-radius:8px;background:var(--surface,#fff);color:var(--text);font-size:12px;cursor:pointer}.professional-notification-channels label:has(input:checked){border-color:var(--accent,#7052a2);background:var(--surface-muted,#f7f3fb)}.professional-notification-channels label:has(input:disabled){cursor:default}.professional-notification-channels input:disabled{opacity:.8}.professional-notification-modes label:focus-within,.professional-notification-channels label:focus-within{outline:2px solid var(--accent,#7052a2);outline-offset:2px}.professional-notification-preview{display:grid;gap:8px;padding:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted,#f7f3fb);color:var(--text);font-size:13px;line-height:1.5}.professional-notification-preview strong{font-size:13px}.professional-notification-preview small{font-size:12px;color:var(--text-secondary,#695c73)}
:root:not([data-theme="dark"]) .professional-notifications :is(.form-note,.field-hint),:root:not([data-theme="dark"]) .professional-notification-preview small{color:#695c73}:root[data-theme="dark"] .professional-notification-modes label:has(input:checked),:root[data-theme="dark"] .professional-notification-channels label:has(input:checked),:root[data-theme="dark"] .professional-notification-preview{background:var(--surface-hover,#342b40)}
.pilot-queue,.pilot-queue-open{margin-top:20px;max-width:100%;overflow-wrap:anywhere}.pilot-queue h3{font-size:15px;margin:24px 0 12px}.pilot-queue-channels{display:grid;gap:10px}.pilot-queue-channels article,.pilot-queue-entries li{display:grid;gap:8px;padding:14px;border:1px solid var(--border);border-radius:10px;min-width:0;font-size:13px;line-height:1.5}.pilot-queue-entries{display:grid;gap:12px;margin:0;padding:0;list-style:none}.pilot-queue time,.pilot-queue small,.pilot-queue .field-hint,.pilot-queue-channels span{font-size:12px;color:var(--text-secondary,#695c73);line-height:1.6}.pilot-queue .button{min-height:44px;white-space:normal}.pilot-queue-open{width:100%;min-height:44px}.pilot-queue-entries span{font-weight:600}
:root:not([data-theme="dark"]) .pilot-queue :is(time,small,.field-hint,.form-note,.pilot-queue-channels span){color:#695c73}

/* Local finance read model: wrapping cards keep values usable on narrow screens. */
.finance-workspace{--text-secondary:#695c73;min-width:0;max-width:100%;color:var(--text);overflow-wrap:anywhere}
:root[data-theme="dark"] .finance-workspace{--text-secondary:#c7b9d4}
.finance-workspace-note,.finance-workspace-status{font-size:12px;line-height:1.65;color:var(--text-secondary,#695c73);margin:12px 0 18px}
.finance-workspace-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}
.finance-workspace .button{min-height:44px;max-width:100%;white-space:normal}
.finance-workspace-tabs .button[aria-pressed="true"]{background:var(--accent,#7052a2);color:#fff;border-color:var(--accent,#7052a2)}
.finance-workspace-filters{display:flex;align-items:end;flex-wrap:wrap;gap:12px;padding:16px;background:var(--surface,#fff);border:1px solid var(--border);border-radius:10px}
.finance-workspace-filters label{display:grid;gap:7px;font-size:12px;min-width:0;flex:1 1 150px;color:var(--text)}
.finance-workspace-filters input{box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:44px;border:1px solid var(--border);border-radius:7px;background:var(--surface,#fff);color:var(--text);padding:8px 10px;font:inherit}
.finance-workspace-filters p{flex-basis:100%;font-size:12px;line-height:1.5;color:var(--text-secondary,#695c73)}
.finance-workspace-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin:18px 0}
.finance-workspace-metrics article,.finance-methods article{display:grid;gap:8px;border:1px solid var(--border);border-radius:10px;padding:16px;background:var(--surface,#fff);min-width:0}
.finance-workspace-metrics span{font-size:12px}.finance-workspace-metrics strong{font-size:23px;font-weight:650;letter-spacing:-.5px}
.finance-workspace small{font-size:12px;line-height:1.55;color:var(--text-secondary,#695c73)}
.finance-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:10px;margin-bottom:20px;font-size:13px}
.finance-workspace-list{display:grid;gap:12px}
.finance-workspace-row{min-width:0;padding:18px;border:1px solid var(--border);border-radius:11px;background:var(--surface,#fff);font-size:13px;line-height:1.55;display:grid;gap:12px}
.finance-workspace-row header{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:12px}
.finance-workspace-row header>div{display:grid;gap:4px;min-width:0;flex:1 1 180px}
.finance-workspace-row header strong{font-size:14px}.finance-workspace-row header span:not(.chip),.finance-workspace-row>p{color:var(--text-secondary,#695c73)}
.finance-workspace-row .chip{white-space:normal;max-width:100%;height:auto;line-height:1.5}
.finance-workspace-row dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,120px),1fr));gap:12px;margin:0}
.finance-workspace-row dt{font-size:12px;color:var(--text-secondary,#695c73)}.finance-workspace-row dd{font-size:14px;font-weight:600;margin:3px 0 0}
.finance-workspace-row>.button{justify-self:start}
.finance-workspace-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin:22px 0;font-size:12px;color:var(--text-secondary,#695c73)}
.finance-workspace-pagination>div{display:flex;flex-wrap:wrap;gap:8px}
#finance-workspace-results[aria-busy="true"]{opacity:.7}
:root[data-theme="dark"] .finance-workspace-tabs .button[aria-pressed="true"]{background:#f2e9fb;color:#342240;border-color:#f2e9fb}
@media(max-width:480px){.finance-workspace-filters,.finance-workspace-row{padding:13px}.finance-workspace-filters label{flex-basis:100%}.finance-workspace-filters input{font-size:16px}.finance-workspace-tabs .button{flex:1 1 100px}.finance-workspace-pagination>div{width:100%}.finance-workspace-pagination .button{flex:1;min-width:0}.finance-workspace-row dl{grid-template-columns:1fr}.finance-workspace-metrics strong{font-size:22px}}

/* AG23 global compact header and personal options. */
#environment-banner{display:none!important}
.app-header,.app-header.agenda-header{min-height:64px;padding:10px 24px;gap:12px}
.app-header #page-title{font-size:20px;margin:0;white-space:nowrap}
.app-header .header-right{margin-left:auto;gap:12px;min-width:0}
.account-menu{position:relative;flex:none}.account-menu>summary{cursor:pointer;list-style:none;width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700}.account-menu>summary::-webkit-details-marker{display:none}.account-menu>summary:focus-visible{outline:3px solid var(--accent,#7052a2);outline-offset:3px}
.account-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:90;width:min(290px,calc(100vw - 24px));padding:18px;display:flex;flex-direction:column;gap:16px;border:1px solid var(--border,#ddd);border-radius:16px;background:var(--surface,#fff);box-shadow:0 15px 45px #0003}
.account-menu:not([open]) .account-menu-panel{display:none}.account-menu-panel .signed-in-account{display:flex!important;align-items:center;justify-content:space-between;gap:10px}.account-menu-panel .theme-control{display:flex!important;justify-content:space-between;gap:12px}.account-menu-panel .connection{display:flex!important}.course-model-times input{min-height:44px;min-width:0;width:100%}.course-service-settings{padding:12px;border:1px solid var(--border,#ddd);border-radius:12px;margin-bottom:14px}.course-service-settings h3{margin:0 0 6px}.course-service-settings p{font-size:13px}
@media(max-width:600px){.app-header,.app-header.agenda-header{padding:8px 12px;min-height:60px}.app-header #page-title{font-size:17px}.app-header .header-right{gap:8px}.app-header .unit-control select{max-width:150px}.account-menu-panel .signed-in-account{font-size:13px}.therapist-shell .app-header{gap:6px}}

.app-header,.app-header.agenda-header{flex-wrap:nowrap}.app-header .header-right{width:auto;flex-wrap:nowrap}.app-header #app-heading{min-width:0}.account-menu-panel{background:var(--surface,#fff)}

/* AG23: readable review, one vehicle field and independent modality/group cues. */
.appointment{border-right:0}.appointment-multi{border-top-style:dashed!important;border-right:1px dashed var(--appointment-color,#7052a2)!important;border-bottom-style:dashed!important;border-left-style:solid!important}.appointment-group{border-top-style:solid;border-bottom-style:solid;border-left-width:6px!important;border-left-style:double!important}.appointment-group.appointment-multi{border-top-style:dashed!important;border-bottom-style:dashed!important}.appointment-bill{position:relative;display:inline-flex;flex:none}.appointment-bill svg{width:13px;height:13px}.appointment-bill.is-absent{opacity:.45}.appointment-bill i{position:absolute;right:-3px;bottom:-4px;font-style:normal;font-size:10px;font-weight:800}.appointment-vehicle,.appointment-group-count{display:flex;align-items:center;gap:4px;font-size:10px;line-height:1.25;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.appointment-vehicle svg,.appointment-group-count svg,.client-history-group svg{width:12px;height:12px;flex:none}.appointment.short-card .appointment-vehicle,.appointment.short-card .appointment-group-count{font-size:9px}.vehicle-fields{display:block}.review-heading{display:grid;gap:5px;padding:0 20px 12px;font-size:15px}.review-heading strong{font-size:20px}.appointment-review-data .review-row{display:grid;grid-template-columns:minmax(100px,.75fr) minmax(0,1.25fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}.appointment-review-data .review-row dt{display:flex;align-items:center;gap:8px;font-size:12px}.appointment-review-data .review-row dt svg{width:17px;height:17px;flex:none;color:var(--accent)}.appointment-review-data .review-row dd{margin:0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.appointment-review-data .review-total{font-weight:700;font-size:16px}.panel-alert-dialog{max-width:480px;padding:24px}.panel-alert-dialog p{white-space:pre-wrap;line-height:1.6}.header-select [data-room-symbol]{max-width:36px;overflow:hidden;text-overflow:ellipsis;font-size:15px;font-weight:700}.client-history-group{display:flex;align-items:center;gap:5px}.course-availability-diagnostics{margin-top:8px}.course-availability-diagnostics ul{padding-left:18px}.course-availability-diagnostics li{margin:6px 0}

/* AG23-14–22/35: one control bar; fitted grids retain their minute geometry. */
.agenda-control-bar{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:10px;padding:10px 14px;min-width:0}
.agenda-control-bar .agenda-kpis,.agenda-control-bar .agenda-finance-kpis{display:flex;align-items:center;gap:8px;flex:none}
.agenda-control-bar .stat{gap:5px;white-space:nowrap}.agenda-control-bar .stat strong{font-size:15px}
.agenda-control-bar .therapist-filter,.agenda-control-bar .agenda-color-control,.agenda-control-bar .agenda-size-control{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:3px;font-size:10px;font-weight:600;min-width:0;flex:0 1 118px}
.agenda-control-bar .therapist-filter{flex-basis:138px}.agenda-control-bar .agenda-size-control{flex-basis:104px}
.agenda-control-bar label>select,.agenda-control-bar label>.agenda-select-trigger{min-width:0;width:100%;font-size:12px;min-height:44px;padding:7px 9px}
.agenda-control-bar .filter-search{flex:1 1 130px;min-width:110px;max-width:220px;min-height:44px;align-self:flex-end;padding:6px 9px}
.agenda-control-bar .filter-search input{width:100%;min-width:0;font-size:12px}
.agenda-control-bar .view-toggle{display:flex;flex-wrap:wrap;align-self:flex-end;flex:0 1 auto;min-width:0}.agenda-control-bar .view-toggle button{min-height:44px;padding:8px 10px;min-width:40px}
.agenda-control-bar .agenda-expand-button{align-self:flex-end;margin-left:auto}
.agenda-date-navigation{display:flex;align-items:center;min-width:0;gap:6px}.agenda-date-navigation>.icon-button{width:44px;min-width:44px;height:44px}
.agenda-date-navigation .date-picker{display:flex;flex-direction:column;max-width:100%;min-width:0}.agenda-central-date{min-width:170px;min-height:44px;font-weight:600;justify-content:center}
.agenda-period-title{font-size:10px;text-align:center;line-height:1.4;max-width:250px}.agenda-period-title[hidden]{display:none}
.calendar-grid[data-density="fit"]{min-width:calc(61px + var(--columns)*110px);grid-template-columns:61px repeat(var(--columns),minmax(110px,1fr));width:100%}
.room-heading{position:sticky;top:0;z-index:4;min-width:0;height:72px;background:var(--surface,#fff);border-left:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:5px}
.room-heading strong{font-size:12px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-heading span{font-size:9px;color:var(--muted)}.room-heading svg{width:16px;height:16px}
.room-calendar-lane{position:absolute;top:0;bottom:0;pointer-events:none}.room-calendar-lane>*{pointer-events:auto}
.room-unavailability{position:absolute;left:4px;right:4px;margin:0;border:1px dashed var(--muted);border-radius:5px;background:repeating-linear-gradient(135deg,var(--surface-soft,#efedf2),var(--surface-soft,#efedf2) 5px,var(--surface,#fff) 5px,var(--surface,#fff) 10px);color:var(--text);padding:4px;overflow:hidden;font-size:10px;text-align:left}
.room-team-status{padding:7px 14px;border-bottom:1px solid var(--border);font-size:11px}.room-team-status>summary{cursor:pointer;min-height:32px;display:flex;align-items:center}.room-team-status .button{margin:4px;min-height:44px}
.general-timeline[data-density="fit"]{min-width:calc(48px + var(--general-columns)*110px);grid-template-columns:48px repeat(var(--general-columns),minmax(110px,1fr));width:100%}
.general-column-grid .general-panel>header{padding:7px 9px;min-height:52px}.general-panel-controls .button{min-height:36px;padding:6px 8px}
.general-timeline[data-density="fit"] .general-professional-heading{gap:5px;padding:5px}.general-timeline[data-density="fit"] .general-professional-name{font-size:10px}
.agenda-shell #schedule-region:has(>.general-grid){display:flex;flex-direction:column;overflow:hidden}.agenda-shell #schedule-region>.general-grid{flex:1;min-height:0;height:auto}
.calendar-grid .time-tick:last-child{transform:translateY(-12px)}
@media(max-width:760px),(max-height:700px){
 .agenda-control-bar{gap:8px;padding:8px 10px}.agenda-control-bar .view-toggle{flex:1 1 100%;order:1}.agenda-control-bar .agenda-expand-button{order:1;margin-left:0}
 .agenda-control-bar .filter-search{max-width:none}.agenda-control-bar label>select,.agenda-control-bar label>.agenda-select-trigger,.agenda-control-bar .filter-search input{font-size:14px}
 .agenda-shell #schedule-region>.calendar-scroll{height:clamp(250px,calc(100dvh - 300px),600px);flex:none}
 .agenda-shell #schedule-region:has(>.general-grid){display:block;overflow:visible}.agenda-shell #schedule-region>.general-grid{height:auto}
 .agenda-shell .general-column-grid .general-panel,.agenda-shell .general-column-grid.general-panel-expanded .general-panel.is-expanded{height:340px;min-height:0}
 .agenda-shell .general-column-grid .general-calendar-scroll{flex:1;min-height:0;height:auto;overflow:auto}
}
@media(max-width:480px){.date-actions{gap:6px;flex-wrap:wrap}.date-actions>.agenda-date-navigation:first-child{flex:1 1 auto;margin:0}.agenda-date-navigation{gap:2px}.agenda-central-date{min-width:0;font-size:13px;padding:8px}.agenda-control-bar .therapist-filter{flex:1 1 138px}.agenda-control-bar .agenda-color-control,.agenda-control-bar .agenda-size-control{flex:1 1 104px}.agenda-control-bar .filter-search{flex:1 1 100%}}

/* AG23 reviewed cascade: modality outline, group left double, no right paint stripe. */
.schedule-card :is(.appointment,.period-event)[data-color-mode]::after{display:none}
.appointment.appointment-multi,.period-event.period-event-multi{border-top:1px dashed var(--card-accent,var(--appointment-color,#7052a2))!important;border-right:1px dashed var(--card-accent,var(--appointment-color,#7052a2))!important;border-bottom:1px dashed var(--card-accent,var(--appointment-color,#7052a2))!important;border-left:3px solid var(--card-accent,var(--appointment-color,#7052a2))!important}
.appointment.appointment-group:not(.appointment-multi),.period-event.period-event-group:not(.period-event-multi){border-top:1px solid transparent!important;border-right:0!important;border-bottom:1px solid transparent!important}
.appointment.appointment-group,.period-event.period-event-group{border-left:6px double var(--card-accent,var(--appointment-color,#7052a2))!important}
.legend-square.legend-multi{width:12px;height:11px;background:none;border:1px dashed currentColor;border-left:3px solid currentColor}
.legend-square.legend-group{width:12px;height:11px;background:none;border:0;border-left:6px double currentColor}

/* AG23 auxiliary selects and period cues */
.shell-select-trigger{max-width:220px;min-width:100px;font-size:12px;padding:8px 10px}.auxiliary-select-trigger{min-height:44px;width:100%;font-size:12px}.period-event-cues{display:inline-flex;align-items:center;gap:5px;margin-left:auto;order:1}.period-event-cues .appointment-room{max-width:60px;overflow:hidden;text-overflow:ellipsis}.general-event-body .appointment-vehicle,.general-event-body .appointment-group-count{font-size:10px;min-width:0;max-width:100%;overflow:hidden}.period-event-time{display:flex;align-items:center;gap:4px}.app-header #unit-control{min-width:0}.app-header #unit-control>.shell-select-trigger{max-width:190px}.account-menu-panel .shell-select-trigger{max-width:170px}
@media(max-width:600px){.shell-select-trigger{max-width:150px;min-width:80px;font-size:12px}.app-header #unit-control>.shell-select-trigger{max-width:150px}.auxiliary-select-trigger{font-size:16px}}

/* AG23 fit usability: preserve readable scale and one calendar scrollbar. */
.agenda-shell #main>.toolbar{gap:10px;margin-bottom:10px}
.agenda-shell .toolbar-buttons{gap:6px}.agenda-shell .toolbar-buttons .button{font-size:11px;padding:9px 10px;min-height:44px}
.agenda-shell .date-actions{gap:8px}
.agenda-control-bar{gap:8px;padding:8px 10px}
.agenda-control-bar .therapist-filter{flex:0 1 125px}.agenda-control-bar .agenda-color-control{flex:0 1 100px}.agenda-control-bar .agenda-size-control{flex:0 1 88px}
.agenda-control-bar .filter-search{flex:1 1 104px;min-width:96px;max-width:180px}
.agenda-control-bar .view-toggle button{padding:8px;min-width:36px;font-size:11px}.agenda-control-bar .agenda-expand-button{margin-left:0}
.room-day-status-compact{padding:0 12px;flex:none}.room-day-status-compact>summary{cursor:pointer;display:flex;align-items:center;gap:8px;min-height:40px;font-size:11px;list-style:none}.room-day-status-compact>summary::-webkit-details-marker{display:none}.room-day-status-compact>summary::after{content:'⌄';margin-left:auto;font-size:18px}.room-day-status-compact[open]>summary::after{transform:rotate(180deg)}.room-day-status-compact>div{padding:6px 0}.room-day-status-compact:not([open])>div{display:none}
@media(max-width:760px){.agenda-control-bar .therapist-filter{flex:1 1 125px}.agenda-control-bar .agenda-color-control{flex:1 1 100px}.agenda-control-bar .agenda-size-control{flex:1 1 88px}.agenda-control-bar .filter-search{max-width:none}.agenda-control-bar .view-toggle{flex:1 1 calc(100% - 56px)}.agenda-shell .toolbar-buttons .button{font-size:12px;min-height:44px}}

/* AG23 readable fitted cards: fixed text line boxes never overlap. */
.agenda-control-bar .agenda-select-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.agenda-control-bar .agenda-color-control{flex-basis:108px}
.appointment>*{flex:none;min-height:0}.appointment .appointment-time{line-height:13px}.appointment .appointment-name{line-height:14px}
.appointment.short-card{padding:3px 7px}.appointment.short-card .appointment-name{line-height:13px;font-size:11px;margin:1px 0 0}.appointment.short-card .appointment-time{line-height:12px}
.appointment.short-card :is(.appointment-vehicle,.appointment-group-count){display:none}
.general-timed-event>.general-event-time,.general-timed-event>.general-event-body{flex:none;min-height:0}.general-event-body>*{flex:none}.general-short-event .general-event-body :is(.appointment-vehicle,.appointment-group-count){display:none}
.period-event>.appointment-vehicle,.period-event>.appointment-group-count{flex:none;min-height:0}

.appointment-review-dialog[open]{display:flex;flex-direction:column;max-height:calc(100dvh - 32px);padding:0;overflow:hidden}.appointment-review-dialog>.summary-header{display:flex;align-items:center;justify-content:space-between;flex:none;padding:18px 20px;border-bottom:1px solid var(--border)}.appointment-review-dialog>.summary-header h2{margin:0;font-size:20px}.appointment-review-dialog #appointment-review-body{padding:16px 20px;overflow:auto;min-height:0}.appointment-review-dialog .review-heading{padding:0 0 12px}.appointment-review-dialog>.overlay-actions{flex:none;padding:16px 20px;border-top:1px solid var(--border)}

/* AG23 one vertical surface: fitted grids grow inside the scrolling main area. */
.agenda-shell #main[data-agenda-fit="true"]{overflow:auto;overscroll-behavior:contain}
.agenda-shell #main[data-agenda-fit="true"]>.schedule-card{flex:none;min-height:0;overflow:visible}
.agenda-shell #main[data-agenda-fit="true"] #schedule-region{flex:none;min-height:0;height:auto;overflow:visible}
.agenda-shell #main[data-agenda-fit="true"] #schedule-region>.calendar-scroll{flex:none;height:auto;max-height:none;overflow-x:auto;overflow-y:hidden}
.agenda-shell #main[data-agenda-fit="true"] #schedule-region>.general-grid{flex:none;height:auto;grid-template-rows:none;align-items:start}
.agenda-shell #main[data-agenda-fit="true"] .general-column-grid .general-panel{height:auto;min-height:0}
.agenda-shell #main[data-agenda-fit="true"] .general-column-grid .general-calendar-scroll{flex:none;height:auto;max-height:none;overflow-x:auto;overflow-y:hidden}
/* Compact and tall modes also use the main surface on short/mobile screens. */
@media(max-width:760px),(max-height:700px){
 .agenda-shell #schedule-region>.calendar-scroll,.agenda-shell #schedule-region>.period-scroll{flex:none;height:auto;max-height:none;overflow-x:auto;overflow-y:hidden}
 .agenda-shell .general-column-grid .general-panel,.agenda-shell .general-column-grid.general-panel-expanded .general-panel.is-expanded{height:auto;min-height:0}
 .agenda-shell .general-column-grid .general-calendar-scroll{flex:none;height:auto;max-height:none;overflow-x:auto;overflow-y:hidden}
}
@media(max-width:760px){
 .agenda-shell .toolbar-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px}
 .agenda-shell .toolbar-buttons .button{width:100%;min-width:0;min-height:44px;white-space:normal;padding:8px 6px}
}

/* AG23-10: local authorized portrait over initials, preserved on image failure. */
.avatar,.user-avatar{position:relative;overflow:hidden}
.avatar-photo{position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;display:block;pointer-events:none}
.avatar-initials{pointer-events:none}

/* AG23 short appointments: three fixed lines, with group and vehicle sharing one. */
.schedule-card .appointment-card-details{display:flex;align-items:center;flex:none;gap:5px;min-width:0;max-width:100%;overflow:hidden}
.schedule-card .appointment-card-details .appointment-group-count{display:flex;flex:0 1 auto;min-width:0}
.schedule-card .appointment-card-details .appointment-vehicle{display:flex;flex:1 1 0;min-width:0}
.appointment-detail-text,.appointment-detail-full{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appointment-detail-compact{display:none}
.schedule-card :is(.appointment.short-card,.general-timed-event.general-short-event,.period-week-event-short>.period-event){padding:2px 4px;gap:0}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) :is(.appointment-time,.general-event-time,.period-event-time){font-size:9px;line-height:9px;min-height:9px;gap:2px}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) :is(.appointment-time,.general-event-time,.period-event-time) :is(svg,.appointment-bill svg){width:9px;height:9px}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) :is(.appointment-room,.general-event-time>strong,.general-event-time>small){font-size:9px;line-height:9px}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) .appointment-bill i{font-size:7px;line-height:7px;right:-2px;bottom:0}
.schedule-card .appointment.short-card .appointment-name,.schedule-card :is(.general-short-event,.period-week-event-short) :is(.general-event-body>strong,.period-event>strong){font-size:10px;line-height:10px;margin:0;flex:none}
.schedule-card :is(.general-short-event,.period-week-event-short) .general-event-body{gap:0;flex:none}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) .appointment-card-details{height:9px;gap:4px;line-height:9px}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) .appointment-card-details :is(.appointment-vehicle,.appointment-group-count){display:flex;font-size:9px;line-height:9px;gap:2px}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) .appointment-card-details svg{width:9px;height:9px}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) .appointment-group-count{flex:none}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) .appointment-detail-full{display:none}
.schedule-card :is(.appointment.short-card,.general-short-event,.period-week-event-short) .appointment-detail-compact{display:inline;white-space:nowrap}
.schedule-card :is(.general-short-event,.period-week-event-short) .general-event-body>span,.schedule-card .period-week-event-short>.period-event>span:not(.period-event-time):not(.general-event-time):not(.general-event-body),.schedule-card .period-week-event-short>.period-event>small{display:none}
.schedule-card :is(.appointment.tiny-card,.general-tiny-event,.period-week-event-tiny>.period-event){padding:1px 3px;gap:4px;flex-direction:row;align-items:center}
.schedule-card :is(.appointment.tiny-card,.general-tiny-event,.period-week-event-tiny) :is(.appointment-card-details,.appointment-cues,.general-event-cues,.period-event-cues){display:none}
.schedule-card :is(.appointment.tiny-card,.general-tiny-event,.period-week-event-tiny) :is(.appointment-name,.general-event-body,.period-event>strong){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Four-unit validation: fitted headers keep names and counts inside narrow columns. */
.calendar-grid[data-density="fit"] .professional-heading{flex-direction:column;justify-content:center;gap:2px;padding:4px}
.calendar-grid[data-density="fit"] .professional-label{max-width:100%;text-align:center}
.calendar-grid[data-density="fit"] .professional-name{font-size:11px;line-height:14px}
.calendar-grid[data-density="fit"] .professional-meta{display:none}
.calendar-grid[data-density="fit"] .professional-count-badge{display:flex;align-items:center;justify-content:center}
.calendar-grid[data-density="slim"] :is(.appointment,.block-card){padding-right:5px}

/* AG27: fitting fills the available page width, including the virtual waiting column. */
.calendar-grid[data-density="fit"]{min-width:0;max-width:100%;width:100%;grid-template-columns:48px repeat(var(--columns),minmax(0,1fr))}
.general-timeline[data-density="fit"]{min-width:0;max-width:100%;width:100%;grid-template-columns:38px repeat(var(--general-columns),minmax(0,1fr))}
.calendar-grid[data-density="fit"] :is(.professional-heading,.room-heading),.general-timeline[data-density="fit"] .general-professional-heading{min-width:0;padding:4px 2px;overflow:hidden}
.calendar-grid[data-density="fit"] .professional-avatar-wrap,.general-timeline[data-density="fit"] .general-avatar-wrap{width:min(40px,100%);height:auto;aspect-ratio:1;min-width:0;flex:none}
.calendar-grid[data-density="fit"] .professional-avatar-wrap>.avatar,.general-timeline[data-density="fit"] .general-avatar-wrap>.avatar{width:100%;height:100%;min-width:0;min-height:0;font-size:clamp(7px,1vw,12px)}
.calendar-grid[data-density="fit"] .professional-avatar-wrap>.avatar svg,.general-timeline[data-density="fit"] .general-avatar-wrap>.avatar svg{width:65%;height:65%}
.calendar-grid[data-density="fit"] .professional-count-badge,.general-timeline[data-density="fit"] .general-professional-count{min-width:11px;height:12px;padding:0 1px;right:0;top:0;font-size:8px;border-width:1px;line-height:10px}
.calendar-grid[data-density="fit"] :is(.professional-label,.professional-name),.general-timeline[data-density="fit"] .general-professional-name{width:100%;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px}
.calendar-grid[data-density="fit"] :is(.appointment,.block-card,.external-appointment){left:1px;right:1px;min-width:0;padding-left:2px;padding-right:2px;border-left-width:2px}
.calendar-grid[data-density="fit"] .summary-trigger.on-calendar{display:none}
.calendar-grid[data-density="fit"] :is(.appointment-time,.appointment-cues,.external-time){min-width:0;overflow:hidden;white-space:nowrap}
.calendar-grid[data-density="fit"] :is(.appointment-end,.external-end){display:none}
.calendar-grid>.professional-column:last-child,.general-timeline>.general-professional-column:last-child{border-right:1px solid var(--border)}
.waiting-list-column,.waiting-list-heading{background-color:var(--surface-soft,#f7f5f9)}
.waiting-list-lane>.summary-trigger{display:none}
.waiting-list-choice{display:flex;align-items:flex-start;gap:10px;margin:14px 0;font-size:13px;line-height:1.5}
.waiting-list-choice input{width:20px;height:20px;flex:none;accent-color:var(--accent)}
.waiting-list-choice small{display:block;color:var(--muted);font-size:11px}.waiting-availability{margin:0 0 8px}
.professional-selects[hidden],.waiting-availability[hidden]{display:none!important}
/* Compact height has a service row; tiny cards retain the full label in their summary. */
.schedule-card .appointment.short-card:not(.tiny-card) .appointment-service,.schedule-card .general-short-event:not(.general-tiny-event) .general-event-body>.appointment-service,.schedule-card .period-week-event-short:not(.period-week-event-tiny)>.period-event.period-event-appointment>span.appointment-service{display:block;min-width:0;max-width:100%;font-size:9px;line-height:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none;margin:0}
.schedule-card .appointment.tiny-card .appointment-service{display:none}


/* AG27: summary selectors match the drawer's icon controls. */
.summary-appointment-fields :is(.summary-progress-editor,.summary-room-editor) .header-select-field{width:50px;max-width:100%}
.summary-appointment-fields :is(.summary-progress-editor,.summary-room-editor) .header-select{min-height:44px;max-width:100%}


/* AG27-05: membership indicator stays in client identification, never appointment cards. */
.client-prime-badge{display:inline-flex;vertical-align:middle;align-items:center;justify-content:center;margin-inline-start:5px;color:#997520;flex:none;line-height:1;}
.client-prime-badge svg{width:16px;height:16px;}
.client-prime-indicator{display:inline-flex;align-items:center;flex:none;}
.client-prime-indicator:empty{display:none;}

/* AG27-13: a confirmed closed day without records has one clear state. */
.agenda-closed-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:240px;padding:28px 18px;text-align:center;color:var(--muted);border:1px solid var(--border);border-radius:12px;background:var(--surface);box-sizing:border-box;min-width:0}
.agenda-closed-day h3{margin:0;color:var(--text);font-size:18px}
.agenda-closed-day p{display:grid;gap:5px;margin:0;line-height:1.4}
.agenda-closed-day p strong{color:var(--text)}
.agenda-closed-day p span{overflow-wrap:anywhere}
.agenda-closed-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--surface-soft)}
.agenda-closed-icon svg{width:24px;height:24px}
.general-calendar-scroll>.agenda-closed-day{min-height:180px;border:0;border-radius:0}
@media(max-width:600px){.agenda-closed-day{min-height:200px;padding:22px 14px}.agenda-closed-day h3{font-size:17px}}

/* AG27: keep the two hover selectors together at the left, with full-width feedback. */
.summary-appointment-fields.summary-inline-controls{grid-template-columns:50px minmax(0,1fr);column-gap:14px}
.summary-editor-feedback{min-width:0}
.summary-editor-feedback .field-hint{margin:0;line-height:1.5;overflow-wrap:anywhere}
.summary-editor-feedback .field-hint:empty{display:none}
.summary-editor-feedback .button:not([hidden]),.summary-editor-feedback .field-hint:not(:empty){margin-bottom:8px}


/* AG27: counters stay left; all display controls form one right-aligned group. */
.agenda-control-bar>.agenda-kpis{flex:0 0 auto;max-width:100%;margin-inline-end:auto}
.agenda-control-bar>.agenda-controls-group{display:flex;align-items:flex-end;justify-content:flex-end;flex-wrap:wrap;gap:8px;flex:1 1 0;min-width:0;max-width:100%;margin-inline-start:auto}
.agenda-controls-group>.filter-search{flex-grow:0}
.agenda-controls-group>.view-toggle{justify-content:flex-end;max-width:100%}
.agenda-controls-group>.agenda-expand-button{flex:none;margin-inline-start:0}
@media(max-width:760px){.agenda-control-bar>.agenda-controls-group{flex-basis:100%;margin-inline-start:0}.agenda-controls-group>.filter-search{flex-grow:1}}
/* AG27: one agenda toolbar, account-scoped display choices and responsive navigation. */
.app-shell:not(.auth-screen) .app-header{justify-content:flex-start;gap:12px}
.app-shell .app-header .header-right{margin-left:auto}
.brand .brand-mark{width:48px;height:48px;background:#7052a2;border-radius:12px;padding:6px;color:#fff;flex:none}
.brand-mark svg{width:100%;height:auto;stroke:none;fill:currentColor}
.brand{gap:9px;font-size:21px;padding-left:4px;padding-right:0}
.account-menu-panel{width:min(236px,calc(100vw - 24px));padding:14px;gap:12px}
.account-menu-panel .theme-control{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;font-size:12px}
.account-menu-panel .shell-select-trigger{min-width:0;max-width:none;width:100%;font-weight:400;font-size:12px}
.account-menu-panel .signed-in-account{min-width:0;max-width:100%;font-size:12px}
.account-menu-panel .signed-in-account>span{max-width:none;white-space:normal;overflow-wrap:anywhere;color:var(--text,#44394e)}
.agenda-unified-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;margin-bottom:12px;position:relative}
.agenda-toolbar-start,.agenda-toolbar-actions{display:flex;align-items:center;gap:8px;min-width:0}
.agenda-toolbar-start{flex:1 1 auto}.agenda-toolbar-actions{margin-left:auto;flex:none}
.agenda-toolbar-start .date-actions{flex-wrap:nowrap;gap:6px;width:auto;flex:none}
.agenda-toolbar-start .date-actions>div:first-child{flex:0 1 auto;margin:0}
.agenda-toolbar-start .agenda-date-navigation{min-width:0;gap:1px}
.agenda-toolbar-start .agenda-central-date{font-size:12px;font-weight:400;padding:8px;min-width:0;max-width:225px}
.agenda-toolbar-start .filter-search{width:145px;min-width:90px;min-height:40px;flex:0 1 145px;background:var(--surface,#fff)}
.agenda-toolbar-start .filter-search input{width:100%;min-width:0;font-size:12px;color:var(--text,#44394e)}
.agenda-toolbar-actions>.button,.agenda-filters-toggle{min-height:40px;padding:8px 10px;font-size:11px}
.agenda-toolbar-general,.agenda-toolbar-actions>.agenda-expand-button{width:40px;min-width:40px;padding:8px}
.agenda-legend-counts{flex:0 0 auto;flex-wrap:nowrap;gap:12px;padding:3px 0;min-height:22px}
.agenda-legend-counts .stat{flex-wrap:nowrap;white-space:nowrap;font-size:11px;color:var(--text,#44394e)}
.agenda-legend-counts .stat strong{color:inherit}
.agenda-legend-counts .stat svg{display:inline-block;width:15px;height:15px;color:var(--accent)}
.mobile-action-label,.agenda-mobile-general{display:none}
.agenda-filters-panel{position:fixed;z-index:80;overflow:auto;overscroll-behavior:contain;border:1px solid var(--border);border-radius:12px;padding:16px;background:var(--surface,#fff);color:var(--text,#44394e);box-shadow:0 12px 40px #23152c26}
.agenda-filters-panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.agenda-filters-panel h2{font-size:15px;font-weight:600;letter-spacing:0}
.agenda-filters-panel .icon-button{min-width:40px;min-height:40px}
.agenda-filter-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.agenda-filter-fields>label{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:5px;min-width:0;max-width:none;font-size:12px;font-weight:400;color:inherit}
.agenda-filter-fields select,.agenda-filter-fields .agenda-select-trigger{width:100%;min-width:0;max-width:none;min-height:44px;font-size:13px;font-weight:400}
.agenda-filters-panel .view-toggle{display:flex;flex-wrap:wrap;margin-top:15px;gap:4px;background:var(--surface-soft,#f7f5f9)}
.agenda-filters-panel .view-toggle button{flex:1 1 auto;min-height:40px;padding:6px 8px;color:var(--text,#44394e);font-weight:400;font-size:12px}
.agenda-filters-panel .view-toggle .selected{outline:1px solid var(--accent);outline-offset:-1px}
.agenda-filters-panel>.button{width:100%;margin-top:12px;min-height:44px}
.agenda-unified-toolbar .agenda-select-trigger,.agenda-select-list .agenda-select-option,.account-menu .agenda-select-trigger{font-weight:400}
.appointment-color-legend-items i{border-radius:50%;border:0;box-shadow:none}
.therapist-appointment-detail .review-heading{padding:0 0 18px;gap:8px}
.therapist-appointment-detail .review-heading h3{font-size:21px;font-weight:600;overflow-wrap:anywhere}
.therapist-appointment-detail .review-heading p{font-size:14px;line-height:1.6;color:var(--text,#44394e)}
.therapist-appointment-detail .appointment-review-data{margin:0;padding:0}
.therapist-appointment-detail .review-row{padding:14px 0}
@media(min-width:761px){
 .app-shell:not(.auth-screen){--sidebar:222px}
 .app-shell:not(.auth-screen) .sidebar{width:var(--sidebar);transform:none;z-index:5;padding:28px 17px 22px}
 .app-shell:not(.auth-screen) .workspace{margin-left:var(--sidebar);width:calc(100% - var(--sidebar))}
 .app-shell.sidebar-collapsed{--sidebar:72px}
 .app-shell.sidebar-collapsed .sidebar{padding:28px 8px 18px}
 .app-shell.sidebar-collapsed .brand{padding:0;justify-content:center;margin-bottom:30px}
 .app-shell.sidebar-collapsed .brand-mark{width:48px;height:48px}
 .app-shell.sidebar-collapsed .brand>span:last-child,.app-shell.sidebar-collapsed .workspace-label,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .pilot-card,.app-shell.sidebar-collapsed #demo-profile,.app-shell.sidebar-collapsed .nav-item.active:after{display:none}
 .app-shell.sidebar-collapsed .sidebar .nav-item{justify-content:center;padding:13px 0;min-height:46px}
 .app-shell.sidebar-collapsed .nav-item svg{width:21px;height:21px}
}
@media(max-width:760px){
 .app-shell:not(.auth-screen) .workspace{margin-left:0;width:100%}
 .app-shell:not(.auth-screen) .sidebar{width:min(260px,calc(100vw - 48px));transform:translateX(-100%);transition:transform .16s ease;z-index:60;padding:24px 18px;overflow-y:auto}
 .app-shell.sidebar-menu-open .sidebar{transform:translateX(0)}
 .app-shell .sidebar .brand{justify-content:flex-start;margin-bottom:30px}
 .app-shell .sidebar .brand>span:last-child,.app-shell .sidebar .nav-label{display:inline}
 .app-shell .sidebar .workspace-label,.app-shell .sidebar .profile-label,.app-shell .sidebar .profile-hint{display:block}
 .app-shell .sidebar .pilot-card{display:flex}
 .app-shell .sidebar .nav-item{justify-content:flex-start;padding:12px 15px;min-height:46px}
 .app-shell .sidebar select{font-size:14px;height:44px}
 .app-shell:not(.auth-screen) .app-header{gap:6px;padding:8px 12px}
 .app-shell #app-heading{flex:1 1 auto;min-width:0;overflow:hidden}.app-shell #page-title{max-width:100%;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .app-shell .header-right{gap:7px;flex:0 1 auto}
 .app-shell .app-header #unit-control>.shell-select-trigger{max-width:150px;min-width:0;font-size:12px;padding:8px}
 .therapist-topbar{gap:0}.therapist-topbar .icon-button{width:36px;height:40px}.therapist-topbar svg{width:20px;height:20px}
 .agenda-unified-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:8px 6px;margin-bottom:10px}
 .agenda-toolbar-start,.agenda-toolbar-actions{display:contents}
 .agenda-toolbar-start .date-actions{grid-column:1/4;grid-row:1;gap:4px;max-width:100%;width:auto;flex-wrap:nowrap}
 .agenda-toolbar-start .agenda-date-navigation{flex:1 1 auto!important;min-width:0;max-width:100%}
 .agenda-toolbar-start .agenda-central-date{font-size:12px;padding:8px 5px;max-width:none;min-height:42px;overflow:hidden}
 .agenda-toolbar-start .agenda-date-navigation .icon-button{width:25px;min-width:25px;height:42px}
 .agenda-toolbar-start .date-actions>[data-action=today]{min-width:43px;min-height:42px;padding:8px 7px;font-size:12px}
 .agenda-toolbar-actions>.agenda-expand-button{grid-column:4;grid-row:1;width:40px;height:42px;min-width:0}
 .agenda-toolbar-start .filter-search{grid-column:1;grid-row:2;width:auto;min-width:0;min-height:44px;padding:6px 7px}
 .agenda-toolbar-start .filter-search input{font-size:16px}
 .agenda-toolbar-new{grid-column:2;grid-row:2}.agenda-toolbar-block{grid-column:3;grid-row:2}
 .agenda-filter-menu{grid-column:4;grid-row:2}
 .agenda-toolbar-actions .agenda-toolbar-new{min-height:44px;gap:4px;padding:8px}
 .agenda-toolbar-actions .agenda-toolbar-block,.agenda-filters-toggle{width:40px;min-height:44px;padding:8px}
 .desktop-action-label,.agenda-toolbar-block>span,.filter-button-label,.agenda-toolbar-general{display:none}
 .mobile-action-label{display:inline}.agenda-mobile-general{display:inline-flex}
 .agenda-legend-counts{gap:10px}
 .agenda-legend-counts .stat{gap:4px}
 .agenda-therapist-toolbar{grid-template-columns:minmax(0,1fr) 40px 40px;column-gap:4px}
 .agenda-therapist-toolbar .agenda-toolbar-start .date-actions{grid-column:1;grid-row:1;min-width:0}
 .agenda-therapist-toolbar .agenda-toolbar-start .agenda-central-date{min-width:0;padding-inline:4px;gap:4px}
 .agenda-therapist-toolbar .agenda-toolbar-start .date-picker{flex:1 1 auto}
 .agenda-therapist-toolbar .agenda-toolbar-actions>.agenda-toolbar-block{grid-column:2;grid-row:1;width:40px;padding:8px}
 .agenda-therapist-toolbar .agenda-filter-menu{grid-column:3;grid-row:1}
 .agenda-therapist-toolbar .agenda-toolbar-block>span{display:none}
 .agenda-unified-toolbar:has(.agenda-toolbar-general[aria-pressed=true]) .filter-search{grid-column:1/4}
 .agenda-filters-panel{padding:14px}
 .agenda-filter-fields select,.agenda-filter-fields .agenda-select-trigger{font-size:16px}
 .account-menu-panel .theme-control{font-size:12px}
 .agenda-summary{width:min(340px,calc(100vw - 24px));padding:18px}
}

/* Values in all shared selectors remain regular; field labels keep their emphasis. */
body .agenda-select-trigger,body .agenda-select-option,body select,body select option{font-weight:400}
@media(max-width:360px){.app-shell #page-title{font-size:16px}.app-shell .app-header #unit-control>.shell-select-trigger{max-width:130px}}

/* Unit order is edited only in the collaborator registry. */
.professional-order-list{list-style:none;margin:16px 0;padding:0;display:grid;gap:8px}
.professional-order-row{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--border);border-radius:10px}
.professional-order-row strong{min-width:0;flex:1;overflow-wrap:anywhere}
.professional-order-position{min-width:2ch;text-align:center;color:var(--muted)}
.professional-order-moves{display:flex;flex:none;gap:4px}
.professional-order-moves .button{min-width:44px;min-height:44px;font-size:20px;padding:6px}

/* AG28-18: sorting changes the list only, never the order saved for the Agenda. */
.collaborator-list{min-width:0}
.collaborator-table-head,.collaborator-list .collaborator-card{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:center}
.collaborator-table-head{padding:0 16px 8px;border-bottom:1px solid var(--border)}
.collaborator-sort-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--text);text-align:left;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.collaborator-sort-heading:focus-visible{outline:2px solid var(--accent,#795695);outline-offset:3px;border-radius:4px}
.collaborator-sort-heading span{font-size:17px}
.collaborator-list .collaborator-card{margin-top:10px}
.collaborator-name-cell{display:flex;align-items:center;gap:10px;min-width:0}
.collaborator-name-cell .collaborator-profile-open{flex:none}
.collaborator-role-cell,.collaborator-units-cell{min-width:0}
.collaborator-list .collaborator-unit-tags{justify-content:flex-start}
.collaborator-list .collaborator-unit-tags .chip{text-align:left}
.collaborator-list .collaborator-card p{margin:0}
.collaborator-cell-label,.collaborator-mobile-sort{display:none}
.collaborator-list-count{margin:16px 0}
@media(max-width:700px){
 .collaborator-table-head{display:none}
 .collaborator-list .collaborator-card{grid-template-columns:minmax(0,1fr);gap:14px;padding:16px}
 .collaborator-cell-label{display:block;margin-bottom:5px;font-size:12px;font-weight:600;color:var(--text)}
 .collaborator-mobile-sort{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:18px}
 .collaborator-mobile-sort .field{min-width:0;flex:1;margin:0}
 .collaborator-mobile-sort select,.collaborator-mobile-sort .button{min-height:44px}
 .collaborator-mobile-sort .button{flex:none}
}

/* Individual collaborator access management. */
.collaborator-heading-actions,.staff-access-toolbar,.staff-access-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.staff-access-toolbar{margin:16px 0}.staff-access-actions .button,.staff-access-toolbar .button{min-height:44px}
.staff-access-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:18px 0;border-bottom:1px solid var(--line,#d9d2df)}
.staff-access-card h3{margin:0 0 6px}.staff-access-card p{margin:4px 0;overflow-wrap:anywhere}.staff-access-card .chip{margin-top:8px}
.staff-access-actions{justify-content:flex-end;align-content:center;max-width:280px}.staff-access-units{margin:18px 0;padding:12px;border:1px solid var(--line,#d9d2df);border-radius:12px}
.staff-access-units legend{padding:0 6px;font-weight:650}.staff-access-units label{display:flex;align-items:center;gap:10px;min-height:44px}
.staff-access-units input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:0}.staff-access-units .field-hint{margin-bottom:0}
[data-staff-link] input{width:100%;min-width:0;min-height:44px}[data-staff-link] .button{min-height:44px}
@media(max-width:640px){.staff-access-card{grid-template-columns:minmax(0,1fr)}.staff-access-actions{max-width:none;justify-content:flex-start}.staff-access-actions .button{flex:1 1 120px}.collaborator-heading-actions{justify-content:flex-start}.staff-access-toolbar .button{flex:1 1 180px}}

/* AG30-04: an appointment summary rises from the mobile viewport edge. */
.agenda-summary.summary-mobile-sheet{box-sizing:border-box;height:auto;border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0;padding:0 max(20px,env(safe-area-inset-right,0px)) max(20px,env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.summary-mobile-sheet:not([hidden]){animation:agenda-summary-rise 220ms cubic-bezier(.2,.7,.2,1)}
.summary-mobile-sheet>.summary-header{position:sticky;top:0;z-index:2;background:var(--surface,#fff);padding:20px 0 16px;margin-bottom:0}
.summary-mobile-sheet>.summary-header .icon-button{width:44px;height:44px;min-width:44px;min-height:44px}
@keyframes agenda-summary-rise{from{transform:translateY(100%)}to{transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.summary-mobile-sheet:not([hidden]){animation:none}}

/* AG30-05: only anonymous occupancy intervals, independent from appointments. */
.therapist-shell .calendar-grid.therapist-waiting-grid{grid-template-columns:61px 48px minmax(0,1fr);min-width:0;width:100%}
.therapist-shell .calendar-grid.therapist-waiting-only{grid-template-columns:61px 48px}
.anonymous-waiting-heading{justify-content:center!important;padding:4px!important;font-size:11px;min-width:0;overflow:hidden}
.anonymous-waiting-column{min-width:0;cursor:default}
.anonymous-waiting-lane{position:absolute;top:0;bottom:0;pointer-events:none}
.anonymous-waiting-card{position:absolute;left:2px;right:2px;border:1px solid #8b75a9;border-radius:4px;background:#ddd3ec;pointer-events:none}
[data-theme="dark"] .anonymous-waiting-card{background:#574767;border-color:#ac92c9}

/* D32 daily cash book. All controls remain scoped to the financial workspace. */
.cash-book{display:grid;gap:20px;min-width:0}.cash-book-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.cash-book-heading h3{margin:0;font-size:18px}.cash-book-heading p{margin:6px 0 0;font-size:12px;color:var(--text-secondary)}
.cash-book-state{border:1px solid var(--border);border-radius:999px;padding:7px 12px;font-size:12px;background:var(--surface);white-space:nowrap}.cash-book-state[data-state="open"]{background:var(--accent-soft,#f3edf9);color:var(--accent,#7052a2)}
.cash-book-note{border:1px solid var(--border);border-radius:10px;padding:14px 16px;line-height:1.6;font-size:13px;background:var(--surface)}.cash-book-note strong{display:block;margin-bottom:4px}.cash-book-note p{margin:0}.cash-book-warning{border-left:4px solid #af792a}.cash-book .finance-workspace-metrics{margin:0}.cash-book .finance-workspace-metrics strong{overflow-wrap:anywhere}
.cash-book-actions{display:flex;flex-wrap:wrap;gap:8px}.cash-book-actions .button{min-height:44px}.cash-book-section{padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface);min-width:0}.cash-book-section>h4{margin:0 0 6px;font-size:15px}.cash-book-section>p{margin:0 0 16px;color:var(--text-secondary);font-size:12px;line-height:1.6}.cash-book-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px}.cash-book-method{display:grid;gap:7px;border:1px solid var(--border);border-radius:9px;padding:13px;font-size:12px;min-width:0}.cash-book-method>strong{font-size:16px;font-variant-numeric:tabular-nums}.cash-book-method small{line-height:1.5}
.cash-book-history{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}.cash-book-history li{padding:14px;border:1px solid var(--border);border-radius:9px;min-width:0;display:grid;gap:8px;font-size:13px}.cash-book-history header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.cash-book-history header strong:last-child{font-variant-numeric:tabular-nums}.cash-book-history p{margin:0;line-height:1.5}.cash-book-history small{display:block;overflow-wrap:anywhere}.cash-book-history .button{justify-self:start}
.cash-book-close-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0 0}.cash-book-close-summary>div{padding:12px;border:1px solid var(--border);border-radius:8px;min-width:0}.cash-book-close-summary dt{font-size:12px;color:var(--text-secondary)}.cash-book-close-summary dd{margin:6px 0 0;font-size:18px;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.cash-book-form .field-hint{font-size:12px;line-height:1.6}.cash-book-form .reason-active{align-items:start;gap:10px;line-height:1.6}.cash-book-form input[type="checkbox"]{margin-top:4px;flex:0 0 18px}.cash-book-form [data-cash-close-preview]{font-size:13px;padding:12px;border:1px solid var(--border);border-radius:8px}
@media(max-width:600px){.cash-book{gap:16px}.cash-book-section{padding:13px}.cash-book-heading h3{font-size:17px}.cash-book-actions .button{flex:1 1 135px}.cash-book-methods{grid-template-columns:1fr}.cash-book-history li{padding:12px}.cash-book-close-summary{grid-template-columns:1fr}.cash-book-form input,.cash-book-form select,.cash-book-form textarea{font-size:16px;min-height:44px}.cash-book-history .button{width:100%}}
/* Read-only administrative commission review. */
.commission-review-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;margin:0 0 20px;border:1px solid var(--border,#e4dff0);border-radius:12px;background:var(--surface,#fff)}
.commission-review-entry h3,.commission-review-entry p{margin:0 0 6px}.commission-review-entry .button{flex-shrink:0}
.commission-review{display:grid;gap:22px;min-width:0}.commission-review h3,.commission-review h4{margin:0 0 10px}.commission-review p{line-height:1.6}.commission-review section{min-width:0}.commission-review-banner strong{display:block;margin-bottom:5px}.commission-review-source,.commission-review-coverage{padding:16px;border:1px solid var(--border,#e4dff0);border-radius:12px;background:var(--surface,#fff)}
.commission-review-source input[type=file]{display:block;max-width:100%;width:100%;font:inherit;margin-top:8px}.commission-review-controls{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.commission-review-person{display:grid;gap:5px;width:100%;text-align:left;padding:14px;margin:8px 0;border:1px solid var(--border,#e4dff0);border-radius:10px;background:var(--surface,#fff);color:inherit;font:inherit;cursor:pointer}.commission-review-person[aria-pressed=true]{border-color:var(--primary,#7554a5);box-shadow:inset 3px 0 var(--primary,#7554a5)}.commission-review-person small,.commission-review-person span{font-size:12px;color:var(--muted,#726b80)}
.commission-review-detail{display:grid;gap:22px;outline:none}.commission-review-detail>section{padding-top:18px;border-top:1px solid var(--border,#e4dff0)}.commission-review-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.commission-review-metrics article{padding:13px;border:1px solid var(--border,#e4dff0);border-radius:10px;display:grid;align-content:start;gap:8px;min-width:0}.commission-review-metrics span,.commission-review-metrics small{font-size:12px;line-height:1.5}.commission-review-metrics strong{font-size:19px}.commission-review-pendencies{padding-left:20px;line-height:1.65;font-size:13px}.commission-review-pendencies li+li{margin-top:6px}.commission-review details{margin-top:15px;font-size:13px}.commission-review summary{cursor:pointer;color:var(--primary,#7554a5)}.commission-review :is(p,small,dd,strong,span){overflow-wrap:anywhere}
@media(max-width:600px){.commission-review-entry{display:grid}.commission-review-entry .button{justify-self:start}.commission-review-metrics{grid-template-columns:minmax(0,1fr)}.commission-review-controls{display:grid}.commission-review-source,.commission-review-coverage{padding:13px}.commission-review .client-card-data{grid-template-columns:minmax(0,1fr)}}
/* Dedicated administrative catalogs keep their own unit filter and permissions. */
.administrative-tabs,.administrative-method-tabs{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin:18px 0}.administrative-tabs .button[aria-pressed=true],.administrative-method-tabs .button[aria-pressed=true]{background:var(--accent,#7052a2);border-color:var(--accent,#7052a2);color:#fff}.administrative-legacy{margin-bottom:18px}.administrative-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:16px;background:var(--surface,#fff);border:1px solid var(--border,#e6e0ee);border-radius:12px;margin:0 0 16px}.administrative-filters label{display:grid;gap:7px;min-width:240px;max-width:100%}.administrative-filters select,.administrative-rules-form select,.administrative-rule select{width:100%;min-width:0;max-width:100%;border:1px solid var(--border,#ded7e9);border-radius:8px;min-height:44px;padding:9px;background:var(--surface,#fff);color:inherit;font:inherit}.administrative-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0}.administrative-heading .button{flex-shrink:0}.administrative-heading h3,.administrative-heading p{margin:0 0 8px}.administrative-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.administrative-row{display:grid;align-content:start;gap:12px;padding:17px;background:var(--surface,#fff);border:1px solid var(--border,#e6e0ee);border-radius:12px;min-width:0}.administrative-row header{display:flex;justify-content:space-between;align-items:start;gap:10px}.administrative-row header>div{min-width:0}.administrative-row small{display:block;font-size:12px;margin-top:6px;color:var(--text-muted,#8c839a)}.administrative-row dl{display:grid;gap:10px;margin:0}.administrative-row dt{font-size:12px;color:var(--text-muted,#8c839a)}.administrative-row dd{margin:4px 0 0;font-size:14px}.administrative-row .button{justify-self:start}.administrative-row .chip{flex-shrink:0}.administrative-workspace :is(strong,small,p,dd){overflow-wrap:anywhere}.administrative-workspace #administrative-status{margin:14px 0;font-size:13px;color:var(--text-muted,#8c839a)}.administrative-workspace h3{margin-top:12px}.administrative-rule{min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:15px;margin:16px 0;border:1px solid var(--border,#ded7e9);border-radius:12px}.administrative-rule legend{font-weight:600;padding:0 5px;overflow-wrap:anywhere;max-width:100%}.administrative-rule .field{min-width:0}.administrative-rule select{font-size:13px}.administrative-exceptions,.administrative-initialization-list{padding-left:20px;line-height:1.7;overflow-wrap:anywhere}.administrative-exceptions li+li{margin-top:8px}
@media(max-width:1000px){.administrative-rows{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.administrative-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.administrative-tabs .button{white-space:normal;min-width:0}.administrative-method-tabs{display:grid;grid-template-columns:minmax(0,1fr)}.administrative-filters{display:grid;grid-template-columns:minmax(0,1fr)}.administrative-filters label{min-width:0}.administrative-filters select{font-size:16px}.administrative-heading{display:grid}.administrative-heading .button{justify-self:start}.administrative-rows{grid-template-columns:minmax(0,1fr)}.administrative-rule{grid-template-columns:minmax(0,1fr)}.administrative-rule select{font-size:16px}}
.commission-method-suggestions{margin:16px 0;padding:14px;background:var(--surface-alt,#f8f8fb);border:1px solid var(--border,#e7e7ef);border-radius:12px}
.commission-method-suggestions h5{margin:0 0 10px;font-size:14px}
.commission-method-suggestions ul{list-style:none;margin:0;padding:0}
.commission-method-suggestions li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:8px 0;flex-wrap:wrap}
.commission-method-suggestions li span{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}
.commission-method-suggestions small{color:var(--muted,#6c6a7a)}
.professional-registry-list{display:grid;gap:14px}.professional-registry-card{padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface,#fff);display:grid;gap:14px}.registry-person{display:flex;gap:14px;align-items:center;min-width:0}.registry-person>div{min-width:0}.registry-person h3,.registry-person p{margin:0 0 6px;overflow-wrap:anywhere}.registry-card-actions{display:flex;gap:8px;flex-wrap:wrap}.registry-unit-options,.registry-fieldset,.service-commission-policy{padding:16px;border:1px solid var(--border);border-radius:12px;margin:16px 0;min-width:0}.registry-unit-options legend,.registry-fieldset legend,.service-commission-policy legend{font-weight:650;padding:0 6px}.registry-unit-options>label{display:flex;gap:10px;align-items:flex-start;margin:10px 0}.registry-unit-options input[type=checkbox]{flex:none;margin-top:3px}.registry-contract-list{list-style:none;padding:0;margin:18px 0;display:grid;gap:10px}.registry-contract-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;border:1px solid var(--border);border-radius:10px}.registry-contract-list span{display:grid;gap:4px;min-width:0;overflow-wrap:anywhere}.registry-contract-list small{color:var(--muted)}.course-management-list{display:grid;gap:26px}.course-unit-section{border-top:1px solid var(--border);padding-top:18px}.course-financial-card{border:1px solid var(--border);background:var(--surface,#fff);padding:18px;border-radius:12px;margin:14px 0}.course-financial-card h4{margin:0 0 14px}.course-financial-card dl{display:grid;gap:10px;margin:0 0 14px}.course-financial-card dl div{display:flex;justify-content:space-between;gap:16px}.course-financial-card dt{color:var(--muted)}.course-financial-card dd{font-weight:650;margin:0;text-align:right}.professional-service-warning-dialog{width:min(520px,calc(100vw - 24px));padding:24px;border:1px solid var(--border);border-radius:16px;background:var(--surface,#fff);color:var(--text,#30293a)}.professional-service-warning-dialog::backdrop{background:#251a3d77;backdrop-filter:blur(3px)}.professional-service-warning-dialog h2{font-size:21px;line-height:1.35;margin:0 0 14px}.professional-service-warning-dialog p,.professional-service-warning-dialog li{line-height:1.6}.professional-service-warning-dialog .dialog-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:18px}
@media(max-width:600px){.registry-card-actions>.button{flex:1 1 140px}.course-financial-card dl div{display:block}.course-financial-card dd{text-align:left;margin-top:4px}.registry-unit-options,.registry-fieldset,.service-commission-policy{padding:12px}.registry-person .avatar{flex:none}.professional-service-warning-dialog{padding:20px}.professional-service-warning-dialog .dialog-actions>.button{flex:1}}
.course-unit-section .administrative-row>div{display:grid;gap:6px;min-width:0}.course-unit-section .administrative-row strong,.course-unit-section .administrative-row span,.course-unit-section .administrative-row small{display:block;overflow-wrap:anywhere}

/* Financial pages: filters remain usable on small screens. */
.finance-workspace-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:12px}
.finance-workspace-filters .financial-search{grid-column:span 2}.finance-workspace-filters p{grid-column:1/-1}
.financial-signed[data-direction="out"]{color:#a13d48}.financial-signed[data-direction="in"]{color:#296c58}
.finance-workspace-row small{overflow-wrap:anywhere}.finance-workspace-tabs{flex-wrap:wrap}
@media(max-width:560px){.finance-workspace-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-workspace-filters label,.finance-workspace-filters input,.finance-workspace-filters select{min-width:0;width:100%}.finance-workspace-filters .financial-search,.finance-workspace-filters>button{grid-column:1/-1}.finance-workspace-row dl{grid-template-columns:repeat(2,minmax(0,1fr))}.finance-workspace .section-heading{align-items:flex-start;gap:12px;flex-wrap:wrap}.finance-workspace-row header{gap:12px;flex-wrap:wrap}}

.finance-workspace-filters select{width:100%;min-width:0;min-height:44px;padding:9px;border:1px solid var(--border,#ded7e9);border-radius:8px;background:var(--surface,#fff);color:inherit;font:inherit}
@media(max-width:560px){.finance-workspace>.finance-workspace-metrics,.finance-workspace #finance-workspace-results>.finance-workspace-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

.professional-financial-book{display:grid;gap:18px;min-width:0}.professional-financial-list{display:grid;gap:14px}.professional-financial-book .finance-buttons{display:flex;flex-wrap:wrap;gap:8px}.professional-financial-book .finance-workspace-row :is(p,strong,span){overflow-wrap:anywhere}

/* Dedicated cash register page: grouped days and an accessible detail view. */
.cash-day-group{border:1px solid var(--border,#e5e0ed);border-radius:16px;margin:20px 0;background:var(--surface,#fff);overflow:hidden}
.cash-day-group>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;background:var(--surface-muted,#f8f6fb)}
.cash-day-group h3{margin:0 0 4px;font-size:1.05rem}.cash-day-group>header span{font-size:.83rem}.cash-day-states{display:flex;flex-wrap:wrap;gap:8px}
.cash-day-totals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;padding:18px 20px;margin:0;border-bottom:1px solid var(--border,#e5e0ed)}
.cash-day-totals dt{font-size:.78rem;opacity:.76}.cash-day-totals dd{font-size:.95rem;font-weight:650;margin:7px 0 0;font-variant-numeric:tabular-nums}
.cash-table-wrap{overflow:auto}.cash-days-table{width:100%;border-collapse:collapse;text-align:left;font-size:.85rem}.cash-days-table th,.cash-days-table td{padding:15px 14px;border-bottom:1px solid var(--border,#e5e0ed);white-space:nowrap}.cash-days-table thead{font-size:.76rem;opacity:.75}.cash-days-table td small{display:block;margin-top:5px;font-size:.73rem}.cash-days-table tbody tr:last-child>*{border-bottom:0}
.cash-detail-page>.cash-book{max-width:none}.cash-detail-page[data-pane="summary"] .cash-book-section:has(>.cash-book-history){display:none}.cash-detail-page[data-pane="detailed"] .cash-book>.finance-workspace-metrics,.cash-detail-page[data-pane="detailed"] .cash-book>.cash-book-section:not(:has(>.cash-book-history)){display:none}
@media(max-width:800px){.cash-day-totals{grid-template-columns:repeat(3,minmax(0,1fr))}.cash-day-group>header{align-items:flex-start;flex-direction:column}.cash-day-group{border-radius:12px}.cash-day-totals,.cash-day-group>header{padding:14px}.cash-days-table th,.cash-days-table td{padding:12px}.cash-detail-page .section-heading{align-items:flex-start}}

.cash-detail-page[data-pane="summary"]>.cash-detail-movements{display:none}.cash-detail-movements{margin-top:24px}.cash-detail-movements h3{margin-bottom:12px}.cash-detail-movements .finance-workspace-row{margin-top:12px}

.gift-voucher-page form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;background:#fff;padding:22px;border:1px solid var(--border);border-radius:14px}.gift-voucher-page form>h3,.gift-voucher-page form>p{grid-column:1/-1}.gift-voucher-page form label{display:flex;flex-direction:column;gap:8px}.gift-voucher-page input:not([type="checkbox"]),.gift-voucher-page select{padding:12px;border:1px solid var(--border);border-radius:8px;background:#fff;width:100%;min-width:0}.gift-voucher-page form label:has(input[type="checkbox"]){flex-direction:row;align-items:flex-start}.gift-voucher-preview{padding:22px;border:1px solid var(--border);border-radius:14px;background:#fff;margin-top:20px}.gift-voucher-preview dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.gift-voucher-preview dt{color:var(--muted);font-size:12px}.gift-voucher-preview dd{margin:5px 0 0}.gift-voucher-preview p{margin:12px 0;line-height:1.5}@media(max-width:600px){.gift-voucher-page form,.gift-voucher-preview dl{grid-template-columns:1fr}.gift-voucher-page form{padding:16px}}

.gift-personalization{grid-column:1/-1;display:grid;gap:12px;border:1px solid var(--line,#ddd);border-radius:14px;padding:16px;margin:12px 0}.gift-personalization legend{font-weight:700;padding:0 6px}.gift-plan-result{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start;margin:24px 0}.gift-card-preview{padding:36px 28px;border-radius:24px;text-align:center;background:linear-gradient(145deg,#302445,#634482);color:#fff;box-shadow:0 12px 32px #30244520}.gift-card-preview h3{font-size:26px;line-height:1.25;margin:24px 0}.gift-card-preview h4{font-size:21px;margin:22px 0 8px}.gift-card-label{font-size:11px;letter-spacing:2px}.gift-recipient{font-size:18px}.gift-message{padding:18px 0;border-top:1px solid #ffffff40;border-bottom:1px solid #ffffff40;overflow-wrap:anywhere}.gift-card-preview small{display:block;margin-top:22px;line-height:1.5}.gift-plan-result .gift-voucher-preview{margin:0}@media(max-width:800px){.gift-plan-result{grid-template-columns:1fr}.gift-card-preview{padding:28px 20px}}

.gift-card-preview small{color:#fff;opacity:1;font-size:13px}
.commission-batch-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--border);margin-bottom:16px}
.commission-batch-toolbar>p{flex-basis:100%}.commission-batch-toolbar label,.commission-batch-select{display:flex;align-items:center;gap:8px}.commission-batch-select{margin-bottom:14px;color:var(--accent);font-weight:600}
.commission-batch-select input,.commission-batch-toolbar input{width:18px;height:18px;accent-color:var(--accent)}
.commission-batch-item{padding:18px 0;border-bottom:1px solid var(--border);display:grid;gap:12px}.commission-batch-item header{display:flex;justify-content:space-between;align-items:start;gap:12px}.commission-batch-item h3,.commission-batch-item h4{font-size:15px;margin:0}
.commission-batch-fields,.commission-batch-payment{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.commission-batch-payment{grid-template-columns:minmax(0,1fr) minmax(100px,.6fr) auto;margin:12px 0}.commission-batch-payment .field,.commission-batch-fields .field{margin:0;min-width:0}
.commission-batch-payment input,.commission-batch-payment select,.commission-batch-fields input{width:100%;min-width:0}.commission-batch-item>.button{justify-self:start}.commission-batch-review>h3,.commission-payment-totals>h3{margin:18px 0 10px;font-size:16px}.commission-batch-review ul{padding-left:20px;line-height:1.8}
.commission-method-table{overflow-x:auto}.commission-method-table table{width:100%;border-collapse:collapse;margin:16px 0}.commission-method-table th,.commission-method-table td{padding:12px;text-align:right;border-bottom:1px solid var(--border);white-space:nowrap}.commission-method-table th:first-child{text-align:left}.commission-method-table th small{display:block;color:var(--muted);font-weight:400}.commission-payment-totals{margin:20px 0;padding:18px;border:1px solid var(--border);border-radius:12px}
@media(max-width:600px){.commission-batch-fields{grid-template-columns:1fr}.commission-batch-payment{grid-template-columns:minmax(0,1fr) minmax(90px,.7fr)}.commission-batch-payment>.button{grid-column:1/-1;justify-self:start}.commission-batch-toolbar>.button{width:100%}}
