@font-face{font-family:Rye;src:url('/brand/rye.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--brown:#63371f;--dark:#422411;--cream:#fff4df;--paper:#f7e7c9;--muted:#d7bf9e;--line:#cba97b}
*{box-sizing:border-box}body{margin:0;background:var(--brown);color:var(--cream);font-family:Rye,Georgia,serif;font-size:15px;line-height:1.65}button,input{font:inherit}button,a,input,summary{outline-offset:5px}button{padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:transparent;color:inherit;cursor:pointer;line-height:1.4}button:disabled{opacity:.5;cursor:wait}button:hover:enabled{background:#ffffff10}button.primary{background:var(--paper);color:var(--dark)}a{color:inherit;font-size:12px}h1,h2,h3,p{margin:0 0 14px}h1{font-size:clamp(23px,3vw,34px);line-height:1.4;font-weight:400}h2{font-size:23px;font-weight:400;line-height:1.4}h3{font-size:18px;font-weight:400}strong{font-weight:400}header,footer{display:flex;justify-content:space-between;align-items:center;gap:20px}header{padding:24px 0;border-bottom:1px solid #ffffff25}.dashboard{max-width:1120px;padding:0 28px;margin:auto}.brand{display:flex;align-items:center;gap:16px}.emblem{width:65px;height:70px;object-fit:contain}.wordmark{width:210px;display:block}.subtitle{width:240px;max-width:100%;display:block;margin-top:7px}main{padding:40px 0}.eyebrow{font-size:12px;color:var(--muted);margin-bottom:8px}.intro,.hint{color:var(--muted)}.hint{font-size:12px}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.messages p{border:1px solid var(--line);padding:14px;border-radius:8px}.error{background:#842718;color:#fff7ed}.success{background:#284c30}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:22px 0}.stats div{border:1px solid #ffffff30;border-radius:10px;padding:20px;display:flex;flex-direction:column}.stats strong{font-size:32px}.stats span{font-size:12px;color:var(--muted)}.operator{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.panel{padding:26px;border:1px solid #ffffff30;border-radius:12px;background:#43271550}.panel>p{font-size:13px}.catalog{margin-top:24px}.panel label{display:block;font-size:13px;margin:18px 0}.panel input:not([type=checkbox]){display:block;width:100%;min-width:0;background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:12px;color:var(--dark);margin-top:6px;font-size:16px}.check{display:flex!important;align-items:center;gap:12px}.check input{width:19px;height:19px;accent-color:var(--paper)}.result{border-top:1px dashed var(--line);padding-top:22px;margin-top:24px}.badge{display:inline-block;background:var(--paper);padding:3px 10px;border-radius:5px;color:var(--dark);font-size:13px}.actions{display:flex;flex-wrap:wrap;gap:10px}.activity{display:flex;justify-content:space-between;gap:15px;padding:12px 0;font-size:12px;border-top:1px solid #ffffff25}.activity small{display:block;font-size:11px;color:var(--muted);overflow-wrap:anywhere}details{margin-top:24px}summary{cursor:pointer;font-size:13px}.reward{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 0;border-bottom:1px solid #ffffff25}.reward p{font-size:12px;color:var(--muted);margin:0}.reward h3{margin-bottom:6px;overflow-wrap:anywhere}.empty{border:1px dashed var(--line);padding:24px;font-size:13px;color:var(--muted);border-radius:8px}footer{border-top:1px solid #ffffff25;padding:24px 0 36px;justify-content:center}footer>img{width:210px}footer .footer-emblem{width:60px;height:65px;object-fit:contain}@media(max-width:650px){.dashboard{padding:0 18px}.columns{grid-template-columns:1fr}.stats{gap:8px}.stats div{padding:12px}.stats span{font-size:10px}.stats strong{font-size:24px}.panel{padding:20px}.heading{align-items:flex-start}.wordmark{width:165px}.subtitle{width:190px}.emblem{width:45px;height:50px}.brand{gap:10px}header a{font-size:10px}main{padding:28px 0}}

/* Public cafe portal; Spot Light keeps its own full-page interface. */
.cafe-home{max-width:1180px;margin:0 auto;padding:0 36px}.cafe-header{padding:26px 0}.cafe-logo{display:flex;gap:15px;align-items:center;text-decoration:none}.cafe-logo img:first-child{width:61px;height:68px;object-fit:contain}.cafe-logo img:last-child{width:205px;height:auto;background:var(--paper);padding:8px 12px;border-radius:7px}.cafe-nav{font-size:14px;text-decoration:none;padding:12px 0}.cafe-nav span{margin-left:12px}.cafe-main{display:grid;grid-template-columns:1.3fr 1fr;gap:65px;padding:58px 0 0}.cafe-kicker{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}.cafe-intro h1{font-size:clamp(36px,5vw,62px);line-height:1.2;letter-spacing:-1px;margin:22px 0}.cafe-lead{font-size:16px;max-width:430px;color:var(--paper)}.cafe-invitation{border-top:1px dashed #d7bf9e66;margin-top:35px;padding-top:28px}.cafe-invitation>img{width:175px;height:auto;display:block;margin-bottom:10px}.cafe-invitation>p{font-size:14px;max-width:430px;color:var(--muted)}.cafe-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin:22px 0}.cafe-actions>a{font-size:13px}.cafe-cta{display:inline-flex;align-items:center;gap:24px;border-radius:8px;background:var(--paper);padding:13px 18px;color:var(--dark);text-decoration:none}.cafe-small{font-size:11px;color:var(--muted);max-width:440px;margin-top:22px}.cafe-chart{background:var(--paper);color:var(--dark);border-radius:90px 90px 12px 12px;padding:34px 35px 25px;align-self:start;box-shadow:12px 15px 0 #42241155}.cafe-chart-mark{width:78px;height:85px;display:block;object-fit:contain;margin:0 auto 24px}.cafe-chart>.cafe-kicker{color:#775339;text-align:center}.cafe-chart h2{text-align:center;font-size:30px;line-height:1.35;margin:12px 0 28px}.cafe-chart>div{display:flex;gap:16px;border-top:1px dashed #8c674633;padding-top:17px}.cafe-chart>div>span{font-size:11px;color:#876347;padding-top:4px}.cafe-chart p{font-size:12px}.cafe-chart strong{font-size:15px}.cafe-next{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid #ffffff25;padding:34px 0;margin-top:10px}.cafe-next h2{font-size:22px}.cafe-next>p{font-size:13px;color:var(--muted);align-self:center}.cafe-footer{display:flex;justify-content:space-between;font-size:11px;padding:22px 0 30px}.cafe-footer a{font-size:11px}@media(max-width:700px){.cafe-home{padding:0 22px}.cafe-main{grid-template-columns:1fr;gap:36px;padding-top:34px}.cafe-logo{gap:9px}.cafe-logo img:first-child{width:42px;height:48px}.cafe-logo img:last-child{width:150px}.cafe-nav{font-size:12px}.cafe-header{gap:12px}.cafe-chart{max-width:460px;width:100%;margin:auto;padding:30px}.cafe-next{grid-template-columns:1fr;gap:8px}.cafe-intro h1{font-size:43px}.cafe-actions{gap:20px}}

@media(max-width:365px){.cafe-logo img:first-child{width:36px;height:42px}.cafe-logo img:last-child{width:132px}.cafe-nav{font-size:11px}.cafe-header{gap:9px}}

.panel select,.panel textarea{display:block;width:100%;max-width:100%;background:var(--cream);color:var(--dark);border:1px solid var(--line);border-radius:6px;padding:12px;margin-top:6px;font:inherit;font-size:15px}.panel textarea{resize:vertical}

.app-download{max-width:510px;min-height:100svh;margin:0 auto;padding:32px 26px 45px;display:flex;flex-direction:column;justify-content:center}.app-download-brand{display:flex;align-items:center;gap:13px;text-decoration:none;margin-bottom:38px}.app-download-brand img:first-child{width:54px;height:62px;object-fit:contain}.app-download-brand img:last-child{width:164px;height:auto;padding:7px 10px;background:var(--paper);border-radius:8px}.app-download h1{font-size:clamp(35px,9vw,48px);line-height:1.25;margin:14px 0 22px}.app-download section>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.8}.app-download .app-download-button{display:flex;align-items:center;justify-content:center;gap:14px;padding:20px 14px;margin-top:30px;width:100%;background:var(--paper);color:var(--dark);border:1px solid var(--line);border-radius:12px;text-decoration:none;font-size:17px;line-height:1.5;box-shadow:0 6px 0 #43241155}.app-download-button span{font-size:25px}.app-download .app-download-version{font-size:12px;text-align:center;margin:17px 0 28px}.app-download .app-download-help{font-size:12px;border-top:1px dashed #b89c7177;padding-top:22px}.app-download-back{margin-top:25px;font-size:12px;align-self:flex-start}

@font-face{font-family:'Admin Fraunces';src:url('/brand/fraunces.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Admin Sans';src:url('/brand/dm-sans.woff2') format('woff2');font-weight:100 1000;font-display:swap}
.cafe-admin fieldset{border:0;padding:0;margin:0 0 24px;min-width:0}.cafe-admin legend{font-weight:650;margin-bottom:20px}.admin-team-editor{max-width:680px;padding:30px 0}.admin-team-editor .admin-check small{display:block;font-size:13px;font-weight:400;color:#736252}.admin-team-editor button+button{margin:12px 0 0 12px}
.cafe-admin{--admin-paper:#f8f3e9;--admin-ink:#34271f;--admin-muted:#736252;--admin-accent:#795031;background:var(--admin-paper);color:var(--admin-ink);font:16px/1.7 'Admin Sans',sans-serif;min-height:100svh}
.cafe-admin *{box-sizing:border-box}.cafe-admin h1,.cafe-admin h2,.cafe-admin h3{font-family:'Admin Fraunces',Georgia,serif;font-weight:450;line-height:1.2;letter-spacing:-.8px;color:inherit}.cafe-admin h1{font-size:clamp(35px,4vw,55px);margin:8px 0 20px}.cafe-admin h2{font-size:31px;margin:0 0 18px}.cafe-admin h3{font-size:24px;margin:0 0 20px}.cafe-admin p{margin:0 0 20px}.cafe-admin a{color:inherit;text-underline-offset:5px}.cafe-admin button{font:600 14px/1.5 'Admin Sans',sans-serif;border:0;border-radius:3px;min-height:44px;padding:10px 16px;background:#e9dfd0;color:var(--admin-ink);cursor:pointer;box-shadow:none}.cafe-admin button:hover:enabled{background:#e0d0bc}.cafe-admin button:disabled{opacity:.5;cursor:default}.cafe-admin .admin-primary{background:#67402b;color:#fff6e8}.cafe-admin .admin-primary:hover:enabled{background:#805338}.cafe-admin :is(button,a,input,select,textarea):focus-visible{outline:2px solid #a26336;outline-offset:4px}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:12px max(28px,calc((100vw - 1180px)/2));position:sticky;top:0;background:#f8f3e9f5;backdrop-filter:blur(15px);z-index:10}.admin-header>a{display:flex;align-items:center;gap:18px;text-decoration:none;mix-blend-mode:multiply}.admin-header img{object-fit:contain}.admin-header .admin-emblem{width:70px;height:78px}.admin-header .admin-wordmark{width:139px;height:100px}.admin-header>div{display:flex;align-items:center;gap:22px}.admin-header span{font-size:12px;color:var(--admin-muted)}
.cafe-admin main,.cafe-admin footer{width:min(1180px,calc(100% - 56px));margin:auto}.cafe-admin main{padding:42px 0 60px}.admin-page-heading{max-width:790px}.admin-page-heading>p:last-child{color:var(--admin-muted)}.cafe-admin .admin-eyebrow{font:600 11px/1.6 'Admin Sans',sans-serif;text-transform:uppercase;letter-spacing:1.5px;color:var(--admin-muted);margin:0 0 14px}.admin-notices{min-height:22px;scroll-margin-top:150px}.admin-notices>p{padding:12px 0;color:#355331}.admin-notices>.admin-error{color:#9c3026}.admin-login{max-width:480px;margin:25px 0 60px}.admin-login>a{display:block;width:fit-content;margin-top:20px;font-size:14px}
.cafe-admin form{margin:20px 0 30px}.cafe-admin label{display:block;font-size:14px;font-weight:550;line-height:1.6;margin:0 0 18px}.cafe-admin input,.cafe-admin select,.cafe-admin textarea{display:block;width:100%;margin-top:8px;border:1px solid #cbbca8;background:#fffaf2;border-radius:4px;padding:12px;color:var(--admin-ink);font:400 16px/1.5 'Admin Sans',sans-serif;min-width:0;box-shadow:none}.cafe-admin textarea{min-height:95px;resize:vertical}.cafe-admin input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin:3px 0 0;padding:0;accent-color:#795031}.cafe-admin .admin-check{display:flex;align-items:flex-start;gap:12px}.admin-password{display:flex;align-items:center;gap:10px}.admin-password input{flex:1}.admin-password button{margin-top:8px;flex-shrink:0}.cafe-admin .admin-help{font-size:13px;line-height:1.7;color:var(--admin-muted);max-width:630px}
.admin-summary{display:flex;align-items:center;flex-wrap:wrap;gap:24px 55px;padding:15px 0 35px}.admin-summary strong{font:450 35px/1.3 'Admin Fraunces',serif;display:block}.admin-summary span{font-size:12px;color:var(--admin-muted)}.admin-summary button{margin-left:auto}.admin-tabs{display:flex;gap:25px;overflow:auto;margin:0 0 38px;padding:0 0 12px}.admin-tabs>button{white-space:nowrap;background:transparent!important;border-radius:0;padding:10px 0;border-bottom:2px solid transparent}.admin-tabs>button[aria-pressed=true]{border-bottom-color:#875432;color:#6c3b22}.admin-section-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}.admin-section-heading h2{margin:0}.admin-search{display:flex;align-items:flex-end;gap:22px}.admin-search label{margin:0;flex:1}.admin-search button{min-height:49px}
.admin-table-wrap{overflow:auto}.cafe-admin table{border-collapse:collapse;width:100%;text-align:left;font-size:14px;min-width:600px}.cafe-admin th{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--admin-muted);font-weight:600}.cafe-admin td,.cafe-admin th{padding:15px 18px 15px 0;border-bottom:1px solid #dfd3c2}.cafe-admin td small{display:block;font-size:12px;color:var(--admin-muted)}.cafe-admin td:last-child,.cafe-admin th:last-child{padding-right:0;text-align:right}.admin-pagination{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin:25px 0}.admin-pagination span{margin-right:auto;font-size:13px;color:var(--admin-muted)}
.admin-member{padding-top:42px;margin-top:30px;border-top:1px solid #d9c9b4;scroll-margin-top:150px}.admin-member-heading{display:flex;align-items:center;gap:23px}.admin-member-heading img{width:83px;height:83px;border-radius:50%;object-fit:cover}.admin-member-heading p:last-child{font-size:13px;color:var(--admin-muted);margin:8px 0 0}.admin-form-grid,.admin-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 70px;margin-top:30px}.admin-form-grid>form,.admin-form-grid>div>form{max-width:540px}.admin-form-grid button+button{margin-left:12px}.admin-history{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:18px 0;border-bottom:1px solid #e0d5c6}.admin-history span,.admin-history small{display:block}.admin-history small{font-size:12px;color:var(--admin-muted);margin-top:5px;overflow-wrap:anywhere}.admin-history button{flex-shrink:0}.admin-detail-grid{margin-bottom:35px}.cafe-admin details{padding:15px 0}.cafe-admin summary{cursor:pointer;font-weight:600}.cafe-admin details p{font-size:13px;margin:12px 0;color:var(--admin-muted)}.admin-voucher{max-width:650px;padding:25px 0 45px}.admin-reward-code{font-size:24px;font-weight:650;letter-spacing:1px;overflow-wrap:anywhere}.cafe-admin footer{display:flex;gap:25px;align-items:center;flex-wrap:wrap;padding:25px 0 45px;font-size:13px}.cafe-admin footer span{margin-left:auto;color:var(--admin-muted)}.admin-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:760px){.admin-header{padding:8px 20px;gap:15px}.admin-header>a{gap:10px}.admin-header .admin-emblem{width:55px;height:62px}.admin-header .admin-wordmark{width:110px;height:80px}.admin-header>div{display:flex;flex-direction:column;align-items:flex-end;gap:7px}.admin-header span{font-size:10px;max-width:110px;text-align:right}.admin-header button{font-size:12px;padding:8px 12px;min-height:36px}.cafe-admin main,.cafe-admin footer{width:calc(100% - 40px)}.cafe-admin main{padding-top:30px}.admin-summary{gap:20px 35px}.admin-summary>div{min-width:95px}.admin-summary strong{font-size:30px}.admin-summary button{margin-left:0}.admin-tabs{gap:24px;margin-bottom:28px}.admin-tabs button{font-size:13px}.admin-search{flex-wrap:wrap;gap:15px}.admin-search>label:first-child{flex-basis:100%}.admin-search button{min-height:49px}.admin-form-grid,.admin-detail-grid{grid-template-columns:1fr;gap:15px}.admin-section-heading{align-items:flex-start;flex-wrap:wrap;gap:15px}.admin-section-heading h2{font-size:28px}.admin-history{gap:15px}.admin-history button{font-size:12px;padding:10px 12px}.admin-member{scroll-margin-top:115px}.admin-member-heading{align-items:flex-start;gap:15px}.admin-member-heading img{width:60px;height:60px}.admin-pagination{gap:8px}.admin-pagination button{padding-inline:12px}.cafe-admin footer span{width:100%;margin-left:0}.admin-page-heading h1{font-size:37px}}
