@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Montserrat:wght@600;700;800&family=Playfair+Display:wght@600;700;800&display=swap";
:root{--brand-900:#061522;--brand-800:#0a1b2c;--brand-700:#0e2844;--accent:#cfa35a;--font-body:"Manrope",ui-sans-serif,system-ui,-apple-system,Segoe UI;--font-display:"Playfair Display","Manrope",serif;--font-client:"Montserrat","Manrope",ui-sans-serif,system-ui;--bg:radial-gradient(1200px 700px at 12% -20%,#cfa35a29,transparent 60%),radial-gradient(900px 600px at 90% 0%,#0098d81a,transparent 55%),linear-gradient(180deg,var(--brand-800),var(--brand-700));--text:#fff;--surface:#fff;--line:#0b1c2d1a;--shadow:0 22px 60px #0003;--shadow-soft:0 12px 28px #0000001f;--glow:0 0 0 1px #cfa35a14,0 10px 30px #cfa35a1a;--glow-strong:0 0 0 1px #cfa35a2e,0 14px 40px #cfa35a2e;--r-xl:18px;--r-lg:14px;--r-md:12px;--sidebar-bg:#fff;--sidebar-line:#00000014;--sidebar-text:#0b1c2d;--input-bg:#fff;--input-line:#0b1c2d24;--btn-bg:var(--brand-800);--btn-text:#fff}*{box-sizing:border-box}html,body{font-family:var(--font-body);margin:0;padding:0}body{background:var(--bg);color:var(--text)}body.nav-open{overflow:hidden}a{color:inherit}.app-shell{min-height:100vh;display:flex}.app-content{flex:1;min-width:0;padding:34px}.page{max-width:1200px;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.3px;margin:0;font-size:40px}.page-sub{opacity:.86;margin:8px 0 0}.surface{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-soft),var(--glow);color:var(--brand-800)}.surface.pad{padding:20px}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.input,.select,.textarea,.search-input{border-radius:var(--r-lg);border:1px solid var(--input-line);background:var(--input-bg);color:#0b1c2de0;outline:none;width:100%;height:48px;padding:0 16px}.textarea{height:auto;min-height:90px;padding:12px 14px}.select{cursor:pointer}.search-input::placeholder{color:#0b1c2d73}.search-input:focus,.input:focus,.select:focus,.textarea:focus{border-color:#0098d88c;box-shadow:0 0 0 4px #0098d829,0 0 14px #cfa35a1a}.btn{border-radius:var(--r-lg);cursor:pointer;letter-spacing:.2px;border:1px solid #ffffff2e;height:40px;padding:0 14px;font-weight:600;transition:transform .12s,box-shadow .12s,background .12s,filter .12s}.btn:active{transform:translateY(1px)}.btn.ghost{color:#ffffffeb;background:#ffffff14}.btn.ghost:hover{background:#ffffff1f;box-shadow:0 12px 26px #0000002e,0 0 18px #cfa35a1f}.btn.primary{color:#fffffff2;background:linear-gradient(#cfa35a52,#cfa35a2e);border-color:#cfa35a73;font-weight:700}.btn.primary:hover{filter:brightness(1.05);box-shadow:0 14px 30px #cfa35a38,0 14px 30px #0000002e,0 0 22px #cfa35a24}.btn-appointment{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0098d8,#007bb0);border:none;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:600;transition:transform .12s,box-shadow .12s,filter .12s;box-shadow:0 4px 10px #0098d840}.btn-appointment:hover{filter:brightness(1.04);box-shadow:0 8px 18px #0098d847,0 0 16px #0098d82e}.btn-appointment:active{transform:translateY(1px)}.btn-appointment:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.modal-overlay{z-index:50;background:#0000008c;justify-content:center;align-items:center;padding:18px;display:flex;position:fixed;inset:0}.modal{width:min(860px,100%);color:var(--brand-800);border-radius:var(--r-xl);border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;padding:18px}.modal-head{justify-content:space-between;align-items:center;gap:28px;display:flex}.label{color:#0b1c2dad;font-size:13px}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--sidebar-line);flex-direction:column;height:100vh;transition:width .18s;display:flex;position:sticky;top:0;overflow:hidden}.mobile-topbar,.mobile-overlay{display:none}.sidebar-top{background:#fff;border-bottom:1px solid #0b1c2d1a;padding:14px 12px}.sidebar-logoLink{align-items:center;text-decoration:none;display:flex}.sidebar-logo{height:64px;position:relative}.nav{gap:10px;padding:12px;display:grid}.nav-item{color:var(--sidebar-text);background:#fff;border:1px solid #0b1c2d1a;border-radius:14px;align-items:center;gap:12px;padding:12px;text-decoration:none;transition:background .15s,box-shadow .15s,border-color .15s;display:flex}.nav-item:hover{background:#0098d80f;border-color:#0098d838}.nav-item.active{background:#0098d81f;border-color:#0098d873;box-shadow:0 0 0 3px #0098d81f}.nav-icon{background:#0b1c2d0a;border:1px solid #0b1c2d14;border-radius:10px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.clients-search{margin-bottom:34px}.client-list{flex-direction:column;gap:10px;display:flex}@media (max-width:980px){.app-content{padding:28px}.page-title{font-size:34px}.client-row{gap:12px}.client-meta{gap:10px}}@media (max-width:720px){.app-shell{display:block}.mobile-topbar{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top)14px 0;z-index:70;background:#fff;border-bottom:1px solid #0b1c2d1a;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.mobile-topbar__brand{justify-content:center;align-items:center;height:28px;text-decoration:none;display:flex}.mobile-topbar__logo{width:120px;height:24px;display:block;position:relative}.mobile-topbar__spacer{width:32px}.mobile-menu-btn{color:#0b1c2d;cursor:pointer;background:#f7f9fc;border:1px solid #0b1c2d1f;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.mobile-overlay{z-index:55;background:#050a1459;display:block;position:fixed;inset:0}.sidebar{top:calc(56px + env(safe-area-inset-top));height:calc(100vh - 56px - env(safe-area-inset-top));z-index:60;padding-bottom:calc(16px + env(safe-area-inset-bottom));transition:transform .2s;position:fixed;left:0;overflow:hidden auto;transform:translate(-100%);box-shadow:10px 0 30px #0000002e}.sidebar.open{transform:translate(0)}.app-content{padding:calc(90px + env(safe-area-inset-top))16px 20px}.sidebar-top{display:none}.page-title{font-size:30px}.page-head,.client-row{flex-direction:column;align-items:flex-start}.client-actions{margin-left:0}.client-meta{gap:8px;font-size:13px}}@media (max-width:980px){.client-detail-grid{grid-template-columns:1fr!important}.client-detail-card{padding:12px!important}}@media (max-width:720px){.client-detail-actions{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.client-detail-actions .btn,.client-detail-actions select.btn{text-align:center;width:100%}.session-list{max-height:none!important}.session-card{padding:12px!important}}@media (max-width:420px){.client-detail-actions{grid-template-columns:1fr}}.client-row{justify-content:space-between;align-items:center;gap:18px;display:flex}.client-detail-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}@media (max-width:720px){.client-detail-head{flex-direction:column;align-items:flex-start;gap:12px}}.client-main{flex-direction:column;gap:6px;min-width:0;display:flex}.client-name{font-family:var(--font-client);color:#0b1c2d;font-size:19px;font-weight:700}.client-meta{color:#4b5563;flex-wrap:wrap;gap:16px;font-size:14px;line-height:1.2;display:flex}.client-meta span{align-items:center;gap:8px;display:inline-flex}.client-meta .ok{color:#16a34a}.client-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.icon-btn{cursor:pointer;background:#fff;border:1px solid #0f172a24;border-radius:12px;justify-content:center;align-items:center;width:40px;height:40px;transition:box-shadow .15s,transform .12s,border-color .15s,background .15s;display:inline-flex}.icon-btn svg{color:#0f172abf;width:18px;height:18px}.icon-btn:hover{box-shadow:0 10px 22px #0000001a}.icon-btn:active{transform:translateY(1px)}.icon-btn.danger{border-color:#dc262633}.icon-btn.danger svg{color:#dc2626d9}.icon-btn.danger:hover{background:#dc26260a;box-shadow:0 10px 22px #dc262624}.client-list .surface{transition:transform .14s,box-shadow .14s,border-color .14s}.client-list .surface:hover{box-shadow:0 14px 34px #00000024,var(--glow-strong);border-color:#0098d833;transform:translateY(-2px)}.modal .save-btn{letter-spacing:.2px;border-radius:14px;font-weight:700;transition:transform .12s,box-shadow .12s,filter .12s;box-shadow:0 12px 28px #00000047;color:#fff!important;background:linear-gradient(#0b1c2d,#071827)!important;border:1px solid #0b1c2da6!important}.modal .save-btn:hover:enabled{filter:brightness(1.06);box-shadow:0 18px 40px #00000061}.modal .save-btn:active:enabled{transform:translateY(1px)}.modal .save-btn:disabled{cursor:not-allowed;opacity:.85;color:#ffffffd9!important;box-shadow:none!important;background:#21558a59!important;border:1px solid #0b1c2d33!important}.client-main-link{color:inherit;flex:1;text-decoration:none;display:block}.pdf-select{border-radius:14px;height:40px}.back-link{color:#fffffff2;background:#ffffff14;border:1px solid #ffffff2e;border-radius:12px;justify-content:center;align-items:center;width:36px;height:36px;text-decoration:none;display:flex}.back-link:hover{background:#ffffff1f}.pdf-select{color:#ffffffeb;cursor:pointer;appearance:none;background:#ffffff14;border:1px solid #ffffff2e;border-radius:14px;height:40px;padding:0 14px;font-weight:600}.pdf-select:hover{background:#ffffff1f;box-shadow:0 12px 26px #0000002e}.pdf-select:focus{outline:none;box-shadow:0 0 0 4px #0098d82e}.pdf-select-wrap{display:inline-block;position:relative}.pdf-select-wrap:after{content:"▾";pointer-events:none;opacity:.9;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.pdf-select option{color:#0b1c2d}.surface{margin-bottom:18px}.modal{max-height:85vh;overflow:hidden}.modal-body{max-height:calc(85vh - 64px);padding-right:6px;overflow-y:auto}.modal-body::-webkit-scrollbar{width:10px}.modal-body::-webkit-scrollbar-thumb{background:#0b1c2d2e;border-radius:999px}.modal-body::-webkit-scrollbar-track{background:0 0}.sidebar-foot{flex-direction:column;gap:10px;margin-top:auto;padding:14px 14px 16px;display:flex}.sidebar-foot--logout{justify-content:center;align-items:center;margin-top:auto;padding:18px 14px 22px;display:flex}.sidebar-logout{color:#000;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ff5a5a24;border:1px solid #ff5a5a73;border-radius:14px;justify-content:space-between;align-items:center;width:100%;max-width:150px;height:48px;padding:0 16px;font-size:15px;font-weight:700;transition:all .15s;display:flex}.sidebar-logout--danger:hover{background:#ff464638;border-color:#ff4646bf;transform:translateY(-1px);box-shadow:0 10px 30px #00000040,0 0 0 3px #ff464640}.sidebar-logout-iconEnd{color:#fff;background:#ff464659;border:1px solid #ff464699;border-radius:10px;justify-content:center;align-items:center;width:30px;height:30px;font-size:15px;display:inline-flex}.sidebar-miniMark{opacity:.7;font-size:18px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#0b1c2d33;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#0b1c2d59}.btn-danger-action{z-index:2;color:#dc2626;cursor:pointer;white-space:nowrap;background:#dc262614;border:1px solid #dc262659;border-radius:8px;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;transition:background .12s,transform .12s;display:inline-flex;position:relative}.btn-danger-action:hover{background:#dc262629}.btn-danger-action:active{transform:translateY(1px)}.btn-danger-action:disabled{opacity:.5;cursor:not-allowed}.appt-manage-page{justify-content:center;padding:48px 0;display:flex}.appt-card{background:#fff;border:1px solid #0b1c2d14;border-radius:26px;width:min(840px,92vw);padding:32px;box-shadow:0 24px 80px #00000024,0 0 40px #0098d814}.appt-card__head{background:#fff;border:1px solid #0b1c2d14;border-radius:18px;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;padding:18px 20px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#0b1c2da6;font-size:11px;font-weight:700}.appt-title{letter-spacing:-.2px;color:#0b1c2d;margin:4px 0;font-size:30px}.appt-sub{color:#0b1c2da6;margin:0}.status-chip{color:#0b1c2d;background:#eef4ff;border:1px solid #ffffff47;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:700;box-shadow:inset 0 1px #fff9}.tone-green{color:#0f7a45;background:#e8f5ee;border-color:#0f7a451f}.tone-amber{color:#a65d00;background:#fff4e5;border-color:#a65d0026}.tone-red{color:#b42318;background:#ffe8e5;border-color:#b4231826}.tone-blue{color:#1c5db8;background:#e8f1ff;border-color:#1c5db829}.appt-meta{background:linear-gradient(135deg,#0098d814,#004f880f);border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:22px;padding:14px 16px;display:grid}.meta-label{letter-spacing:.06em;text-transform:uppercase;color:#0b1c2d;font-size:11px;font-weight:700}.meta-value{color:#0b1c2d;margin-top:4px;font-size:15px}.meta-value.strong{font-weight:700}.appt-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.appt-actions .btn-appointment.is-active,.appt-actions .btn.ghost.is-active,.appt-actions .btn.primary.is-active{box-shadow:0 0 0 3px #0098d82e}.btn.ghost.danger{color:#b42318;background:#b4231814;border:1px solid #b423182e}.btn.ghost.danger:hover{background:#b423181f}.btn.primary.ghosty{color:#0b4f88;background:#0098d814;border:1px solid #0098d838}.appt-reschedule{background:#f7fafc;border:1px dashed #0b1c2d1f;border-radius:18px;margin-top:22px;padding:18px 16px}.appt-reschedule__grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px;display:grid}.appt-help{color:#4b5563;margin:4px 0 0;font-size:13px}.btn.full{text-align:center;width:100%}.appt-ghost{opacity:.8;margin-top:16px}.appt-msg{color:#f2f6ff;letter-spacing:.01em;background:#0b1c2d;border-radius:12px;margin-top:18px;padding:12px 14px;font-weight:600}.appt-panel{background:#fff;border:1px solid #0b1c2d14;border-radius:14px;margin-top:16px;padding:16px;box-shadow:0 10px 30px #0000000f}.appt-single-action{margin-top:28px}.appt-reschedule-block{margin-top:22px}.appt-reschedule__actions{margin-top:12px}.btn-appointment.danger{color:#fff;background:linear-gradient(135deg,#ff4d4f,#c81e1e);box-shadow:0 6px 14px #c81e1e47}.btn-appointment.danger:hover{filter:brightness(1.04);box-shadow:0 10px 22px #c81e1e52,0 0 16px #c81e1e2e}.appt-build-tag{color:#e6f2ff;letter-spacing:.08em;text-transform:uppercase;z-index:10;background:#0b1c2dd9;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;position:fixed;bottom:12px;right:14px}@media (max-width:720px){.public-appointment .sidebar,.public-appointment .mobile-topbar,.public-appointment .mobile-overlay{display:none}.public-appointment .app-content{padding:20px 14px}.public-appointment .appt-manage-page{padding:20px 0}.public-appointment .appt-card{border-radius:18px;width:100%;padding:18px}.public-appointment .appt-card__head{flex-direction:column;align-items:flex-start;gap:10px}.public-appointment .status-chip{align-self:flex-start}.public-appointment .appt-title{font-size:24px}.public-appointment .appt-meta{grid-template-columns:1fr}.public-appointment .appt-actions{flex-direction:column;align-items:stretch}.public-appointment .appt-actions .btn-appointment{width:100%}.public-appointment .appt-reschedule__grid{grid-template-columns:1fr}.public-appointment .appt-single-action .btn-appointment,.public-appointment .appt-reschedule__actions .btn-appointment{width:100%}.public-appointment .appt-build-tag{display:none}}
