:root{--ink: #17201b;--muted: #65736b;--paper: #fffdf7;--panel: #ffffff;--line: #e7e0d2;--accent: #0d7c66;--accent-dark: #075746;--accent-soft: #e4f4ee;--shadow: 0 18px 60px rgba(23, 32, 27, .12)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 12% 8%,rgba(246,201,103,.3),transparent 28rem),linear-gradient(135deg,#fffaf0,#edf7f2);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--accent-dark);font-weight:800;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{width:min(1440px,calc(100% - 32px));margin:0 auto;padding:32px 0}.top-nav{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;height:66px;margin-bottom:18px;padding:12px 16px;background:#ffffffdb;border:1px solid var(--line);border-radius:8px}.brand{color:var(--ink);font-size:1.05rem;font-weight:900}.nav-links{display:flex;gap:8px}.top-nav a{padding:9px 12px;border-radius:8px;font-size:.94rem;font-weight:800}.top-nav a.active{color:#fff;background:var(--accent)}.user-menu{position:relative;justify-self:end}.profile-button{display:grid;width:42px;height:42px;min-height:42px;place-items:center;padding:0;color:var(--accent-dark);background:#d9efe6;border:1px solid #bddfd2;border-radius:50%;cursor:pointer;font-size:1rem;font-weight:900}.user-menu-panel{position:absolute;top:calc(100% + 10px);right:0;z-index:10;display:grid;min-width:190px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.user-menu-panel button{min-height:38px;padding:0 10px;color:var(--ink);background:transparent;border:0;border-radius:8px;cursor:pointer;font-weight:800;text-align:left}.user-menu-panel button:hover{background:var(--accent-soft)}.hero,.page-heading{min-height:220px;margin-bottom:24px;padding:30px;color:#fff;background:linear-gradient(135deg,#075746e6,#0d7c66b8),url(/assets/bar-hero.png) center/cover;border-radius:8px;box-shadow:var(--shadow)}.hero{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:stretch}.page-heading{display:grid;align-content:center}.eyebrow{margin:0 0 8px;color:inherit;font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;opacity:.78}h1,h2,h3,p{margin-top:0}h1{margin-bottom:12px;font-size:clamp(2rem,4vw,3.8rem);line-height:1;letter-spacing:0}h2{margin-bottom:0;font-size:1.45rem}.hero-copy,.page-heading p:last-child,.section-copy{max-width:760px;margin-bottom:0;color:#ffffffd6;line-height:1.55}.section-copy{margin-top:8px;color:var(--muted)}.hero-panel{display:flex;min-height:170px;flex-direction:column;justify-content:flex-end;padding:22px;background:#ffffff24;border:1px solid rgba(255,255,255,.28);border-radius:8px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-panel span,.hero-panel small{color:#ffffffc7}.hero-panel strong{margin:8px 0;font-size:2.2rem}.workspace{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(520px,1.35fr);gap:24px;align-items:start}.import-panel,.planner,.results{padding:24px;background:#ffffffe6;border:1px solid rgba(231,224,210,.9);border-radius:8px;box-shadow:var(--shadow)}.manual-panel{margin-bottom:24px}.compact-panel{padding:16px 18px}.compact-panel .panel-heading{margin-bottom:0}.recipe-action-panel .panel-heading{align-items:center}.recipe-action-panel .section-copy{max-width:620px}.compact-panel.iba-panel .panel-heading{margin-bottom:14px}.iba-panel{margin-top:24px}.panel-heading,.modal-header,.modal-actions,.modal-section-heading{display:flex;gap:16px;align-items:center;justify-content:space-between}.button-row{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.panel-heading{margin-bottom:22px}.primary-button,.ghost-button,.danger-button,.icon-button{min-height:42px;padding:0 16px;border-radius:8px;border:1px solid transparent;cursor:pointer;font-weight:800}.primary-button{color:#fff;background:var(--accent)}.primary-button:hover{background:var(--accent-dark)}.ghost-button{color:var(--accent-dark);background:var(--accent-soft)}.danger-button{color:#fff;background:#a7372f}button:disabled{cursor:wait;opacity:.68}.small-button{min-height:36px;padding:0 12px;white-space:nowrap}.icon-button{display:inline-grid;width:42px;place-items:center;padding:0;color:var(--ink);background:#fffaf2;border-color:var(--line);font-size:1.2rem}.danger-icon{color:#a7372f}.field{display:block;margin-bottom:22px;color:var(--muted);font-weight:800}.range-row,.search-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-top:10px}.range-row{grid-template-columns:1fr 54px}input[type=range]{width:100%;accent-color:var(--accent)}input,select,textarea{width:100%;min-height:42px;padding:0 12px;color:var(--ink);border:1px solid var(--line);border-radius:8px;background:#fff}.search-row input,.settings-table input,.settings-table select,.form-grid input,.form-grid select,.stacked-field select,.stacked-field textarea,.recipe-line input,.recipe-line select{width:100%;min-height:42px;padding:0 12px;color:var(--ink)}.stacked-field textarea{min-height:94px;padding-top:10px;resize:vertical}.cocktail-grid,.search-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;align-content:start}.cocktail-grid{min-height:360px}.cocktail-card,.result-card{padding:14px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.cocktail-card{display:grid;gap:10px;align-content:start}.result-card,.cocktail-card header{display:flex;gap:12px;align-items:center;justify-content:space-between}.cocktail-card header{margin-bottom:0}.cocktail-card h3,.result-card h3{margin-bottom:4px;font-size:1rem;line-height:1.2}.cocktail-card small,.result-card p{margin-bottom:0;color:var(--muted);font-size:.84rem}.card-actions{margin-bottom:0}.serving-control{display:grid;grid-template-columns:38px minmax(62px,1fr) 38px;gap:8px;align-items:center}.serving-control button{width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:#fffaf2;cursor:pointer;font-size:1.25rem;font-weight:800}.serving-control input{width:100%;height:38px;text-align:center;font-weight:800}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.summary-grid article{padding:16px;background:#fbf8ef;border:1px solid var(--line);border-radius:8px}.summary-grid span{display:block;margin-bottom:7px;color:var(--muted);font-size:.82rem;font-weight:800}.summary-grid strong{font-size:1.45rem}.empty-state{padding:42px 24px;border:1px dashed #cfc4ad;border-radius:8px;text-align:center}.empty-state.compact{grid-column:1 / -1;padding:28px 18px}.empty-state p{max-width:480px;margin:0 auto;color:var(--muted);line-height:1.55}.list-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.shopping-list-wrap{min-height:560px}.notice{margin-bottom:16px;padding:14px 16px;color:#6f4700;background:#fff4cf;border:1px solid #f1d98d;border-radius:8px;font-weight:800}.soft-notice{color:#4b5d54;background:#edf4ff;border-color:#c9dcf8}.error-notice{color:#7c251f;background:#fff0ed;border-color:#f2b8af}table{width:100%;min-width:720px;border-collapse:collapse;background:#fff}.settings-table{min-width:1120px}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.settings-table td{vertical-align:top}.table-field{display:grid;gap:6px;align-content:start}.table-field input,.input-with-unit input{height:42px}th{color:var(--muted);background:#fbf8ef;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.needs-settings td{background:#fff2b8}.missing-price-row td{background:#fff8dc}.warning-list{display:grid;gap:6px;margin:10px 0 18px;color:#4b5d54;background:transparent;border:0;padding:0;font-weight:800}.warning-list p{margin:0}.ingredient-name{display:grid;gap:4px}.buy-summary{display:grid;gap:5px}.buy-summary strong{font-size:1rem}.buy-summary span{color:var(--muted);font-size:.86rem;font-weight:700}.ingredient-name span,.muted,.status-line{color:var(--muted);font-size:.84rem}.loading-state{padding:22px;color:var(--muted);background:#fbf8ef;border:1px dashed #cfc4ad;border-radius:8px;font-weight:800;text-align:center}.status-line{margin:14px 0;font-weight:800;line-height:1.5}.helper-note{margin:12px 0 18px;padding:14px 16px;color:var(--muted);background:#fbf8ef;border:1px solid var(--line);border-radius:8px;line-height:1.55}.tips-panel{margin-top:24px;padding:16px 18px;color:var(--muted);background:#ffffffd1;border:1px solid var(--line);border-radius:8px;line-height:1.55}.tips-panel p{margin:0}.tips-panel p+p{margin-top:8px}.tips-panel strong,.helper-note strong{color:var(--ink)}.input-with-unit{display:grid;grid-template-columns:minmax(90px,1fr) auto;gap:8px;align-items:center}.input-with-unit span{min-width:44px;padding:10px 12px;color:var(--accent-dark);background:var(--accent-soft);border-radius:8px;font-weight:800;text-align:center}.field-hint{display:block;margin-top:6px;color:var(--muted);font-size:.78rem;line-height:1.35}.optional-hint{visibility:hidden}.badge{display:inline-flex;width:fit-content;padding:4px 9px;color:var(--accent-dark);background:var(--accent-soft);border-radius:999px;font-size:.78rem;font-weight:800}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#17201b94}.modal{width:min(920px,100%);max-height:min(92vh,920px);overflow:hidden;padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 80px #17201b52}.modal form{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(min(92vh,920px) - 48px)}.modal-body{min-height:0;overflow:auto;padding-right:4px}.profile-modal{width:min(520px,100%)}.confirm-dialog{width:min(460px,100%);padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 80px #17201b52}.confirm-dialog h2{margin-bottom:10px}.confirm-dialog p:not(.eyebrow){color:var(--muted);line-height:1.55}.confirm-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.auth-panel{width:min(520px,100%);margin:72px auto;padding:28px;background:#ffffffeb;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.auth-form{display:grid;gap:14px}.auth-form label{display:grid;gap:7px;color:var(--muted);font-weight:800}.auth-form input,.user-form input,.user-form select,.settings-table select{min-height:42px;padding:0 12px}.user-form{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px;align-items:center}.unused-section{margin-top:24px}.unused-row td{background:#fbf8ef}.table-actions{justify-content:flex-start}.modal-header,.modal-actions{margin-bottom:20px}.modal-actions{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line)}.pagination{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:14px;color:var(--muted);font-size:.86rem;font-weight:800}.modal-actions div{display:flex;gap:10px}.modal-section-heading{margin:18px 0 10px}.modal-body .modal-section-heading{position:sticky;top:0;z-index:2;padding:10px 0;background:var(--paper);border-bottom:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label,.stacked-field{display:grid;gap:7px;color:var(--muted);font-weight:800}.stacked-field{margin-top:14px}.recipe-lines{display:grid;gap:10px}.recipe-line{display:grid;grid-template-columns:110px 110px minmax(180px,1fr) 42px;gap:10px;align-items:center}.import-modal{width:min(980px,100%)}.modal-search-results{margin-top:14px}.recipe-preview{display:grid;gap:18px}.recipe-preview h3{margin-bottom:6px}.recipe-preview h4{margin:0 0 8px;color:var(--accent-dark)}.preview-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr);gap:18px}.preview-grid section{padding:14px;background:#fff;border:1px solid var(--line);border-radius:8px}.preview-grid p{margin-bottom:8px;color:var(--muted);line-height:1.45}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:50;display:grid;width:min(380px,calc(100vw - 32px));gap:10px}.toast{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;padding:14px 14px 14px 16px;color:#4b5d54;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;box-shadow:var(--shadow)}.toast-error{color:#7c251f;border-left-color:#b94a3f}.toast p{margin:0;line-height:1.4;font-size:.9rem;font-weight:800}.toast button{min-height:26px;width:26px;padding:0;color:inherit;background:transparent;border:0;cursor:pointer;font-weight:900}@media(max-width:960px){.app-shell{width:min(100% - 24px,1440px);padding:18px 0}.top-nav{height:auto;min-height:66px;grid-template-columns:1fr auto;gap:10px}.brand{grid-column:1}.user-menu{grid-column:2;grid-row:1}.nav-links{grid-column:1 / -1;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.nav-links a{white-space:nowrap}.hero,.page-heading{min-height:auto;padding:24px}.hero,.workspace{grid-template-columns:1fr}.hero-panel{min-height:132px}.shopping-list-wrap,.cocktail-grid{min-height:0}}@media(max-width:640px){body{background:radial-gradient(circle at 12% 8%,rgba(246,201,103,.22),transparent 20rem),linear-gradient(135deg,#fffaf0,#edf7f2)}.app-shell{width:min(100% - 16px,1440px);padding:8px 0}.top-nav{padding:10px}.top-nav a{padding:8px 10px}h1{font-size:2rem;line-height:1.05}h2{font-size:1.25rem}.hero,.page-heading,.planner,.results,.import-panel,.auth-panel{padding:16px}.page-heading,.hero{margin-bottom:16px}.panel-heading,.modal-header,.modal-actions,.modal-section-heading{align-items:stretch}.summary-grid,.search-row,.button-row,.user-form,.form-grid,.preview-grid,.recipe-line,.pagination,.modal-actions,.modal-actions div{display:grid;grid-template-columns:1fr}.summary-grid{gap:8px}.list-wrap{margin-inline:-8px;border-radius:0;border-left:0;border-right:0}table{min-width:680px}.settings-table{min-width:1040px}th,td{padding:11px 12px}.modal-backdrop{padding:10px;align-items:end}.modal{width:100%;max-height:94vh;padding:16px}.modal form{max-height:calc(94vh - 32px)}.toast-stack{right:8px;bottom:8px;width:calc(100vw - 16px)}}@media print{body{background:#fff}.hero,.planner,.import-panel,.primary-button,.ghost-button,.top-nav,.toast-stack{display:none}.app-shell{width:100%;padding:0}.workspace,.results{display:block}.results{box-shadow:none;border:0}}
