@import url('/assets/fonts/fonts.css');

:root{--paper:#faf5e9;--cream:#faf0d5;--ink:#24241f;--muted:#858174;--line:#e5dfd1;--green:#557149;--red:#a75143;--white:#fffdf8;--serif:'Cormorant Garamond',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.6}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}:focus-visible{outline:3px solid #b6965b;outline-offset:4px}button,input,select,textarea{border-radius:0}input,select,textarea{max-width:100%}input,textarea{width:100%;border:1px solid var(--line);background:var(--white);padding:12px 13px;outline-offset:2px}textarea{resize:vertical;min-height:88px}select{padding:11px 30px 11px 12px;border:1px solid var(--line);background:var(--white)}h1,h2,h3,p{margin-top:0}h1{font-family:var(--serif);font-size:48px;font-weight:500;line-height:1.1;letter-spacing:-1.3px;margin-bottom:12px}h2{font-family:var(--serif);font-size:30px;font-weight:500;line-height:1.15;margin-bottom:12px}.muted{color:var(--muted)}.small{font-size:11px;line-height:1.6}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase}.brand{display:inline-flex;flex-direction:column;align-items:center;font-family:var(--serif);font-size:44px;letter-spacing:5px;line-height:1}.brand span{font-family:var(--sans);font-size:8px;letter-spacing:3.1px;margin-top:9px}.brand-small{font-size:28px;letter-spacing:3px}.brand-small span{font-size:6px;letter-spacing:2px;margin-top:6px}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:44px;padding:12px 20px;border:1px solid transparent;font-size:11px;font-weight:700;letter-spacing:.1px;transition:background .2s,color .2s,border-color .2s}.button-dark{background:var(--ink);color:var(--paper)}.button-dark:hover{background:#47463d}.button-outline{background:transparent;border-color:var(--line)}.button-outline:hover{border-color:#afa895;background:var(--cream)}.button-quiet{background:transparent}.button-quiet:hover{background:#f0e9d9}.button-small{min-height:36px;padding:8px 12px;font-size:10px}.full-width{width:100%}.text-link{border:0;background:transparent;padding:0;font-size:11px;font-weight:600;line-height:1.8}.text-link:hover{text-decoration:underline;text-underline-offset:4px}.form-error{padding:12px 14px;background:#f9e8df;color:#984534;font-size:12px;border-left:2px solid var(--red);margin:14px 0}.demo-banner{min-height:29px;text-align:center;padding:6px 16px;background:var(--ink);color:#eee3c9;font-size:10px;letter-spacing:.5px}.mobile-header{display:none}.login-screen{min-height:calc(100vh - 29px);padding:60px 24px;display:grid;place-items:center}.login-card{width:100%;max-width:420px;text-align:center}.login-card>.brand{margin-bottom:50px}.login-card h1{font-size:42px;margin:12px 0}.login-card>.muted{font-size:12px;margin-bottom:28px}.login-card form{text-align:left}.role-selector{padding:0;border:0;display:flex;gap:0;margin:0 0 22px}.role-selector legend{font-size:11px;font-weight:600;margin-bottom:8px}.role-selector label{flex:1}.role-selector input{position:absolute;opacity:0;width:1px}.role-selector span{display:block;padding:11px 8px;text-align:center;border:1px solid var(--line);font-size:11px;cursor:pointer}.role-selector label+label span{border-left:0}.role-selector input:checked+span{background:var(--ink);color:var(--paper);border-color:var(--ink)}.role-selector input:focus-visible+span{outline:3px solid #b6965b;outline-offset:3px}.field-label{display:block;font-size:11px;font-weight:600;margin-bottom:7px}.login-card form>.button{margin-top:20px}.login-card>#demo-login{margin-top:12px}.login-card>#demo-description{margin:12px 5px 0}.login-menu-link{display:inline-block;margin-top:30px}.dashboard{display:flex;min-height:calc(100vh - 29px)}.sidebar{width:222px;flex-shrink:0;position:sticky;top:0;height:100vh;padding:42px 25px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column}.sidebar>.brand{margin-bottom:34px;align-self:center}.sidebar-rule{border-top:1px solid var(--line);margin-bottom:27px}.sidebar>.eyebrow{font-size:8px;letter-spacing:1.2px;color:var(--muted)}.sidebar-nav{display:grid;gap:7px;margin-top:18px}.sidebar-nav a{font-size:11px;font-weight:600;padding:12px 11px;display:flex;gap:12px;align-items:center}.sidebar-nav a.active{background:var(--cream)}.sidebar-nav a:hover{background:#f1ebdd}.nav-icon{font-size:18px;width:18px;text-align:center;line-height:1}.sidebar-note{margin-top:50px;color:var(--muted);font-size:11px;line-height:1.9}.note-line{display:block;width:27px;border-top:1px solid #aaa28c;margin-bottom:14px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar-bottom .small{font-size:9px}.workspace{flex:1;min-width:0;max-width:1640px;padding:46px 46px 20px}.workspace-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}.workspace-header h1{margin-top:13px}.workspace-header p{font-size:12px;margin-bottom:0;max-width:570px}.header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:325px}.status-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);font-size:9px;font-weight:600}.status-pill:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--green)}.status-pill.draft:before{background:#b48c48}.mobile-role-nav{display:none}.stats{display:grid;grid-template-columns:1fr 1fr 1fr 1.6fr;border:1px solid var(--line);margin-bottom:32px}.stat{display:flex;flex-direction:column;padding:23px 25px;border-right:1px solid var(--line);gap:4px}.stat:last-child{border-right:0}.stat .eyebrow{color:var(--muted);font-size:8px;letter-spacing:1.3px}.stat strong{font-family:var(--serif);font-size:39px;font-weight:500;line-height:1.15;margin-top:5px}.stat-note{background:var(--cream);justify-content:center}.stat-note p{font-family:var(--serif);font-size:21px;line-height:1.15;margin:7px 0 5px;max-width:255px}.stat-note .small{font-size:9px}.menu-workspace{display:grid;grid-template-columns:minmax(0,1fr);gap:26px}.manager-workspace{grid-template-columns:minmax(320px,1fr) minmax(280px,340px)}.dish-list-panel{min-width:0}.list-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.tab-list{display:flex;gap:22px;align-items:center;border-bottom:1px solid var(--line);flex:1}.tab{border:0;background:transparent;padding:0 0 13px;font-size:11px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tab.active{border-color:var(--ink);color:var(--ink);font-weight:700}.tab span{margin-left:4px;display:inline-block;background:#ebe5d7;border-radius:9px;min-width:19px;padding:0 5px;font-size:9px}.filter-bar{display:flex;gap:10px}.search-field{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--white);flex:1;min-width:130px;padding-left:13px}.search-field>span:first-child{font-size:24px;line-height:1;color:var(--muted);transform:rotate(-20deg)}.search-field input{border:0;background:transparent;padding:11px 12px 11px 0;min-width:0;font-size:11px}.category-filter select{width:100%;max-width:200px;font-size:11px;padding-top:12px;padding-bottom:12px}.list-caption{font-size:9px;padding:17px 0 8px;display:flex;justify-content:space-between;gap:12px}.dish-row{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:17px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.dish-row.selected{background:var(--cream);margin:0 -12px;padding-left:12px;padding-right:12px;border-bottom-color:transparent}.dish-thumb{width:74px;height:68px;object-fit:cover;background:#ede6d7}.dish-thumb-placeholder{display:grid;place-items:center;font-family:var(--serif);font-size:27px;color:#8b816d;border:1px solid var(--line)}.dish-info{min-width:0}.dish-name{display:block;font-weight:600;font-size:12px;line-height:1.6;margin:0 0 3px}.dish-open{border:0;background:transparent;text-align:left;padding:0;width:100%;font-size:inherit;font-weight:inherit}.dish-open:hover{text-decoration:underline;text-underline-offset:3px}.dish-meta{color:var(--muted);font-size:9px;line-height:1.7;display:flex;flex-wrap:wrap;gap:0 9px}.dish-price{margin-top:5px;font-size:11px;font-weight:700}.row-controls{display:flex;align-items:center;gap:15px}.availability-control{display:flex;align-items:center;gap:9px;flex-direction:column}.availability-toggle{width:36px;height:21px;border-radius:20px;border:0;background:#d4cbb9;padding:3px;position:relative;transition:background .18s}.availability-toggle:after{content:'';display:block;width:15px;height:15px;border-radius:50%;background:#fffdf8;box-shadow:0 1px 3px #0002;transition:transform .18s}.availability-toggle[aria-checked=true]{background:var(--green)}.availability-toggle[aria-checked=true]:after{transform:translateX(15px)}.availability-label{font-size:8px;color:var(--green);white-space:nowrap}.availability-label.stopped{color:var(--red)}.row-edit-arrow{font-size:16px;background:transparent;border:0;padding:10px;color:var(--muted)}.row-tag{display:inline-block;font-size:8px;font-weight:600;color:var(--red);margin-top:5px;line-height:1.5}.empty-state{padding:55px 20px;border-bottom:1px solid var(--line);text-align:center;color:var(--muted);font-size:12px}.empty-state strong{display:block;font-family:var(--serif);font-size:25px;font-weight:500;color:var(--ink);margin-bottom:7px}.editor-panel{position:sticky;top:24px;align-self:start;border:1px solid var(--line);background:#fffaf0;padding:23px;min-width:0}.editor-idle{padding:42px 0;text-align:center;color:var(--muted);font-size:11px;line-height:1.9}.editor-idle span{display:block;font-family:var(--serif);font-size:36px;color:#aaa086;margin-bottom:15px}.editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:17px}.editor-header h2{font-size:28px;margin:5px 0 0}.editor-close{width:28px;height:28px;background:transparent;border:0;font-size:20px;color:var(--muted);padding:0}.editor-form label{font-size:10px;font-weight:600;display:block;margin-bottom:14px}.editor-form label input,.editor-form label select,.editor-form label textarea{margin-top:6px;font-size:11px;font-weight:400;padding:10px 11px}.editor-form select{width:100%}.editor-two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor-form .check-label{display:flex;align-items:flex-start;gap:9px;font-size:10px;font-weight:500;line-height:1.7}.editor-form .check-label input{width:15px;height:15px;flex-shrink:0;margin-top:2px;accent-color:var(--ink)}.photo-preview{width:100%;height:160px;object-fit:cover;background:#eee5d2;margin-bottom:10px}.photo-preview-placeholder{display:grid;place-items:center;font-family:var(--serif);font-size:30px;color:#a59982;border:1px solid var(--line)}.photo-hint{font-size:9px;color:var(--muted);margin:9px 0 13px;line-height:1.8}.photo-warning{color:#a3753f}.photo-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.photo-buttons label{display:inline-flex;margin:0}.upload-input{display:none}.photo-gallery{padding-top:14px;border-top:1px solid var(--line);margin-bottom:16px}.gallery-header{display:flex;align-items:center;justify-content:space-between;font-size:9px;margin-bottom:11px;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:300px;overflow:auto}.photo-choice{padding:0;background:transparent;border:1px solid var(--line);position:relative;text-align:left;min-width:0}.photo-choice.selected{border:2px solid var(--ink)}.photo-choice img{width:100%;height:67px;object-fit:cover;display:block}.photo-choice span{display:block;font-size:7px;padding:5px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-choice.selected:before{content:'✓';position:absolute;right:4px;top:4px;background:var(--ink);color:var(--paper);font-size:8px;width:16px;height:16px;text-align:center;line-height:16px}.editor-save-note{font-size:9px;color:var(--muted);line-height:1.8;margin:12px 0 0}.editor-form>.button{margin-top:5px}.delete-link{display:block;color:var(--red);font-size:9px;margin-top:17px}.delete-confirm{border-top:1px solid var(--line);padding-top:14px;margin-top:14px;font-size:10px}.delete-confirm p{margin-bottom:12px}.delete-confirm .button-danger{background:var(--red);color:var(--white)}.add-category-area{margin-top:25px;padding-bottom:10px}.category-form{margin-top:14px;padding:17px;border:1px solid var(--line);max-width:410px}.category-form label{display:block;margin-bottom:10px}.category-form input{margin-top:5px;font-size:11px}.category-form>div{display:flex;gap:8px}.workspace-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;color:#9c9687;letter-spacing:1px;text-transform:uppercase;font-size:7px;padding-top:20px;margin-top:40px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:14px 20px;box-shadow:0 7px 28px #0002;background:var(--ink);color:var(--paper);font-size:11px;line-height:1.7;z-index:20}.toast.error{background:#934c3c}.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(min-width:1500px){.workspace{padding-left:60px;padding-right:60px}.manager-workspace{grid-template-columns:minmax(440px,1fr) 380px}.editor-panel{padding:28px}.photo-preview{height:185px}}
@media(max-width:1200px){.sidebar{width:185px;padding:35px 18px}.sidebar>.brand{font-size:36px}.sidebar-nav a{font-size:10px;padding:10px 5px;gap:8px}.workspace{padding:36px 28px 20px}.workspace-header h1{font-size:43px}.header-actions{max-width:250px;gap:8px}.header-actions .button{padding:10px 13px;gap:10px}.stats{grid-template-columns:1fr 1fr 1fr}.stat-note{display:none}.stat:nth-child(3){border-right:0}.manager-workspace{grid-template-columns:minmax(260px,1fr) 300px;gap:20px}.editor-panel{padding:18px}.manager-workspace .filter-bar{flex-wrap:wrap}.manager-workspace .category-filter{width:100%}.manager-workspace .category-filter select{max-width:none}.manager-workspace .list-heading{align-items:flex-start;flex-wrap:wrap}.manager-workspace .list-heading>.button{margin-left:auto}.dish-row{grid-template-columns:62px minmax(0,1fr) auto;gap:11px}.dish-thumb{width:62px;height:64px}.row-controls{gap:3px}.row-edit-arrow{padding:6px}.stat{padding:20px}.tab-list{gap:16px}}
@media(max-width:920px){.sidebar{width:170px}.workspace{padding:30px 22px 20px}.workspace-header{align-items:flex-start;gap:15px}.workspace-header h1{font-size:38px}.workspace-header p{font-size:11px}.header-actions{max-width:180px}.manager-workspace{grid-template-columns:minmax(0,1fr)}.editor-panel{position:static;max-width:680px}.editor-panel .photo-preview{height:220px}.editor-two-fields{grid-template-columns:1fr 1fr}.editor-form label input,.editor-form label select,.editor-form label textarea{font-size:12px}.gallery-grid{grid-template-columns:repeat(5,1fr);max-height:300px}.photo-choice img{height:85px}.photo-choice span{font-size:8px}.manager-workspace .filter-bar{flex-wrap:nowrap}.manager-workspace .category-filter{width:auto}.manager-workspace .category-filter select{max-width:200px}.manager-workspace .list-heading{flex-wrap:nowrap;align-items:center}.editor-idle{padding:15px 0}.editor-idle span{display:none}.stat .eyebrow{font-size:7px;letter-spacing:1px}.stat{padding:17px}.stats{margin-bottom:27px}}
@media(max-width:650px){body{font-size:13px}.sidebar{display:none}.mobile-header{display:flex;justify-content:space-between;align-items:center;padding:22px 20px;border-bottom:1px solid var(--line)}.mobile-header>.text-link{font-size:9px}.workspace{padding:28px 18px 18px}.workspace-header{display:block;margin-bottom:22px}.workspace-header h1{font-size:38px;margin-top:11px}.workspace-header p{font-size:11px;line-height:1.9}.header-actions{max-width:none;justify-content:space-between;flex-wrap:nowrap;margin-top:20px}.header-actions .button{font-size:10px;min-height:42px}.status-pill{font-size:8px;padding:7px}.mobile-role-nav{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px}.mobile-role-nav a,.mobile-role-nav button{font-size:10px;padding:7px 11px;background:transparent;border:1px solid var(--line)}.mobile-role-nav a.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.mobile-role-nav button{margin-left:auto;border-color:transparent;color:var(--muted)}.stats{margin-bottom:25px}.stat{padding:14px 10px;gap:3px}.stat .eyebrow{font-size:6px;letter-spacing:.8px;line-height:1.8}.stat strong{font-size:32px}.stat .small{font-size:8px}.list-heading{margin-bottom:17px}.tab-list{gap:16px}.tab{font-size:10px;padding-bottom:11px}.list-heading>.button{font-size:9px;padding:8px}.filter-bar{gap:7px}.search-field{padding-left:9px;gap:5px;min-width:0}.search-field input{font-size:10px;padding-right:7px}.category-filter{max-width:45%}.category-filter select{font-size:10px;max-width:none;padding-left:9px}.list-caption{font-size:8px;line-height:1.8;padding-top:14px}.dish-row{grid-template-columns:66px minmax(0,1fr) auto;gap:12px;padding:14px 0}.dish-thumb{width:66px;height:70px}.dish-name{font-size:11px}.dish-meta{font-size:8px}.dish-price{font-size:10px}.availability-control{gap:7px}.availability-label{font-size:7px}.row-edit-arrow{font-size:13px;padding:4px}.row-tag{font-size:7px}.editor-panel{padding:19px}.editor-panel .photo-preview{height:190px}.editor-header h2{font-size:30px}.editor-form label{font-size:11px}.editor-form label input,.editor-form label select,.editor-form label textarea{font-size:14px;padding:11px}.editor-save-note,.photo-hint{font-size:10px}.editor-form .check-label{font-size:11px}.gallery-grid{grid-template-columns:repeat(3,1fr)}.photo-choice img{height:79px}.photo-choice span{font-size:8px}.workspace-footer{font-size:6px;letter-spacing:.8px;margin-top:28px}.login-screen{padding:35px 24px;min-height:calc(100vh - 130px)}.login-card>.brand{display:none}.login-card h1{font-size:39px}.login-card input{font-size:16px}.login-card>.eyebrow{margin-top:5px}.login-card>.muted{font-size:11px}.demo-banner{font-size:8px;min-height:26px}.toast{bottom:16px;font-size:10px}.add-category-area{margin-top:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
.availability-control{gap:0}.availability-toggle{width:44px;height:44px;padding:0;background:transparent!important}.availability-toggle:before{content:'';position:absolute;left:4px;top:11px;width:36px;height:21px;border-radius:20px;background:#d4cbb9;transition:background .18s}.availability-toggle:after{position:absolute;left:7px;top:14px}.availability-toggle[aria-checked=true]:before{background:var(--green)}
.category-form select{width:100%;margin-top:5px;font-size:11px}

/* Manager workspace: menu, restaurant settings and editorial Stories. */
.welcome-settings-card,.welcome-links-card { grid-column:1/-1; }
.welcome-media-fields { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:24px; }
.settings-card .settings-switch { display:flex; align-items:center; gap:12px; padding:15px 16px; border:1px solid var(--line); border-radius:12px; background:var(--paper); cursor:pointer; }
.settings-card .settings-switch input { display:block; width:19px; height:19px; min-width:19px; padding:0; margin:0; accent-color:#9c8055; }
.settings-switch strong,.settings-switch small { display:block; }
.settings-switch strong { font-size:11px; font-weight:600; }
.settings-switch small { margin-top:5px; color:var(--muted); font-size:10px; line-height:1.6; font-weight:400; }
.welcome-poster-preview { display:block; width:100%; height:180px; object-fit:cover; border:1px solid var(--line); border-radius:12px; }
.welcome-poster-picker { margin-top:12px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.welcome-poster-picker summary { display:flex; justify-content:space-between; padding:14px; font-size:10px; cursor:pointer; }
.welcome-poster-gallery { max-height:300px; overflow:auto; padding:12px; }
.welcome-links-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.welcome-links-heading h2 { margin-bottom:12px; }
.welcome-links-list { display:grid; gap:12px; }
.welcome-link-row { display:grid; grid-template-columns:26px 1fr 1.5fr auto 36px; align-items:center; gap:12px; padding:16px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.welcome-link-row label { margin:0; min-width:0; }
.welcome-link-number { color:var(--muted); font:24px var(--serif); }
.welcome-link-row .welcome-link-switch { margin:19px 0 0; padding:10px; border:0; font-size:10px; }
.welcome-remove-link { width:36px; height:36px; margin-top:18px; border:1px solid var(--line); background:transparent; border-radius:50%; color:var(--muted); font-size:20px; cursor:pointer; }
.welcome-remove-link:hover { color:#9a4436; background:#f8ede8; }
@media(max-width:760px) {
  .welcome-media-fields { grid-template-columns:1fr; gap:22px; }
  .welcome-links-heading { align-items:flex-start; flex-direction:column; }
  .welcome-link-row { grid-template-columns:24px 1fr 36px; gap:12px; }
  .welcome-link-row>label { grid-column:2; }
  .welcome-link-number { grid-column:1; grid-row:1; }
  .welcome-link-row .welcome-link-switch { margin:0; }
  .welcome-remove-link { grid-column:3; grid-row:1; margin:18px 0 0; }
}
.manager-tabs { display:flex; gap:28px; margin:0 0 28px; border-bottom:1px solid var(--line); }
.manager-tabs button { min-height:44px; padding:0 2px 13px; margin-bottom:-1px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font-size:12px; }
.manager-tabs button.active { border-color:var(--ink); color:var(--ink); font-weight:600; }
.settings-view { max-width:1000px; }
.settings-form { display:grid; grid-template-columns:1.2fr 1fr; gap:22px; align-items:start; }
.settings-card { min-width:0; padding:28px; border:1px solid var(--line); background:var(--white); }
.settings-card h2 { margin:10px 0 18px; font-size:34px; }
.settings-intro { margin-bottom:25px; font-size:11px; line-height:1.9; }
.settings-card label { display:block; margin-bottom:17px; font-size:11px; font-weight:600; }
.settings-card label input,.settings-card label select { display:block; width:100%; margin-top:7px; font-size:12px; font-weight:400; }
.settings-card input[readonly] { color:var(--muted); background:var(--paper); }
.settings-fields { display:grid; grid-template-columns:1fr 1fr; gap:15px; }
.settings-fields label { margin-bottom:0; }
.settings-hint { margin:18px 0 0; color:var(--muted); font-size:10px; line-height:1.9; }
.settings-card .lunch-hours-label { margin-top:27px; }
.settings-save { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:6px; }
.settings-save p { margin:0; }
.list-actions { display:flex; align-items:center; gap:7px; }
.list-actions .active { background:var(--ink); border-color:var(--ink); color:var(--paper); }
.row-order-controls { display:flex; gap:6px; margin-top:9px; }
.row-order-controls button { display:flex; gap:5px; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:6px 8px; border:1px solid var(--line); background:var(--white); font-size:14px; }
.row-order-controls span { font-size:8px; }
.availability-label { max-width:85px; white-space:normal; text-align:center; line-height:1.5; }
.dish-name { overflow-wrap:anywhere; }
.category-management { margin-bottom:28px; border:1px solid var(--line); background:var(--white); }
.category-management>summary { display:flex; align-items:center; gap:12px; min-height:58px; padding:14px 20px; cursor:pointer; list-style:none; font-size:12px; font-weight:600; }
.category-management>summary::-webkit-details-marker { display:none; }
.category-management>summary small { color:var(--muted); font-size:9px; font-weight:400; }
.category-management>summary>span:last-child { margin-left:auto; font-size:18px; font-weight:400; transition:transform .2s; }
.category-management[open]>summary { border-bottom:1px solid var(--line); }
.category-management[open]>summary>span:last-child { transform:rotate(180deg); }
.category-management-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(250px,310px); gap:24px; padding:20px; }
.category-list-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.category-list-heading p { margin:0; font-size:9px; }
#category-list { max-height:390px; overflow-y:auto; padding-right:7px; }
.category-row { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:10px 0; border-bottom:1px solid var(--line); }
.category-row strong { display:block; font-size:11px; font-weight:600; line-height:1.6; overflow-wrap:anywhere; }
.category-row>div:first-child { min-width:0; }
.category-row span { display:block; margin-top:3px; color:var(--muted); font-size:9px; }
.category-row-actions { display:flex; flex:0 0 auto; gap:2px; }
.category-row-actions button,.story-order-buttons button { width:44px; height:44px; padding:0; border:1px solid transparent; background:transparent; font-size:17px; }
.category-row-actions button:hover,.story-order-buttons button:hover { border-color:var(--line); background:var(--paper); }
.category-editor { padding:19px; border:1px solid var(--line); background:var(--paper); align-self:start; }
.category-editor .category-form { max-width:none; margin:0; padding:0; border:0; }
.category-form h3 { margin:0 0 17px; font-family:var(--serif); font-size:24px; font-weight:500; }
.category-form label { font-size:10px; font-weight:600; }
.category-form input,.category-form select { margin-top:6px; font-weight:400; }
.category-form-actions { display:flex; gap:7px; margin-top:18px; }
.category-delete-note { margin:8px 0 0; font-size:9px; line-height:1.8; }
.button-danger { background:var(--red); color:var(--white); }
.stories-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 25px; }
.stories-toolbar h2 { margin:0 0 8px; font-size:34px; }
.stories-toolbar p { margin:0; font-size:11px; line-height:1.8; }
.stories-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,360px); gap:28px; align-items:start; }
.staff-stories-list { border-top:1px solid var(--line); }
.staff-story { display:flex; align-items:center; gap:8px; border-bottom:1px solid var(--line); padding:14px 0; }
.staff-story.selected { background:var(--cream); margin:0 -10px; padding-left:10px; padding-right:10px; }
.staff-story-open { display:flex; flex:1; align-items:center; gap:15px; min-width:0; padding:0; border:0; background:transparent; text-align:left; }
.staff-story-thumb { width:76px; height:76px; flex:0 0 76px; border-radius:50%; object-fit:cover; background:#eee4cf; }
.staff-story-thumb-placeholder { display:grid; place-items:center; color:#9a8a6f; font:500 28px var(--serif); border:1px solid var(--line); }
.staff-story-open>span { display:block; min-width:0; }
.staff-story-open strong { display:block; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.staff-story-open small { display:block; margin-top:5px; font-size:10px; line-height:1.7; overflow-wrap:anywhere; }
.staff-story-open em { display:block; margin-top:5px; color:var(--muted); font-size:9px; font-style:normal; }
.story-order-buttons { display:flex; flex-direction:column; flex:0 0 44px; }
.story-order-buttons button { height:44px; }
.stories-save { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; padding-top:24px; }
.stories-save p { max-width:270px; margin:0; font-size:10px; }
.story-editor { max-width:none; }
.story-editor .photo-preview { height:155px; }
.story-manual-items { margin:8px 0 19px; padding:12px; border:1px solid var(--line); background:var(--white); }
.story-manual-items>label { margin-bottom:10px; }
.story-item-choices { max-height:260px; overflow-y:auto; }
.story-item-choices label { display:flex; align-items:flex-start; gap:9px; min-height:44px; margin:0; padding:10px 0; border-bottom:1px solid var(--line); font-weight:400; }
.story-item-choices label:last-child { border-bottom:0; }
.story-item-choices input[type=checkbox] { width:15px; height:15px; flex:0 0 15px; margin:3px 0 0; padding:0; accent-color:var(--ink); }
.story-item-choices span { display:block; font-size:10px; line-height:1.7; }
.story-item-choices small { display:block; margin-top:3px; color:var(--muted); font-size:9px; }
@media(max-width:1100px) {
  .settings-form { grid-template-columns:1fr; }
  .settings-card { padding:23px; }
  .category-management-body { grid-template-columns:minmax(0,1fr) 260px; gap:18px; }
  .category-row { flex-wrap:wrap; }
  .category-row-actions { margin-left:auto; }
  .stories-workspace { grid-template-columns:minmax(0,1fr) 310px; gap:22px; }
  .staff-story-open { gap:10px; }
  .staff-story-thumb { width:58px; height:58px; flex-basis:58px; }
}
@media(max-width:920px) {
  .category-management-body,.stories-workspace { grid-template-columns:minmax(0,1fr); }
  .category-row { flex-wrap:nowrap; }
  .category-editor { max-width:none; }
  .story-editor { max-width:none; }
  .staff-story-thumb { width:70px; height:70px; flex-basis:70px; }
  .story-order-buttons { flex-direction:row; flex-basis:88px; }
  .story-order-buttons button { height:44px; }
}
@media(max-width:650px) {
  .manager-tabs { gap:25px; margin-bottom:23px; }
  .manager-tabs button { font-size:11px; }
  .settings-card { padding:20px; }
  .settings-card h2,.stories-toolbar h2 { font-size:31px; }
  .settings-card label input,.settings-card label select { font-size:16px; }
  .settings-save { flex-direction:column; align-items:stretch; gap:15px; }
  .settings-save .button { width:100%; }
  .category-management>summary { padding:13px 14px; font-size:11px; }
  .category-management-body { padding:14px; gap:18px; }
  .category-list-heading { align-items:flex-start; }
  .category-list-heading .button { flex:0 0 auto; }
  .category-row { gap:7px; }
  .category-row strong { font-size:10px; }
  .category-row-actions { gap:0; }
  .category-row-actions button { width:44px; }
  .category-editor { padding:16px; }
  .category-form input,.category-form select { font-size:16px; }
  .list-heading { flex-wrap:wrap; }
  .list-actions { margin-left:auto; }
  .row-order-controls button { padding:6px; }
  .row-order-controls span { font-size:7px; }
  .availability-label { max-width:73px; font-size:7px; }
  .stories-toolbar { align-items:flex-start; gap:15px; flex-wrap:wrap; }
  .stories-toolbar>.button { margin-left:auto; min-height:44px; font-size:10px; }
  .staff-story-thumb { width:62px; height:62px; flex-basis:62px; }
  .staff-story-open { gap:12px; }
  .staff-story-open strong { font-size:11px; }
  .staff-story-open small { font-size:9px; }
  .staff-story-open em { font-size:8px; }
  .story-order-buttons { flex-direction:column; flex-basis:44px; }
  .stories-save { align-items:stretch; flex-direction:column; }
  .stories-save .button { width:100%; }
  .story-editor .photo-preview { height:170px; }
  .story-item-choices label { min-height:46px; }
  .story-item-choices span { font-size:11px; }
}
.row-badge{display:inline-block;margin-left:6px;padding:3px 7px;border:1px solid #d7c29d;border-radius:20px;background:#eee1c9;color:#5f4e32;font-size:8px;font-weight:600;letter-spacing:1px;vertical-align:middle;white-space:nowrap}.row-badge-spicy{background:#f0dfd6;color:#7b3d2b;border-color:#dec2b2}.row-badge-raw{background:#e4e9df;color:#425740;border-color:#c4cfbc}.badge-hint{margin-top:-7px}

/* Dish editor: keep the menu list in place and the daily actions within reach. */
html { scrollbar-gutter:stable; }
#editor-panel {
  max-height:calc(100dvh - 48px);
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:#cfc4ad transparent;
  border-radius:16px;
}
#editor-panel .editor-header { gap:8px; }
#editor-panel .editor-header h2 { font-size:27px; line-height:1.15; }
#editor-panel .editor-close {
  flex:0 0 40px;
  width:40px;
  height:40px;
  border:1px solid var(--line);
  border-radius:50%;
  background:#fffdf8;
}
#editor-panel .editor-photo-block { margin-bottom:20px; }
#editor-panel .editor-photo-row {
  display:grid;
  grid-template-columns:104px minmax(0,1fr);
  gap:12px;
  align-items:stretch;
}
#editor-panel #photo-preview-wrap { min-width:0; }
#editor-panel .editor-photo-row .photo-preview {
  display:block;
  width:100%;
  height:100%;
  min-height:136px;
  max-height:152px;
  margin:0;
  border-radius:12px;
  object-fit:cover;
}
#editor-panel .editor-photo-row .photo-preview-placeholder {
  display:grid;
  place-items:center;
  color:#a59982;
  background:linear-gradient(145deg,#f1e9d9,#e8decb);
}
#editor-panel .editor-photo-actions {
  display:grid;
  gap:6px;
  align-content:start;
}
#editor-panel .editor-photo-actions .button {
  width:100%;
  min-height:44px;
  padding:8px 10px;
  border-radius:9px;
  font-size:10px;
  line-height:1.35;
}
#editor-panel #remove-photo {
  border:1px solid #dfc7bd;
  color:#994e3a;
  background:transparent;
}
#editor-panel #remove-photo:hover:not(:disabled) { background:#f5e8e0; }
#editor-panel #remove-photo:disabled { cursor:default; opacity:.4; }
#editor-panel .photo-gallery { margin-top:15px; margin-bottom:0; }
#editor-panel .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); max-height:240px; }
#editor-panel .photo-choice { border-radius:8px; overflow:hidden; }
#editor-panel .photo-choice img { height:65px; }
#editor-panel .editor-form label input,
#editor-panel .editor-form label select,
#editor-panel .editor-form label textarea { border-radius:8px; }
#editor-panel .editor-extra {
  border-top:1px solid var(--line);
  margin-top:4px;
  padding:13px 0 2px;
}
#editor-panel .editor-extra > summary {
  cursor:pointer;
  font-size:11px;
  font-weight:600;
  padding:4px 0 12px;
  min-height:35px;
}
#editor-panel .editor-extra[open] > summary { padding-bottom:17px; }
#editor-panel .editor-extra .check-label { min-height:30px; }
#editor-panel .editor-actions {
  position:sticky;
  bottom:-23px;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  margin:16px -23px -23px;
  padding:13px 23px 17px;
  border-top:1px solid var(--line);
  background:#fffaf0;
  box-shadow:0 -10px 18px -14px #41331e33;
}
#editor-panel .editor-actions > .button { min-height:44px; padding:11px 13px; border-radius:9px; gap:7px; }
#editor-panel .editor-action-buttons { grid-column:1 / -1; display:flex; gap:8px; }
#editor-panel .editor-action-buttons .button { min-height:44px; border-radius:9px; }
#editor-panel .editor-action-buttons .button:first-child { flex:1; }
#editor-panel .editor-actions .editor-save-note { grid-column:1 / -1; margin:0; font-size:9px; line-height:1.5; }
#editor-panel .delete-link { min-height:36px; margin-top:25px; }
body.dish-editor-open { overflow:hidden; }
.dish-editor-dialog {
  position:fixed;
  inset:0;
  width:min(540px,calc(100% - 20px));
  max-width:none;
  max-height:calc(100dvh - 24px);
  margin:auto;
  padding:0;
  border:0;
  border-radius:18px;
  background:#fffaf0;
  color:var(--ink);
  overflow-y:auto;
  overscroll-behavior:contain;
  box-shadow:0 24px 100px #14110b45;
  scrollbar-width:thin;
}
.dish-editor-dialog::backdrop { background:#17150f80; backdrop-filter:blur(7px); -webkit-backdrop-filter:blur(7px); }
.dish-editor-dialog #editor-panel {
  position:static;
  width:100%;
  max-width:none;
  max-height:none;
  min-height:0;
  overflow:visible;
  border:0;
  border-radius:0;
  padding:22px;
}
.dish-editor-dialog #editor-panel .editor-actions {
  bottom:-22px;
  margin:17px -22px -22px;
  padding:13px 22px calc(17px + env(safe-area-inset-bottom));
}
.dish-editor-dialog #editor-panel .editor-close { width:44px; height:44px; flex-basis:44px; }
.dish-editor-dialog #editor-panel .editor-form label input,
.dish-editor-dialog #editor-panel .editor-form label select,
.dish-editor-dialog #editor-panel .editor-form label textarea { font-size:16px; padding:11px 12px; }
.dish-editor-dialog #editor-panel .editor-form label { font-size:11px; }
.dish-editor-dialog #editor-panel .editor-header { margin-bottom:18px; }
.dish-editor-dialog #editor-panel .editor-extra > summary { min-height:44px; padding-top:10px; }
.dish-editor-dialog #editor-panel .editor-photo-row { grid-template-columns:112px minmax(0,1fr); }
.dish-editor-dialog #editor-panel .photo-choice img { height:76px; }
@media (min-width:1500px) {
  #editor-panel .editor-actions { bottom:-28px; margin:16px -28px -28px; padding:13px 28px 17px; }
}
@media (max-width:1200px) and (min-width:921px) {
  #editor-panel .editor-actions { bottom:-18px; margin:16px -18px -18px; padding:13px 18px 17px; }
}
@media (max-width:920px) {
  #menu-view > #editor-panel { display:none; }
  .dish-editor-dialog[open] { display:block; }
}
@media (max-width:370px) {
  .dish-editor-dialog #editor-panel { padding:18px; }
  .dish-editor-dialog #editor-panel .editor-photo-row { grid-template-columns:94px minmax(0,1fr); gap:10px; }
  .dish-editor-dialog #editor-panel .editor-actions { bottom:-18px; margin:17px -18px -18px; padding:12px 18px calc(15px + env(safe-area-inset-bottom)); }
  #editor-panel .editor-actions > .button { font-size:10px; padding:10px; }
}

/* Optional languages stay folded so everyday editing remains compact. */
.translation-editor { min-width:0; border-top:1px solid var(--line); padding:10px 0; }
.translation-editor > summary { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; font-size:12px; font-weight:600; }
.translation-editor > summary::after { content:'+'; font-size:18px; font-weight:400; }
.translation-editor[open] > summary::after { content:'−'; }
.translation-editor > summary > span { margin-left:auto; font-size:10px; letter-spacing:1px; font-weight:400; color:var(--muted); }
.translation-note { font-size:11px; line-height:1.65; color:var(--muted); margin:0 0 16px; }
.translation-languages { display:grid; gap:16px; }
.translation-languages fieldset { min-width:0; margin:0; padding:14px; border:1px solid var(--line); border-radius:10px; display:grid; gap:14px; }
.translation-languages legend { padding:0 7px; font-size:12px; letter-spacing:.3px; }
.translation-languages label { min-width:0; }
.translation-languages input,.translation-languages textarea { width:100%; min-width:0; }

/* Role passwords: one simple form for first access and later changes. */
.password-screen { min-height:100dvh; padding:36px 24px; }
.password-card { max-width:420px; }
.password-card>.brand { margin-bottom:30px; }
.password-card h1 { font-size:40px; }
.password-card>.password-role { display:inline-block; margin:0 0 13px; border:1px solid var(--line); border-radius:99px; padding:5px 12px; color:var(--ink); font-size:11px; }
.password-card>.muted { margin-bottom:24px; }
.password-card form>.field-label:not(:first-child) { margin-top:18px; }
.password-card input:not([type=checkbox]) { border-radius:8px; min-height:46px; }
.password-card #password-hint { margin:8px 0 0; font-size:10px; line-height:1.7; }
.password-card .password-visibility { display:flex; align-items:center; gap:10px; margin:18px 0 0; min-height:32px; font-size:11px; cursor:pointer; }
.password-visibility input { width:17px; height:17px; margin:0; accent-color:var(--ink); }
.password-card form>.button { border-radius:8px; }
.password-card #cancel-password { margin-top:9px; }
.password-card .password-logout { margin-top:24px; min-height:36px; }
.password-dialog { width:calc(100% - 28px); max-width:480px; max-height:calc(100dvh - 28px); overflow:auto; background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:18px; padding:28px; box-shadow:0 28px 90px rgb(0 0 0 / .2); overscroll-behavior:contain; }
.password-dialog::backdrop { background:rgb(20 20 18 / .55); backdrop-filter:blur(7px); }
.password-dialog .password-card>.brand { display:none; }
.password-dialog .password-card h1 { font-size:36px; }
body.password-dialog-open { overflow:hidden; }
#dashboard .sidebar-bottom { flex-wrap:wrap; justify-content:space-between; }
#dashboard .sidebar-bottom #session-label { width:100%; }
#dashboard .sidebar-bottom #change-password { font-size:10px; }
@media(max-width:650px) {
  .password-screen { min-height:calc(100dvh - 96px); padding:28px 22px; }
  .password-card h1 { font-size:36px; }
  .password-card>.muted { font-size:12px; }
  .password-card input:not([type=checkbox]) { font-size:16px; }
  .password-dialog { padding:24px 20px; }
  .password-dialog .password-card h1 { font-size:34px; }
  #dashboard .mobile-role-nav { gap:6px; }
  #dashboard .mobile-role-nav a,#dashboard .mobile-role-nav button { min-height:40px; display:inline-flex; align-items:center; padding:7px 9px; }
  #dashboard #mobile-change-password { margin-left:auto; }
  #dashboard #mobile-logout { margin-left:0; }
}
