:root{--navy:#063b70;--blue:#0878dc;--cyan:#18b9b4;--bg:#f2f9fd;--line:#dceaf4;--muted:#657d98;--white:#fff;--red:#ef4051;--green:#16ad77;--amber:#f6a313;--shadow:0 10px 35px rgba(25,83,125,.08);font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--navy);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(135deg,#f8fcff,#edf8fc);color:var(--navy)}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:rgba(255,255,255,.92);border-right:1px solid #e8f1f7;padding:25px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:block;margin-bottom:24px}.brand img{width:170px;height:68px;object-fit:contain;mix-blend-mode:multiply}.sidebar nav{display:grid;gap:6px}.sidebar nav a{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:10px;color:var(--navy);font-weight:600}.sidebar nav a span{font-size:21px;width:24px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:#e8f5fd;color:#075dab}.support-card{margin-top:auto;padding:18px;border-radius:14px;background:linear-gradient(145deg,#e9f8ff,#f7fcff);border:1px solid #e2f0f8}.support-card p{color:var(--muted);font-size:13px;line-height:1.5}.support-card a{display:block;border:1px solid #62ade0;border-radius:7px;text-align:center;padding:8px;font-size:13px}.main{min-width:0}.topbar{height:72px;display:flex;align-items:center;gap:24px;padding:0 28px;background:rgba(255,255,255,.68);border-bottom:1px solid rgba(220,234,244,.8)}.top-search{color:#8ba0b5;flex:1}.user-menu{display:flex;align-items:center;gap:10px}.user-menu>span:nth-child(2){display:grid;font-size:13px}.user-menu small{color:var(--muted);font-weight:400}.avatar{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e4f3fd;color:#075492;font-weight:700;flex:0 0 auto}.avatar.large{width:58px;height:58px}.avatar.xl{width:82px;height:82px;font-size:24px}.menu-button{display:none;background:none;border:0;font-size:24px}.content{padding:24px 28px 50px;max-width:1500px;margin:auto}.hero{min-height:180px;padding:31px 38px;border-radius:16px;background:radial-gradient(circle at 70% 120%,rgba(34,190,190,.25),transparent 35%),linear-gradient(105deg,#e7faff,#f5fbfd);display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;overflow:hidden;position:relative}.hero:after{content:"";position:absolute;width:260px;height:260px;border:42px solid rgba(19,179,185,.12);border-radius:50%;right:30px;bottom:-200px}.hero h1,.page-heading h1{font-size:32px;margin:7px 0 7px}.hero p,.page-heading p{color:var(--muted);margin:0;line-height:1.55}.hero blockquote{max-width:260px;font:italic 17px Georgia,serif;line-height:1.45;margin-right:12%;z-index:1}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;color:#3f789f}.panel{background:rgba(255,255,255,.94);border:1px solid #e5eff6;border-radius:14px;padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.panel h2{font-size:19px;margin:0 0 10px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.panel-heading h2{margin:0}.panel-heading>a{font-size:13px}.panel-icon{font-size:24px}.next-appointment>div:first-child{display:flex;gap:10px;align-items:center}.appointment-main{display:grid;grid-template-columns:auto 1fr 1.2fr auto;align-items:center;gap:20px;padding:14px 5px}.appointment-main small,.appointment-facts span,td small{display:block;color:var(--muted);margin-top:5px}.appointment-facts{display:grid;gap:3px;border-left:1px solid var(--line);padding-left:25px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:18px 0}.stat{display:flex;align-items:center;gap:16px;padding:22px;background:#fff;border:1px solid #e5eff6;border-radius:14px;box-shadow:var(--shadow)}.stat>span{font-size:27px;background:#e8f6fe;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:var(--blue)}.stat.amber>span{background:#fff4dd;color:var(--amber)}.stat.green>span{background:#e2f8ef;color:var(--green)}.stat div{display:grid;gap:2px}.stat small{color:var(--muted)}.stat strong{font-size:28px}.material-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.material-card{min-height:155px;border:1px solid var(--line);border-radius:11px;padding:18px;position:relative;color:var(--navy);background:linear-gradient(145deg,#fff,#f7fcff)}.material-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.material-card h3{font-size:15px;margin:14px 0 7px}.material-card p{color:var(--muted);font-size:13px;line-height:1.45;margin:0 22px 0 0}.material-card>b{position:absolute;right:14px;bottom:14px}.material-type,.badge{display:inline-block;font-size:11px;border-radius:100px;padding:6px 10px;background:#e9f5fc;color:#0874c9}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:5px 0 20px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:9px;padding:11px 18px;font-weight:700;cursor:pointer}.button.primary{color:#fff;background:linear-gradient(105deg,#0471cc,#16b8b5)}.button.secondary{background:#fff;color:var(--blue);border:1px solid #8cc7ec}.button.danger{background:#fff1f2;color:#c72839;border:1px solid #f2a3ad}.table-panel{padding:0;overflow:hidden}.table-panel .panel-heading{padding:18px 20px 0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th{text-align:left;font-size:11px;color:var(--muted);background:#f4f9fc;padding:12px 14px}td{padding:12px 14px;border-top:1px solid #e8f0f5;font-size:13px}tr:hover td{background:#fbfdff}.badge.green{background:#dcf7eb;color:#0d8f64}.badge.red{background:#ffe8eb;color:#d12b3d}.badge.blue{background:#e6f4fe;color:#0875ca}.badge.gray{background:#edf1f5;color:#718198}.alert{padding:13px 16px;border-radius:9px;margin:0 0 15px;border:1px solid}.alert.success{background:#e7f8f1;color:#087b56;border-color:#b8ead7}.alert.error{background:#fff0f1;color:#bd2638;border-color:#fac1c8}.stack{display:grid;gap:15px}.stack label,.dialog-form label{display:grid;gap:7px;font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid #cedfea;border-radius:8px;padding:11px 12px;color:#123f68;background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#3ea8e8;box-shadow:0 0 0 3px rgba(62,168,232,.13)}textarea{resize:vertical}.check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.check input{width:auto}dialog{width:min(500px,calc(100% - 28px));border:0;border-radius:15px;padding:0;box-shadow:0 25px 80px rgba(1,41,75,.25)}dialog::backdrop{background:rgba(0,35,64,.42);backdrop-filter:blur(3px)}.dialog-form{padding:27px;display:grid;gap:15px}.dialog-form h2{margin:0 30px 6px 0}.dialog-close{position:absolute;right:15px;top:13px;border:0;background:#edf6fb;width:32px;height:32px;border-radius:50%;font-size:22px;cursor:pointer}.inline{display:inline}.link-button{background:none;border:0;color:var(--blue);font-weight:700;cursor:pointer;padding:0}.link-button.danger{color:var(--red)}.questionnaire-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.questionnaire-grid .panel{margin:0}.questionnaire-grid>section>p{color:var(--muted);font-size:13px;min-height:38px}.article-list{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.article{margin:0}.article p{line-height:1.65;color:#536e89}.article .lead{font-size:16px;color:var(--navy);font-weight:600}.narrow{max-width:760px;margin-left:auto;margin-right:auto}.profile-card{text-align:center}.profile-card .avatar{margin:auto}.profile-card dl{display:grid;grid-template-columns:1fr 1fr;text-align:left;max-width:500px;margin:25px auto}.profile-card dt,.profile-card dd{padding:12px;border-bottom:1px solid var(--line);margin:0}.profile-card dt{color:var(--muted)}.progress{height:14px;border-radius:20px;background:#e5eef4;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,#0a79d7,#17b9b4);border-radius:20px}.empty{text-align:center;color:var(--muted);padding:30px!important}.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 80% 20%,rgba(23,185,180,.18),transparent 30%),linear-gradient(145deg,#eef9fe,#fff)}.login-card{width:min(450px,100%);background:#fff;border:1px solid #e1edf4;border-radius:20px;padding:34px 42px;box-shadow:0 25px 80px rgba(10,73,113,.14)}.login-logo{display:block;width:260px;height:115px;object-fit:contain;margin:0 auto 5px;mix-blend-mode:multiply}.login-heading{text-align:center;margin-bottom:24px}.login-heading h1{font-size:27px;margin:9px 0}.login-heading p,.privacy-note{color:var(--muted);line-height:1.5}.privacy-note{text-align:center;font-size:11px;margin:20px 0 0}.report-grid{grid-template-columns:repeat(3,1fr)}
.booking-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.booking-toolbar h2{margin-bottom:5px}.booking-toolbar p{margin:0;color:var(--muted);font-size:13px}.psychologist-filter{min-width:290px}.psychologist-filter label{display:grid;gap:6px;font-size:12px;font-weight:700}.info-strip{padding:11px 14px;border-radius:9px;background:#eaf7ff;color:#276487;font-size:13px;margin:12px 0}.calendar-navigation{display:flex;align-items:center;justify-content:center;gap:18px;margin:18px 0 12px}.calendar-navigation h2{margin:0;min-width:190px;text-align:center;text-transform:capitalize}.calendar-arrow{width:35px;height:35px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:24px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:11px;overflow:hidden}.calendar-weekday{padding:9px 6px;background:#f1f8fc;text-align:center;font-size:11px;font-weight:800;color:var(--muted);border-right:1px solid var(--line)}.calendar-weekday:last-of-type{border-right:0}.calendar-day{min-height:118px;padding:7px;border-top:1px solid var(--line);border-right:1px solid var(--line);background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside{background:#f8fafc;color:#a9b7c3}.calendar-day.today{box-shadow:inset 0 0 0 2px #42b9df}.calendar-date{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:12px;font-weight:800;margin-bottom:4px}.today .calendar-date{background:var(--blue);color:#fff}.slot-form{margin-top:4px}.calendar-slot{width:100%;border:0;border-radius:6px;background:#e2f8ef;color:#087b58;padding:6px;display:grid;text-align:left;cursor:pointer}.calendar-slot:hover{background:#c8f1e1}.calendar-slot strong{font-size:12px}.calendar-slot span{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-help{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.calendar-help span{width:11px;height:11px;border-radius:3px;background:#e2f8ef}.locked-action{font-size:11px;color:#8a99a8;border-bottom:1px dotted #8a99a8;cursor:help}
@media(max-width:1200px){.appointment-main{grid-template-columns:auto 1fr}.appointment-facts{grid-column:1/-1;border-left:0;padding-left:0}.appointment-main .button{grid-column:1/-1}.material-grid{grid-template-columns:repeat(2,1fr)}.calendar-day{min-height:100px;padding:5px}.calendar-slot span{display:none}}
@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;transform:translateX(-105%);transition:.25s;width:250px;box-shadow:20px 0 50px rgba(0,0,0,.15)}.sidebar.open{transform:translateX(0)}.menu-button{display:block}.topbar{padding:0 16px}.content{padding:18px 14px 40px}.hero{padding:25px}.hero blockquote{display:none}.questionnaire-grid{grid-template-columns:1fr 1fr}.page-heading{align-items:flex-start;gap:15px}.page-heading h1,.hero h1{font-size:26px}}
@media(max-width:600px){.user-menu>span:nth-child(2),.top-search{display:none}.user-menu{margin-left:auto}.hero{min-height:150px}.stats-grid,.material-grid,.questionnaire-grid,.article-list,.report-grid{grid-template-columns:1fr}.page-heading{display:grid}.page-heading .button{width:100%}.login-card{padding:26px 22px}.login-logo{width:220px}.appointment-main{display:grid}.profile-card dl{grid-template-columns:1fr}.profile-card dd{padding-top:0}.support-card{display:none}.booking-toolbar{display:grid}.psychologist-filter{min-width:0}.calendar{overflow-x:auto;grid-template-columns:repeat(7,92px)}.calendar-weekday,.calendar-day{min-width:92px}.booking-panel{padding:14px;overflow:hidden}}
@media print{.sidebar,.topbar,.page-heading .button{display:none!important}.app-shell{display:block}.content{padding:0}.panel,.stat{box-shadow:none}}
