:root{--bg-main: #f7f4ee;--bg-soft: #efe9de;--surface: #fffdf9;--bg-card: #fffdf9;--bg-card-hover: #ffffff;--border-glass: #e7dfd2;--border-focus: #6f8a72;--primary: #607d64;--primary-dark: #49624e;--primary-soft: #e6eee5;--primary-glow: rgba(96, 125, 100, .16);--secondary: #b7785c;--secondary-glow: rgba(183, 120, 92, .14);--danger: #b95f5a;--danger-glow: rgba(185, 95, 90, .14);--warning: #bd8a42;--text-primary: #2e342e;--text-secondary: #697068;--text-muted: #969b92;--shadow-sm: 0 2px 10px rgba(62, 52, 39, .05);--shadow-md: 0 16px 40px rgba(62, 52, 39, .08);--font-display: "DM Serif Display", Georgia, serif;--font-body: "Nunito Sans", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 8% 4%,rgba(216,194,166,.34),transparent 28rem),radial-gradient(circle at 96% 14%,rgba(176,198,176,.28),transparent 26rem),var(--bg-main);color:var(--text-primary);font-family:var(--font-body);line-height:1.5}button,input,textarea,select{font:inherit}button,summary{-webkit-tap-highlight-color:transparent}::selection{background:#dce8da;color:var(--text-primary)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:#eee9df}::-webkit-scrollbar-thumb{background:#bbb7ae;border:2px solid #eee9df;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#96988f}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-family:var(--font-display);font-weight:400;letter-spacing:-.015em}p{color:var(--text-secondary)}.app-shell{display:flex;min-height:100vh;flex-direction:column}.glass-panel{padding:28px;border:1px solid var(--border-glass)!important;border-radius:20px;background:var(--surface)!important;box-shadow:var(--shadow-sm);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.glass-panel:hover{border-color:#d9cfc0!important;background:#fff!important;box-shadow:var(--shadow-md)}.auth-container{position:relative;display:grid;min-height:100vh;grid-template-columns:minmax(280px,500px) minmax(360px,440px);align-items:center;justify-content:center;gap:clamp(40px,8vw,120px);padding:48px;isolation:isolate}.auth-container:before,.auth-container:after{position:fixed;z-index:-1;border-radius:50%;content:"";pointer-events:none}.auth-container:before{width:360px;height:360px;right:-140px;top:-110px;background:#bccdbb73}.auth-container:after{width:280px;height:280px;bottom:-100px;left:-70px;background:#dec4ac6b}.auth-welcome{max-width:500px}.auth-welcome h2{max-width:490px;margin:16px 0 20px;font-size:clamp(42px,5vw,66px);line-height:.98}.auth-welcome p{max-width:470px;font-size:18px;line-height:1.7}.auth-welcome-note{display:inline-flex;align-items:center;gap:10px;margin-top:32px;padding:10px 14px;border:1px solid #d9e3d8;border-radius:999px;background:#fffdf9b8;color:var(--primary-dark);font-size:13px;font-weight:700}.eyebrow{color:var(--secondary);font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.auth-card{width:100%;max-width:440px;padding:36px!important;animation:fadeIn .45s ease-out;box-shadow:var(--shadow-md)}.auth-brand{margin-bottom:26px;text-align:center}.auth-brand h1{margin-top:12px;font-size:30px}.auth-brand h1 small{color:var(--primary);font-family:var(--font-body);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.auth-brand p{margin-top:4px;font-size:14px}.brand-mark{display:inline-flex;width:56px;height:56px;align-items:center;justify-content:center;border-radius:18px 18px 18px 6px;background:var(--primary-soft);color:var(--primary)}.brand-mark-small{width:42px;height:42px;border-radius:14px 14px 14px 5px}.auth-tabs{display:flex;gap:5px;margin-bottom:24px;padding:5px;border:1px solid var(--border-glass);border-radius:13px;background:var(--bg-soft)}.auth-tabs .btn{padding:9px!important;border-radius:9px;box-shadow:none!important}.api-settings{margin-top:24px;padding-top:16px;border-top:1px solid var(--border-glass);color:var(--text-muted);font-size:12px}.api-settings summary{cursor:pointer;font-weight:700}.api-settings label{display:block;margin:12px 0 5px}.api-settings .form-input{padding:8px 10px;font-size:12px}.app-header{position:sticky;z-index:100;top:0;border-bottom:1px solid rgba(220,212,200,.9);background:#fffdf9eb!important;box-shadow:0 3px 18px #3b32280a;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.header-inner{display:flex;width:min(1380px,100%);min-height:78px;align-items:center;justify-content:space-between;gap:30px;margin:0 auto;padding:12px 28px}.header-brand{display:flex;flex:0 0 auto;align-items:center;gap:12px}.header-brand h1{display:flex;align-items:center;gap:7px;margin:0;font-family:var(--font-body);font-size:15px;font-weight:800}.brand-product{display:block;margin-bottom:1px;color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.app-nav{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:7px}.app-nav .btn{min-height:40px;padding:8px 12px!important;border-radius:12px;font-size:12px!important;white-space:nowrap}.app-nav .btn svg{margin-right:5px!important}.app-nav .btn-danger svg{margin-right:0!important}.credit-pill{flex:0 0 auto;min-height:42px;padding:5px 12px!important;border:1px solid #d8e5d6!important;border-radius:14px!important;background:var(--primary-soft)!important}.app-main{flex:1;width:min(1240px,100%);margin:30px auto 50px;padding:0 24px}.welcome-banner{position:relative;display:flex;overflow:hidden;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:24px;padding:34px 38px;border:1px solid #d8e2d6;border-radius:24px;background:linear-gradient(118deg,#eef3eb,#f6f0e7)}.welcome-banner:after{position:absolute;width:190px;height:190px;right:-45px;top:-85px;border:32px solid rgba(255,255,255,.35);border-radius:50%;content:""}.welcome-banner h2{max-width:700px;margin:7px 0 6px;font-size:clamp(27px,3vw,38px);line-height:1.1}.welcome-banner p{font-size:14px}.service-status{position:relative;z-index:1;display:inline-flex;flex:0 0 auto;align-items:center;gap:8px;padding:9px 13px;border:1px solid #cbdcc9;border-radius:999px;background:#ffffffb8;color:var(--primary-dark);font-size:12px;font-weight:800}.service-status span{width:8px;height:8px;border-radius:50%;background:#6f9a72;box-shadow:0 0 0 4px #6f9a721f}.service-status.is-paused{color:#9b4d48;border-color:#e7c5c2}.service-status.is-paused span{background:var(--danger);box-shadow:0 0 0 4px #b95f5a1f}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:7px;color:#5e655d;font-size:13px;font-weight:800}.form-input{width:100%;min-height:44px;padding:11px 14px;border:1px solid #ded8ce;border-radius:12px;outline:none;background:#fff!important;color:var(--text-primary);font-size:14px;transition:border-color .2s ease,box-shadow .2s ease}textarea.form-input{min-height:92px;resize:vertical}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 4px var(--primary-glow)}.form-input::placeholder{color:#a8aaa4}select.form-input{cursor:pointer}.btn{display:inline-flex;min-height:42px;align-items:center;justify-content:center;padding:10px 18px;border:1px solid transparent;border-radius:12px;color:var(--text-primary);font-size:14px;font-weight:800;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.btn:hover{transform:translateY(-1px)}.btn:focus-visible{outline:3px solid var(--primary-glow);outline-offset:2px}.btn:disabled{cursor:wait;opacity:.65;transform:none}.btn-primary{border-color:var(--primary)!important;background:var(--primary)!important;color:#fff!important;box-shadow:0 6px 16px #49624e26!important}.btn-primary:hover{background:var(--primary-dark)!important}.btn-secondary{border-color:var(--border-glass)!important;background:var(--surface)!important;color:#525a52!important;box-shadow:none!important}.btn-secondary:hover{border-color:#cfc5b7!important;background:#f4f0e9!important}.btn-danger{border-color:#d6a4a0!important;background:#fff6f5!important;color:#a34f4b!important;box-shadow:none!important}.btn-danger:hover{background:#f8e6e4!important}.alert{display:flex;align-items:flex-start;gap:11px;margin-bottom:20px;padding:13px 15px;border:1px solid transparent;border-radius:13px;font-size:13px}.alert-danger{border-color:#e8c4c1;background:#fff4f3;color:#9c4e49}.alert-success{border-color:#cbdcca;background:#f0f7ef;color:#4f7153}.alert-warning{border-color:#e9d3ad;background:#fff8e9;color:#8d672c}.alert-info{border-color:#cbd8dd;background:#f1f7f8;color:#527078}.badge{display:inline-flex;align-items:center;padding:4px 9px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:800}.badge-active{border-color:#c7dbc6;background:#eaf4e9;color:#527557}.badge-pending{border-color:#e5d1ad;background:#fff5df;color:#946b2d}.badge-expired{border-color:#e6c3c0;background:#fbeceb;color:#9d514c}table{width:100%;border-collapse:separate;border-spacing:0}th{color:var(--text-muted)!important;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}td,th{border-bottom-color:var(--border-glass)!important}tbody tr{transition:background .15s ease}tbody tr:hover{background:#faf7f1}.d-flex{display:flex}.align-items-center{align-items:center}.justify-content-between{justify-content:space-between}.flex-column{flex-direction:column}.gap-2{gap:8px}.gap-3{gap:12px}.w-full{width:100%}.agenda-page{display:flex;flex-direction:column;gap:22px;animation:fadeIn .35s ease}.agenda-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:4px 2px}.agenda-page-header h2{margin:5px 0 4px;font-size:32px}.agenda-page-header p,.panel-description{color:var(--text-secondary);font-size:13px}.agenda-tabs{display:flex;gap:8px}.agenda-tabs .btn{gap:7px;white-space:nowrap}.agenda-workspace{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:22px;align-items:start}.manual-booking-card{position:sticky;top:102px}.manual-booking-card h3,.panel-heading-row h3,.exceptions-panel h3{display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:19px}.manual-booking-card .panel-description{margin-bottom:20px}.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,.42fr);gap:10px}.duration-field{min-width:112px}.week-calendar-panel{min-width:0;overflow-x:auto;padding:24px}.calendar-toolbar{display:flex;min-width:920px;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.calendar-toolbar h3{margin-bottom:3px;font-size:20px;text-transform:capitalize}.calendar-navigation{display:flex;gap:6px}.icon-button{width:42px;padding:8px!important}.week-grid{display:grid;min-width:920px;grid-template-columns:repeat(7,minmax(122px,1fr));border:1px solid var(--border-glass);border-radius:16px;background:#f8f5ef;overflow:hidden}.calendar-day{min-height:430px;border-right:1px solid var(--border-glass);background:#ffffff7a}.calendar-day:last-child{border-right:0}.calendar-day>header{display:flex;align-items:center;justify-content:space-between;padding:12px;border-bottom:1px solid var(--border-glass);color:var(--text-muted);font-size:11px;font-weight:800;text-transform:uppercase}.calendar-day>header strong{display:flex;width:29px;height:29px;align-items:center;justify-content:center;border-radius:50%;color:var(--text-primary);font-size:14px}.calendar-day.is-today{background:#f2f7f0}.calendar-day.is-today>header{color:var(--primary-dark)}.calendar-day.is-today>header strong{background:var(--primary);color:#fff}.calendar-day-body{display:flex;flex-direction:column;gap:8px;padding:9px}.day-empty,.day-closed{display:flex;min-height:64px;align-items:center;justify-content:center;gap:5px;padding:10px;border:1px dashed #ddd5c9;border-radius:10px;color:var(--text-muted);font-size:11px;text-align:center}.day-closed{background:#f1ede6}.appointment-card{position:relative;display:flex;flex-direction:column;gap:3px;padding:10px;border:1px solid #d6dfd3;border-left:4px solid #78927a;border-radius:10px;background:#fff;box-shadow:0 3px 10px #3e34270d}.appointment-card.is-confirmed{border-left-color:#4f8b60;background:#f5fbf4}.appointment-card.is-reschedule{border-left-color:#c38b3e;background:#fff9ed}.appointment-card.is-cancelled{border-left-color:#bd6862;background:#fff7f6;opacity:.72}.appointment-card.is-completed{border-left-color:#8c948b;opacity:.72}.appointment-time{display:flex;justify-content:space-between;color:var(--primary-dark);font-size:13px;font-weight:900}.appointment-time small{color:var(--text-muted);font-size:9px;font-weight:800}.appointment-card>strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.appointment-card>span{display:-webkit-box;overflow:hidden;color:var(--text-secondary);font-size:10px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.appointment-card>em{color:var(--text-muted);font-size:9px;font-style:normal;font-weight:800;text-transform:uppercase}.appointment-actions{display:flex;gap:5px;margin-top:5px}.appointment-actions button{flex:1;padding:4px;border:1px solid var(--border-glass);border-radius:7px;background:#fff;color:var(--text-secondary);font-size:9px;font-weight:800;cursor:pointer}.appointment-actions button:last-child{color:var(--danger)}.availability-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:22px;align-items:start}.panel-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.working-days-list{border:1px solid var(--border-glass);border-radius:15px;overflow:hidden}.working-day-row{display:grid;grid-template-columns:180px 1fr;min-height:72px;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--border-glass);background:#faf8f3}.working-day-row:last-child{border-bottom:0}.working-day-row.is-enabled{background:#fff}.working-day-name{display:flex;align-items:center;gap:10px;font-size:13px}.day-toggle{position:relative;width:39px;height:23px;border:0;border-radius:999px;background:#cdc9c1;cursor:pointer;transition:background .2s ease}.day-toggle span{position:absolute;width:17px;height:17px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0000002e;transition:transform .2s ease}.day-toggle.is-on{background:var(--primary)}.day-toggle.is-on span{transform:translate(16px)}.working-periods{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.time-period{display:flex;align-items:center;gap:7px}.time-period .form-input{width:108px;min-height:38px;padding:7px 9px}.time-period>span,.not-working-label{color:var(--text-muted);font-size:12px}.small-icon-button{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--border-glass);border-radius:9px;background:#fff;color:var(--danger);cursor:pointer}.add-period-button{display:inline-flex;align-items:center;gap:4px;padding:6px 8px;border:0;background:transparent;color:var(--primary-dark);font-size:11px;font-weight:800;cursor:pointer}.booking-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px;padding:17px;border-radius:14px;background:var(--bg-soft)}.booking-rules label{display:flex;flex-direction:column;gap:6px}.booking-rules label>span{color:var(--text-secondary);font-size:11px;font-weight:800}.booking-rules .form-input{min-height:40px;padding:8px 10px;font-size:12px}.exceptions-panel{position:sticky;top:102px}.exceptions-panel>.panel-description{margin-bottom:18px}.exception-form{padding-bottom:18px;border-bottom:1px solid var(--border-glass)}.exception-form .form-group{margin-bottom:12px}.exceptions-list{display:flex;max-height:430px;flex-direction:column;gap:8px;margin-top:16px;overflow-y:auto}.empty-exceptions{padding:18px;border:1px dashed var(--border-glass);border-radius:11px;color:var(--text-muted);font-size:12px;text-align:center}.exception-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--border-glass);border-radius:11px;background:#faf8f3}.exception-item>div{display:flex;min-width:0;flex-direction:column}.exception-item strong{font-size:13px}.exception-item span{color:var(--primary-dark);font-size:11px;font-weight:800}.exception-item small{overflow:hidden;color:var(--text-muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 1180px){.header-inner{align-items:flex-start;flex-direction:column;gap:10px}.app-nav{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.app-nav::-webkit-scrollbar{display:none}.credit-pill{order:10}.config-layout{grid-template-columns:1fr!important}.admin-stats-grid{grid-template-columns:repeat(2,1fr)!important}.agenda-workspace,.availability-layout{grid-template-columns:1fr}.manual-booking-card,.exceptions-panel{position:static}}@media (max-width: 840px){.auth-container{display:flex;padding:24px}.auth-welcome{display:none}.auth-card{max-width:480px}.welcome-banner{align-items:flex-start;flex-direction:column;padding:28px}.two-column-layout{grid-template-columns:1fr!important}.agenda-page-header{align-items:flex-start;flex-direction:column}.booking-rules,.working-day-row{grid-template-columns:1fr}.app-main [style*="grid-template-columns: 2fr 1fr 1fr"]{grid-template-columns:1fr!important}}@media (max-width: 560px){.auth-container{padding:14px}.auth-card{padding:26px 20px!important}.header-inner{min-height:auto;padding:12px 16px}.header-brand{width:100%}.app-nav .btn{flex:0 0 auto}.credit-pill{display:none!important}.app-main{margin-top:18px;padding:0 14px}.welcome-banner{padding:23px 20px;border-radius:19px}.welcome-banner h2{font-size:27px}.glass-panel{padding:20px;border-radius:17px}.admin-stats-grid{grid-template-columns:1fr!important}.agenda-tabs{width:100%;flex-direction:column}.agenda-tabs .btn{width:100%}.calendar-toolbar{align-items:flex-start;flex-direction:column}.form-row{grid-template-columns:1fr}.app-main [style*=grid-template-columns]{grid-template-columns:1fr!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
