/* LEPU shared visual language: warm orange, cream, soft natural neutrals. */
:root{--brand-accent:#ff8549;--brand-accent-hover:#ed7439;--brand-paper:#fffdf8;--brand-canvas:#f5f1eb;--brand-line:#eee4d7;--brand-text:#4b4138;--brand-muted:#a39382}
body:has(aside){background:var(--brand-canvas);color:var(--brand-text)}
body:has(aside) aside{background:linear-gradient(165deg,#fff0d7 0,#fffaf0 230px,#fffdf8 470px);color:#9e8a74;border-right:1px solid #eadfce;padding-top:26px}
body:has(aside) .logo{background:linear-gradient(135deg,#ffe2bb,#ffd3ad);color:#bb7746;box-shadow:0 4px 16px #c48e4920;border:3px solid #fff9eb;width:64px;height:64px;font-size:23px}
body:has(aside) .brand{color:#795b40;font-size:17px;letter-spacing:2px}
body:has(aside) .subbrand{color:#c1a17e;font-size:8px;letter-spacing:1.7px;margin:10px 0}
.sidebar-slogan{text-align:center;font-size:10px;letter-spacing:1px;line-height:1.8;color:#b39471;margin:0 0 26px}
body:has(aside) aside nav button{border-radius:10px;margin:3px 0;padding:12px 10px;font-size:12px;color:#9e8a74;transition:background .15s,color .15s}
body:has(aside) aside nav button:hover{background:#fff0df;color:#c7844e}
body:has(aside) aside nav button.active{background:#ffe6ce;color:#df8243;box-shadow:inset 3px 0 #ff9a5c;font-weight:600}
body:has(aside) aside nav small{color:#c1aa90;font-size:9px;letter-spacing:2px;margin:21px 12px 10px}
body:has(aside) .sidefoot{color:#c3af98;border-top:1px solid #eee0cc;padding-top:16px;font-size:10px}
body:has(aside) .dot{background:#e6a66a}
body:has(aside) .topbar{background:#fffdf9eF;border-color:var(--brand-line);padding-top:17px;padding-bottom:17px;color:#9d8a76;font-size:12px}
body:has(aside) .topbar .right{gap:12px}
body:has(aside) .topbar button{font-size:11px;padding:8px 14px;background:#fffaf2;border-color:#eadccc;border-radius:20px;color:#b28e6b}
body:has(aside) .venue-picker{color:#ad957b}
body:has(aside) .venue-picker select{background:#fff6e9;border-color:#edddc8;border-radius:20px;font-size:11px;color:#af8056;padding:8px 14px}
body:has(aside) .pagehead h1{color:#5b493a;font-size:24px;font-weight:500;letter-spacing:1px}
body:has(aside) .pagehead p{font-size:11px;color:#b3a18c;line-height:1.8}
body:has(aside) .hero{background-image:linear-gradient(90deg,#f1d9bdf0,#f4dfc9d9 60%,#efd1b766),url('/assets/yoga.png');background-size:cover;background-position:center 40%;border:1px solid #eedac2;border-radius:18px;min-height:165px;padding:29px 32px;color:#886344;box-shadow:0 5px 16px #aa795c06}
body:has(aside) .hero h2{font-size:27px;font-weight:500;letter-spacing:2px;margin:13px 0}
body:has(aside) .hero .eyebrow{color:#b39372;font-size:9px;letter-spacing:3px}
body:has(aside) .hero .muted{color:#b09273;font-size:12px}
body:has(aside) .hero .art{opacity:0}
body:has(aside) .metrics{gap:17px}
body:has(aside) .metric{background:var(--brand-paper);border:1px solid var(--brand-line);border-radius:14px;padding:22px;position:relative;overflow:hidden;box-shadow:0 5px 18px #a77b4804}
body:has(aside) .metric:after{content:'';position:absolute;width:54px;height:54px;right:-12px;top:-12px;border:9px solid #fff2df;border-radius:50%;pointer-events:none}
body:has(aside) .metric label{color:#b09c84;font-size:12px}
body:has(aside) .metric strong{color:#db9561;font-size:30px;font-weight:500;margin-top:17px;font-variant-numeric:tabular-nums}
body:has(aside) .metric small{color:#c8b49b;font-size:11px}
body:has(aside) .panel{background:var(--brand-paper);border-color:var(--brand-line);border-radius:14px;box-shadow:0 4px 18px #a77b4804}
body:has(aside) .panel h3{font-weight:500;color:#6e5844;font-size:15px}
body:has(aside) .panel h3>span{color:#beab95;font-size:10px}
body:has(aside) .panel h4{font-weight:500;color:#9e836a;font-size:12px}
body:has(aside) .chart{border-color:#efdfc9;background:repeating-linear-gradient(to top,transparent 0,transparent 39px,#f4ecdf 40px)}
body:has(aside) .bar{background:linear-gradient(0deg,#efb07a,#ffd3a7);color:#c78c59;border-radius:6px 6px 0 0}
body:has(aside) .bar small{color:#b9a58d;font-size:10px}
body:has(aside) .quick button{background:#fbf5eb;border-color:#eee1d1;border-radius:12px;padding:17px;color:#ae825b}
body:has(aside) .quick button:hover{background:#fff0dc;border-color:#ebc9a4}
body:has(aside) .quick b{font-weight:500;font-size:12px}
body:has(aside) .quick small{font-size:10px;color:#bfaa91}
body:has(aside) button{border-color:#eadfce;border-radius:8px;color:#a1876d;background:#fffdf8;font-size:12px}
body:has(aside) button:hover{background:#fff0de;border-color:#ecc6a4;color:#c8864e}
body:has(aside) button.primary{background:var(--brand-accent);border-color:var(--brand-accent);color:white;border-radius:22px;padding-left:17px;padding-right:17px}
body:has(aside) button.primary:hover{background:var(--brand-accent-hover);border-color:var(--brand-accent-hover)}
body:has(aside) button.danger{color:#c77562}
body:has(aside) .toolbar>button{border-radius:20px}
body:has(aside) input,body:has(aside) select,body:has(aside) textarea{border-color:#eadfce;background:#fffdf9;color:#8c735a;border-radius:8px;outline-color:#ffb27c;font-size:12px}
body:has(aside) input::placeholder,body:has(aside) textarea::placeholder{color:#c4b29f}
body:has(aside) input:focus,body:has(aside) textarea:focus,body:has(aside) select:focus{border-color:#eda878;box-shadow:0 0 0 3px #ffad7114}
body:has(aside) .filters{background:#fff8eb;border:1px solid #eddfc9;border-left:3px solid #f0ad71;border-radius:10px;color:#a68b6f;font-size:12px}
body:has(aside) .filters label{color:#baa48a}
body:has(aside) .summary{background:#fff4e4;border-color:#efddc4;color:#b68d63;border-radius:10px;font-size:12px;line-height:1.9;padding:14px 18px}
body:has(aside) th{background:#fbf4e8;color:#b29a7b;font-weight:400;font-size:11px}
body:has(aside) th,body:has(aside) td{border-color:#f0e8dc;padding:15px 13px}
body:has(aside) td{color:#8c7965;font-size:12px}
body:has(aside) tbody tr:hover{background:#fffbf3}
body:has(aside) td small{color:#c1ad95;font-size:10px}
body:has(aside) td strong{color:#b58d62!important}
body:has(aside) td button{font-size:10px;padding:6px 10px;border-radius:16px}
body:has(aside) .tag{background:#fff0dc;color:#c18e5d;border-radius:20px;font-size:10px;border:1px solid #f5e3c8;padding:5px 10px}
body:has(aside) .tag.orange{background:#f8ede7;color:#bb947e;border-color:#eddfd5}
body:has(aside) .muted,body:has(aside) .notice p,body:has(aside) .venue-info p{color:#b29e87}
body:has(aside) .notice{border-color:#f0e5d6;font-size:12px}
body:has(aside) .notice strong{color:#94795c;font-weight:500}
body:has(aside) .notice small{font-size:10px;color:#c5b39d}
body:has(aside) .pagination,body:has(aside) .empty,body:has(aside) .footer{color:#c2ad93}
body:has(aside) .footer{font-size:10px;letter-spacing:1px;margin:28px 0 5px}
body:has(aside) .campaign-price{color:#ec985d;font-size:27px}
body:has(aside) .campaign-price small{color:#bba487;font-size:11px}
body:has(aside) .campaign-card .toolbar{margin-top:20px;margin-bottom:0}
dialog{background:#fffdf8;color:#79634e;border:1px solid #eadbc5;border-radius:16px;box-shadow:0 20px 85px #8d67452b;padding:26px}
dialog::backdrop{background:#55412d52;backdrop-filter:blur(3px)}
dialog h2{color:#846143;font-size:19px;font-weight:500}
dialog label{color:#ab9074;font-size:12px}
dialog input,dialog select,dialog textarea{background:#fffaf3;border-color:#eadcc7;border-radius:8px;color:#927355;outline-color:#f5a975;font-size:12px}
dialog footer button{border-color:#e7d8c3;border-radius:22px;font-size:12px;padding-left:20px;padding-right:20px}
dialog footer button.primary{background:var(--brand-accent);border-color:var(--brand-accent);color:white}
dialog header button{background:transparent;color:#bb9d7e;border:0}
dialog .multi-options label{border-color:#eee0cd;background:#fffaef}
dialog .multi-options input{accent-color:#ff975a}
#toast{background:#9a7653;color:#fffaf0;border-radius:24px;box-shadow:0 6px 18px #9f784425;font-size:12px}
body:not(.member-route) .login{background:#fffaf2}
body:not(.member-route) .login-art{background:linear-gradient(135deg,#ffe0b4,#f5dec3 60%,#f3e9db);color:#976c47}
body:not(.member-route) .login-art .eyebrow{color:#b58c65!important;font-size:10px;letter-spacing:2.5px}
body:not(.member-route) .login-art h1{font-weight:400;letter-spacing:2px}
body:not(.member-route) .login-art p{color:#b99a78}
body:not(.member-route) .rings{border-color:#d6b48d;box-shadow:0 0 0 45px #f9e8d230,0 0 0 90px #fcf3e51a}
body:not(.member-route) .login-box{background:#fffdf8}
body:not(.member-route) .login-box h2{font-weight:500;color:#846347}
body:not(.member-route) .login-box .muted{color:#b59d83}
body:not(.member-route) .login-box label{color:#b29779;font-size:12px}
body:not(.member-route) .login-box input{background:#fffaf3;border-color:#e9dcc9;border-radius:10px;color:#917052;outline-color:#f0ae76}
body:not(.member-route) .login-box .primary{background:var(--brand-accent);border-color:var(--brand-accent);border-radius:25px}
@media(max-width:1050px){body:has(aside) aside nav button{font-size:11px;padding:12px 7px}body:has(aside) .hero{min-height:150px}body:has(aside) .hero h2{font-size:24px}}
@media(max-width:700px){body:has(aside) .topbar{padding:12px}body:has(aside) .topbar .right{gap:8px}body:has(aside) .pagehead{align-items:flex-start;gap:10px}body:has(aside) .pagehead .tag{white-space:nowrap;font-size:9px}body:has(aside) .hero{padding:23px}body:has(aside) .metric{padding:18px}body:has(aside) .metric strong{font-size:26px}}
@media(max-width:650px){body:has(aside) aside{border-right:0;border-bottom:1px solid #eadfce;padding-top:17px}body:has(aside) .brand{font-size:16px}.sidebar-slogan{font-size:9px;text-align:left;margin:7px 0 4px}body:has(aside) aside nav button{font-size:11px;padding:10px 12px}body:has(aside) .hero h2{font-size:21px}body:has(aside) .hero .eyebrow{font-size:8px;letter-spacing:2px}}
