/* Shared Bootstrap 5 theme. Component tokens serve public and admin screens. */
:root{--umi-ink:#233e36;--umi-teal:#315e50;--umi-paper:#f6f5f0;--umi-rule:#dce2db;--bs-primary:#315e50;--bs-primary-rgb:49,94,80;--bs-body-color:#283e36;--bs-border-color:#dce2db;--bs-link-color:#315e50;--bs-link-hover-color:#1c4135;--bs-border-radius:.5rem;--bs-font-sans-serif:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.btn-primary{--bs-btn-bg:#315e50;--bs-btn-border-color:#315e50;--bs-btn-hover-bg:#244b3f;--bs-btn-hover-border-color:#244b3f;--bs-btn-active-bg:#1b3d32;--bs-btn-active-border-color:#1b3d32;--bs-btn-disabled-bg:#315e50;--bs-btn-disabled-border-color:#315e50}
.btn-outline-secondary{--bs-btn-color:#3f574b;--bs-btn-border-color:#b8c5bb;--bs-btn-hover-bg:#e5ece6;--bs-btn-hover-color:#233e36;--bs-btn-hover-border-color:#96aa9c;--bs-btn-active-bg:#d5e2d8;--bs-btn-active-color:#233e36}
.form-control:focus,.form-select:focus{border-color:#6e9380;box-shadow:0 0 0 .2rem #315e501c}
.nav-pills{--bs-nav-pills-link-active-bg:#315e50}.nav-link{color:#315e50}.btn:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #729b84;outline-offset:3px}
.ui-icon{width:1.1em;height:1.1em;vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
/* Application-specific spacing retained while old form markup is migrated. */
.form-horizontal .row{align-items:start}.checkbox,.radio{margin:.5rem 0}.checkbox label,.radio label{cursor:pointer}.checkbox input,.radio input{margin-right:.35rem}.help-block{display:block;color:#657268;margin:.35rem 0}.table-condensed>:not(caption)>*>*{padding:.3rem}.nav-tabs>li>a{display:block;padding:.6rem 1rem;border-radius:.5rem .5rem 0 0}.nav-tabs>li.active>a{background:#fff;border:1px solid var(--umi-rule);border-bottom-color:#fff}.label{display:inline-block;padding:.25em .5em;border-radius:.3rem;font-size:.8em}.label-default{background:#e5eae5;color:#324b3f}.label-success{background:#dcecdf;color:#244d33}.label-danger{background:#f3ded9;color:#793a2c}.list-group>a{color:inherit}.btn-xs{padding:.15rem .4rem;font-size:.8rem}.img-responsive{max-width:100%;height:auto}.pagination>span>a,.pagination>span.current,.pagination>li>a,.pagination>li>span{display:inline-block;padding:.45rem .8rem;border:1px solid var(--umi-rule);margin-left:-1px;background:white}.pagination .current,.pagination .active>span{background:#315e50!important;color:white}.pagination{flex-wrap:wrap}.text-muted{color:#667269!important}
body.umi-admin{font-family:var(--bs-font-sans-serif);background:var(--umi-paper);color:var(--umi-ink);font-size:15px;line-height:1.5}.umi-admin a{text-decoration:none}.umi-admin h1,.umi-admin h2,.umi-admin h3{color:var(--umi-ink)}.umi-admin h1{font-family:Georgia,serif;font-size:clamp(2.25rem,4vw,3.4rem);letter-spacing:-.04em;line-height:1.1}.umi-admin h2{font-size:1.15rem;font-weight:600}.umi-admin h3{font-size:1.05rem;font-weight:600}.umi-admin .card{box-shadow:none;border-color:var(--umi-rule)}.umi-admin-nav{background:#fffefb;border-bottom:1px solid var(--umi-rule);padding:1rem 0}.umi-admin-nav .container-xxl{padding-top:0!important}.umi-admin-brand{display:flex;align-items:center;gap:.6rem;letter-spacing:.13em;font-weight:650;color:#233e36!important}.umi-admin-brand>span{font-family:serif;font-size:1.8rem;font-weight:400;color:#315e50}.umi-admin-brand small{font-weight:400;font-size:.7rem;letter-spacing:.08em;border-left:1px solid var(--umi-rule);padding-left:.7rem;margin-left:.3rem;color:#697b6f}.umi-admin-nav .nav-link{font-size:.8rem;color:#5b6b60;padding:.6rem .65rem!important}.umi-admin-nav .nav-link.active{color:#254b3a;background:#eaf0e9;border-radius:.4rem}.admin-main{padding-top:2.6rem;padding-bottom:4rem;min-height:75vh}.admin-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.6rem}.admin-heading p:last-child{margin-bottom:0;max-width:650px}.ui-eyebrow{text-transform:uppercase;font-size:.64rem;letter-spacing:.13em;font-weight:650;color:#748170;margin-bottom:.65rem}.title-dot{color:#83a282}.preview-badge{background:#e9ede4;color:#3c5c46;font-weight:500;font-size:.75rem;padding:.65rem .85rem;border:1px solid #d4decc}.preview-note{display:flex;gap:.65rem;align-items:center;border-bottom:1px solid var(--umi-rule);padding-bottom:1.25rem;margin-bottom:1.25rem;color:#56695c;font-size:.85rem}.preview-note p{margin:0}.status-dot{display:block;flex:none;width:7px;height:7px;border-radius:50%;background:#779a78}.admin-footer{border-top:1px solid var(--umi-rule);padding-top:1rem;padding-bottom:1.5rem;display:flex;justify-content:space-between;color:#798276;font-size:.75rem}.admin-footer a{color:inherit}.umi-admin .form-label{font-size:.75rem;font-weight:600;color:#526557}.umi-admin .form-select,.umi-admin .form-control,.umi-admin .btn{font-size:.85rem;min-height:38px}.umi-admin .alert{font-size:.85rem}.stat-value{display:block;font-size:2rem;font-weight:500;letter-spacing:-.06em;margin-bottom:.25rem}.stat-label{font-weight:600;font-size:.8rem;margin-bottom:.3rem}.catalog-stats .small{font-size:.68rem}.catalog-stats .card-body{padding:1.3rem}.catalog-filters .row{margin-top:0}.catalog-filters .card-body{padding-top:0;padding-bottom:1rem}.catalog-toolbar .card-body{padding:1rem 1.3rem}.catalog-toolbar form{margin:0}.catalog-list{display:grid;gap:.65rem}.catalog-row .card-body{padding:1.25rem}.catalog-comparison{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:1.5rem;align-items:start}.website-dish{display:flex;gap:1rem;min-width:0}.catalog-photo{width:76px;height:76px;border-radius:.4rem;object-fit:contain;background:#f4f3ed;flex:none}.missing-photo{display:grid;place-items:center;color:#83887b;font-size:.65rem;border:1px dashed #d3d9cf}.catalog-row .ui-eyebrow{margin-bottom:.3rem;font-size:.58rem}.catalog-row h2,.catalog-row h3{margin-bottom:.4rem}.catalog-price{font-size:.95rem;font-variant-numeric:tabular-nums}.square-dish{padding-left:1.5rem;border-left:1px solid var(--umi-rule)}.variation-prices{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-variant-numeric:tabular-nums;margin-bottom:.6rem}.catalog-status .badge{font-size:.64rem;font-weight:550;padding:.5rem .7rem}.text-bg-success{background:#e1edde!important;color:#365c39!important}.text-bg-info{background:#e7eef0!important;color:#395867!important}.text-bg-warning{background:#f7edcc!important;color:#775721!important}.text-bg-secondary{background:#eceee9!important;color:#66715f!important}.catalog-details{margin-top:1rem;border-top:1px solid #edf0e9;padding-top:.75rem}.catalog-details summary{color:#355d49;font-size:.75rem;cursor:pointer}.catalog-details summary span{font-size:.7rem}.catalog-item-details{padding-top:1rem}.catalog-item-details h4{font-size:.9rem;font-weight:600}.catalog-item-details h5{font-size:.8rem;font-weight:600;margin-bottom:.25rem}.catalog-item-details p{max-width:760px}.modifier-group{margin-top:1rem}.modifier-options{list-style:none;padding:0;display:flex;gap:.4rem;flex-wrap:wrap}.modifier-options li{padding:.3rem .55rem;background:#f1f4ef;border-radius:.3rem;font-size:.7rem}.modifier-options strong{font-weight:600;color:#425d43}.empty-state{text-align:center;padding:4rem 1.5rem}.empty-state h2{font-family:Georgia,serif;font-size:2rem;font-weight:400}.empty-state p{max-width:520px;margin:0 auto 1rem;color:#65745f}.catalog-pagination nav{display:flex;justify-content:center}.catalog-pagination .pagination{font-size:.85rem}.dashboard-link{display:block;border:1px solid var(--umi-rule);padding:1.5rem;border-radius:.5rem;background:#fff;margin-bottom:1.5rem;color:inherit}.dashboard-link:hover{border-color:#729b84}.dashboard-link h2{margin-bottom:.4rem}
@media(max-width:767px){.admin-main{padding-top:1.5rem}.admin-heading{align-items:flex-start}.preview-badge{white-space:normal}.catalog-comparison{grid-template-columns:1fr;gap:.9rem}.square-dish{padding-left:0;border:0}.catalog-photo{width:58px;height:58px}.catalog-status{grid-row:1;text-align:right}.catalog-row .card-body{padding:1rem}.catalog-details summary span{display:block;margin:.3rem 0}.catalog-stats .card-body{padding:1rem}.admin-footer{gap:1rem}.umi-admin-nav{padding:.5rem 0}}

.catalog-match-results{max-height:24rem;overflow-y:auto;padding:0 .3rem}.catalog-match-results .form-check{padding-left:1.7rem}

/* Align labels consistently across link, button and submit controls. */
.umi-admin .btn,.umi-interior .btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.35}
.umi-admin input.btn,.umi-interior input.btn{padding-top:.5rem;padding-bottom:.5rem}
.square-resolve .admin-heading{margin-bottom:.75rem}.square-resolve h1{font-size:clamp(2rem,3vw,2.6rem)}
.resolve-intro{color:#647164;font-size:.85rem;margin-bottom:1.25rem}
.resolve-workspace{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.7fr);gap:1.25rem;align-items:start}
.resolve-reference{position:sticky;top:1rem;min-width:0}.resolve-reference .card-body,.resolve-editor>.card-body{padding:1.25rem}
.resolve-servings{margin:1rem 0}.resolve-servings li{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;border-top:1px solid var(--umi-rule);font-size:.85rem}
.resolve-modifiers{border-top:1px solid var(--umi-rule);padding-top:.75rem}.resolve-modifiers summary{cursor:pointer;color:#315e50;font-size:.8rem}.resolve-modifier-scroll{max-height:35vh;overflow:auto;margin-top:.5rem}
.resolve-saved-link{padding:.85rem 0;border-top:1px solid var(--umi-rule)}.resolve-saved-link:last-child{padding-bottom:0}.resolve-saved-link .button_to{margin:0}
.resolve-tabs{margin:-.25rem 0 1.25rem;gap:.3rem}.resolve-tabs .nav-link{padding:.7rem 1rem;font-size:.85rem;font-weight:600}.resolve-editor .tab-pane>h2{margin-bottom:.5rem}
.resolve-search{display:flex;gap:.5rem;margin-bottom:1rem}.resolve-search .btn{flex:none}
.resolve-matches{max-height:clamp(220px,36vh,420px);padding:0;border:1px solid var(--umi-rule);border-radius:.4rem}
.resolve-match{display:flex;align-items:center;gap:.8rem;padding:.8rem;cursor:pointer;border-bottom:1px solid var(--umi-rule);margin:0}.resolve-match:last-child{border-bottom:0}.resolve-match:has(input:checked){background:#eef4ec}.resolve-match:hover{background:#f5f7f2}
.resolve-match .form-check-input{flex:none;margin:0}.resolve-match-copy{flex:1;min-width:0}.resolve-match-copy .small{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.resolve-match-price{text-align:right;font-size:.85rem;white-space:nowrap}.resolve-match-price .badge{margin-top:.3rem;font-size:.65rem}
.resolve-form-footer{border-top:1px solid var(--umi-rule);padding-top:1rem;margin-top:1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
@media(max-width:991px){.resolve-workspace{grid-template-columns:1fr}.resolve-reference{position:static}.resolve-modifier-scroll{max-height:20rem}.resolve-reference .resolve-servings{display:flex;gap:1rem;flex-wrap:wrap}.resolve-servings li{flex:1;min-width:120px}.resolve-matches{max-height:24rem}}
/* Square catalog shortcuts are whole-card links and keyboard accessible. */
.umi-admin .catalog-stat-link{color:inherit;transition:border-color .15s,background-color .15s}.umi-admin .catalog-stat-link:hover{border-color:#729b84;background:#f3f7f0}.umi-admin .catalog-stat-link:focus-visible,.modifier-options a:focus-visible{outline:3px solid #729b84;outline-offset:3px}.modifier-options li:has(a){padding:0}.modifier-options li a{display:inline-block;padding:.4rem .6rem;text-decoration:underline;text-underline-offset:2px}.modifier-options li:has(a) strong{padding-right:.5rem}.modifier-options li:has(a):hover{background:#e1edde}

/* Reservations: readable service dates and guest details at every width. */
.reservation-day{margin-bottom:1.5rem;overflow:hidden}
.reservation-day-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:#edf2eb;border-bottom:1px solid var(--umi-rule)}
.umi-admin .reservation-day-heading h2{font-size:1.15rem;margin:0 0 .25rem}
.reservation-entry{padding:1.1rem 1.25rem}
.reservation-entry-main{display:grid;grid-template-columns:6rem minmax(10rem,1fr) minmax(12rem,1fr) auto;gap:1.25rem;align-items:center}
.reservation-arrival{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.reservation-arrival>strong{font-size:1.1rem;white-space:nowrap}
.umi-admin .reservation-guest h3{font-size:1rem;margin:0 0 .25rem}.reservation-guest,.reservation-contact{min-width:0;overflow-wrap:anywhere}
.reservation-contact{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.reservation-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.reservation-actions .btn{min-height:2.25rem}
.reservation-notes{margin-top:.9rem;padding:.7rem .9rem;background:#faf7ee;border-left:3px solid #d7bf86;font-size:.85rem;overflow-wrap:anywhere}
.reservation-history{margin-top:.75rem;font-size:.8rem;color:#647164}.reservation-history summary{cursor:pointer;display:list-item}.reservation-history[open] summary{margin-bottom:.5rem}
@media(max-width:991px){.reservation-entry-main{grid-template-columns:6rem minmax(0,1fr)}.reservation-contact{grid-column:2}.reservation-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:575px){.reservation-day-heading,.reservation-entry{padding:1rem}.reservation-entry-main{gap:.75rem}.reservation-day-heading{align-items:flex-start}.reservation-day-heading .badge{flex-shrink:0}.reservation-actions{padding-top:.25rem}.reservation-actions .btn{min-height:2.75rem}}

/* Completed single choices stay compact, with their inputs retained in the form. */
.single-choice > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 48px; padding: 12px 14px; border: 1px solid #cbd5c6; border-radius: 10px; background: #dfede5; cursor: pointer; list-style: none; }
.single-choice > summary::-webkit-details-marker { display: none; }
.single-choice > summary:focus-visible { outline: 3px solid var(--teal, #315c52); outline-offset: 3px; }
.single-choice .choice-modify { color: var(--teal, #315c52); font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.single-choice[open] > summary { background: transparent; border-color: transparent; padding-left: 0; }
.single-choice[open] .choice-modify { display: none; }
.single-choice .customizer-hint { margin-top: 8px; }
