/*
====================================================
NÉV: Mary Nails foglalási rendszer megjelenés
PROJEKT: Weblabs / Műköröm
TÍPUS: CSS stíluslap
VERZIÓ: v0.4.0
UTOLSÓ FRISSÍTÉS: 2026-08-30

LEÍRÁS: Vendég- és adminfelület egységes, reszponzív megjelenése.

FEJLESZTŐ:
Balázs Bakos
NextSheet Innovations
https://www.nextsheet.hu

CHANGELOG:

v0.4.0 - 2026-08-30
- Galériakezelő és kattintható naptárcellák

v0.3.0 - 2026-08-30
- Heti naptár, gyors időpontkiírás és manuális foglalás

v0.2.0 - 2026-08-30
- Első verzió

====================================================
*/
:root{--ink:#1c1918;--paper:#f6f1ea;--cream:#eae0d5;--wine:#733842;--rose:#c7a198;--muted:#756e69;--line:rgba(28,25,24,.16);--ok:#3e7359;--warn:#a36c26;--danger:#9d3d42;--serif:"Playfair Display",Georgia,serif;--sans:"Manrope",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.55}button,input,textarea{font:inherit}button,a{color:inherit}.app-header{height:82px;padding:0 clamp(20px,5vw,70px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.app-brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:var(--serif);font-size:20px;line-height:1}.app-brand>span{display:grid;place-items:center;width:38px;height:38px;border:1px solid;border-radius:50%;font-style:italic}.app-brand small{display:block;font-family:var(--sans);font-size:7px;letter-spacing:.27em;margin-top:5px}.language-switch{display:flex;border:1px solid var(--line);padding:3px}.language-switch button{border:0;background:none;padding:8px 13px;font-size:10px;font-weight:700;cursor:pointer}.language-switch button.active{background:var(--ink);color:#fff}.booking-shell{min-height:calc(100vh - 82px);display:grid;grid-template-columns:minmax(320px,42%) 1fr}.booking-intro{background:var(--cream);padding:clamp(55px,7vw,100px) clamp(28px,6vw,90px);position:relative;overflow:hidden}.booking-intro .eyebrow,.booking-panel .eyebrow,.decision-dialog .eyebrow{color:var(--wine);font-size:9px;font-weight:700;letter-spacing:.25em}.booking-intro h1{font-family:var(--serif);font-size:clamp(44px,4.3vw,68px);font-weight:500;line-height:1.02;letter-spacing:-.035em;margin:22px 0 28px}.booking-intro h1 em{color:var(--wine);font-weight:500}.booking-intro>p:not(.eyebrow){color:var(--muted);max-width:530px;font-size:16px}.booking-intro>img{width:280px;height:190px;object-fit:cover;margin-top:44px;box-shadow:22px 22px 0 rgba(115,56,66,.12)}.approval-note{display:flex;gap:13px;align-items:flex-start;margin-top:30px;max-width:520px}.approval-note>span{width:26px;height:26px;border:1px solid var(--wine);color:var(--wine);border-radius:50%;display:grid;place-items:center;font-family:var(--serif)}.approval-note p{margin:0;font-size:11px;color:var(--muted)}.booking-panel{padding:clamp(35px,5vw,75px);max-width:900px;width:100%;align-self:start}.stepper{list-style:none;padding:0 0 35px;margin:0 0 45px;display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.stepper li{display:flex;align-items:center;gap:9px;color:#aaa;position:relative}.stepper li::after{content:"";position:absolute;height:2px;background:var(--wine);left:0;right:100%;bottom:-36px;transition:.35s}.stepper li.active,.stepper li.done{color:var(--ink)}.stepper li.active::after,.stepper li.done::after{right:0}.stepper li span{width:27px;height:27px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:10px}.stepper li b{font-size:9px;text-transform:uppercase;letter-spacing:.1em}.booking-step{display:none}.booking-step.active{display:block;animation:stepIn .35s ease}@keyframes stepIn{from{opacity:0;transform:translateY(8px)}}.panel-heading{display:flex;gap:20px;align-items:flex-start;margin-bottom:30px}.panel-heading>span{font-size:10px;color:var(--wine);margin-top:9px}.panel-heading h2,.success-step h2{font-family:var(--serif);font-size:clamp(29px,3vw,42px);font-weight:500;line-height:1.1;margin:0}.panel-heading p{margin:7px 0;color:var(--muted);font-size:12px}.service-options{display:grid;gap:10px}.service-option{width:100%;border:1px solid var(--line);background:transparent;display:grid;grid-template-columns:50px 1fr auto;align-items:center;text-align:left;padding:17px 20px;cursor:pointer;transition:.2s}.service-option:hover,.service-option.selected{border-color:var(--wine);background:#fff}.service-option.selected{box-shadow:inset 4px 0 var(--wine)}.service-option .service-icon{font-family:var(--serif);font-size:22px;color:var(--wine)}.service-option strong{font-family:var(--serif);font-size:19px;font-weight:500}.service-option small{display:block;color:var(--muted);margin-top:3px}.service-option>span:last-child{font-size:11px;font-weight:700}.back-button{border:0;background:none;padding:0;margin-bottom:24px;color:var(--muted);font-size:11px;cursor:pointer}.date-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:0 0 25px}.date-button{border:1px solid var(--line);background:transparent;padding:12px 7px;cursor:pointer;text-align:center}.date-button span{display:block;font-size:9px;text-transform:uppercase;color:var(--muted)}.date-button strong{font-family:var(--serif);font-size:24px;font-weight:500}.date-button.active{background:var(--ink);color:#fff}.date-button.active span{color:#ddd}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.time-button{border:1px solid var(--line);background:#fff;padding:14px;cursor:pointer;font-weight:600}.time-button:hover{border-color:var(--wine);color:var(--wine)}.empty-state,.loading{text-align:center;border:1px dashed var(--line);padding:35px;color:var(--muted)}.selection-summary{background:var(--cream);padding:17px 20px;margin-bottom:25px;display:flex;justify-content:space-between;gap:15px}.selection-summary b{font-family:var(--serif);font-size:17px}.selection-summary span{font-size:11px;color:var(--muted)}#bookingForm{display:grid;grid-template-columns:1fr 1fr;gap:17px}label{display:grid;gap:7px;font-size:10px;font-weight:700;letter-spacing:.05em}label small{font-weight:400;color:var(--muted)}input,textarea{width:100%;border:1px solid var(--line);background:#fff;padding:13px 14px;outline:none;border-radius:0}input:focus,textarea:focus{border-color:var(--wine)}#bookingForm label:nth-of-type(4),.consent,.primary-button{grid-column:1/-1}.consent{display:flex;align-items:flex-start;gap:10px;font-size:10px;font-weight:500;letter-spacing:0;color:var(--muted)}.consent input{width:16px;height:16px;accent-color:var(--wine);margin:2px 0}.primary-button,.secondary-button{border:0;background:var(--ink);color:#fff;padding:17px 22px;text-decoration:none;display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;cursor:pointer}.primary-button:hover{background:var(--wine)}.primary-button:disabled{opacity:.5;cursor:wait}.booking-alert,.admin-alert{padding:13px 16px;margin-bottom:22px;background:#f5dfdf;color:var(--danger);font-size:12px}.success-step{text-align:center;padding-top:25px}.success-icon{margin:0 auto 24px;width:65px;height:65px;border-radius:50%;display:grid;place-items:center;background:var(--ok);color:#fff;font-size:25px}.success-step>p:not(.eyebrow){color:var(--muted);max-width:530px;margin:18px auto}.request-code{background:var(--cream);padding:16px;margin:30px auto;max-width:360px}.request-code span{display:block;font-size:9px;text-transform:uppercase;color:var(--muted)}.request-code strong{font-family:var(--serif);font-size:24px}.secondary-button{display:inline-flex;background:transparent;border:1px solid var(--line);color:var(--ink)}.app-footer{padding:24px 5vw;display:flex;gap:30px;justify-content:center;border-top:1px solid var(--line);font-size:9px;text-transform:uppercase;letter-spacing:.12em}.app-footer a{margin-left:auto}.booking-alert[hidden],.admin-alert[hidden]{display:none}
/* Admin */.admin-page{background:#efeae4}.admin-header{height:76px;background:var(--ink);color:#fff;padding:0 34px;display:flex;align-items:center;justify-content:space-between}.admin-header>div,.admin-header>a:last-child{font-size:10px;text-decoration:none}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#65b285;margin-right:7px}.admin-shell{min-height:calc(100vh - 76px);display:grid;grid-template-columns:260px 1fr}.admin-sidebar{background:#262221;color:#fff;padding:42px 20px;display:flex;flex-direction:column}.nav-label{font-size:8px;letter-spacing:.2em;color:#8f8986;margin:0 12px 18px}.admin-nav{border:0;background:none;color:#aaa;text-align:left;padding:14px 12px;cursor:pointer;display:flex;gap:11px;align-items:center;font-size:11px}.admin-nav.active{background:#383230;color:#fff}.admin-nav b{margin-left:auto;background:var(--wine);color:#fff;border-radius:20px;min-width:20px;padding:3px;text-align:center;font-size:9px}.admin-help{margin-top:auto;border-top:1px solid #403a38;padding:25px 12px 0;color:#aaa;font-size:10px}.admin-help b{color:#fff}.admin-content{padding:clamp(32px,5vw,70px);max-width:1300px;width:100%}.admin-view{display:none}.admin-view.active{display:block}.admin-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px}.admin-title p{font-size:8px;letter-spacing:.22em;color:var(--wine);font-weight:700;margin:0 0 8px}.admin-title h1{font-family:var(--serif);font-size:38px;font-weight:500;margin:0}.outline-button{border:1px solid var(--line);background:transparent;padding:10px 15px;font-size:10px;cursor:pointer}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:28px}.stats-grid article{background:#fff;padding:20px;border:1px solid var(--line)}.stats-grid span,.stats-grid small{display:block;color:var(--muted);font-size:10px}.stats-grid strong{font-family:var(--serif);font-size:38px;font-weight:500}.filter-row{display:flex;gap:8px;margin-bottom:14px}.filter{border:1px solid var(--line);background:transparent;padding:8px 14px;font-size:9px;cursor:pointer}.filter.active{background:var(--ink);color:#fff}.request-list{display:grid;gap:9px}.request-card{background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:120px 1fr 1fr auto;gap:20px;align-items:center;padding:18px}.request-card .request-date strong{font-family:var(--serif);font-size:20px}.request-card span,.request-card small{display:block;color:var(--muted);font-size:10px}.request-card h3{margin:0;font-family:var(--serif);font-weight:500;font-size:18px}.status-pill{display:inline-block!important;padding:5px 9px;border-radius:20px;font-weight:700!important}.status-pill.pending{background:#f4e7d5;color:var(--warn)}.status-pill.approved{background:#dceadf;color:var(--ok)}.status-pill.rejected{background:#f1dddd;color:var(--danger)}.manage-button{border:1px solid var(--line);background:transparent;padding:10px 14px;font-size:10px;cursor:pointer}.slot-form{background:#fff;padding:20px;display:grid;grid-template-columns:1fr 1fr auto;gap:15px;align-items:end;border:1px solid var(--line);margin-bottom:20px}.admin-primary{border:0;background:var(--wine);color:#fff;padding:14px 19px;font-size:10px;font-weight:700;cursor:pointer}.admin-hint{color:var(--muted);font-size:11px}.slot-list{display:grid;gap:8px;margin-top:20px}.slot-row{background:#fff;border:1px solid var(--line);display:grid;grid-template-columns:1fr 100px 130px auto;align-items:center;gap:15px;padding:14px 18px}.slot-row strong{font-family:var(--serif);font-size:18px}.slot-row span{font-size:11px}.slot-state{font-size:9px!important;text-transform:uppercase;font-weight:700}.slot-state.available{color:var(--ok)}.slot-state.booked{color:var(--wine)}.toggle-slot,.delete-slot{border:1px solid var(--line);background:transparent;padding:8px 11px;font-size:9px;cursor:pointer}.delete-slot{color:var(--danger)}.admin-service-list{display:grid;gap:9px;margin-top:25px}.admin-service-row{background:#fff;border:1px solid var(--line);padding:18px;display:grid;grid-template-columns:1fr 140px 100px;align-items:center;gap:15px}.admin-service-row h3{font-family:var(--serif);font-size:19px;font-weight:500;margin:0}.admin-service-row small{color:var(--muted)}.service-toggle{border:1px solid var(--line);padding:8px;background:transparent;cursor:pointer;font-size:9px}.decision-dialog{border:0;padding:34px;width:min(92vw,560px);background:var(--paper);box-shadow:0 25px 80px rgba(0,0,0,.25)}.decision-dialog::backdrop{background:rgba(20,17,16,.7)}.decision-dialog h2{font-family:var(--serif);font-size:31px;font-weight:500;margin:12px 0}.dialog-close{position:absolute;right:15px;top:10px;border:0;background:none;font-size:25px;cursor:pointer}.decision-dialog label{margin-top:20px}.decision-details{background:#fff;border:1px solid var(--line);padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.decision-details span{font-size:10px;color:var(--muted)}.decision-details b{display:block;color:var(--ink);font-size:12px}.decision-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.reject-button,.approve-button{border:0;padding:14px;cursor:pointer;font-size:10px;font-weight:700}.reject-button{background:#ead7d7;color:var(--danger)}.approve-button{background:var(--ok);color:#fff}
.title-actions,.week-controls{display:flex;gap:8px}.calendar-legend{display:flex;gap:20px;margin:-12px 0 20px;font-size:9px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i{width:10px;height:10px;border-radius:50%}.calendar-legend .free{background:#dceadf}.calendar-legend .pending{background:#f4e7d5}.calendar-legend .booked{background:var(--wine)}.calendar-legend .closed{background:#ccc}.weekly-calendar{background:#fff;border:1px solid var(--line);overflow:auto}.calendar-grid{display:grid;grid-template-columns:70px repeat(7,minmax(110px,1fr));min-width:850px}.calendar-head{padding:12px 8px;text-align:center;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}.calendar-head strong,.calendar-head span{display:block}.calendar-head strong{font-family:var(--serif);font-size:16px}.calendar-head span{font-size:9px;color:var(--muted)}.calendar-time{padding:10px;font-size:10px;color:var(--muted);border-top:1px solid var(--line)}.calendar-cell{min-height:58px;border-left:1px solid var(--line);border-top:1px solid var(--line);padding:5px}.calendar-event{height:100%;padding:7px;font-size:9px;border-left:3px solid}.calendar-event.free{background:#edf5ef;border-color:var(--ok)}.calendar-event.pending{background:#fbf1e4;border-color:var(--warn)}.calendar-event.booked{background:#efe1e2;border-color:var(--wine)}.calendar-event.closed{background:#eee;border-color:#aaa;color:#888}.calendar-event b,.calendar-event span{display:block}.bulk-slot-form{background:#fff;border:1px solid var(--line);padding:22px;margin-bottom:18px}.bulk-form-head{display:flex;justify-content:space-between;align-items:start;gap:20px}.bulk-form-head h2{font-family:var(--serif);font-weight:500;font-size:24px;margin:0}.bulk-form-head p{font-size:10px;color:var(--muted);margin:5px 0}.bulk-fields{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:20px}.bulk-fields select,.manual-form select{border:1px solid var(--line);background:#fff;padding:13px}.weekday-picker{display:flex;align-items:center;gap:12px;margin-top:16px;font-size:10px}.weekday-picker label{display:flex;align-items:center;gap:4px}.weekday-picker input{width:14px}.single-slot{background:#fff;border:1px solid var(--line);margin:15px 0}.single-slot summary{padding:14px 18px;cursor:pointer;font-size:10px;font-weight:700}.single-slot .slot-form{border:0;margin:0;border-top:1px solid var(--line)}.manual-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.manual-form .full{grid-column:1/-1}.duration-editor{display:flex;align-items:center;gap:7px}.duration-editor input{width:76px;padding:8px}.save-duration{border:0;background:var(--ink);color:#fff;padding:9px;font-size:9px;cursor:pointer}.mail-status{font-size:9px;padding:5px 8px;background:#eee}.request-card.manual{border-left:4px solid var(--wine)}
.calendar-event{width:100%;border-top:0;border-right:0;border-bottom:0;text-align:left;cursor:pointer}.gallery-upload-form,.settings-form{background:#fff;border:1px solid var(--line);padding:22px;display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:20px}.gallery-upload-form .image-drop{grid-row:span 2;border:1px dashed var(--rose);padding:20px;align-content:center}.image-drop span{font-size:9px;color:var(--muted)}.gallery-upload-form button,.settings-form button{align-self:end}.admin-gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}.admin-gallery-card{background:#fff;border:1px solid var(--line);overflow:hidden}.admin-gallery-card img{width:100%;aspect-ratio:1;object-fit:cover}.admin-gallery-card div{padding:10px}.admin-gallery-card b{display:block;font-family:var(--serif);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-gallery-card button{width:100%;margin-top:8px;border:1px solid var(--line);background:transparent;padding:7px;font-size:9px;cursor:pointer}.admin-gallery-card.inactive{opacity:.48}.settings-form{grid-template-columns:1fr 1fr;max-width:800px}.settings-form button{grid-column:1/-1}
@media(max-width:900px){.booking-shell{grid-template-columns:1fr}.booking-intro{padding:55px 28px}.booking-intro>img{display:none}.booking-panel{padding:45px 28px}.admin-shell{grid-template-columns:1fr}.admin-sidebar{padding:12px;flex-direction:row;overflow:auto}.nav-label,.admin-help{display:none}.admin-nav{white-space:nowrap}.request-card{grid-template-columns:100px 1fr auto}.request-card>div:nth-child(3){display:none}.slot-row{grid-template-columns:1fr 70px 100px auto}.bulk-fields{grid-template-columns:repeat(2,1fr)}.admin-gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.app-header{height:70px;padding:0 18px}.booking-intro h1{font-size:43px}.booking-panel{padding:34px 18px}.stepper li b{display:none}.stepper{margin-bottom:36px}.panel-heading{gap:12px}.service-option{grid-template-columns:35px 1fr auto;padding:14px 12px}.date-strip{grid-template-columns:repeat(3,1fr);overflow:auto}.time-grid{grid-template-columns:repeat(3,1fr)}#bookingForm{grid-template-columns:1fr}#bookingForm label,.primary-button{grid-column:1}.selection-summary{display:grid}.app-footer span{display:none}.admin-header{padding:0 16px}.admin-header>div{display:none}.admin-content{padding:30px 16px}.admin-title h1{font-size:30px}.stats-grid{grid-template-columns:1fr 1fr}.stats-grid article:last-child{display:none}.request-card{grid-template-columns:1fr auto}.request-date{display:none}.slot-form{grid-template-columns:1fr 1fr}.slot-form button{grid-column:1/-1}.slot-row{grid-template-columns:1fr 60px auto}.slot-row .toggle-slot{display:none}.admin-service-row{grid-template-columns:1fr auto}.admin-service-row>span{display:none}.decision-dialog{padding:28px 20px}.decision-details{grid-template-columns:1fr}}
