:root{--blue:#0068b8;--deep:#073c70;--peach:#ffa363;--soft:#eef7fd;--line:#d7e5ef;--ink:#083e70;--muted:#607b92;--danger:#b63d32}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;font-family:Manrope,Arial,sans-serif;color:var(--ink);background:#f4f8fb}
button,input,select{font:inherit}
.auth-shell{width:min(480px,calc(100% - 32px));margin:7vh auto;padding:38px;background:white;border:1px solid var(--line);border-radius:26px;box-shadow:0 22px 70px rgba(7,60,112,.12)}
.auth-shell>img{display:block;width:210px;max-height:82px;object-fit:contain;margin:0 auto 28px}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--blue);font-size:.72rem;font-weight:800}
.auth-shell h1,.page-header h1{margin:8px 0 10px;line-height:1.12;letter-spacing:-.035em}
.auth-shell p{color:var(--muted);line-height:1.6}
.auth-form{display:grid;gap:15px;margin-top:24px}
.auth-form label,.form-grid label,.password-dialog label{display:grid;gap:7px;font-size:.8rem;font-weight:800}
.auth-form input,.form-grid input,.form-grid select,.password-dialog input,.toolbar input{width:100%;border:1px solid #bdd3e2;border-radius:11px;padding:13px 14px;background:white;color:var(--ink);outline:none}
.auth-form input:focus,.form-grid input:focus,.form-grid select:focus,.toolbar input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(0,104,184,.1)}
button{border:0;border-radius:11px;padding:12px 17px;background:var(--blue);color:white;font-weight:800;cursor:pointer}
.auth-form small,.form-grid small,.password-dialog small{color:var(--muted);font-size:.72rem;line-height:1.5}
.form-error{min-height:20px;margin:0;color:var(--danger)!important;font-size:.78rem}
.back-site{display:block;text-align:center;margin-top:22px;color:var(--blue);font-size:.8rem;font-weight:700;text-decoration:none}
.app{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:250px;padding:25px 20px;display:flex;flex-direction:column;background:white;border-right:1px solid var(--line)}
.sidebar>img{width:190px;max-height:75px;object-fit:contain;margin-bottom:35px}
.sidebar nav{display:grid;gap:7px}
.nav-button{background:transparent;color:var(--ink);text-align:left}
.nav-button.active{background:var(--soft);color:var(--blue)}
.account{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:4px}
.account span{color:var(--muted);font-size:.75rem}
.account button{margin-top:10px;background:transparent;border:1px solid var(--line);color:var(--blue)}
.workspace{margin-left:250px;padding:42px;max-width:1500px}
.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}
.page-header h1{font-size:clamp(2rem,4vw,3.4rem)}
.page-intro{margin:7px 0 0;color:var(--muted);line-height:1.5}
.outline{background:white;color:var(--blue);border:1px solid var(--blue)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}
.stats article{padding:20px;background:white;border:1px solid var(--line);border-radius:17px}
.stats span{display:block;color:var(--muted);font-size:.76rem;font-weight:700}
.stats strong{display:block;font-size:2rem;margin-top:7px}
.stats .attention{border-top:4px solid var(--peach)}
.toolbar{display:grid;grid-template-columns:auto minmax(200px,440px) auto;align-items:center;gap:10px;margin:20px 0}
.toolbar label{font-size:.8rem;font-weight:800}
.table-card,.card{background:white;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.table-card{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:15px;text-align:left;border-bottom:1px solid #e7eef3;font-size:.78rem}
th{background:#f6fafc;color:#56748c;text-transform:uppercase;letter-spacing:.05em;font-size:.67rem}
tbody tr{cursor:pointer}
tbody tr:hover{background:#f7fbfe}
.person strong,.contact-stack span{display:block}
.person span,.contact-stack span{font-size:.72rem;color:var(--muted);margin-top:3px}
.badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--soft);color:var(--blue);font-size:.68rem;font-weight:800}
.badge.new,.badge.safety{background:#fff1e8;color:#a44920}
.badge.refunded{background:#edf7ef;color:#256b39}.badge.failed,.badge.expired,.badge.disputed,.badge.dispute_lost{background:#fff0ee;color:var(--danger)}
button.compact{margin-top:8px;padding:7px 11px;font-size:.72rem}
.empty{padding:35px;text-align:center;color:var(--muted)}
.users-grid{display:grid;grid-template-columns:minmax(320px,460px) 1fr;gap:20px}
.card{padding:24px}
.card h2{margin-top:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.form-grid h2,.form-grid .full{grid-column:1/-1}
.users-list{display:grid;gap:12px}
.user-row{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:13px}
.user-row .meta{flex:1}
.user-row strong,.user-row span{display:block}
.user-row span{color:var(--muted);font-size:.72rem;margin-top:3px}
.user-actions{display:flex;gap:6px}
.user-actions button{padding:8px 10px;font-size:.68rem}
.user-actions .secondary{background:white;color:var(--blue);border:1px solid var(--line)}
dialog{border:0;border-radius:22px;box-shadow:0 25px 90px rgba(0,45,83,.28);color:var(--ink)}
dialog::backdrop{background:rgba(0,39,72,.52)}
.detail-dialog{width:min(820px,calc(100% - 28px));max-height:90vh;padding:34px}
.dialog-close{position:absolute;right:14px;top:12px;background:transparent;color:var(--ink);font-size:1.6rem;padding:6px 10px}
.detail-head{padding-right:40px}
.detail-head h2{font-size:2rem;margin:7px 0}
.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0}
.detail-item{padding:14px;background:#f5f9fc;border-radius:12px}
.detail-item span{display:block;color:var(--muted);font-size:.7rem;margin-bottom:5px}
.answers-list{display:grid;gap:9px}
.answer-row{padding:13px 15px;border-left:3px solid var(--peach);background:#fff7f1}
.answer-row span{display:block;color:var(--muted);font-size:.69rem;margin-bottom:4px}
.detail-actions{display:flex;gap:10px;margin-top:22px}
.password-dialog{width:min(430px,calc(100% - 28px));padding:30px}
.password-dialog form{display:grid;gap:14px}
.password-dialog h2{padding-right:35px;margin-top:0}
@media(max-width:900px){.sidebar{position:static;width:100%;padding:16px;flex-direction:row;align-items:center;gap:15px}
.sidebar>img{width:140px;margin:0}
.sidebar nav{display:flex}
.account{margin:0 0 0 auto;padding:0;border:0}
.account span{display:none}
.account button{margin:0}
.workspace{margin:0;padding:25px 18px}
.users-grid{grid-template-columns:1fr}
}
@media(max-width:650px){.sidebar{flex-wrap:wrap}
.sidebar nav{order:3;width:100%}
.sidebar nav button{flex:1;text-align:center}
.account strong{display:none}
.stats{grid-template-columns:1fr}
.page-header{align-items:flex-start}
.toolbar{grid-template-columns:1fr}
.form-grid{grid-template-columns:1fr}
.form-grid h2,.form-grid .full{grid-column:auto}
.detail-grid{grid-template-columns:1fr}
th,td{padding:12px 10px}
.table-card{border-radius:12px}
}
.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}
.section-card{margin-top:20px}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}
.card-head h2{margin:0}
.card-head span{color:var(--muted);font-size:.75rem;max-width:450px;text-align:right}
.admin-list{display:grid;gap:10px}
.admin-row{display:grid;grid-template-columns:minmax(210px,1.4fr) minmax(170px,1fr) auto;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:13px}
.admin-row strong,.admin-row span{display:block}
.admin-row span{color:var(--muted);font-size:.72rem;margin-top:4px}
.admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.admin-actions button{padding:9px 11px;font-size:.7rem}
.admin-actions input,.admin-actions select,.product-row input{width:105px;border:1px solid var(--line);border-radius:9px;padding:9px;color:var(--ink)}
.product-admin-list{display:grid;gap:10px}
.product-row{display:grid;grid-template-columns:minmax(190px,1fr) 125px 145px auto auto;align-items:center;gap:12px;padding:13px;border-bottom:1px solid var(--line)}
.product-row:last-child{border-bottom:0}
.product-row strong,.product-row span{display:block}
.product-row span{color:var(--muted);font-size:.72rem}
.toggle-label{display:flex;align-items:center;gap:7px;font-size:.75rem;font-weight:700}
.toggle-label input{width:17px;height:17px}
.payment-mode{display:flex;align-items:center;gap:12px;padding:13px 15px;margin-bottom:8px;border-radius:12px;background:var(--soft);color:var(--ink)}
.payment-mode span{color:var(--muted);font-size:.75rem}
button:disabled{cursor:not-allowed;opacity:.5}
.success-message{color:#237358!important}
.bulk-slot-form{grid-column:1/-1}
.form-intro{margin:-5px 0 4px;color:var(--muted);font-size:.82rem;line-height:1.55}
.weekday-fieldset{display:flex;flex-wrap:wrap;gap:9px 18px;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px}
.weekday-fieldset legend{padding:0 7px;color:var(--ink);font-size:.8rem;font-weight:800}
.weekday-fieldset label{display:flex;align-items:center;gap:6px;font-size:.78rem}
.weekday-fieldset input{width:17px;height:17px;padding:0}
.service-stats{grid-template-columns:repeat(4,1fr)}
.payment-stats{grid-template-columns:repeat(4,1fr)}
.payment-filters{display:grid;grid-template-columns:minmax(160px,1fr) repeat(2,minmax(140px,.7fr)) minmax(190px,1fr) auto;gap:14px;align-items:end;margin-bottom:20px;overflow:visible}
.payment-filters label{display:grid;gap:7px;font-size:.75rem;font-weight:800}
.payment-filters input,.payment-filters select{width:100%;border:1px solid #bdd3e2;border-radius:11px;padding:11px 12px;background:white;color:var(--ink)}
.payment-filters input:disabled{background:#edf3f7;color:#7790a3}
.payment-summary-card .empty{margin:0}
.payment-summary-card td:last-child,.payment-summary-card th:last-child{text-align:right}
.icon-button{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border-radius:50%;background:#e9f5fd;color:var(--blue)}
.icon-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.payment-dialog{width:min(960px,calc(100% - 28px))}
.payment-detail-table{overflow-x:auto;margin-top:20px;border:1px solid var(--line);border-radius:14px}
.payment-detail-table table{min-width:680px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.service-grid{grid-template-columns:1fr}}
@media(max-width:1100px){.payment-filters{grid-template-columns:repeat(2,1fr)}.payment-filters button{width:max-content}.payment-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.service-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.sidebar nav{overflow-x:auto}.sidebar nav button{white-space:nowrap}.card-head{display:block}.card-head span{display:block;text-align:left;margin-top:7px}.admin-row,.product-row,.service-stats,.payment-stats,.payment-filters{grid-template-columns:1fr}.admin-actions{justify-content:flex-start}.payment-filters button{width:100%}}

.users-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}.users-tabs button{background:#e9f5fd;color:var(--blue)}.users-tabs button[aria-selected="true"]{background:var(--blue);color:#fff}.users-description{color:var(--muted);line-height:1.6;margin:8px 0 24px}.psychologist-row .meta{min-width:0;overflow-wrap:anywhere}.psychologist-row{gap:20px}.users-tabs button:focus-visible{outline:3px solid var(--peach);outline-offset:3px}#psychologist-create{margin-bottom:24px}#psychologist-create[hidden],#team-section[hidden],#psychologists-section[hidden]{display:none}@media(max-width:650px){.users-tabs button{flex:1}.psychologist-row{align-items:flex-start;flex-direction:column}#psychologists-section .page-header{display:block}#add-psychologist{width:100%;margin-bottom:16px}}

.assignment-section{border:1px solid var(--line);background:#f2f8fd;border-radius:16px;padding:20px;margin:22px 0}.assignment-section p{line-height:1.6}.assignment-section label{display:grid;gap:8px}.assignment-section select{width:100%;min-width:0}.assignment-section form{display:grid;gap:14px}.assignment-actions{display:flex;gap:12px;flex-wrap:wrap}.assignment-section [hidden]{display:none!important}@media(max-width:650px){.assignment-section{padding:16px}.assignment-actions{flex-direction:column}.assignment-actions button{width:100%}}

.psychologist-row .user-actions{flex-wrap:wrap}
