/* Full-height screens preserve the original dark / chartreuse visual language. */
.toast{pointer-events:none}
html:has(.app-shell){height:100%;overflow:hidden;scroll-behavior:auto}
.app-shell{height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}
.app-shell .header{height:86px;min-height:86px;flex:none}
.city-label{display:flex;align-items:center;gap:9px;color:#c4c8bc;font-size:13px}
.screen-stack{flex:1;min-height:0;position:relative;padding:26px 0}
.screen{height:100%;min-height:0}
.landing-screen{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}
.landing-screen h1{font-size:clamp(60px,8.3vw,112px);line-height:.98;letter-spacing:-5px;margin:25px 0;position:relative}
.landing-screen .title-dot{top:8px;right:45px}
.landing-screen .hero-image{height:100%;max-height:570px;min-height:0}
.landing-screen .hero-copy p{font-size:16px;line-height:1.8;color:var(--muted)}
.landing-screen .hero-button{min-width:280px;font-size:17px}
.app-footer{height:43px;min-height:43px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1px;color:var(--muted);flex:none}
.catalog-screen,.barber-screen,.booking-screen{display:flex;flex-direction:column;gap:18px}
.screen-heading{display:flex;align-items:center;gap:15px;flex:none}
.screen-heading h2{font-size:30px;margin-top:7px}
.back-button{width:44px;min-width:44px;height:44px;border:1px solid var(--border);background:var(--panel);border-radius:5px;font-size:23px}
.view-switch{display:flex;gap:5px;background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:4px;margin-left:auto;flex:none}
.view-switch button{background:transparent;color:var(--muted);padding:11px 17px;border-radius:3px;font-size:13px;min-height:40px}
.view-switch .active{color:#17200d;background:var(--lime);font-weight:700}
.catalog-tools{display:flex;align-items:center;gap:20px;flex:none}
.search-field{margin:0;flex:1;max-width:520px}.search-field input{margin:0;background:#191e15;font-size:15px}
.catalog-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:15px}
.barber-card{display:flex;align-items:center;text-align:left;gap:15px;padding:23px;border:1px solid var(--border);border-radius:7px;background:#191f15;min-width:0;min-height:0;transition:border-color .15s}
.barber-card:hover{border-color:var(--lime);background:#20291a}.barber-avatar{height:50px;width:50px;flex:none;display:grid;place-items:center;background:#303d23;color:var(--lime);border-radius:50%;font-size:20px;font-weight:800}
.barber-card-copy{min-width:0;display:flex;flex-direction:column;gap:8px}.barber-card-copy strong{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.barber-card-copy>span{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.barber-card-copy small{font-size:10px;color:#bfd395}.card-arrow{margin-left:auto;color:var(--lime);font-size:24px}
.pagination{display:flex;justify-content:space-between;align-items:center;gap:15px;flex:none;font-size:12px;color:var(--muted)}.pagination .button{min-height:43px;font-size:12px;padding:10px 15px}
.app-shell #dashboard.schedule-active .stats,.app-shell #dashboard.schedule-active .admin-toolbar{display:none}
.catalog-map{display:flex;flex-direction:column;flex:1;min-height:0;gap:10px}.catalog-map iframe{flex:1;min-height:0;width:100%;border:1px solid var(--border);border-radius:7px;background:var(--panel)}.map-help{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:11px}.map-help a{color:var(--lime)}
.barber-profile{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.profile-art{height:100%;max-height:500px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px;border:1px solid var(--border);border-radius:7px;background:radial-gradient(ellipse at center,#344423 0%,#1d2517 50%,#12170e 100%)}.profile-art>span{font-size:clamp(90px,14vw,200px);font-weight:800;color:var(--lime);letter-spacing:-12px}.profile-details{display:flex;flex-direction:column;gap:20px;max-width:440px}.profile-details .badge{align-self:start}.profile-details h3{font-size:36px;letter-spacing:-1px}.profile-details>p{color:var(--muted);font-size:15px;line-height:1.7}.profile-actions{display:grid;gap:10px}.source-link{font-size:11px;color:var(--muted);text-decoration:underline}
.app-shell .booking-layout{flex:1;min-height:0;align-items:stretch}.app-shell .booking-panel{min-height:0;display:flex;flex-direction:column;padding:22px}.app-shell .slots{grid-template-columns:repeat(6,1fr);gap:8px;min-height:0;flex:1;grid-auto-rows:minmax(36px,1fr)}.app-shell .slot{min-height:36px;font-size:16px}.app-shell .slot-pagination{margin-top:8px}.app-shell .booking-summary{padding:24px;align-self:center}.app-shell .booking-summary h3{font-size:25px;margin:18px 0 26px}.app-shell .break-note{margin-top:10px;padding-top:10px}.booking-screen #mode-notice{margin-left:auto;max-width:220px;font-size:10px}
.app-shell .admin-main{flex:1;min-height:0;padding:20px 0}.app-shell .login-panel{margin:0 auto;max-width:400px;height:100%;display:flex;flex-direction:column;justify-content:center}.app-shell .login-panel h1{font-size:46px;margin:18px 0 12px}.app-shell .login-panel form{margin-top:20px}.app-shell .login-panel label{margin-bottom:14px}.register-line{font-size:13px;color:var(--muted);margin-top:16px;text-align:center}.register-line a{color:var(--lime);font-weight:700}.app-shell #dashboard{height:100%;display:flex;flex-direction:column;gap:12px}.app-shell #dashboard>.section-heading{margin:0;flex-direction:row;align-items:center}.app-shell .admin-title{font-size:30px;margin-top:7px}.app-shell #admin-mode{margin:0;padding:9px 12px;font-size:10px}.app-shell .stats{margin:0;gap:12px}.app-shell .stats article{padding:13px 18px}.app-shell .stats strong{font-size:26px;margin-top:6px}.app-shell .admin-tabs{margin:0;align-self:start}.app-shell .admin-toolbar{margin:0;flex-direction:row;align-items:center}.app-shell .admin-toolbar .day-tab{min-height:44px;padding:9px 16px;font-size:15px}.app-shell .admin-toolbar>.button{min-height:44px;padding:10px 18px;font-size:13px}.app-shell .admin-layout{display:flex;flex:1;min-height:0}.app-shell .admin-panel{width:100%;height:100%;padding:18px 24px;display:flex;flex-direction:column;min-height:0}.app-shell .table-scroll{min-height:0;flex:1;overflow:hidden}.app-shell .admin-panel td{padding:12px 9px}.app-shell .table-panel .time-heading{margin:0 0 7px}.app-shell .settings-panel{max-width:620px}.app-shell .settings-panel h3{margin:10px 0 16px}.app-shell #settings-form{min-height:0}.app-shell #settings-form label{margin-bottom:12px}.app-shell #settings-form input,.app-shell #settings-form select{padding:10px;min-height:44px}.app-shell .settings-panel .compact{margin:0 0 10px;padding:8px 0}.app-shell dialog{max-height:calc(100dvh - 24px);padding:28px}.app-shell dialog label{margin-bottom:14px}.app-shell .dialog-subtitle{margin-bottom:16px}.app-shell .dialog-recap{margin-bottom:16px}.app-shell .dialog-title{font-size:27px}.app-shell .dialog-actions{margin-top:15px}.app-shell .notice{margin-bottom:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1000px){.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-screen{gap:25px}.landing-screen h1{font-size:85px}.landing-screen .title-dot{right:0}.barber-card{padding:18px}.barber-card-copy strong{font-size:16px}.app-shell .booking-summary h3{font-size:20px}}
@media(max-width:760px){.app-shell .header{height:70px;min-height:70px}.app-shell .header .brand{font-size:23px}.app-shell .header .brand img{width:35px;height:35px}.city-label{font-size:10px}.app-shell .header .admin-link{font-size:10px}.screen-stack{padding:18px 0}.app-footer{height:30px;min-height:30px;font-size:8px}.app-footer>span:last-child{display:none}.landing-screen{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:22px;align-items:stretch}.landing-screen h1{font-size:clamp(50px,10vh,85px);line-height:.97;letter-spacing:-3px;margin:16px 0}.landing-screen .hero-copy p{font-size:13px;line-height:1.6}.landing-screen .hero-button{margin-top:18px;min-height:50px;min-width:0;width:100%;font-size:16px}.landing-screen .hero-details{margin-top:18px;font-size:9px;gap:15px;justify-content:start}.landing-screen .hero-details b{font-size:21px}.landing-screen .title-dot{right:20px;top:4px}.landing-screen .hero-image{height:100%;min-height:0}.landing-screen .hero-image>img{object-position:50% 35%}.landing-screen .image-top{font-size:7px;top:13px;left:16px}.landing-screen .image-bottom{bottom:16px;left:16px;right:16px}.landing-screen .image-caption{font-size:16px}.landing-screen .round-stamp{height:53px;width:53px;font-size:12px}.landing-screen .round-stamp span{font-size:5px}.catalog-screen,.barber-screen,.booking-screen{gap:13px}.screen-heading{gap:10px}.screen-heading h2{font-size:22px;letter-spacing:-.7px;margin-top:5px}.screen-heading .eyebrow{font-size:7px;letter-spacing:1.2px}.back-button{width:36px;min-width:36px;height:40px;font-size:20px}.screen-heading .view-switch{gap:2px;padding:3px}.screen-heading .view-switch button{font-size:11px;padding:9px 11px;min-height:37px}.catalog-tools{gap:10px}.search-field input{padding:11px;font-size:13px;min-height:44px}.catalog-tools>.muted{font-size:11px;white-space:nowrap}.catalog-grid{gap:10px}.barber-card{padding:17px;gap:13px}.barber-card-copy{gap:7px}.barber-card-copy strong{font-size:17px}.barber-card-copy>span{font-size:12px}.pagination .button{font-size:11px}.map-help{font-size:10px}.barber-profile{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:20px}.profile-art{gap:10px}.profile-art>span{font-size:clamp(60px,12vh,120px);letter-spacing:-4px}.profile-art .eyebrow{font-size:7px}.profile-details{gap:13px;max-width:none}.profile-details h3{font-size:25px}.profile-details>p{font-size:13px}.profile-actions .button{min-height:48px;padding:13px 17px;font-size:13px}.source-link{font-size:10px}.app-shell .booking-layout{display:flex;flex-direction:column;gap:12px}.app-shell .booking-panel{padding:15px;flex:1}.app-shell .slots{grid-template-columns:repeat(4,1fr);flex:1;gap:7px}.app-shell .day-tab{min-height:53px;padding:10px 14px;font-size:16px}.app-shell .day-tab span{font-size:11px;margin-top:3px}.app-shell .time-heading{margin:13px 0 10px}.app-shell .time-heading h3{font-size:14px}.app-shell .slot-pagination{margin-top:3px}.app-shell .slot-pagination button{padding:6px 14px;min-height:30px}.app-shell .break-note{font-size:10px;padding-top:8px;margin-top:4px}.app-shell .booking-summary{width:100%;align-self:stretch;padding:15px}.app-shell .summary-top{display:none}.app-shell .booking-summary h3{font-size:18px;margin:0 0 12px}.app-shell .summary-meta{font-size:12px;margin-bottom:9px}.app-shell .price-row{margin-top:10px;padding:10px 0}.app-shell .price-row strong{font-size:27px}.app-shell .booking-summary .button{min-height:46px;padding:11px 16px;font-size:14px}.app-shell .payment-hint{margin-top:9px;font-size:10px}.booking-screen #mode-notice{max-width:100px;font-size:8px}.app-shell .login-panel h1{font-size:40px}.app-shell .login-panel .eyebrow{font-size:9px}.app-shell .login-panel form{margin-top:18px}.app-shell .admin-main{padding:16px 0}.app-shell #dashboard{gap:10px}.app-shell .admin-title{font-size:26px}.app-shell .stats{gap:7px}.app-shell .stats article{padding:11px 9px}.app-shell .stats strong{font-size:24px}.app-shell .stats span{font-size:9px}.app-shell .admin-toolbar .day-tabs{width:190px;gap:7px}.app-shell .admin-toolbar .day-tab{font-size:13px;padding:9px 11px}.app-shell .admin-toolbar>.button{font-size:11px;padding:10px 12px}.app-shell .admin-panel{padding:13px 10px}.app-shell .admin-panel td{padding:10px 5px;font-size:10px}.app-shell .time-cell{font-size:14px!important}.app-shell th{padding:11px 5px}.app-shell .admin-panel .pagination{font-size:10px}.app-shell #dashboard .settings-panel{padding:17px}.app-shell .settings-panel h3{font-size:22px;margin-bottom:14px}.app-shell .input-pair{gap:9px}.app-shell #settings-form label{font-size:11px}.app-shell #settings-form input,.app-shell #settings-form select{font-size:14px}.app-shell .register-line{font-size:12px}.app-shell .view-switch button{min-height:35px;padding:9px 14px}}
@media(max-width:649px){.catalog-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.app-shell .booking-summary{display:grid;grid-template-columns:1fr auto;gap:9px 15px}.app-shell .booking-summary h3,.app-shell .booking-summary .summary-meta:has(#duration),.app-shell .booking-summary .payment-hint{display:none}.app-shell .booking-summary .summary-meta:has(#selection){display:flex;flex-direction:column;gap:4px;margin:0;align-self:center;font-size:11px}.app-shell .booking-summary .summary-meta b{text-align:left}.app-shell .booking-summary .price-row{border:0;margin:0;padding:0;align-self:center}.app-shell .booking-summary .price-row>span{display:none}.app-shell .booking-summary>.button{grid-column:1/-1}.app-shell .booking-summary .my-booking{margin-top:0}.app-shell .slots{grid-auto-rows:minmax(30px,1fr)}}
@media(max-width:380px){#catalog-screen .screen-heading{flex-wrap:wrap}#catalog-screen .screen-heading>div:not(.view-switch){flex:1;min-width:0}#catalog-screen .view-switch{margin-left:46px}#catalog-screen .screen-heading h2{font-size:20px}.city-label{font-size:9px}.app-shell .header .admin-link{font-size:9px}}
@media(max-height:690px){.app-shell .header{height:62px;min-height:62px}.screen-stack{padding:12px 0}.landing-screen h1{font-size:65px;margin:14px 0}.landing-screen .hero-button{margin-top:14px}.landing-screen .hero-details{margin-top:12px}.landing-screen .hero-image .image-top{display:none}.app-shell .admin-main{padding:10px 0}.app-shell .admin-title{font-size:23px}.app-shell .stats article{padding:7px 10px}.app-shell .stats strong{font-size:21px;margin-top:3px}.app-shell .stats{gap:7px}.app-shell #dashboard{gap:7px}.app-shell #admin-mode{font-size:9px;padding:6px 9px}.app-shell .login-panel h1{font-size:34px;margin:12px 0 8px}.app-shell .login-panel form{margin-top:13px}.app-shell .login-panel label{margin-bottom:10px}.app-shell .login-panel input{min-height:43px;padding:10px}.app-shell .login-panel .button{min-height:45px}.app-shell .register-line{margin-top:8px}.app-shell .admin-panel td{padding:8px 5px}.app-shell .settings-panel h3{display:none}.app-shell .settings-panel .eyebrow{margin-bottom:10px}.app-shell #settings-form input,.app-shell #settings-form select{padding:8px;min-height:39px}.app-shell #settings-form label{margin-bottom:8px}.app-shell #settings-form .button{min-height:42px;padding:10px}.booking-screen .screen-heading h2{font-size:19px}.app-shell .booking-summary h3{display:none}.app-shell .booking-summary{padding:12px}.app-shell .booking-summary .summary-meta{margin-bottom:6px}.app-shell .price-row{margin-top:6px;padding:6px 0}.app-shell .booking-panel{padding:12px}.app-shell .day-tab{min-height:46px;padding:7px 12px}.app-shell .time-heading{margin:9px 0 7px}.app-shell .slot{min-height:32px;font-size:14px}.app-shell .payment-hint{display:none}.profile-art .eyebrow{display:none}}
