:root{color-scheme:dark;--bg:#0c0b10;--surface:#141219;--raised:#1b1822;--line:#2c2736;--muted:#938b9e;--text:#f5f1fa;--purple:#b28aff;--purple-soft:#d9c7ff;--font:Inter,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;-webkit-font-smoothing:antialiased}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button,a{transition:background .18s,color .18s,border-color .18s,transform .18s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--purple);outline-offset:4px}a{color:var(--purple-soft)}svg{display:block}button svg{width:18px;height:18px;flex-shrink:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:550;letter-spacing:-.035em}p{line-height:1.65}img{display:block;max-width:100%}::selection{background:#65369c;color:white}
.app-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;display:flex;flex-direction:column;padding:36px 22px 25px;border-right:1px solid var(--line);background:#111015;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;margin:0 4px 46px}.brand-mark{width:38px;height:46px;color:var(--purple);flex-shrink:0}.brand-mark svg{width:100%;height:100%}.brand-name{font-size:20px;line-height:1.18;letter-spacing:-.045em;font-weight:650}.brand-name small,.brand-name span{display:block}.brand-name small{font-size:11px;text-transform:uppercase;letter-spacing:.19em;color:var(--muted);margin-top:7px;font-weight:400}.sidebar nav{display:flex;flex-direction:column;gap:7px}.nav-item{border:1px solid transparent;background:transparent;color:#b5adbf;padding:14px 15px;display:flex;align-items:center;gap:13px;border-radius:10px;text-align:left;font-size:13px;font-weight:500}.nav-item:hover{background:#1c1824;color:var(--text)}.nav-item.active{background:#b28aff16;color:var(--purple-soft);border-color:#b28aff21}.nav-icon{width:19px;height:19px;display:inline-flex;flex-shrink:0}.nav-icon svg{width:100%;height:100%}.sidebar-bottom{margin-top:auto;padding:22px 11px 0}.sidebar-bottom p{font-size:12px;color:var(--muted);line-height:1.7;margin-bottom:0}.private-label{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:#cab8e8;display:flex;align-items:center;gap:8px;margin-bottom:10px}.private-label svg{width:14px;height:14px}.main-shell{grid-column:2;min-width:0;padding:0 42px 38px;max-width:1700px;width:100%}.topbar{min-height:99px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.topbar-eyebrow{font-size:11px;color:#aaa0b5;letter-spacing:.14em;text-transform:uppercase}.page-heading{font-size:16px;letter-spacing:-.025em;margin:6px 0 0}.topbar-actions{display:flex;gap:18px;align-items:center}.local-status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;white-space:nowrap}.local-status:before{content:"";width:6px;height:6px;border-radius:50%;background:#a7c5aa;box-shadow:0 0 0 4px #a7c5aa0a}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;border:1px solid var(--line);border-radius:8px;padding:12px 18px;min-height:43px;font-size:12px;font-weight:600;text-decoration:none;line-height:1.3}.primary{background:var(--purple);color:#1a1029;border-color:var(--purple)}.primary:hover{background:#c19dff;border-color:#c19dff;transform:translateY(-1px)}.secondary{background:#1c1823;color:#dbd4e5}.secondary:hover{background:#282230;border-color:#4e405f}.danger{background:transparent;color:#f1a4b1;border-color:#6d34415c}.danger:hover{background:#3a1d26}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:7px;background:transparent;color:#c9c0d4}.icon-button:hover{background:#2b2337}.icon-button svg{width:16px;height:16px}
.view-section{padding-top:31px}.hero{position:relative;min-height:191px;display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden;margin-bottom:26px;padding:9px 0 14px}.hero:after{content:"";position:absolute;z-index:-1;width:430px;height:270px;right:-60px;top:-95px;background:radial-gradient(ellipse,#63438b27,transparent 68%);pointer-events:none}.eyebrow,.section-label{font-size:10px;letter-spacing:.19em;text-transform:uppercase;color:var(--purple);font-weight:500;margin-bottom:15px}.hero-title{font-size:clamp(32px,3.3vw,49px);line-height:1.13;max-width:680px;margin-bottom:13px;font-weight:550;letter-spacing:-.045em}.hero-title em{font-family:Georgia,"Times New Roman",serif;color:var(--purple-soft);font-weight:400}.hero-note{font-size:13px;color:var(--muted);margin:0;max-width:570px}.hero-copy{position:relative;z-index:1}.hero-art{color:var(--purple);width:190px;max-height:190px;flex-shrink:0;opacity:.68}.hero-art svg{width:100%;height:100%}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:32px}.stat-card{position:relative;min-height:129px;border:1px solid var(--line);background:linear-gradient(120deg,#1b1723,#141219 75%);border-radius:12px;padding:20px 22px}.stat-card svg{position:absolute;right:20px;top:20px;width:17px;height:17px;color:#8c759f}.stat-label{font-size:11px;color:#aaa0b5;margin-bottom:10px;display:block}.stat-value{font-size:29px;font-weight:550;letter-spacing:-.05em;display:block;line-height:1.3}.stat-foot{font-size:10px;color:#807789;display:block;margin-top:6px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h1{font-size:34px;margin:0 0 7px}.section-heading h2{font-size:23px;margin:0}.section-heading p{color:var(--muted);font-size:13px;margin:0;max-width:570px}.section-label{margin-bottom:8px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:13px;overflow:hidden}.panel.padded{padding:26px}.panel h2{font-size:19px;margin-bottom:9px}.panel>p{font-size:12px;color:var(--muted)}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line)}.calendar-toolbar h2{font-size:17px;letter-spacing:-.025em;margin:0}.calendar-controls{display:flex;align-items:center;gap:8px}.calendar-controls .button{min-height:36px;padding:8px 12px;font-size:11px}.calendar-controls select{min-height:36px;margin-left:8px;min-width:109px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px}.search-field{position:relative;max-width:380px;width:100%}.search-field input{padding-left:40px}.search-field svg{position:absolute;left:14px;top:13px;width:16px;height:16px;color:var(--muted)}
input,select,textarea{border:1px solid #362e41;border-radius:7px;background:#141119;color:#f3eef9;padding:12px 13px;min-width:0;width:100%;min-height:43px;box-shadow:none}input::placeholder,textarea::placeholder{color:#716779}input:focus,select:focus,textarea:focus{border-color:var(--purple);outline:none}input[type=file]{font-size:12px;padding:10px;color:var(--muted)}input[type=file]::file-selector-button{border:0;border-radius:4px;padding:8px 12px;background:#312540;color:var(--purple-soft);margin-right:12px;cursor:pointer}input[type=number]{appearance:textfield}input[type=number]::-webkit-inner-spin-button{appearance:none}select{appearance:auto;padding-right:9px;cursor:pointer}textarea{min-height:100px;resize:vertical}.toolbar select{max-width:240px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 16px}.form-field{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#d3cadf;min-width:0}.form-field small{color:var(--muted);font-size:11px;line-height:1.5}.span-2{grid-column:1/-1}.form-note{color:var(--muted);font-size:11px;line-height:1.65;margin:16px 0 22px}.settings-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px}.settings-grid .panel{padding:25px}.settings-grid .panel .button{margin-right:8px;margin-top:12px}.settings-grid>div{min-width:0}.settings-grid>div>.panel+.panel{margin-top:20px}.settings-grid .panel h3{font-size:17px}.settings-grid .panel p{font-size:12px;color:var(--muted)}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:352px}.week-day{min-width:0;border-right:1px solid var(--line);padding:0 10px 15px}.week-day:last-child{border:0}.day-heading{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:#a69bac;display:flex;flex-direction:column;align-items:center;gap:8px;padding:19px 0 17px}.day-heading span{font-size:10px;text-transform:uppercase;letter-spacing:.11em}.day-heading strong{font-size:22px;font-weight:500;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;line-height:1}.is-today .day-heading span{color:var(--purple)}.is-today .day-heading strong{background:var(--purple);color:#1a1029}.day-appointments{display:flex;flex-direction:column;gap:9px;padding-top:14px}.appointment-card{width:100%;display:flex;flex-direction:column;text-align:left;gap:7px;padding:13px 11px;border:1px solid #473058;border-left:2px solid var(--purple);background:#251b30;border-radius:7px;color:var(--text);min-width:0;overflow:hidden}.appointment-card:hover{background:#332440;transform:translateY(-1px)}.appointment-card strong{font-size:12px;line-height:1.35;overflow-wrap:anywhere;font-weight:550}.appointment-time{font-size:10px;color:#baa0d7;white-space:normal}.appointment-customer{font-size:10px;color:#ab9aba;overflow-wrap:anywhere}.appointment-meta{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:9px;color:#dfc9f9;padding-top:5px}.status-badge{font-size:8px;border-radius:4px;padding:3px 4px;background:#ffffff0a;letter-spacing:.01em}.status-confirmed{background:#1b2726;border-color:#304c47;border-left-color:#97c3ad}.status-confirmed .appointment-time,.status-confirmed .appointment-meta{color:#a1c8b7}.status-completed{background:#202027;border-color:#36333f;border-left-color:#8a7e99}.status-cancelled{background:#251b20;border-color:#43313b;border-left-color:#b77989;opacity:.7}.free-day{display:flex;flex-direction:column;gap:9px;align-items:center;justify-content:center;border:1px dashed #332a3e;border-radius:8px;background:transparent;color:#665b72;width:100%;min-height:120px;margin-top:4px}.free-day span{font-size:23px;font-weight:300}.free-day small{font-size:10px}.free-day:hover{border-color:#735590;background:#b28aff08;color:var(--purple)}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.month-weekdays{border-bottom:1px solid var(--line)}.month-weekdays span{text-align:center;text-transform:uppercase;color:var(--muted);font-size:10px;letter-spacing:.11em;padding:15px 0}.month-cell{min-width:0;min-height:129px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px}.month-cell:nth-child(7n){border-right:0}.month-cell:nth-last-child(-n+7){border-bottom:0}.month-date{display:grid;place-items:center;font-size:11px;width:29px;height:29px;background:transparent;color:#c3b8d1;border:0;border-radius:50%;margin-bottom:0}.month-date:hover{background:#332542}.month-cell.is-today .month-date{background:var(--purple);color:#1a1029}.outside-month{opacity:.36;background:#0f0d13}.month-cell .day-appointments{padding-top:5px;gap:5px}.month-cell .appointment-card{padding:7px;gap:4px}.month-cell .appointment-customer,.month-cell .appointment-meta{display:none}.month-cell .appointment-card strong{font-size:10px}.month-cell .appointment-time{font-size:9px}.appointment-list{padding:24px}.appointment-list section+section{margin-top:26px}.appointment-list h3{font-size:13px;color:#c8b7dd;margin-bottom:13px}.list-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.list-cards .appointment-card{padding:17px}.list-cards .appointment-card strong{font-size:14px}.list-cards .appointment-time,.list-cards .appointment-customer,.list-cards .appointment-meta{font-size:11px}
.customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.customer-card{display:flex;align-items:center;gap:18px;border:1px solid var(--line);padding:23px;border-radius:11px;background:var(--surface);color:var(--text);text-align:left;width:100%;min-width:0}.customer-card:hover{background:#1d1826;border-color:#695178}.customer-avatar{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border-radius:50%;background:#30233e;border:1px solid #b28aff24;color:var(--purple-soft);font-size:15px}.customer-info{flex:1;min-width:0}.customer-info h3{font-size:16px;margin-bottom:5px;overflow-wrap:anywhere}.customer-info p{font-size:11px;margin-bottom:10px;color:var(--muted);overflow-wrap:anywhere}.customer-info>span{font-size:10px;color:#af9bbe}.customer-thumbnail{width:48px;height:62px;object-fit:cover;border-radius:6px;filter:saturate(.7)}.customer-arrow{color:var(--purple);font-size:23px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.photo-card{background:var(--surface);border:1px solid var(--line);padding:0;color:var(--text);text-align:left;border-radius:11px;overflow:hidden;min-width:0}.photo-card:hover{border-color:#765890;transform:translateY(-2px)}.photo-card>img{width:100%;height:250px;object-fit:cover}.photo-caption{padding:16px;display:flex;flex-direction:column;gap:7px}.photo-caption strong{font-size:12px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-caption span{color:var(--muted);font-size:11px}.empty-state{grid-column:1/-1;padding:57px 22px;text-align:center;border:1px dashed #392e46;background:radial-gradient(ellipse at top,#40215512,transparent 65%);border-radius:12px;min-height:290px;display:flex;flex-direction:column;align-items:center;justify-content:center}.panel .empty-state{border:0;border-radius:0}.empty-icon{color:var(--purple);font-size:35px;margin-bottom:18px;line-height:1}.empty-state h3{font-size:21px;margin-bottom:10px}.empty-state p{color:var(--muted);font-size:12px;max-width:360px;margin-bottom:22px}.empty-state .button{font-size:11px}
.modal-dialog{position:fixed;inset:0;width:min(600px,calc(100% - 36px));max-height:90vh;max-height:90dvh;overflow:auto;border:1px solid #554163;border-radius:14px;padding:29px;background:#17131e;color:var(--text);box-shadow:0 25px 110px #0009;margin:auto}.modal-dialog::backdrop{background:#06040ce0;backdrop-filter:blur(7px)}.dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:27px}.dialog-title{font-size:24px;margin-bottom:7px}.dialog-header p{font-size:12px;color:var(--muted);margin:0}.dialog-footer{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:27px;padding-top:21px;border-top:1px solid var(--line)}.dialog-footer .danger{margin-right:auto}.modal-dialog #photo-detail-image{width:100%;max-height:49vh;object-fit:contain;border-radius:8px;background:#0a080e;margin-bottom:22px}.modal-dialog #photo-detail-title{overflow-wrap:anywhere}.mobile-nav{display:none}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,18px);max-width:min(540px,calc(100% - 32px));padding:15px 22px;background:#342243;border:1px solid #71528a;border-radius:10px;color:#f0defd;font-size:12px;line-height:1.5;z-index:1000;box-shadow:0 10px 50px #0009;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.is-error{background:#42222d;border-color:#874350;color:#ffdee4}
@media(min-width:1500px){.main-shell{padding-left:58px;padding-right:58px}.hero{min-height:213px}.hero-art{width:210px;max-height:210px}.week-grid{min-height:420px}.free-day{min-height:150px}}
@media(max-width:1200px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{width:210px;padding-left:16px;padding-right:16px}.main-shell{padding-left:27px;padding-right:27px}.hero-title{font-size:39px}.hero-art{width:145px}.stat-card{padding:18px 16px}.stat-value{font-size:26px}.stat-card svg{right:14px;top:18px}.calendar-toolbar{padding:19px 17px}.week-day{padding-left:6px;padding-right:6px}.appointment-card{padding:11px 8px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.customer-card{padding:19px;gap:12px}.customer-thumbnail{display:none}}
@media(max-width:1000px){.stats-grid{gap:10px}.stat-label{font-size:10px}.stat-card svg{display:none}.calendar-toolbar{flex-wrap:wrap;gap:16px}.calendar-controls{margin-left:auto}.hero-art{width:112px}.hero-title{font-size:34px}.hero-note{font-size:12px}.customer-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.list-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.week-grid{min-width:730px}#calendar-content{overflow-x:auto;scrollbar-width:thin;scrollbar-color:#665178 #141219}.month-grid,.month-weekdays{min-width:700px}.main-shell{padding-left:22px;padding-right:22px}.topbar-actions{gap:12px}.local-status{font-size:10px}}
@media(max-width:800px){.app-shell{display:block}.sidebar{display:none}.main-shell{padding:0 23px 106px;max-width:100%}.topbar{min-height:91px;gap:15px}.topbar-eyebrow{font-size:9px;letter-spacing:.09em}.page-heading{font-size:17px}.topbar-actions{gap:10px}.topbar .local-status{display:none}.topbar .button{padding:11px 13px;font-size:11px;min-height:41px}.topbar .button svg{width:15px;height:15px}.view-section{padding-top:26px}.hero{min-height:178px;margin-bottom:17px;gap:13px;padding-top:0}.hero-title{font-size:35px}.hero-art{width:115px;opacity:.45}.hero-note{max-width:385px;font-size:12px}.stats-grid{margin-bottom:27px}.stat-card{padding:16px 14px;min-height:110px}.stat-value{font-size:25px}.stat-foot{font-size:9px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;height:76px;padding:8px 11px max(8px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:#151119f2;backdrop-filter:blur(16px);border-top:1px solid #3b2c4b;z-index:30}.mobile-nav button{border:0;background:transparent;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#92829e;font-size:9px;padding:8px 3px}.mobile-nav .nav-icon{width:19px;height:19px}.mobile-nav button.active{color:var(--purple-soft);background:#b28aff0c}.section-heading h1{font-size:31px}.section-heading{margin-bottom:23px}.gallery-grid{gap:16px}.toast{bottom:93px}.modal-dialog{max-height:86vh;max-height:86dvh}.calendar-toolbar{padding:18px}.calendar-toolbar h2{font-size:15px}.calendar-controls{gap:7px}.calendar-controls select{min-width:99px;font-size:11px;margin-left:3px}.month-cell{min-height:119px}.settings-grid{gap:18px}.panel.padded,.settings-grid .panel{padding:22px}}
@media(max-width:520px){.main-shell{padding-left:18px;padding-right:18px}.topbar{gap:10px}.topbar-eyebrow{font-size:8px}.page-heading{font-size:15px}.topbar .button{padding:11px;font-size:10px;gap:6px}.hero{min-height:186px;align-items:flex-start;padding-top:7px}.hero-title{font-size:34px;max-width:340px}.hero-copy{max-width:100%}.hero-art{position:absolute;right:-18px;top:12px;width:117px;opacity:.12;z-index:0}.eyebrow{font-size:9px;margin-bottom:14px}.hero-note{max-width:300px;line-height:1.6}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.stat-card{min-height:110px;padding:17px 18px}.stat-card svg{display:block;width:14px;height:14px}.stat-label{font-size:10px;margin-bottom:8px}.stat-value{font-size:27px}.calendar-toolbar{align-items:flex-start;padding:18px 15px 15px;gap:17px}.calendar-toolbar h2{font-size:15px;width:100%}.calendar-controls{width:100%;margin:0}.calendar-controls select{margin-left:auto;max-width:103px}.calendar-controls .button{font-size:10px;padding:8px 11px}.icon-button{width:34px;height:34px}.toolbar{flex-wrap:wrap;gap:12px}.search-field{max-width:100%}.toolbar>.button{margin-left:auto}.toolbar select{max-width:calc(100% - 149px);font-size:11px}.section-heading{align-items:flex-start;flex-direction:column;gap:13px}.section-heading h1{font-size:30px}.section-heading p{font-size:12px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.photo-card>img{height:180px}.photo-caption{padding:12px;gap:6px}.photo-caption strong{font-size:10px}.photo-caption span{font-size:9px}.customer-card{padding:20px 16px}.customer-avatar{width:43px;height:43px;font-size:13px}.customer-info h3{font-size:15px}.empty-state{padding:46px 20px;min-height:290px}.empty-state h3{font-size:20px}.empty-state p{font-size:11px}.list-cards{grid-template-columns:1fr}.appointment-list{padding:20px}.form-grid{gap:16px 12px}.form-field{font-size:11px}.form-field input,.form-field select,.form-field textarea{font-size:12px;padding:11px}.modal-dialog{padding:23px 19px;width:calc(100% - 26px);border-radius:11px}.dialog-header{margin-bottom:23px}.dialog-title{font-size:23px}.dialog-footer{flex-wrap:wrap;gap:8px}.dialog-footer .button{padding:11px 13px;font-size:11px}.dialog-footer .danger{margin-right:auto}.settings-grid .panel .button{margin-right:4px;font-size:11px;padding:11px 13px}.settings-grid .panel{padding:21px}.mobile-nav{height:73px}.toast{bottom:88px}.button{min-height:42px}.view-section{padding-top:24px}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.subtle{font-size:11px;color:var(--muted);line-height:1.6;margin:0}.brand-mark{display:flex;justify-content:center;align-items:center;position:relative;font-family:Georgia,serif;font-style:italic;font-size:38px;line-height:1;border:1px solid #74519270;border-radius:50%;width:40px;height:48px}.brand-mark small{position:absolute;font-family:var(--font);font-size:13px;right:-5px;top:-7px;color:var(--purple)}.brand-name{font-size:15px;letter-spacing:.07em}.brand-name span{font-size:9px;font-weight:400;letter-spacing:.22em;color:var(--muted);margin-top:7px}.nav-dot{width:5px;height:5px;margin-left:auto;background:var(--purple);border-radius:50%}.nav-icon,.button svg,.stat-label svg,.backup-icon svg,.mobile-nav svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sidebar-art{margin:0 0 40px;display:flex;flex-direction:column;align-items:center;color:#77538e;font-size:45px;line-height:1.3}.sidebar-art span{font-size:8px;letter-spacing:.2em;margin-top:12px;color:#7d6e89}.page-heading span{font-size:14px;margin-left:13px;color:var(--purple)}.topbar-eyebrow{margin-bottom:0}.hero{min-height:270px;margin-top:13px;margin-bottom:22px}.hero-copy>p:not(.eyebrow){font-size:13px;color:var(--muted);margin-bottom:20px}.hero-note{display:flex;align-items:center;gap:11px;font-size:8px;letter-spacing:.13em;color:#8d7b9d}.hero-title{font-size:clamp(42px,4.5vw,60px)}.hero-art{width:270px;max-height:235px;opacity:.75;margin-right:48px}.hero-index{position:absolute;right:0;bottom:10px;color:#6d5e7d;font-size:8px;letter-spacing:.14em}.tiny-line{width:24px;height:1px;background:#80539d}.calendar-toolbar h3{font-size:15px;margin:0;white-space:nowrap;font-weight:500;letter-spacing:-.025em}.calendar-toolbar>.calendar-controls{margin:0}.calendar-toolbar>select{width:142px;min-height:36px;font-size:11px}.calendar-legend{display:flex;align-items:center;gap:18px;padding:18px 22px;border-top:1px solid var(--line);font-size:9px;color:#8f809e}.calendar-legend>span{display:inline-flex;align-items:center;gap:6px}.calendar-legend i{width:5px;height:5px;border-radius:50%;display:block}.planned-dot{background:var(--purple)}.confirmed-dot{background:#a1c8b7}.completed-dot{background:#8a7e99}.legend-tip{margin-left:auto;font-size:9px;color:#6f647a}.search-field>span{position:absolute;left:14px;top:8px;font-size:24px;color:var(--muted)}.full-width{width:100%;margin-top:22px}.pill{font-size:8px;letter-spacing:.13em;border:1px solid #b28aff35;border-radius:30px;padding:9px 13px;color:#c2aad9;background:#b28aff08}.settings-grid form h3{font-size:20px;margin-bottom:10px}.settings-grid form>p{margin-bottom:23px;font-size:12px}.form-field .form-note{margin:0;line-height:1.5;font-size:10px}.backup-icon{display:grid;place-items:center;width:42px;height:42px;background:#b28aff14;border:1px solid #b28aff24;border-radius:10px;margin-bottom:21px;color:var(--purple)}.backup-icon svg{width:19px;height:19px}.backup-actions{display:flex;align-items:flex-start;flex-direction:column;gap:10px;margin-top:15px}.settings-grid .backup-actions .button{margin-top:0;justify-content:space-between;min-width:245px}.backup-actions .button span{font-size:16px}.local-note{margin-top:28px;padding-top:21px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.6}.local-note strong{font-weight:500;color:#cbb8da}.local-note p{margin-top:8px;margin-bottom:0}.main-footer{display:flex;justify-content:space-between;align-items:center;margin-top:34px;padding-top:22px;border-top:1px solid #241d2f;font-size:8px;letter-spacing:.12em;color:#6b5d79}.main-footer>span:last-child{font-size:9px;letter-spacing:0}.main-footer b{font-size:12px;margin-left:8px;color:#9d75bb}.mobile-nav svg{width:20px;height:20px}
@media(max-width:1200px){.hero-art{width:230px;margin-right:5px}.hero{min-height:250px}.hero-title{font-size:49px}.hero-copy>p:not(.eyebrow){font-size:12px}.hero-note{font-size:7px}.calendar-toolbar>.calendar-controls{gap:7px}.calendar-toolbar h3{font-size:14px}.calendar-toolbar>select{width:127px}.legend-tip{display:none}}
@media(max-width:1000px){.hero-art{width:175px;margin-right:0}.hero-title{font-size:43px}.hero-note{max-width:280px;line-height:1.6}.calendar-toolbar>.calendar-controls{margin:0}.calendar-toolbar>select{margin-left:auto}.calendar-legend{padding:16px 19px}.calendar-toolbar h3{font-size:13px}.hero{min-height:242px}}
@media(max-width:800px){.hero{min-height:260px;margin-top:8px;margin-bottom:21px}.hero-title{font-size:48px}.hero-art{width:220px;margin-right:10px}.hero-index{bottom:6px}.hero-copy>p:not(.eyebrow){font-size:12px}.hero-note{font-size:7px}.view-section{padding-top:0}.section-heading .subtle{font-size:10px}.main-footer{margin-top:27px}.calendar-toolbar>.calendar-controls{margin:0}.calendar-toolbar>select{margin-left:auto}.mobile-nav svg{width:19px;height:19px}}
@media(max-width:520px){.hero{min-height:269px;padding-top:26px;margin-top:0;margin-bottom:16px}.hero-title{font-size:44px;max-width:280px;line-height:1.12}.hero-art{top:20px;right:-42px;width:190px;max-height:235px;opacity:.18;margin:0}.hero-copy>p:not(.eyebrow){font-size:11px;line-height:1.65;margin-bottom:16px}.hero-note{font-size:6.8px;max-width:290px;gap:8px}.hero-index{display:none}.eyebrow{font-size:8px;letter-spacing:.14em}.topbar .button{font-size:10px;padding:10px;min-height:39px}.page-heading{font-size:14px}.page-heading span{margin-left:7px;font-size:11px}.topbar-eyebrow{font-size:7px}.calendar-toolbar>.calendar-controls{flex-wrap:nowrap;width:100%;gap:7px}.calendar-toolbar h3{font-size:12px;flex:1;text-align:center;white-space:normal}.calendar-toolbar>.calendar-controls .icon-button{font-size:23px;line-height:1;flex-shrink:0;width:29px;height:32px}.calendar-toolbar .button{min-height:32px;padding:7px 10px}.calendar-toolbar>select{width:100%;min-height:35px;margin:0}.calendar-legend{padding:15px;gap:18px}.section-heading{flex-direction:row;align-items:flex-end;gap:12px}.section-heading .subtle{display:none}.section-heading h2{font-size:23px}.section-heading .button{font-size:10px;padding:11px 12px}.section-heading .pill{font-size:6px;padding:7px 9px;letter-spacing:.08em}.toolbar>.subtle{font-size:9px;flex:1;line-height:1.5}.toolbar select{max-width:165px}.main-footer>span:last-child{display:none}.main-footer{margin-top:29px;padding-top:22px}.backup-actions{gap:11px}.settings-grid .backup-actions .button{min-width:0;width:100%}.settings-grid .panel h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.dialog-error{padding:12px 14px;margin:0 0 20px;border:1px solid #874350;border-radius:8px;background:#42222d;color:#ffdee4;font-size:12px;line-height:1.6}
/* Personal booking management and studio activity log */
.booking-brand .brand-name{font-size:18px;letter-spacing:.035em}.booking-brand .brand-name span{font-size:8px;letter-spacing:.16em}.booking-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:19px}.booking-actions .button{flex:1;min-width:140px}.booking-offer-link{width:100%;margin-bottom:4px}.booking-confirm-panel,.booking-change-panel{margin-top:24px;border-top:1px solid #71518255;padding-top:24px}.booking-confirm-panel h2,.booking-change-panel h2{font-size:20px;line-height:1.4;margin-bottom:12px}.booking-confirm-panel>p,.booking-change-note{font-size:11px;line-height:1.8;color:#bea5cb}.booking-confirm-panel{padding:20px;border:1px solid #b779893f;border-radius:9px;background:#b7798908}.booking-confirm-panel>p{color:#d6a7b4}.booking-change-note{padding:13px 15px;border:1px solid #b28aff2b;border-radius:7px;background:#b28aff09;margin-bottom:24px}.booking-change-panel .form-field{font-size:11px}.booking-change-panel .form-note{font-size:10px;line-height:1.7;color:var(--muted)}.appointment-manage-panel{margin-top:24px;padding:20px;border:1px solid #b28aff25;border-radius:9px;background:#b28aff05}.appointment-manage-panel>.eyebrow{font-size:8px;margin-bottom:15px}.appointment-manage-panel input{font-size:11px;min-width:0;overflow:hidden}.appointment-manage-panel .form-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:12px;margin-bottom:15px}.appointment-manage-panel .button{font-size:11px}.audit-intro{color:var(--muted);font-size:12px;max-width:650px;margin-bottom:23px}.audit-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:23px}.audit-toolbar .form-field{width:min(310px,100%);font-size:11px}.audit-list{display:grid;gap:10px}.audit-entry{display:grid;grid-template-columns:112px minmax(110px,.7fr) minmax(0,1.5fr) 110px;align-items:center;gap:20px;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:0}.audit-when{display:flex;flex-direction:column;gap:6px;font-size:11px;color:#bcabc9}.audit-when>span{font-size:9px;color:#8f799f}.audit-actor{display:flex;flex-direction:column;gap:6px;min-width:0}.audit-actor strong{font-size:11px;font-weight:500;overflow-wrap:anywhere}.audit-actor>span{font-size:9px;color:#957da7}.audit-event{min-width:0}.audit-event>p{margin:0 0 5px;font-size:12px;line-height:1.65;overflow-wrap:anywhere}.audit-event>span{font-size:9px;color:#a78bbd}.audit-result{justify-self:end;border:1px solid #b28aff24;border-radius:5px;padding:6px 9px;font-size:9px;color:#b9a2cb;white-space:nowrap}.audit-result.success{color:#b1d6bf;background:#97c3ad0b;border-color:#97c3ad28}.audit-result.failed{color:#e5a7b6;background:#b779890e;border-color:#b779893a}.audit-more{display:flex;margin:22px auto 0}.mobile-nav:has([data-view="audit"]){grid-template-columns:repeat(6,minmax(0,1fr))}
@media(max-width:1000px){.audit-entry{grid-template-columns:100px minmax(95px,.7fr) minmax(0,1.5fr);gap:14px}.audit-result{grid-column:3;justify-self:start}.audit-actor{align-self:start}.audit-when{align-self:start}.audit-event{grid-row:1;grid-column:3}}
@media(max-width:650px){.audit-toolbar{align-items:flex-start;flex-direction:column;gap:13px}.audit-toolbar .form-field{width:100%}.audit-entry{grid-template-columns:1fr auto;gap:13px;padding:18px}.audit-when{grid-column:1;grid-row:1;flex-direction:row;align-items:center;gap:10px;font-size:10px}.audit-result{grid-column:2;grid-row:1;justify-self:end;font-size:8px}.audit-actor{grid-column:1/-1;grid-row:2;flex-direction:row;gap:9px;align-items:center}.audit-actor strong{font-size:11px}.audit-event{grid-column:1/-1;grid-row:3}.audit-event>p{font-size:11px}.audit-intro{font-size:11px}.booking-actions .button{font-size:11px;min-width:0}.booking-confirm-panel{padding:17px}.booking-confirm-panel h2,.booking-change-panel h2{font-size:19px}.booking-change-panel .form-field{font-size:10px}.booking-change-note{padding:12px;font-size:10px}.booking-brand .brand-name{font-size:15px}.booking-brand .brand-name span{font-size:7px}.appointment-manage-panel{padding:17px}.appointment-manage-panel .button{width:100%;font-size:10px}}
.audit-changes{grid-column:1/-1;border-top:1px solid #b28aff1b;padding-top:14px;margin-top:1px;min-width:0}.audit-changes>summary{font-size:10px;color:#c1a2dc;cursor:pointer;width:max-content;max-width:100%;line-height:1.6}.audit-change-table{margin-top:14px;display:grid;gap:9px;padding:15px;background:#b28aff05;border:1px solid #b28aff17;border-radius:7px}.audit-change-row,.audit-change-heading{display:grid;grid-template-columns:105px minmax(0,1fr) 25px minmax(0,1fr);gap:10px;align-items:center;font-size:10px;color:#b9a6c9;line-height:1.7}.audit-change-row>strong{font-weight:500;color:#d6c3e7}.audit-change-row>span{overflow-wrap:anywhere}.audit-change-arrow{color:#b28aff;text-align:center}.audit-change-heading{font-size:8px;letter-spacing:.06em;color:#8f759f}.audit-changes[open]>summary{color:#e1c9ff}@media(max-width:650px){.audit-changes{grid-row:4}.audit-change-row,.audit-change-heading{grid-template-columns:75px minmax(0,1fr) 15px minmax(0,1fr);gap:7px;font-size:9px}.audit-change-table{padding:12px}.audit-change-heading{font-size:8px}}
/* Customer motif upload and saved 3D placement */
.modal-dialog.tattoo-booking-dialog{width:min(860px,calc(100% - 36px));max-width:860px}.tattoo-panel{margin-top:26px;padding-top:24px;border-top:1px solid #5b40642e}.tattoo-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.tattoo-section-heading .eyebrow{font-size:8px;margin-bottom:9px}.tattoo-section-heading h3{font-size:20px;margin:0}.tattoo-optional{border:1px solid #b28aff25;border-radius:20px;padding:6px 9px;font-size:9px;color:#b6a0ca}.tattoo-instructions{font-size:11px;line-height:1.8;color:#b1a0bf;max-width:660px;margin-bottom:19px}.tattoo-upload-row{display:flex;align-items:center;gap:20px;justify-content:space-between}.tattoo-upload-label{flex:1;min-width:0}.tattoo-upload-label input{width:100%;padding:11px;font-size:11px;min-height:43px}.tattoo-upload-label input::file-selector-button{color:#d9c7ff;background:#3a284b;border:1px solid #76539960;border-radius:5px;padding:8px 10px;margin-right:12px;font:inherit;cursor:pointer}.tattoo-upload-row .button{font-size:10px;flex-shrink:0;min-height:38px;padding:10px 13px}.tattoo-status{font-size:11px;line-height:1.7;color:#bba4ce;margin:14px 0}.tattoo-status:empty{display:none}.tattoo-status.is-error{color:#f0b2c0;padding:12px;background:#45252d7a;border:1px solid #b7798940;border-radius:7px}.tattoo-editor{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:21px;margin-top:15px}.tattoo-model-column{min-width:0}.tattoo-viewer{height:405px;position:relative;overflow:hidden;border:1px solid #51375f;border-radius:11px;background:radial-gradient(ellipse at 50% 55%,#332139,#100d15 80%);touch-action:none}.tattoo-viewer canvas{display:block;width:100%;height:100%;outline:none;touch-action:none}.tattoo-view-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px}.tattoo-view-buttons button{padding:9px 6px;min-height:34px;font-size:10px;color:#c0a8d4;border:1px solid #b28aff27;background:#b28aff07;border-radius:5px}.tattoo-view-buttons button:hover{background:#b28aff17;color:#e0c8ff}.tattoo-controls{display:flex;flex-direction:column;gap:16px;min-width:0}.tattoo-source{padding:12px;background:#b28aff06;border:1px solid #b28aff20;border-radius:8px}.tattoo-source img{width:100%;height:122px;object-fit:contain;border-radius:4px;background:repeating-conic-gradient(#ded7e4 0% 25%,#f6f1fa 0% 50%) 50%/16px 16px}.tattoo-source span{display:block;font-size:9px;color:#b5a0c4;margin-top:11px;overflow-wrap:anywhere;line-height:1.7}.tattoo-controls .form-field{font-size:10px;gap:8px}.tattoo-controls input[type=range]{accent-color:var(--purple);padding:0;min-height:25px;height:25px;border:0;background:transparent}.tattoo-controls output{color:#d9c7ff;font-size:11px}.tattoo-controls .form-note{font-size:10px;color:var(--muted);line-height:1.7;margin:0}.tattoo-location{padding:9px 11px;margin:0;background:#b28aff0d;border-radius:5px;font-size:10px;line-height:1.7;color:#ceb5e3}.tattoo-location:empty{display:none}.tattoo-check{display:flex;align-items:flex-start;gap:9px;font-size:10px;line-height:1.7;color:#bea7d0;cursor:pointer}.tattoo-check input[type=checkbox]{width:15px;height:15px;min-height:0;accent-color:var(--purple);margin-top:1px;flex-shrink:0}.tattoo-panel .form-note{font-size:10px;line-height:1.7;color:var(--muted)}
@media(max-width:650px){.modal-dialog.tattoo-booking-dialog{width:calc(100% - 24px);padding:24px 20px}.tattoo-editor{grid-template-columns:1fr;gap:19px}.tattoo-controls{display:grid;grid-template-columns:1fr 1fr;gap:15px}.tattoo-source{grid-column:1/-1;display:flex;align-items:center;gap:15px}.tattoo-source img{width:90px;height:82px;flex-shrink:0}.tattoo-source span{margin-top:0;font-size:10px}.tattoo-location,.tattoo-check,.tattoo-controls>.form-note{grid-column:1/-1}.tattoo-viewer{height:375px}.tattoo-upload-row{align-items:flex-start;flex-direction:column;gap:12px}.tattoo-upload-row .button{font-size:10px}.tattoo-section-heading h3{font-size:19px}.tattoo-section-heading .eyebrow{font-size:7px}.tattoo-panel{margin-top:22px;padding-top:21px}.tattoo-instructions{font-size:10px}.tattoo-controls .form-field{font-size:10px}.tattoo-view-buttons button{font-size:10px}.tattoo-status{font-size:10px}}
@media(max-width:380px){.tattoo-viewer{height:330px}.tattoo-controls{grid-template-columns:1fr}.tattoo-controls>*{grid-column:1!important}}
/* Offers and explicit customer price acceptance */
.offer-view{min-height:100vh;padding:38px 24px;background:radial-gradient(ellipse at 50% 15%,#6c428326,transparent 60%),var(--bg);display:flex;justify-content:center;align-items:center}.offer-shell{width:min(580px,100%)}.offer-shell>.brand{width:max-content;max-width:100%;margin:0 auto 36px}.offer-card{position:relative;border:1px solid #53395e;border-radius:17px;padding:38px;background:linear-gradient(145deg,#21172b,#131017 65%);box-shadow:0 24px 90px #0003;overflow:hidden}.offer-card>.eyebrow{margin-bottom:14px;max-width:75%;line-height:1.6}.offer-ornament{position:absolute;right:30px;top:27px;color:#b28aff5c;font-size:47px;line-height:1}.offer-card h1{font-size:35px;line-height:1.16;font-weight:500;max-width:400px;margin:20px 0 27px}.offer-card h1 em{font-family:Georgia,serif;color:var(--purple-soft);font-weight:400}.offer-state{display:inline-flex;border:1px solid #b28aff32;border-radius:6px;padding:7px 10px;background:#b28aff0b;color:#d3b5f5;font-size:10px}.offer-state.accepted{border-color:#97c3ad45;color:#b5dcc6;background:#97c3ad0c}.offer-state.unavailable{border-color:#b7798945;color:#edb9c5;background:#b7798910}.offer-details{border-top:1px solid #4a3457;border-bottom:1px solid #4a3457;padding:24px 0;margin-bottom:23px}.offer-details:empty{border:0;padding:0;margin:0}.offer-details h2{font-size:21px;line-height:1.4;margin:0 0 15px;overflow-wrap:anywhere}.offer-details>p{margin:5px 0;color:#b3a3c2;font-size:12px}.offer-total{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:26px}.offer-total>span{color:#b5a0c7;font-size:12px}.offer-total>strong{font-size:36px;line-height:1.1;letter-spacing:-.045em;color:#dec6ff;font-weight:500}.offer-explanation{font-size:12px;color:#b9a9c7;line-height:1.8;margin-bottom:24px}.offer-accept{width:100%;justify-content:space-between;padding:15px 16px;min-height:50px;line-height:1.5}.offer-accept span{font-size:18px}.offer-back{display:block;width:max-content;margin:21px auto 0;font-size:11px;text-decoration:none;color:#a18aaf}.offer-back:hover{color:var(--purple-soft)}.offer-signature{text-align:center;font-size:8px;color:#806790;letter-spacing:.19em;margin:25px 0 0}.offer-signature span{color:#ad84ce;margin-left:8px}.appointment-offer-panel{margin-top:24px;padding:21px;border:1px solid #77519855;border-radius:9px;background:#b28aff09}.appointment-offer-panel>.eyebrow{font-size:8px;margin-bottom:13px}.offer-summary{font-size:12px;color:#d2b6f0;line-height:1.65;margin-bottom:17px}.appointment-offer-panel textarea{font-size:11px;line-height:1.8;resize:vertical;min-height:200px;overflow-wrap:anywhere;background:#100d16}.appointment-offer-panel>.form-note{font-size:10px;line-height:1.7;color:var(--muted);margin:13px 0 17px}.appointment-offer-panel .button{font-size:11px}.booking-price{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-top:1px solid #b28aff20;border-bottom:1px solid #b28aff20;margin-top:12px;margin-bottom:15px!important}.booking-price strong{color:var(--purple-soft);font-size:21px;font-weight:500;letter-spacing:-.035em}.booking-card.offer-accepted .status-badge{background:#97c3ad16;color:#b5dcc6}.offer-pending .status-badge{background:#b28aff12;color:#d3b5f5}.appointment-card.offer-pending{border-color:#71438a;background:#2a1b35}.appointment-card.offer-accepted .status-badge{color:#b5dcc6}.booking-card .request-actions>a{font-size:11px}.dialog-footer{flex-wrap:wrap}
@media(max-width:520px){.offer-view{padding:25px 17px;align-items:flex-start}.offer-shell>.brand{margin-bottom:28px}.offer-card{padding:27px 22px;border-radius:12px}.offer-card h1{font-size:29px;margin-top:21px}.offer-card>.eyebrow{font-size:8px}.offer-ornament{right:21px;top:21px;font-size:38px}.offer-details h2{font-size:19px}.offer-total>strong{font-size:30px}.offer-total>span{font-size:11px}.offer-accept{font-size:11px;text-align:left;padding:13px 14px;min-height:51px}.offer-explanation{font-size:11px}.appointment-offer-panel{padding:17px}.appointment-offer-panel textarea{font-size:10px}.appointment-offer-panel .button{width:100%;font-size:10px}.offer-summary{font-size:11px}.booking-price strong{font-size:20px}}
/* Accounts, daily booking and studio administration */
.auth-view{min-height:100vh;display:grid;grid-template-columns:minmax(320px,.85fr) minmax(440px,1.15fr);background:radial-gradient(ellipse at 90% 10%,#58337614,transparent 60%),var(--bg)}
.auth-artwork{position:relative;min-height:100vh;overflow:hidden;border-right:1px solid #35213d;background:radial-gradient(ellipse at 48% 50%,#54327124,transparent 59%),linear-gradient(140deg,#17101f,#0b0a10 78%);display:flex;align-items:center;justify-content:center}
.auth-artwork:before,.auth-artwork:after{content:"";position:absolute;width:430px;height:430px;border:1px solid #a078ca20;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.auth-artwork:after{width:470px;height:470px;border-style:dashed;border-color:#a078ca14}
.auth-orbit{position:absolute;width:570px;height:570px;border:1px solid #a078ca0f;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.auth-star{position:absolute;top:calc(50% - 200px);left:calc(50% - 135px);color:#b48bd4;font-size:47px;font-weight:300}.auth-ink{position:relative;color:#ebe0f6;font-size:clamp(38px,4.5vw,64px);line-height:1.25;letter-spacing:-.06em;font-weight:500;transform:rotate(-7deg)}.auth-ink em{color:#caa4f1;font-family:Georgia,serif;font-weight:400;letter-spacing:-.045em}.auth-art-caption{position:absolute;bottom:48px;font-size:8px;color:#8b739e;letter-spacing:.24em}
.auth-content{position:relative;padding:46px clamp(30px,6vw,95px);display:flex;align-items:center;justify-content:center;flex-direction:column}.auth-content>.brand{align-self:flex-start;margin:0 0 47px}.auth-card{width:100%;max-width:440px;border:0;background:transparent;overflow:visible}.auth-card>.eyebrow{margin-bottom:18px}.auth-card h1{font-size:37px;line-height:1.19;letter-spacing:-.045em;font-weight:500;margin-bottom:16px}.auth-card h1 em{color:var(--purple-soft);font-family:Georgia,serif;font-weight:400;font-size:31px}.auth-intro{color:var(--muted);font-size:12px;margin-bottom:29px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:#18121f;border:1px solid var(--line);border-radius:9px;padding:4px;gap:4px;margin-bottom:26px}.auth-tabs button{background:transparent;color:#9485a4;border:0;border-radius:6px;padding:12px;font-size:12px;font-weight:500}.auth-tabs button.active{background:#32233f;color:#e1cef8;box-shadow:0 2px 9px #0002}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-form .full-width{margin-top:6px;justify-content:space-between;padding:14px 17px}.auth-form .form-field{font-size:11px;gap:9px}.auth-form input{background:#141018;border-color:#34273f;min-height:48px}.auth-form .form-field>.subtle{display:inline}.auth-fineprint{margin:0;font-size:10px;color:#8e7f9b;line-height:1.65}.auth-footer{margin-top:28px;border-top:1px solid #2d2235;padding-top:21px;display:flex;align-items:center;gap:9px;color:#7e6c90;font-size:10px}.auth-footer svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6}.auth-signature{align-self:flex-start;margin-top:44px;color:#614e73;font-size:8px;letter-spacing:.2em}.auth-signature b{color:#9873b7;font-size:11px;margin-left:8px}.auth-card .dialog-error{margin-top:20px;margin-bottom:0}
.session-badge{display:flex;flex-direction:column;gap:4px;text-align:right;color:#d6c7e6;font-size:11px;max-width:140px;overflow-wrap:anywhere}.session-badge .subtle{font-size:9px;color:#8c779e}.logout-button{background:transparent;font-size:10px;min-height:38px;padding:10px 13px}.booking-section{margin-top:34px}.booking-section .section-heading h2{font-size:20px}.booking-section .section-heading .section-label{font-size:8px;color:#aa8bc6}.request-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.request-card,.booking-card,.user-card{border:1px solid var(--line);border-radius:11px;background:var(--surface);padding:22px;min-width:0}.request-card h3,.booking-card h3,.user-card h3{font-size:16px;margin-bottom:8px;overflow-wrap:anywhere}.request-card p,.booking-card p,.user-card p{color:var(--muted);font-size:11px;overflow-wrap:anywhere;margin-bottom:10px}.request-card .button,.booking-card .button{font-size:10px;padding:10px 12px;min-height:36px}.request-card .request-actions,.booking-card .request-actions,.request-card .card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:18px}.request-card .status-badge,.booking-card .status-badge,.user-card .status-badge{font-size:10px;display:inline-flex;padding:5px 8px;background:#3b284d;color:#d9bafa;margin-bottom:10px}.request-explanation{font-size:12px;color:#b4a4c2;background:#b28aff0a;padding:15px;border:1px solid #b28aff1a;border-radius:8px;margin-bottom:22px}.request-explanation:before{content:"✦ ";color:var(--purple)}
.day-booked{font-size:9px;color:#8b8296;display:flex;gap:7px;align-items:center;justify-content:center;padding:10px 4px;border-radius:5px;background:#ffffff04;border:1px solid #ffffff06}.month-cell.is-occupied,.week-day.is-occupied{background:#17161b}.is-occupied .month-date,.is-occupied .day-heading{color:#706b79;cursor:not-allowed}.is-occupied .month-date:hover{background:transparent}.is-occupied .free-day{border-color:#2d2a33;color:#635e6e;cursor:not-allowed}.month-cell.is-past,.week-day.is-past{background:#0f0e13;color:#57515f}.is-past .month-date,.is-past .day-heading{color:#5e5766}.occupied-dot{background:#726b7c}.status-pending{background:#251b30;border-color:#473058;border-left-color:var(--purple)}.status-pending .appointment-time{color:#baa0d7}.status-pill{display:inline-flex;padding:5px 9px;border-radius:5px;font-size:9px;background:#b28aff15;color:#d0b0f4}.status-pill.confirmed{background:#97c3ad14;color:#a1c8b7}.status-pill.cancelled{background:#b7798914;color:#d699a7}.calendar-panel .calendar-controls{flex-wrap:nowrap}.calendar-panel .calendar-legend{flex-wrap:wrap}.calendar-panel .calendar-toolbar{flex-wrap:nowrap}.calendar-panel .month-cell{min-height:116px}.calendar-legend .legend-tip{font-size:9px}
.role-note{display:flex;gap:14px;align-items:center;padding:18px 21px;margin-bottom:22px;background:#b28aff07}.role-note svg{width:22px;height:22px;flex-shrink:0;color:var(--purple);fill:none;stroke:currentColor;stroke-width:1.6}.role-note p{margin:0;font-size:11px;line-height:1.7;color:#a89ab7}.user-list{display:grid;gap:12px}.user-card{display:flex;align-items:center;justify-content:space-between;gap:20px}.user-card h3{margin-bottom:5px}.user-card p{margin-bottom:0}.user-card .user-info{min-width:0}.user-card .role-badge,.role-badge{display:inline-flex;border:1px solid #b28aff26;background:#b28aff0b;color:#d3baf1;padding:6px 10px;border-radius:6px;font-size:9px;white-space:nowrap}.user-card .user-actions,.user-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.user-actions .button{font-size:10px;min-height:36px;padding:9px 12px}.user-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.user-row p{margin-bottom:0;color:var(--muted);font-size:11px}.user-row h3{font-size:15px;margin-bottom:5px}.user-row .button{font-size:10px;min-height:36px;padding:9px 12px}.studio-hours{display:flex;gap:13px;align-items:center;margin-top:22px;margin-bottom:17px;background:#b28aff08;border:1px solid #b28aff17;padding:16px;border-radius:8px;color:#9988ab;font-size:11px;line-height:1.8}.studio-hours svg{width:23px;height:23px;flex-shrink:0;color:var(--purple);fill:none;stroke:currentColor;stroke-width:1.6}.studio-hours strong{font-size:14px;font-weight:500;color:#d7c4eb}.mail-panel{padding:25px;margin-top:22px}.mail-panel .section-heading{margin-bottom:15px;align-items:center}.mail-panel h3{font-size:20px;margin-bottom:0}.mail-panel .form-note{margin-top:20px;margin-bottom:18px}.mail-status{padding:13px 16px;border:1px solid #b28aff20;background:#b28aff09;border-radius:7px;font-size:11px;line-height:1.6;color:#bba3d2;margin-bottom:22px}.mail-status.success{color:#a1c8b7;border-color:#97c3ad28;background:#97c3ad0a}.mail-status.error{color:#e2a4b3;border-color:#b7798930;background:#b779890a}.mobile-nav{grid-template-columns:repeat(5,1fr)}.mobile-nav:has(button[data-admin-only][hidden]){grid-template-columns:1fr}.button:disabled{transform:none;cursor:not-allowed}.session-customer .stats-grid{display:none}.session-customer .hero{min-height:210px}.session-customer .hero-title{font-size:47px}.session-customer .hero-art{max-height:190px;width:225px}
@media(max-width:1200px){.topbar-actions{gap:10px}.session-badge{max-width:115px;font-size:10px}.logout-button{padding:9px 10px}.calendar-panel .calendar-toolbar{flex-wrap:wrap}}
@media(max-width:1000px){.auth-view{grid-template-columns:minmax(220px,.75fr) minmax(400px,1.25fr)}.auth-content{padding:38px 42px}.auth-ink{font-size:47px}.auth-artwork:before{width:300px;height:300px}.auth-artwork:after{width:340px;height:340px}.auth-orbit{width:400px;height:400px}.auth-star{top:calc(50% - 140px);left:calc(50% - 80px);font-size:32px}.request-list{grid-template-columns:1fr}.topbar{flex-wrap:wrap;padding-top:19px;padding-bottom:19px}.topbar-actions{justify-content:flex-end;margin-left:auto}.calendar-panel .month-grid,.calendar-panel .month-weekdays{min-width:0}.calendar-panel .month-cell{min-height:104px}.calendar-panel .month-cell .appointment-card{padding:6px 4px}.calendar-panel .month-cell .appointment-time{font-size:8px}.calendar-panel .month-cell .appointment-card strong{font-size:9px}.day-booked{font-size:8px;padding:7px 2px}}
@media(max-width:800px){.auth-view{grid-template-columns:1fr}.auth-artwork{display:none}.auth-content{min-height:100vh;padding:37px 28px}.auth-content>.brand{width:min(440px,100%);align-self:auto;margin-bottom:45px}.auth-signature{width:min(440px,100%);align-self:auto}.auth-card{max-width:440px}.auth-card h1{font-size:36px}.auth-card h1 em{font-size:31px}.topbar{min-height:90px;padding-top:18px;padding-bottom:18px}.topbar-actions{gap:8px}.session-badge{text-align:left;max-width:120px;margin-right:auto}.topbar>.topbar-actions{width:100%;margin:0}.logout-button{font-size:10px}.main-shell{padding-bottom:100px}.role-note{padding:16px}.booking-section{margin-top:29px}.mail-panel{padding:22px}.user-card,.user-row{padding:18px}.user-actions{gap:8px}.calendar-panel .calendar-toolbar{padding:18px}.calendar-panel .calendar-controls{flex:1}.calendar-panel .calendar-toolbar>select{width:135px;flex-shrink:0}.month-cell .day-booked{font-size:8px}.auth-signature{margin-top:34px}}
@media(max-width:520px){.auth-content{padding:30px 25px}.auth-content>.brand{margin-bottom:42px}.auth-card h1{font-size:32px}.auth-card h1 em{font-size:28px}.auth-card>.eyebrow{font-size:8px}.auth-intro{font-size:11px;max-width:245px;margin-bottom:24px}.auth-tabs{margin-bottom:22px}.auth-tabs button{font-size:11px;padding:11px 8px}.auth-form{gap:15px}.auth-form input{min-height:46px}.auth-footer{margin-top:25px}.session-badge{max-width:108px;font-size:10px}.topbar>.topbar-actions{gap:7px}.topbar .logout-button{min-height:35px;font-size:9px;padding:8px 10px}.topbar #new-appointment{font-size:9px;padding:10px}.topbar #new-appointment svg{width:13px;height:13px}.calendar-panel .calendar-controls{width:100%}.calendar-panel .calendar-toolbar>select{width:100%}.calendar-panel .month-cell{padding:4px 2px;min-height:87px}.calendar-panel .month-date{width:24px;height:25px;font-size:10px}.calendar-panel .month-weekdays span{font-size:8px;letter-spacing:.02em;padding:13px 0}.calendar-panel .day-booked{padding:8px 1px;border:0;background:transparent;font-size:7px;overflow-wrap:anywhere;text-align:center;line-height:1.4;gap:2px}.calendar-panel .month-cell .appointment-card{padding:5px 3px;gap:3px}.calendar-panel .month-cell .appointment-card strong{font-size:8px;line-height:1.4}.calendar-panel .month-cell .appointment-time{font-size:7px}.calendar-panel .month-cell .appointment-customer{display:none}.calendar-legend{gap:12px!important;font-size:8px}.booking-section .section-heading{align-items:flex-start}.booking-section .section-heading h2{font-size:20px}.request-card,.booking-card{padding:19px}.mail-panel{padding:20px;margin-top:18px}.mail-panel .section-heading{flex-direction:column;align-items:flex-start;gap:14px}.mail-panel h3{font-size:18px}.mail-panel .form-grid{grid-template-columns:1fr}.mail-panel .form-field{font-size:11px}.mail-panel .form-note{font-size:10px;line-height:1.7}.role-note{padding:16px;font-size:10px;align-items:flex-start}.role-note p{font-size:10px}.role-note svg{width:18px;height:18px}.user-card,.user-row{flex-wrap:wrap;gap:15px}.user-card .user-actions,.user-actions{flex-wrap:wrap;gap:8px}.user-card h3{font-size:15px}.session-customer .hero{min-height:220px}.session-customer .hero-title{font-size:40px}.session-customer .hero-art{top:20px;width:175px;max-height:210px}.dialog-footer #appointment-confirm{order:3}.dialog-footer #appointment-delete{width:100%;margin-bottom:3px}.request-explanation{font-size:11px;padding:13px}}

/* Original Alex Tattoo studio logo */
.brand-logo{display:block;width:78px;height:78px;flex-shrink:0;object-fit:contain;object-position:center}
.sidebar>.brand{gap:11px;margin-left:0;margin-right:0;margin-bottom:33px;min-width:0}.sidebar>.brand .brand-logo{width:64px;height:64px}.sidebar>.brand .brand-name{font-size:13px;letter-spacing:.04em;min-width:0}.sidebar>.brand .brand-name span{font-size:8px;letter-spacing:.16em}
.auth-logo{position:relative;z-index:1;width:min(380px,78%);height:auto;aspect-ratio:1;object-fit:contain;object-position:center}.auth-artwork .auth-star{top:calc(50% - 220px);left:calc(50% - 170px);font-size:27px}.auth-content>.brand{gap:17px}.auth-content>.brand .brand-logo{width:88px;height:88px}.offer-shell>.brand{gap:15px;margin-bottom:28px}
@media(max-width:1200px){.sidebar>.brand{gap:9px}.sidebar>.brand .brand-logo{width:58px;height:58px}.sidebar>.brand .brand-name{font-size:12px}.sidebar>.brand .brand-name span{font-size:7px}}
@media(max-width:1000px){.auth-logo{width:min(320px,84%)}.auth-artwork .auth-star{top:calc(50% - 160px);left:calc(50% - 95px);font-size:21px}}
@media(max-width:800px){.auth-content>.brand{margin-bottom:34px;gap:16px}.auth-content>.brand .brand-logo{width:88px;height:88px}}
@media(max-width:520px){.auth-content>.brand{margin-bottom:31px;gap:14px}.auth-content>.brand .brand-logo{width:82px;height:82px}.auth-content>.brand .brand-name{font-size:14px}.brand-logo{width:72px;height:72px}.offer-shell>.brand{gap:12px;margin-bottom:24px}.booking-brand .brand-name{font-size:14px}}
/* Booking hours and quarter-hour selection */
fieldset.time-field{border:0;padding:0;margin:0;min-inline-size:0;display:block}.time-field legend{padding:0;margin:0 0 8px;color:#cfc3dc;font-size:inherit}.time-select-pair{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:9px}.time-select-pair select{width:100%;min-width:0;min-height:43px;text-align:center;background:#211a2a;color:#eadcf7;border:1px solid #51405f;border-radius:7px;padding:11px 8px;font-size:12px}.time-select-pair select:focus-visible{border-color:var(--purple)}.time-select-pair select option:disabled{color:#786a85}.time-select-pair>span{color:#baa1cd;font-size:13px}.time-select-pair .time-unit{font-size:10px;color:var(--muted)}
@media(max-width:520px){.time-select-pair{gap:6px}.time-select-pair select{font-size:12px;padding:11px 6px;min-height:42px}.time-select-pair .time-unit{font-size:9px}.time-field legend{margin-bottom:8px}}
/* Customer selection of the saved male or female body model */
.tattoo-model-choice{border:0;margin:0;padding:0;min-inline-size:0}.tattoo-model-choice legend{font-size:11px;color:#dbc8eb;font-weight:500;margin-bottom:11px;padding:0}.tattoo-model-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.tattoo-model-options label{position:relative;display:block;cursor:pointer;min-width:0}.tattoo-model-options input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.tattoo-model-options span{display:flex;align-items:center;justify-content:center;min-height:42px;padding:11px 9px;background:#1a1421;border:1px solid #5c416d;border-radius:7px;font-size:12px;color:#b6a2c6;transition:background .18s,border-color .18s,color .18s}.tattoo-model-options input:checked+span{color:#e6d2ff;background:#b28aff1a;border-color:#b28aff95;box-shadow:inset 0 0 0 1px #b28aff12}.tattoo-model-options input:focus-visible+span{outline:2px solid var(--purple);outline-offset:3px}.tattoo-model-options input:disabled+span{opacity:.5;cursor:wait}.tattoo-body-model{padding:8px 10px;border:1px solid #b28aff25;border-radius:5px;color:#c9ade2;background:#b28aff06;font-size:10px;margin:0;line-height:1.6}.tattoo-body-model:empty{display:none}.tattoo-model-choice .form-note{font-size:10px;line-height:1.7}
@media(max-width:650px){.tattoo-model-choice,.tattoo-body-model{grid-column:1/-1}.tattoo-model-choice legend{font-size:10px}.tattoo-model-options span{min-height:43px;font-size:12px}.tattoo-body-model{font-size:10px}}
/* One active request or appointment per customer */
.auth-remember{display:flex;align-items:flex-start;gap:10px;color:#d0badf;font-size:11px;line-height:1.6;cursor:pointer;padding:2px 0}.auth-form .auth-remember input[type=checkbox]{width:17px;height:17px;min-height:0;padding:0;margin:2px 0 0;flex-shrink:0;accent-color:var(--purple);cursor:pointer}.auth-remember span{display:block}.auth-remember small{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:2px}.auth-remember input:focus-visible{outline:2px solid var(--purple);outline-offset:4px}
.mobile-nav #calendar-nav-mobile{position:relative}.mobile-nav .nav-dot{position:absolute;top:9px;left:calc(50% + 10px);width:6px;height:6px;margin:0;box-shadow:0 0 8px #b28aff55}
.day-free{display:block;padding:10px 4px;color:#706579;font-size:9px;text-align:center}.day-free.week-free{display:grid;place-items:center;min-height:120px;font-size:10px}
.customer-active-booking{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:25px;padding:23px 25px;margin-bottom:24px;border:1px solid #8f63b455;border-radius:11px;background:linear-gradient(130deg,#b28aff0e,#18121f)}.customer-active-booking .eyebrow{font-size:8px;margin-bottom:10px}.customer-active-booking h3{font-size:19px;margin-bottom:11px}.customer-active-booking p:not(.eyebrow){font-size:11px;color:#b8a5c7;line-height:1.8;max-width:660px;margin-bottom:11px}.customer-active-booking .customer-active-summary{color:#ddc5f1;font-size:10px;margin-bottom:0;overflow-wrap:anywhere}.customer-active-actions{display:flex;flex-direction:column;gap:10px;min-width:175px}.customer-active-actions .button{font-size:10px;padding:11px 13px;min-height:39px}.booking-card.active-booking{border-color:#9972b971;background:linear-gradient(140deg,#b28aff0a,var(--surface))}
@media(max-width:800px){.customer-active-booking{grid-template-columns:1fr;gap:18px;padding:21px}.customer-active-actions{flex-direction:row;flex-wrap:wrap;min-width:0}.customer-active-actions .button{flex:1;min-width:145px}}
@media(max-width:520px){.customer-active-booking{padding:19px;gap:17px;margin-bottom:20px}.customer-active-booking h3{font-size:18px}.customer-active-booking p:not(.eyebrow){font-size:10px}.customer-active-booking .eyebrow{font-size:7px}.customer-active-actions .button{font-size:10px;min-width:130px}}
