/* Story Food · orange identity, responsive workspace and precise image frames. */
:root{--bg:#111111;--panel:#191919;--panel2:#242424;--line:#343434;--text:#f9f9f9;--muted:#b0b0b0;--accent:#e85002;--on-accent:#170e08}
[hidden]{display:none!important}
.brand-icon{display:block;position:relative;width:38px;height:38px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#171717}
.brand .brand-icon img,.made-with .brand-icon img{position:absolute;width:206%;height:206%;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%)}
.brand{gap:10px;white-space:nowrap}.brand>span:last-child{color:var(--text)}.brand>span:last-child>span{color:var(--accent)}
.btn{font-weight:650}.btn.primary{background:linear-gradient(105deg,#e85002 0%,#f87b23 38%,#f59448 50%,#f87b23 62%,#e85002 100%);background-size:250% 100%;color:#170e08;animation:orange-drift 12s ease-in-out infinite}
@keyframes orange-drift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.btn.primary:hover{filter:brightness(1.06)}.btn.primary:disabled{animation-play-state:paused}
.nav-link.active{background:#e850021c;color:#ffae7b;box-shadow:inset 3px 0 #e85002}
.sidebar{background:#131313}.restaurant-switch strong{display:block;overflow-wrap:anywhere}.sidebar-bottom .nav-link{color:#b0b0b0}
.main{width:100%;max-width:1230px;padding:36px clamp(22px,3vw,48px) 64px}.topbar{min-height:90px;padding:20px clamp(22px,3vw,48px);background:#141414}.topbar>.actions{justify-content:flex-end}
.panel{box-shadow:0 8px 24px #0000000c}.page-head{max-width:100%}.page-head>div,.form-grid>*,.metrics>*,.dashboard-grid>*,.qr-layout>*{min-width:0}
.form-grid{align-items:start}.field{min-width:0}.form-actions .primary{min-width:172px}.metrics{align-items:stretch}.metric{display:flex;flex-direction:column;justify-content:space-between}.metric span{line-height:1.4}.mini-cover{height:auto;aspect-ratio:2/1;object-fit:cover}
.dashboard-preview{align-content:start}.catalog-item{min-width:0}.catalog-item .grow{overflow-wrap:anywhere}
.upload-box{background:#141414;border-color:#424242;align-content:start;overflow:hidden;gap:12px}.upload-preview:empty{display:none}
.upload-box .upload-preview img{width:100%;height:auto;aspect-ratio:var(--crop-aspect);max-height:none;object-fit:cover;border-radius:10px}
.upload-box[data-crop-format=logo] .upload-preview{width:130px;max-width:100%}
.upload-box[data-crop-format=story] .upload-preview{width:200px;max-width:100%;margin:auto}
.upload-box[data-crop-format=category] .upload-preview{width:210px;max-width:100%;margin:auto}
.upload-box video{width:100%;height:170px;object-fit:contain;background:#080808}
.upload-box input[type=file]{border:0;padding:0;background:transparent;min-height:40px;color:#b0b0b0}
input[type=file]::file-selector-button{padding:10px 12px;background:#303030;color:#f9f9f9;border:1px solid #484848;border-radius:8px;cursor:pointer;margin-right:10px}
.upload-status:empty{display:none}.upload-box .actions{gap:8px}.upload-box .actions .btn{flex:1}.upload-box .help{line-height:1.55}
.preview-banner{background:#e85002}.preview-wrap{max-width:430px}
/* The public page opens directly with the restaurant, without a platform header. */
.menu-hero{height:auto;border-radius:0 0 22px 22px;background:var(--panel)}
.menu-hero:after{display:none}.menu-cover{position:relative;width:100%;aspect-ratio:2/1;overflow:hidden;background:var(--panel2)}
.menu-cover:empty{display:none}.menu-cover>img,.menu-cover>video{width:100%;height:100%;object-fit:cover}
.hero-content{position:relative;inset:auto;display:flex;align-items:center;padding:25px 28px;color:var(--text);gap:18px}
.hero-content>div{min-width:0}.hero-content h1{font-size:clamp(1.8rem,4vw,3rem);line-height:1.15}.hero-content p{color:var(--muted);line-height:1.5}
.hero-logo{flex-shrink:0;object-fit:contain;background:white}.category-card{height:auto;aspect-ratio:3/4}.category-card>img{transition:none}.category-card:hover>img{transform:none}
.menu-footer{border-top:1px solid var(--line);padding-top:24px;align-items:center}.made-with{display:inline-flex;gap:8px;align-items:center;white-space:nowrap}.made-with .brand-icon{width:23px;height:23px;border-radius:6px}
.story-stage img.story-media{object-fit:contain}.story-stage{background:#101010}
/* Native dialog: fixed actions, scrollable body, touch gestures isolated to image. */
.crop-dialog[open]{display:flex;flex-direction:column;width:min(980px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:hidden;background:#191919;color:#f9f9f9;--accent:#e85002;--line:#383838;--panel:#191919;--muted:#b0b0b0}
.crop-dialog .dialog-head{position:static;padding:20px 24px;flex-shrink:0}.crop-dialog h2{margin-top:5px}.crop-dialog .eyebrow{font-size:.7rem;color:#ffac79}
.crop-body{padding:20px 24px;overflow-y:auto;overscroll-behavior:contain;min-height:0;display:grid;gap:16px}
.crop-layout{display:grid;grid-template-columns:minmax(0,1fr) 205px;gap:24px;align-items:center}.crop-workspace{min-width:0;padding:18px;background:#101010;border:1px solid #303030;border-radius:14px;display:grid;place-items:center}
.crop-frame{position:relative;width:min(100%,calc(42dvh * var(--crop-ratio)));overflow:hidden;touch-action:none;user-select:none;cursor:grab;border:2px solid #ff8b3d;border-radius:3px;background:repeating-conic-gradient(#292929 0% 25%,#363636 0% 50%) 50%/20px 20px;box-shadow:0 0 0 1px #000}
.crop-frame{border:0;outline:2px solid #ff8b3d;outline-offset:0}.crop-frame:active{cursor:grabbing}.crop-frame .crop-image{position:absolute;left:0;top:0;max-width:none;pointer-events:none;will-change:transform}
.crop-grid{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to right,transparent 33.1%,#fff5 33.1%,#fff5 33.4%,transparent 33.4%,transparent 66.5%,#fff5 66.5%,#fff5 66.8%,transparent 66.8%),linear-gradient(to bottom,transparent 33.1%,#fff5 33.1%,#fff5 33.4%,transparent 33.4%,transparent 66.5%,#fff5 66.5%,#fff5 66.8%,transparent 66.8%)}
.crop-safe{position:absolute;bottom:0;left:0;right:0;pointer-events:none;background:linear-gradient(transparent,#000b);color:white;padding:26px 10px 10px;font-size:.7rem;text-align:center}.crop-safe:empty{display:none}
.crop-summary{display:grid;gap:12px;align-content:start;font-size:.85rem}.crop-preview{display:block;width:100%;height:auto;max-height:215px;object-fit:contain;background:#101010;border:1px solid #404040;border-radius:8px}.crop-summary strong{font-size:.9rem}.crop-resolution{font-variant-numeric:tabular-nums;color:#ffbc93}
.crop-controls{display:flex;gap:15px;align-items:flex-end}.crop-controls label{flex:1}.crop-controls input{accent-color:#e85002;padding:0;border:0;background:transparent;min-height:36px;cursor:pointer}.crop-zoom-value{min-width:47px;margin-bottom:9px;font-size:.85rem;font-variant-numeric:tabular-nums}.crop-controls .btn{margin-bottom:1px}
.crop-actions{padding:16px 24px;border-top:1px solid #343434;display:flex;justify-content:flex-end;gap:10px;flex-shrink:0;background:#191919}.crop-actions .primary{min-width:175px}
@media(min-width:1600px){.topbar{padding-left:max(48px,calc((100% - 1134px)/2));padding-right:max(48px,calc((100% - 1134px)/2))}}
@media(max-width:1000px){.topbar{flex-wrap:wrap}.topbar>.actions{margin-left:auto}.main{padding:28px 22px 50px}}
@media(max-width:700px){
 .main{padding:24px 16px 40px}.sidebar.open{overflow-y:auto;background:#131313}.mobile-top .brand-icon{width:34px;height:34px}.mobile-top .brand-icon img{width:206%;height:206%}
 .topbar{min-height:0;padding:12px 16px}.topbar>.actions{display:grid;grid-template-columns:auto 1fr;gap:8px}.topbar .pill{grid-column:1/-1;justify-self:start}.topbar .btn{min-height:44px}.topbar .primary{white-space:normal}
 .panel{padding:20px 17px}.page-head h1{font-size:1.75rem}.page-head>.actions{width:100%}.page-head>.actions>.btn{flex:1}.form-actions{gap:8px}.form-actions>.btn{flex:1;min-width:0}
 .metrics{gap:8px}.metric{padding:16px 10px}.metric span{font-size:.75rem}.metric strong{font-size:1.7rem}.row.between{flex-wrap:wrap}
 .hero-content{padding:20px 18px;gap:14px}.hero-content h1{font-size:clamp(1.65rem,7vw,2.3rem)}.hero-content p{font-size:.875rem}.hero-logo{width:58px;height:58px}.menu-hero{border-radius:0}.category-card{height:auto}.category-info h3{font-size:1.05rem}.category-info p{font-size:.75rem}
 .menu-footer{flex-direction:column;text-align:center;gap:16px}.qr-paper{max-width:100%}
 .crop-dialog[open]{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:16px}.crop-dialog .dialog-head{padding:14px 16px}.crop-dialog h2{font-size:1.1rem}.crop-body{padding:14px;gap:13px}.crop-layout{grid-template-columns:1fr;gap:12px}.crop-workspace{padding:10px}.crop-frame{width:min(100%,calc(34dvh * var(--crop-ratio)))}
 .crop-summary{grid-template-columns:62px 1fr;gap:6px 12px;align-items:start}.crop-preview{grid-column:1;grid-row:1/5;max-height:92px;align-self:center}.crop-summary>.eyebrow,.crop-summary>strong,.crop-summary>p{grid-column:2}.crop-summary>strong{font-size:.8rem}.crop-summary>.eyebrow{display:none}.crop-summary .help{font-size:.72rem}
 .crop-controls{gap:8px}.crop-controls .btn{font-size:.8rem;padding:8px}.crop-actions{padding:12px 14px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.crop-actions .primary{flex:1;min-width:0}
}
@media(max-width:370px){.metric span{font-size:.7rem}.metric{padding:13px 8px}.category-info h3{font-size:.95rem}.category-info p{display:none}}
@media(prefers-reduced-motion:reduce){.btn.primary{animation:none;background-position:50% 50%}}
