:root{--ink:#24324a;--muted:#778198;--primary:#6558db;--primary-dark:#5145c4;--canvas:#f5f6fb;--panel:#fff;--line:#e8eaf2;--success:#2a9d76;--danger:#dc5a69;--shadow:0 10px 35px rgba(45,52,85,.08);font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}body{margin:0;background:var(--canvas)}h1,h2,h3{font-family:Manrope,sans-serif;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:265px;background:#25243d;color:#dcdceb;padding:28px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;font:800 22px Manrope;color:#fff;padding:0 10px 30px}.brand-mark{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#8174ef,#5a4fd0);color:#fff;font:800 17px Manrope;box-shadow:0 8px 22px #171629}.nav{display:flex;flex-direction:column;gap:5px}.nav-label{padding:8px 12px 4px;margin:0;color:#817f9a;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:1.3px}.admin-label{margin-top:20px}.nav-link{display:flex;align-items:center;gap:13px;padding:12px;border-radius:11px;color:#b9b8cd;font-size:14px;font-weight:500}.nav-link span{width:22px;font-size:18px;text-align:center}.nav-link:hover,.nav-link.active{background:#373550;color:#fff}.nav-link.active{box-shadow:inset 3px 0 #8c7ff5}.sidebar-user{margin-top:auto;border-top:1px solid #3b3953;padding:20px 4px 0;display:flex;align-items:center;gap:10px}.sidebar-user strong,.sidebar-user small{display:block;max-width:125px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user strong{font-size:13px;color:#fff}.sidebar-user small{font-size:11px;color:#8f8da7}.sidebar-user form{margin-left:auto}.sidebar-user button{border:0;background:none;color:#aaa8be;font-size:20px;cursor:pointer}.avatar{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:#6b60d8;color:#fff;font-weight:700;font-size:12px}.avatar.small{width:34px;height:34px;border-radius:10px}.avatar.large{width:56px;height:56px;border-radius:17px;font-size:17px}.main{width:calc(100% - 265px);margin-left:265px}.topbar{height:105px;padding:24px 38px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:24px}.eyebrow{display:block;text-transform:uppercase;color:#9288e9;font-weight:700;font-size:10px;letter-spacing:1.3px;margin-bottom:5px}.today{padding:10px 14px;background:#f4f2ff;color:#6357cd;border-radius:10px;font-size:13px;font-weight:600}.menu-toggle{display:none}.content{padding:30px 38px;max-width:1550px;margin:auto}.alert{padding:14px 18px;border-radius:12px;margin-bottom:20px;background:#e7f7f1;color:#1c7658;display:flex;justify-content:space-between}.alert.error{background:#ffebed;color:#ae3f4a}.alert button{border:0;background:none;color:inherit;font-size:20px}.btn{border:0;border-radius:10px;padding:11px 17px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:10px;justify-content:center}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(101,88,219,.2)}.btn-primary:hover{background:var(--primary-dark)}.btn-ghost{background:#f4f5f9;color:#667087}.btn-danger{background:#ffeaec;color:#bd4653}.btn-block{width:100%;padding:14px}.page-actions,.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-actions p{color:var(--muted);margin:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.panel-head{padding:24px 26px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.panel-head h2{font-size:19px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:24px}.stat-card{border-radius:16px;padding:23px;display:flex;gap:18px;align-items:center}.stat-card.lavender{background:#ece9ff}.stat-card.mint{background:#e3f5ef}.stat-card.peach{background:#fff0e6}.stat-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#ffffffa8;font-size:25px}.stat-card small,.stat-card strong,.stat-card p{display:block}.stat-card small{color:#69738b;font-weight:600}.stat-card strong{font:800 28px Manrope;margin:2px 0}.stat-card p{margin:0;color:#949caf;font-size:11px}.appointment-list{padding:4px 26px 16px}.appointment-row{display:grid;grid-template-columns:62px 4px 1fr auto 15px;gap:18px;align-items:center;padding:16px 0;border-bottom:1px solid #eff0f5}.appointment-row:last-child{border:0}.appointment-row .time{font-weight:700}.appointment-row i{height:42px;border-radius:4px;background:var(--therapist-color)}.appointment-row strong,.appointment-row small{display:block}.appointment-row small{color:var(--muted);margin-top:3px}.badge{display:inline-flex;padding:5px 9px;border-radius:8px;background:#eff0f5;color:#687187;font-size:11px;font-weight:700}.badge.confirmed{background:#e4f5ef;color:#278461}.badge.completed{background:#e7edfc;color:#4261aa}.badge.cancelled{background:#ffebed;color:#b34854}.empty{text-align:center;padding:60px 25px;color:var(--muted)}.empty span{font-size:36px}.empty h3,.empty h2{color:var(--ink);margin:10px 0}.empty .btn{margin-top:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:780px}th{text-align:left;color:#9299aa;text-transform:uppercase;font-size:10px;letter-spacing:.7px;padding:15px 20px;background:#fafafd}td{padding:16px 20px;border-top:1px solid var(--line);font-size:13px}td small{display:block;color:var(--muted);margin-top:4px}.person{display:flex;align-items:center;gap:11px}.actions{display:flex;align-items:center;gap:12px}.actions a{color:var(--primary);font-weight:600}.actions form{display:inline}.actions button,.card-actions button{border:0;background:none;color:var(--danger);cursor:pointer;padding:0}.status-dot{font-size:12px}.status-dot:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}.status-dot.on{color:#21815f}.status-dot.on:before{background:#31b483}.status-dot.off{color:#a36d73}.status-dot.off:before{background:#dc8290}.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.profile-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:23px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.profile-stripe{height:4px;position:absolute;inset:0 0 auto}.profile-top{display:flex;justify-content:space-between;align-items:start}.profile-card h3{font-size:17px;margin:16px 0 5px}.profile-card p{color:var(--muted);font-size:13px;margin:0 0 18px}.profile-contact{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px 0;display:grid;gap:5px;font-size:12px;color:#657087}.card-actions{display:flex;justify-content:space-between;padding-top:15px;font-size:13px}.card-actions a{color:var(--primary);font-weight:600}.form-card{max-width:900px;margin:auto;padding:28px}.form-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:28px}.form-head h2{font-size:20px}.form-head p{color:var(--muted);font-size:13px;margin:6px 0}.form-head>a{color:var(--primary);font-size:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid label,.form-stack label{display:grid;gap:8px;font-size:12px;font-weight:700;color:#556078}.form-grid .full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid #dfe2eb;border-radius:10px;background:#fff;padding:11px 13px;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:#9389ec;box-shadow:0 0 0 3px #eeeaff}.check{display:flex!important;align-items:center;gap:8px!important;align-self:end;padding-bottom:12px}.check input{width:auto}.color-input{height:44px;padding:5px}.form-card hr{border:0;border-top:1px solid var(--line);margin:28px 0}.form-footer{border-top:1px solid var(--line);margin-top:28px;padding-top:20px;display:flex;justify-content:space-between}.password-section h3{font-size:15px}.muted{color:var(--muted)}.password-section>.input-action{max-width:470px;margin:16px 0}.input-action{position:relative}.input-action input{padding-right:80px}.input-action button{position:absolute;right:6px;top:6px;bottom:6px;border:0;border-radius:7px;background:#f0eefc;color:var(--primary);font-size:11px;font-weight:700;padding:0 12px}.password-options{display:flex;gap:17px;flex-wrap:wrap;font-size:11px;color:#687187}.password-options label{display:flex;align-items:center;gap:5px}.password-options input{width:auto}.password-options input[type=number]{width:62px;padding:5px}.month-switch{display:flex;align-items:center;gap:10px}.month-switch h2{font-size:20px;min-width:210px;text-align:center}.month-switch>a{width:36px;height:36px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;font-size:20px}.month-switch .today-link{width:auto;padding:0 13px;font-size:12px}.calendar{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:grid;grid-template-columns:repeat(7,1fr);box-shadow:var(--shadow)}.weekday{padding:12px;text-align:center;background:#fafafd;color:#9299aa;font-size:10px;text-transform:uppercase;font-weight:700;border-right:1px solid var(--line)}.calendar-day{min-height:135px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:9px;cursor:pointer;overflow:hidden}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#fbfaff}.calendar-day.outside{background:#fafafd;color:#b9bdca}.day-number{display:grid;place-items:center;width:27px;height:27px;font-size:12px;font-weight:600;border-radius:9px}.is-today .day-number{background:var(--primary);color:#fff}.day-events{display:grid;gap:5px;margin-top:5px}.calendar-event{background:color-mix(in srgb,var(--event-color) 14%,white);border-left:3px solid var(--event-color);padding:6px;border-radius:5px;min-width:0}.calendar-event strong,.calendar-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.calendar-event small{color:#737b8e;margin-top:2px}.calendar-help{font-size:11px;color:var(--muted);text-align:right}.macro-box,.cron-box{background:#f8f8fc;border:1px solid var(--line);border-radius:12px;padding:16px;margin-top:22px}.macro-box strong,.cron-box strong{display:block;font-size:13px;margin-bottom:10px}.macro-box code{display:inline-block;background:#eae7fb;color:#5d52c2;padding:5px 7px;border-radius:6px;margin:3px;font-size:11px}.cron-box p{font-size:12px;color:var(--muted)}.cron-box code{display:block;padding:10px;background:#27263d;color:#e9e8f7;border-radius:8px;overflow:auto;font-size:11px}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#fff}.login-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,#25233e,#39345d);padding:42px 55px;color:#fff;display:flex;flex-direction:column}.login-brand{display:flex;align-items:center;gap:12px;font:800 22px Manrope}.visual-copy{max-width:540px;margin:auto 0;position:relative;z-index:2}.visual-copy h1{font-size:48px;line-height:1.12;margin:15px 0}.visual-copy p{color:#c2bfd7;font-size:16px;line-height:1.7;max-width:450px}.visual-orbit{position:absolute;width:550px;height:550px;border:1px solid #ffffff15;border-radius:50%;right:-180px;bottom:-180px}.visual-orbit:before,.visual-orbit:after{content:'';position:absolute;border:1px solid #ffffff13;border-radius:50%;inset:70px}.visual-orbit:after{inset:150px}.visual-orbit span{position:absolute;left:190px;top:130px;font:800 100px Manrope;color:#8176e6}.visual-orbit i{position:absolute;width:15px;height:15px;border-radius:50%;background:#9389ef}.visual-orbit i:nth-child(1){left:18px;top:160px}.visual-orbit i:nth-child(2){right:160px;top:30px;background:#65c4ac}.visual-orbit i:nth-child(3){left:90px;bottom:100px;background:#f3aa7d}.login-main{display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:420px}.login-card h2{font-size:28px;margin:6px 0}.login-card>.muted{margin:0 0 30px}.form-stack{display:grid;gap:19px}.login-help{text-align:center;color:#9299aa;font-size:11px;margin-top:24px}.mobile-brand{display:none}
@media(max-width:1050px){.cards-grid{grid-template-columns:repeat(2,1fr)}.calendar-day{min-height:110px}.calendar-event small{display:none}}@media(max-width:780px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:none}.main{width:100%;margin-left:0}.menu-toggle{display:block;border:0;background:none;font-size:22px}.topbar{height:85px;padding:18px 20px}.content{padding:20px}.stats-grid{grid-template-columns:1fr}.cards-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.calendar{min-width:820px}.calendar-toolbar+section{overflow:visible}.content:has(.calendar){overflow:auto}.login-page{grid-template-columns:1fr}.login-visual{display:none}.login-main{min-height:100vh}.mobile-brand{display:flex;align-items:center;font:800 20px Manrope;margin-bottom:45px}.page-actions,.calendar-toolbar{align-items:flex-start;gap:15px}.today{display:none}}@media(max-width:520px){.page-actions,.calendar-toolbar{flex-direction:column}.panel-head{align-items:flex-start;gap:15px;flex-direction:column}.form-card{padding:20px}.visual-copy h1{font-size:34px}.form-footer{gap:8px}.form-footer .btn{padding:10px}.topbar h1{font-size:20px}}
