:root {
  --ink:#17201d;
  --muted:#66736e;
  --line:#dce4e0;
  --soft:#f3f6f4;
  --paper:#fffefa;
  --green:#1d5947;
  --green-2:#28705a;
  --green-soft:#e7f1ed;
  --lime:#c9dc77;
  --amber:#b97716;
  --amber-soft:#fff2d9;
  --red:#b53b37;
  --red-soft:#fce9e7;
  --blue:#2d6684;
  --blue-soft:#e7f2f8;
  --shadow:0 16px 44px rgba(25,48,40,.08);
  --radius:16px;
  --sidebar:248px;
}

*{box-sizing:border-box}
html{font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:#eef2ef;line-height:1.55}
body{margin:0;min-height:100vh}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--green)}
[hidden]{display:none!important}
.muted{color:var(--muted)}
.eyebrow{margin:0 0 7px;font-size:11px;font-weight:800;letter-spacing:.17em;color:var(--green);text-transform:uppercase}
.eyebrow.light{color:#cfe4d9}
.lead{color:var(--muted);font-size:15px}
.fineprint{font-size:11px;line-height:1.7;color:#78847f}
.toolbar-spacer{flex:1}

.btn{border:1px solid transparent;border-radius:9px;padding:9px 15px;font-weight:750;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;transition:.2s ease;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}
.btn-primary{background:var(--green);color:white;box-shadow:0 6px 18px rgba(29,89,71,.18)}
.btn-primary:hover{background:var(--green-2)}
.btn-secondary{background:white;border-color:#ccd7d2;color:var(--ink)}
.btn-secondary:hover{border-color:var(--green);color:var(--green)}
.btn-ghost{background:transparent;color:var(--green)}
.btn-danger-ghost{background:transparent;border-color:#e8c5c3;color:var(--red)}
.btn-large{padding:12px 19px;min-height:46px}
.btn-block{width:100%}
.text-button{border:0;background:transparent;color:var(--green);font-weight:750;font-size:13px;padding:6px}
.icon-button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:white;display:inline-flex;align-items:center;justify-content:center;font-weight:800}
.icon-button:hover{border-color:var(--green);color:var(--green)}
.icon-button.danger{color:var(--red)}
.button-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.45);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}
.btn-secondary .button-spinner{border-color:#ccd7d2;border-top-color:var(--green)}
@keyframes spin{to{transform:rotate(360deg)}}

input,select,textarea{width:100%;border:1px solid #cfd9d4;border-radius:9px;background:#fff;padding:10px 12px;outline:none;transition:.15s;min-height:42px}
input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(29,89,71,.1)}
input:disabled,select:disabled{background:#eef2f0;color:#8a9691}
textarea{resize:vertical;min-height:82px}
label{display:block;font-size:12px;font-weight:700;color:#4c5a55}
label>input,label>select,label>textarea,label>.input-with-suffix{margin-top:6px}
.input-with-suffix{position:relative}
.input-with-suffix>span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);background:white;padding-left:6px}
.input-with-suffix:has(span) input{padding-right:55px}
.field-help{display:block;color:#83908b;font-weight:500;margin-top:4px}
.form-grid{display:grid;gap:17px}
.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}
.form-grid .span-2,.span-2{grid-column:span 2}
.span-3{grid-column:span 3}
.form-stack{display:flex;flex-direction:column;gap:17px}

.brand-mark{width:54px;height:54px;border-radius:16px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:25px;font-family:serif;font-weight:800;box-shadow:0 10px 24px rgba(29,89,71,.22)}
.brand-mark.small{width:40px;height:40px;border-radius:12px;font-size:19px;box-shadow:none;background:var(--lime);color:#163d31}

/* Setup / login */
.setup-page{padding:48px 20px;background:linear-gradient(145deg,#e6eee9,#f7f6f0)}
.setup-card{max-width:820px;margin:0 auto;background:white;border-radius:22px;padding:42px 48px;box-shadow:var(--shadow)}
.setup-card>h1{font-size:34px;margin:13px 0 5px}
.setup-section{border-top:1px solid var(--line);padding-top:22px;margin-top:10px}
.setup-section h2{font-size:16px;margin:0 0 16px}
.login-page{background:#e8eeea}
.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}
.login-visual{position:relative;overflow:hidden;background:linear-gradient(145deg,#153f33,#23634f);color:white;padding:9vh 9vw;display:flex;flex-direction:column;justify-content:center}
.login-visual:before{content:"";position:absolute;width:460px;height:460px;border:1px solid rgba(255,255,255,.13);border-radius:50%;right:-130px;top:-100px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}
.visual-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:42px 42px}
.login-visual>*:not(.visual-grid){position:relative}
.login-visual h1{font-family:serif;font-weight:500;font-size:clamp(44px,5.4vw,74px);line-height:1.22;letter-spacing:.03em;margin:10px 0 28px}
.login-visual>p:not(.eyebrow){color:#d9e8e1;font-size:16px;line-height:2}
.legal-chip{margin-top:50px;border:1px solid rgba(255,255,255,.22);border-radius:99px;padding:9px 15px;width:max-content;font-size:12px;color:#e7f1ed;background:rgba(255,255,255,.06)}
.login-panel{background:#fff;display:flex;align-items:center;justify-content:center;padding:40px}
.login-form-wrap{width:min(430px,100%)}
.login-form-wrap h2{font-size:25px;line-height:1.4;margin:13px 0 8px}
.login-form-wrap>.brand-mark{margin-bottom:24px}
.login-form-wrap form{margin:28px 0}
.alert{padding:12px 14px;border-radius:9px;font-size:13px;margin:17px 0}
.alert-error{background:var(--red-soft);color:#8e2d29;border:1px solid #f0c9c6}
.alert-success{background:var(--green-soft);color:var(--green);border:1px solid #bfd9ce}

/* Application shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) 1fr}
.sidebar{position:fixed;z-index:20;left:0;top:0;bottom:0;width:var(--sidebar);background:#173d32;color:#fff;padding:23px 17px;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand strong{font-size:13px;line-height:1.1;letter-spacing:.12em;display:block}.brand span{font-size:10px;color:#a9c6ba}
.main-nav{display:flex;flex-direction:column;gap:4px;margin-top:24px}
.nav-item{border:0;background:transparent;color:#c4d8d0;border-radius:10px;padding:11px 12px;display:flex;align-items:center;gap:12px;text-align:left;font-size:13px;font-weight:650;transition:.15s}
.nav-item:hover{background:rgba(255,255,255,.07);color:white}.nav-item.active{background:#fff;color:#173d32;box-shadow:0 7px 22px rgba(0,0,0,.12)}
.nav-icon{width:23px;text-align:center;font-size:17px;font-weight:400}
.sidebar-legal{margin-top:auto;border:1px solid rgba(255,255,255,.13);border-radius:10px;padding:12px;display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.045)}
.sidebar-legal .status-dot{width:8px;height:8px;background:var(--lime);border-radius:50%;box-shadow:0 0 0 4px rgba(201,220,119,.12)}
.sidebar-legal strong,.sidebar-legal small{display:block}.sidebar-legal strong{font-size:11px}.sidebar-legal small{font-size:10px;color:#a9c6ba;margin-top:2px}
.sidebar-user{display:grid;grid-template-columns:34px 1fr 20px;align-items:center;gap:9px;margin-top:13px;padding:12px 6px 0;border-top:1px solid rgba(255,255,255,.1)}
.avatar{width:34px;height:34px;border-radius:50%;background:#c9dc77;color:#173d32;display:flex;align-items:center;justify-content:center;font-weight:800}
.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user strong{font-size:11px}.sidebar-user small{color:#9db9ae;font-size:9px}.sidebar-user a{color:#b5cec4;text-decoration:none}
.workspace{grid-column:2;min-width:0}
.topbar{height:72px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;position:sticky;top:0;z-index:15}
.breadcrumbs{display:flex;align-items:center;gap:10px;font-size:12px}.breadcrumbs span{color:#81908a}.breadcrumbs span:after{content:"/";margin-left:10px;color:#c2cbc7}.breadcrumbs b{font-weight:750}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:16px}.legal-date{padding-right:17px;border-right:1px solid var(--line);text-align:right}.legal-date small,.legal-date strong{display:block}.legal-date small{font-size:9px;color:#87958f}.legal-date strong{font-size:12px;letter-spacing:.06em}
.mobile-menu{display:none;border:0;background:transparent;font-size:21px;margin-right:10px}
.main-content{padding:34px;max-width:1600px;margin:0 auto}
.loading-state{min-height:55vh;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--muted);font-size:13px}.spinner{width:32px;height:32px;border:3px solid #d4dfda;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}

.page-heading{margin-bottom:26px}.page-heading h1{font-size:32px;margin:0 0 5px;letter-spacing:-.02em}.page-heading>p:last-child,.page-heading div>p:last-child{margin:0;color:var(--muted);font-size:13px}.page-heading.compact h1{font-size:29px}
.heading-split{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.panel{background:white;border:1px solid #e1e8e4;border-radius:var(--radius);box-shadow:0 7px 24px rgba(23,61,50,.045);padding:22px;min-width:0}
.panel-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-header h2{font-size:17px;margin:0}.panel-header p{margin:0}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:18px}
.metric-card{background:white;border:1px solid #e0e7e3;border-radius:14px;padding:19px;display:flex;align-items:center;gap:15px;box-shadow:0 7px 22px rgba(23,61,50,.04)}
.metric-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800}.metric-card p{font-size:11px;color:var(--muted);margin:0 0 3px}.metric-card strong{font-size:26px}.metric-card small{font-size:10px;margin-left:4px;color:var(--muted)}
.tone-ink .metric-icon{background:#e8ecea}.tone-amber .metric-icon{background:var(--amber-soft);color:var(--amber)}.tone-red .metric-icon{background:var(--red-soft);color:var(--red)}.tone-green .metric-icon{background:var(--green-soft);color:var(--green)}
.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:18px}.dashboard-grid .span-2{grid-column:auto}.legal-panel{grid-row:span 2}
.legal-highlight{display:flex;gap:12px;border-radius:12px;background:#173d32;color:white;padding:16px;margin-bottom:14px}.legal-highlight>span{font-family:serif;color:var(--lime);font-size:25px}.legal-highlight strong{font-size:13px}.legal-highlight p{font-size:11px;color:#c6d9d1;margin:4px 0 0}
.legal-item{display:flex;gap:11px;padding:13px 0;border-bottom:1px solid var(--line)}.legal-item>i{width:7px;height:7px;background:var(--amber);border-radius:50%;margin-top:6px}.legal-item strong{font-size:11px;display:block}.legal-item p{font-size:10px;color:var(--muted);margin:3px 0}.legal-item a{font-size:10px}.legal-panel .btn{margin-top:16px}
.guide-panel{background:linear-gradient(115deg,#f7faf8,#eef4f1);display:flex;align-items:center;justify-content:space-between;gap:30px}.guide-panel h2{font-size:20px;margin:0 0 7px}.guide-panel p{font-size:12px;color:var(--muted);margin:0;max-width:600px}.mini-flow{list-style:none;display:flex;margin:0;padding:0}.mini-flow li{display:flex;align-items:center;position:relative}.mini-flow li:not(:last-child):after{content:"";width:24px;height:1px;background:#bfcac5}.mini-flow b{width:34px;height:34px;background:white;border:1px solid #cbd7d1;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--green);font-size:12px}.mini-flow span{font-size:9px;line-height:1.35;margin-left:5px;color:#55645e}

.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:11px}.data-table th{text-align:left;color:#7a8782;font-weight:700;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.data-table td{padding:12px 10px;border-bottom:1px solid #edf1ef;vertical-align:middle}.data-table tbody tr:hover{background:#f8faf9}.data-table tbody tr:last-child td{border-bottom:0}.table-link{border:0;background:transparent;text-align:left;padding:0}.table-link strong,.table-link small{display:block}.table-link strong{font-size:12px}.table-link small{font-size:9px;color:var(--muted);margin-top:2px}.category-chip{display:inline-flex;padding:4px 8px;background:#eef3f0;border-radius:5px;font-size:9px;color:#41514b;white-space:nowrap}.category-chip.large{font-size:11px;padding:7px 10px}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:99px;font-size:9px;font-weight:800;white-space:nowrap;background:#edf1ef;color:#53615c}.status-badge i{width:5px;height:5px;background:currentColor;border-radius:50%}.status-draft{background:#eef1f0}.status-needs_evidence{background:var(--amber-soft);color:#956010}.status-review{background:#fff0de;color:#a25616}.status-approved,.status-issued{background:var(--green-soft);color:var(--green)}.status-archived{background:#eee;color:#777}
.empty-inline{padding:45px;text-align:center;color:var(--muted)}.empty-state{min-height:350px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.empty-state.small{min-height:220px}.empty-state h2,.empty-state h3{margin:10px 0 4px}.empty-state p{color:var(--muted);font-size:12px}.empty-icon{width:50px;height:50px;border-radius:50%;background:var(--green-soft);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:800}

.filter-panel{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:14px}.filter-panel select{width:210px}.search-field{position:relative;flex:1}.search-field span{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#7b8983}.search-field input{padding-left:36px}.result-count{font-size:11px;color:var(--muted);padding:0 10px}.result-count strong{color:var(--ink);font-size:17px;margin-right:3px}.table-panel{padding:5px 16px 12px}

/* Product editor */
.editor-heading{display:flex;align-items:center;gap:14px;background:white;border:1px solid #dfe7e3;border-radius:14px;padding:14px 17px;margin-bottom:17px;position:sticky;top:88px;z-index:10;box-shadow:0 8px 25px rgba(23,61,50,.07)}
.back-button{width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:#fff}.editor-title{min-width:0}.editor-title p{font-size:9px;letter-spacing:.08em;color:var(--muted);margin:0}.editor-title h1{font-size:18px;margin:1px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-actions{margin-left:auto;display:flex;align-items:center;gap:9px}
.editor-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}.step-nav{background:white;border:1px solid #dfe7e3;border-radius:14px;padding:9px;position:sticky;top:174px}.step-item{width:100%;border:0;background:transparent;border-radius:10px;display:flex;align-items:center;gap:10px;text-align:left;padding:11px 9px;color:#61706a}.step-item:hover{background:#f3f6f4}.step-item.active{background:#e8f0ec;color:var(--green)}.step-item b{width:27px;height:27px;border-radius:50%;border:1px solid #ccd7d2;display:flex;align-items:center;justify-content:center;font-size:10px;flex:0 0 auto}.step-item.active b{background:var(--green);color:white;border-color:var(--green)}.step-item.done b{background:#d9e8e2;color:var(--green)}.step-item strong,.step-item small{display:block}.step-item strong{font-size:11px}.step-item small{font-size:8px;font-weight:500;margin-top:2px;color:#8a9792}
.editor-main{min-width:0}.editor-main form{display:flex;flex-direction:column;gap:15px}.section-heading{display:flex;align-items:center;gap:13px;margin:6px 3px 5px}.section-heading>span{font-family:serif;font-size:33px;color:#b6c9c0;line-height:1}.section-heading h2{font-size:21px;margin:0}.section-heading p{font-size:11px;color:var(--muted);margin:2px 0 0}.form-card{background:white;border:1px solid #dfe7e3;border-radius:14px;padding:21px}.form-card.subtle{background:#f6f8f7}.form-card>h3,.card-heading-split h3{font-size:14px;margin:0 0 16px}.card-heading-split{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:17px}.card-heading-split h3{margin:0 0 3px}.card-heading-split p{margin:0;color:var(--muted);font-size:10px}.step-footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding:10px 0}.step-footer>span{font-size:9px;color:var(--muted);letter-spacing:.12em}
.recipe-toolbar{display:flex;align-items:center;gap:10px;border-radius:13px;padding:12px 15px}.panel-soft{background:#e9f0ed;border:1px solid #d0ddd7}.recipe-toolbar>div:not(.toolbar-spacer){min-width:90px;border-right:1px solid #cad7d1}.recipe-toolbar strong,.recipe-toolbar span{display:block}.recipe-toolbar strong{font-size:17px}.recipe-toolbar span{font-size:8px;color:var(--muted)}.recipe-toolbar select{width:240px;background:white}.recipe-card{padding:11px 15px}.recipe-help{font-size:10px;color:var(--muted);padding:7px 2px 11px}.recipe-help span{font-weight:800;color:var(--green);background:var(--green-soft);border-radius:4px;padding:2px 5px;margin-right:6px}
.recipe-table{min-width:870px}.recipe-head,.recipe-row{display:grid;grid-template-columns:32px minmax(190px,1.6fr) 115px 115px minmax(170px,1fr) 125px 36px;gap:8px;align-items:center}.recipe-head{padding:7px;color:#80908a;font-size:9px;border-bottom:1px solid var(--line)}.recipe-row{padding:10px 0;border-bottom:1px solid #edf1ef}.recipe-row:last-child{border-bottom:0}.recipe-row input,.recipe-row select{min-height:38px;padding:8px;font-size:11px}.recipe-row .rank{width:24px;height:24px;border-radius:50%;background:#eef2f0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800}.recipe-name{font-weight:700}.recipe-row>div small{display:block;color:#8b9792;font-size:8px;margin-top:2px}.switch-label{display:flex;align-items:center;gap:6px;font-size:9px}.switch-label input{display:none}.switch-label>span{width:31px;height:18px;background:#cbd4d0;border-radius:99px;position:relative;transition:.15s}.switch-label>span:after{content:"";width:14px;height:14px;background:white;border-radius:50%;position:absolute;left:2px;top:2px;transition:.15s}.switch-label input:checked+span{background:var(--green)}.switch-label input:checked+span:after{left:15px}.allergen-button{border:1px solid var(--line);border-radius:8px;min-height:38px;background:white;text-align:left;padding:5px 7px}.allergen-button span{display:inline-block;background:#f2e5e2;color:#853832;border-radius:4px;padding:2px 4px;font-size:8px;margin-right:2px}.allergen-button em{float:right;font-style:normal;font-size:8px;color:var(--green);margin-top:3px}.callout{border-radius:12px;padding:13px 15px;display:flex;gap:12px;align-items:flex-start}.callout>b{width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:0 0 auto}.callout strong{font-size:11px}.callout p{font-size:10px;margin:2px 0 0;color:#5d6a65}.callout-warning{background:var(--amber-soft);border:1px solid #efd8ae}.callout-warning>b{background:#d8942c;color:white}.callout-info{background:var(--blue-soft);border:1px solid #c5deeb}.callout-info>b{background:var(--blue);color:white}
.item-display-actions{display:grid!important;grid-template-columns:1fr 42px;gap:4px}.item-display-actions button{border:1px solid var(--line);border-radius:7px;background:#f6f8f7;color:var(--green);font-size:8px;font-weight:800}.detail-warning{margin-top:16px}.source-readout{display:grid;grid-template-columns:120px 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);margin:16px 0 0}.source-readout dt,.source-readout dd{border-right:1px solid var(--line);border-bottom:1px solid var(--line);margin:0;padding:7px;font-size:9px}.source-readout dt{background:#f2f5f3;font-weight:800}
.segmented{display:flex;background:#eef2f0;padding:3px;border-radius:8px}.segmented label{margin:0}.segmented input{display:none}.segmented span{display:block;padding:7px 9px;font-size:9px;border-radius:6px;color:#6a7772}.segmented input:checked+span{background:white;color:var(--green);box-shadow:0 2px 7px rgba(0,0,0,.07)}
.allergen-summary{display:grid;grid-template-columns:1fr 1fr;gap:17px}.allergen-summary>div{border:1px solid var(--line);border-radius:10px;padding:13px}.allergen-summary p{font-size:10px;font-weight:800;margin:0 0 9px}.allergen-tag{display:inline-flex;flex-direction:column;border-radius:6px;padding:5px 7px;margin:2px;font-size:9px;font-weight:800}.allergen-tag small{font-size:7px;font-weight:500;max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.allergen-tag.required{background:var(--red-soft);color:#8d3833}.allergen-tag.recommended{background:var(--amber-soft);color:#8b5b17}.allergen-summary+.callout{margin-top:15px}
.yield-meter{margin-top:18px;background:#f3f6f4;border-radius:10px;padding:12px}.yield-meter p{font-size:10px;color:var(--muted);margin:0}.yield-meter>div:first-child{display:flex;align-items:baseline;gap:10px}.yield-meter span{font-size:9px;color:var(--muted)}.yield-meter strong{font-size:17px;color:var(--green)}.yield-meter strong.danger{color:var(--red)}.yield-meter strong.info{color:var(--blue)}.yield-meter small{font-size:9px;color:var(--muted)}.meter{height:5px;background:#dce5e1;border-radius:99px;margin-top:8px;overflow:hidden}.meter i{display:block;height:100%;background:var(--green);border-radius:99px}
.placeholder-box{border:1px dashed #cbd7d1;border-radius:9px;padding:27px;text-align:center;color:var(--muted);font-size:10px}.nutrition-card{border:1.5px solid #1e2824;max-width:390px;background:white;color:#111;font-size:10px;padding:8px}.nutrition-title{display:flex;justify-content:space-between;border-bottom:1px solid #111;padding:2px 0 5px;margin-bottom:3px}.nutrition-title strong{font-size:12px}.nutrition-title span{font-size:9px}.nutrition-card>div:not(.nutrition-title){display:flex;justify-content:space-between;padding:2px 1px}.nutrition-card b{font-weight:600}.nutrition-card b small{font-size:8px;margin-left:2px}.nutrition-card>p{border-top:1px solid #111;margin:4px 0 0;padding-top:3px;font-size:7px}
.check-row{display:flex!important;gap:9px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fafcfb}.check-row>input{width:18px;height:18px;min-height:0;margin:1px 0;accent-color:var(--green);flex:0 0 auto}.check-row strong,.check-row small{display:block}.check-row strong{font-size:10px;color:var(--ink)}.check-row small{font-size:8px;font-weight:500;color:var(--muted);margin-top:2px}.category-fields{margin-top:5px}.rule-note{background:var(--green-soft);border-radius:10px;padding:12px;display:flex;align-items:center;gap:10px}.rule-note b{font-size:20px;color:var(--green)}.rule-note span{font-size:9px}.wine-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.inline-field{display:flex!important;align-items:center;gap:4px;margin-top:6px;font-size:8px!important}.inline-field input{width:80px;min-height:30px;height:30px;padding:4px;margin:0}.inline-field em{font-style:normal}.category-empty{display:flex;align-items:center;gap:12px;background:var(--green-soft);border-radius:11px;padding:17px}.category-empty>span{width:34px;height:34px;background:var(--green);color:white;border-radius:50%;display:flex;align-items:center;justify-content:center}.category-empty strong{font-size:12px}.category-empty p{font-size:9px;color:var(--muted);margin:2px 0}.claim-guide{margin-top:10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.claim-guide>span{font-size:9px;font-weight:800}.claim-guide code{font:9px inherit;background:var(--red-soft);color:#8b3732;padding:3px 6px;border-radius:4px}.claim-guide p{width:100%;font-size:9px;color:var(--muted);margin:3px 0}
.review-start{min-height:480px;background:white;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.review-orbit{width:100px;height:100px;border:1px solid #bfd3ca;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 18px #eef4f1,0 0 0 19px #dbe7e2}.review-orbit span{width:58px;height:58px;border-radius:50%;background:var(--green);color:white;display:flex;align-items:center;justify-content:center;font-size:25px}.review-start h2{margin:35px 0 5px}.review-start p{font-size:11px;color:var(--muted);margin:0 0 20px}.review-summary{background:white;border:1px solid var(--line);border-radius:14px;padding:18px 21px;display:grid;grid-template-columns:110px 1fr auto;gap:20px;align-items:center}.review-summary.has-errors{border-left:4px solid var(--red)}.review-summary.is-clear{border-left:4px solid var(--green)}.score-ring{width:88px;height:88px;border-radius:50%;border:7px solid var(--green-soft);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.has-errors .score-ring{border-color:var(--red-soft)}.score-ring strong{font-size:13px}.score-ring span{font-size:8px;color:var(--muted)}.review-summary h2{margin:0 0 4px;font-size:18px}.review-summary>div:nth-child(2)>p:last-child{font-size:9px;color:var(--muted);margin:0}.issue-counts{display:grid;grid-template-columns:1fr 1fr;gap:5px}.issue-counts span{font-size:8px;border-radius:6px;padding:6px 8px;background:#f1f3f2}.issue-counts b{font-size:14px;margin-right:4px}.issue-counts .error{color:var(--red);background:var(--red-soft)}.issue-counts .review{color:#9d6016;background:var(--amber-soft)}.issue-counts .warning{color:var(--amber)}.issue-counts .info{color:var(--blue);background:var(--blue-soft)}
.review-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:15px;margin-top:15px}.issues-panel{max-height:680px;overflow:auto}.issue-list{display:flex;flex-direction:column;gap:7px}.issue{border:1px solid var(--line);border-radius:9px;overflow:hidden}.issue summary{list-style:none;display:grid;grid-template-columns:26px 1fr 15px;gap:8px;align-items:center;padding:10px;cursor:pointer}.issue summary::-webkit-details-marker{display:none}.issue summary>span{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800}.issue summary small,.issue summary strong{display:block}.issue summary small{font-size:7px;color:#88958f}.issue summary strong{font-size:9px}.issue-error summary>span{background:var(--red-soft);color:var(--red)}.issue-review summary>span,.issue-warning summary>span{background:var(--amber-soft);color:var(--amber)}.issue-info summary>span{background:var(--blue-soft);color:var(--blue)}.issue-body{padding:0 11px 11px 44px}.issue-body p{font-size:9px;color:#56635e;margin:0 0 6px}.issue-body em{font-style:normal;font-weight:800;color:var(--ink);display:block}.issue-body a{font-size:8px}.label-preview-panel{background:#e7ece9}.label-preview-panel>.panel-header{color:#27322e}.label-mockup{background:#fff;padding:15px;box-shadow:0 8px 30px rgba(24,46,38,.16);max-width:520px;margin:0 auto;font-family:"Yu Gothic",Meiryo,sans-serif;color:#111}.label-mockup table{border-collapse:collapse;width:100%;font-size:8px}.label-mockup th,.label-mockup td{border:1px solid #111;padding:4px;vertical-align:top}.label-mockup th{width:23%;white-space:nowrap}.label-mockup .nutrition-card{margin-top:7px}.required-statement{font-size:8px;font-weight:700}.front-badges{display:flex;gap:5px;margin-bottom:6px}.front-badges span{border:1px dashed #111;padding:4px;font-weight:800;font-size:11px}.front-badges small{font-size:6px;margin-left:4px}.preview-note{font-size:8px;color:#64716c;text-align:center;margin:10px 0 0}.output-bar{background:#173d32;color:white;border-radius:14px;margin-top:15px;padding:16px 18px;display:flex;align-items:center;gap:10px}.output-bar>div:first-child{margin-right:auto}.output-bar strong{font-size:12px}.output-bar p{font-size:9px;color:#bcd1c8;margin:2px 0}.output-bar .btn-secondary{background:transparent;color:white;border-color:#6a8b7e}

.issue-acknowledged{border-color:#9fc7b7}.issue-acknowledged summary>span{background:var(--green-soft);color:var(--green)}.review-ack-field{display:block;margin-top:10px;border-top:1px solid var(--line);padding-top:8px;font-size:9px}.review-ack-field textarea{min-height:62px;font-size:10px}.review-ack-readout{margin-top:8px;background:var(--green-soft);border-radius:7px;padding:7px}.review-ack-readout b{font-size:8px;color:var(--green)}.review-ack-readout p{margin:2px 0 0!important}
.front-guidance-preview{background:#f4f6e9;border:1px dashed #8e9c50;padding:11px;margin:0 auto 12px;max-width:520px}.front-guidance-preview>small{display:block;font-size:7px;color:#6d763f}.front-guidance-preview>strong{display:block;font-size:14px;margin:3px 0 6px}.front-guidance-preview>div{display:flex;gap:6px}.front-guidance-preview span{border:1px solid #111;background:white;padding:5px;font-size:12px;font-weight:900}.front-guidance-preview em{font-style:normal;font-size:6px;margin-left:4px;color:#666}

/* Ingredient master */
.ingredient-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.ingredient-card{position:relative;background:white;border:1px solid var(--line);border-radius:14px;padding:17px;cursor:pointer;transition:.18s}.ingredient-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#b8cec4}.ingredient-type{display:inline-block;border-radius:4px;padding:3px 6px;font-size:8px;font-weight:800;background:#edf1ef}.type-additive{background:#ede8f7;color:#6a4a91}.type-compound{background:var(--amber-soft);color:#8d5d16}.ingredient-card h3{font-size:15px;margin:10px 0 1px}.ingredient-card>p{font-size:9px;color:var(--muted);margin:0}.ingredient-meta{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:13px 0;padding:9px 0}.ingredient-meta span{font-size:8px;color:var(--muted)}.ingredient-meta b{display:block;font-size:9px;color:var(--ink);margin-top:2px}.ingredient-allergens span{display:inline-block;background:var(--red-soft);color:#873b35;border-radius:4px;padding:2px 5px;font-size:7px;margin-right:3px}.ingredient-allergens span.none{background:#edf1ef;color:#6f7c77}.ingredient-card>.icon-button{position:absolute;right:13px;top:13px}

/* Modal */
.modal-backdrop{position:fixed;z-index:100;inset:0;background:rgba(8,24,19,.58);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}
.modal{background:white;border-radius:18px;width:min(650px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 90px rgba(0,0,0,.28)}.modal.wide{width:min(1050px,100%)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 23px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:2}.modal-header h2{font-size:19px;margin:0}.modal-close{width:36px;height:36px;border:0;border-radius:50%;background:#eef2f0;font-size:20px}.modal-body{padding:23px}.modal-lead{font-size:11px;color:var(--muted);margin:0 0 16px}.modal-footer{display:flex;align-items:center;gap:9px;padding:15px 23px;border-top:1px solid var(--line);position:sticky;bottom:0;background:white;z-index:2}.modal-section-title{font-size:13px;margin:23px 0 10px;padding-top:17px;border-top:1px solid var(--line)}.allergen-picker section+section{margin-top:18px}.allergen-picker h3{font-size:11px}.allergen-picker section>div,.compact-allergen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.allergen-picker label,.compact-allergen-grid label{border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;align-items:center;gap:7px}.allergen-picker label.locked{background:#f1f4f2;border-color:#bacac3}.allergen-picker input,.compact-allergen-grid input{width:16px;height:16px;min-height:0;margin:0;accent-color:var(--green)}.allergen-picker span,.allergen-picker small{display:block}.allergen-picker span{font-size:10px;color:var(--ink)}.allergen-picker small{font-size:7px;color:var(--red)}.compact-allergen-grid{grid-template-columns:repeat(5,1fr);margin-bottom:18px}.compact-allergen-grid span{font-size:8px}.component-section{margin-top:22px;border-top:1px solid var(--line);padding-top:18px}.component-row{display:grid;grid-template-columns:28px minmax(135px,.8fr) minmax(145px,1fr) 105px 95px 55px 34px;gap:7px;align-items:center;margin:7px 0}.component-row>span{width:25px;height:25px;border-radius:50%;background:#eef2f0;display:flex;align-items:center;justify-content:center;font-size:8px}.component-row>label{position:relative}.component-row>label>input[type=number]{padding-right:25px;margin:0}.component-row>label>em{position:absolute;right:8px;top:12px;font-size:8px;font-style:normal}.component-allergen-btn{height:34px;border:1px solid #e2c2bf;border-radius:7px;background:var(--red-soft);color:#883c36;font-size:9px;font-weight:800}

/* Impact + settings */
.role-guide{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:17px}.role-guide span{background:#f3f6f4;border-radius:8px;padding:9px;font-size:8px;color:var(--muted)}.role-guide b{display:block;font-size:10px;color:var(--ink)}.user-security-note{margin-top:18px}
.impact-hero{background:linear-gradient(120deg,#173d32,#275f4e);color:white;border-radius:17px;padding:25px;display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:16px}.impact-hero>div:first-child{display:flex;align-items:flex-end;gap:10px;min-width:480px}.impact-hero label{color:#d7e6e0;flex:1}.impact-visual{display:flex;align-items:center;gap:8px}.impact-visual span{border:1px solid rgba(255,255,255,.23);border-radius:8px;padding:11px 13px;font-size:10px;background:rgba(255,255,255,.06)}.impact-visual i{font-style:normal;color:var(--lime)}
.settings-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;align-items:start}.release-list{display:flex;flex-direction:column;gap:9px}.release-list article{display:grid;grid-template-columns:80px 1fr auto;gap:13px;border:1px solid var(--line);border-radius:10px;padding:13px}.release-date{border-right:1px solid var(--line)}.release-date strong,.release-date small{display:block}.release-date strong{font-size:12px}.release-date small{font-size:8px;color:var(--muted)}.release-list article>div:nth-child(2)>span{font-size:7px;color:var(--green)}.release-list h3{font-size:11px;margin:2px 0}.release-list p{font-size:8px;color:var(--muted);margin:2px 0}.release-list a{font-size:8px}.release-list article>em{font-size:8px;font-style:normal;color:var(--amber);white-space:nowrap}.master-allergen-list{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.master-allergen-list span{border-radius:7px;padding:8px}.master-allergen-list b,.master-allergen-list small{display:block}.master-allergen-list b{font-size:9px}.master-allergen-list small{font-size:7px}.master-allergen-list .required{background:var(--red-soft);color:#833b36}.master-allergen-list .recommended{background:var(--amber-soft);color:#825819}

/* Evidence and revision traceability */
.btn-small{min-height:31px;padding:5px 9px;font-size:9px;border-radius:7px}.danger-text{color:var(--red)}
.traceability-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:15px;margin-top:15px}.panel-lead{font-size:9px;color:var(--muted);margin:-8px 0 15px}
.evidence-list{display:flex;flex-direction:column;gap:8px}.evidence-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fbfcfb}.evidence-row.pending{border-left:3px solid var(--amber)}.evidence-row.verified{border-left:3px solid var(--green)}.file-icon{width:39px;height:39px;border-radius:8px;background:var(--blue-soft);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:900}.evidence-row small,.evidence-row strong,.evidence-row p,.evidence-row em{display:block}.evidence-row small{font-size:7px;color:var(--green)}.evidence-row strong{font-size:10px;margin:1px 0}.evidence-row p{font-size:8px;color:var(--muted);margin:0}.evidence-row em{font-size:7px;color:#8b9692;font-style:normal}.evidence-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.evidence-state{font-size:8px;font-weight:800;color:var(--amber)}.verified .evidence-state{color:var(--green)}.evidence-upload{border-top:1px solid var(--line);margin-top:16px;padding-top:15px}.evidence-upload h3{font-size:12px;margin:0 0 12px}.evidence-upload .btn{margin-top:12px}
.version-timeline{display:flex;flex-direction:column}.version-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:8px;position:relative;padding:10px 0;border-bottom:1px solid var(--line)}.version-row:last-child{border-bottom:0}.version-dot{width:10px;height:10px;border-radius:50%;background:#c9d4cf;border:2px solid white;box-shadow:0 0 0 1px #b8c8c1;margin-top:5px}.version-row.current .version-dot{background:var(--green);box-shadow:0 0 0 2px #cfe2da}.version-row small,.version-row strong,.version-row p,.version-row span{display:block}.version-row small{font-size:7px;color:var(--muted)}.version-row strong{font-size:11px}.version-row strong em{font-style:normal;font-size:7px;background:var(--green-soft);color:var(--green);padding:2px 5px;border-radius:99px;margin-left:4px}.version-row p{font-size:8px;color:var(--muted);margin:2px 0}.version-row span{font-size:7px;color:var(--green)}.version-row>div:last-child{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.snapshot-banner{background:var(--green-soft);border-radius:10px;padding:13px;margin-bottom:15px}.snapshot-banner span{font-size:8px;color:var(--green);font-weight:800}.snapshot-banner strong{display:block;font-size:12px}.snapshot-banner p{font-size:9px;color:var(--muted);margin:3px 0}.snapshot-grid{display:grid;grid-template-columns:120px 1fr;border-left:1px solid var(--line);border-top:1px solid var(--line);margin:0}.snapshot-grid dt,.snapshot-grid dd{margin:0;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:9px}.snapshot-grid dt{background:#f2f5f3;font-weight:800}
.impact-hero-v2 .impact-criteria{display:grid!important;grid-template-columns:1fr 1fr auto;align-items:end;min-width:650px!important}.impact-table td>small{display:block;font-size:7px;color:var(--amber)}.bulk-revision-bar{position:sticky;bottom:12px;z-index:5;margin-top:14px;border-radius:12px;background:#173d32;color:white;padding:13px 15px;display:grid;grid-template-columns:1fr minmax(230px,380px) auto;gap:12px;align-items:center;box-shadow:0 12px 34px rgba(13,40,31,.22)}.bulk-revision-bar strong{font-size:11px}.bulk-revision-bar p{font-size:8px;color:#bdd2c9;margin:1px 0}.bulk-revision-bar input{min-height:38px}.impact-table input[type=checkbox]{width:17px;height:17px;min-height:0;accent-color:var(--green)}

/* Feedback */
.toast-region{position:fixed;right:22px;bottom:22px;z-index:200;display:flex;flex-direction:column;gap:8px}.toast{min-width:300px;max-width:450px;background:#173d32;color:white;border-radius:11px;padding:12px 14px;display:flex;align-items:center;gap:9px;box-shadow:0 14px 45px rgba(0,0,0,.22);opacity:0;transform:translateY(12px);transition:.22s}.toast.show{opacity:1;transform:none}.toast>span{width:22px;height:22px;border-radius:50%;background:var(--lime);color:#173d32;display:flex;align-items:center;justify-content:center;font-weight:800}.toast p{font-size:11px;margin:0}.toast-error{background:#84342f}.toast-error>span{background:white;color:#84342f}.modal-open{overflow:hidden}

@media(max-width:1180px){
  :root{--sidebar:215px}.main-content{padding:25px}.metric-grid{grid-template-columns:repeat(2,1fr)}.ingredient-grid{grid-template-columns:repeat(2,1fr)}.form-grid.five{grid-template-columns:repeat(3,1fr)}.editor-layout{grid-template-columns:185px minmax(0,1fr)}.master-allergen-list{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:900px){
  .app-shell{display:block}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.workspace{margin:0}.mobile-menu{display:block}.main-content{padding:20px}.topbar{padding:0 18px}.dashboard-grid{grid-template-columns:1fr}.legal-panel{grid-row:auto}.metric-grid{grid-template-columns:repeat(2,1fr)}.editor-layout{display:block}.step-nav{position:static;display:flex;overflow:auto;margin-bottom:12px}.step-item{min-width:150px}.editor-heading{top:80px}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.form-grid .span-2,.span-2{grid-column:auto}.editor-actions .status-badge{display:none}.review-grid{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.settings-grid .span-2,.settings-grid .span-3{grid-column:auto}.impact-hero{display:block}.impact-hero>div:first-child{min-width:0}.impact-visual{margin-top:20px}.guide-panel{display:block}.mini-flow{margin-top:20px}
}
@media(max-width:640px){
  .login-shell{display:block}.login-visual{min-height:36vh;padding:45px 27px}.login-visual h1{font-size:39px;margin:4px 0}.login-visual>p:not(.eyebrow),.legal-chip{display:none}.login-panel{padding:32px 23px}.setup-card{padding:28px 20px}.metric-grid{grid-template-columns:1fr}.page-heading h1{font-size:25px}.heading-split{align-items:flex-start;flex-direction:column}.heading-split>.btn{width:100%}.top-actions .legal-date{display:none}.editor-heading{align-items:flex-start;flex-wrap:wrap}.editor-actions{width:100%;margin-left:52px}.editor-actions .btn{flex:1}.ingredient-grid{grid-template-columns:1fr}.recipe-toolbar{flex-wrap:wrap}.recipe-toolbar select{width:100%}.allergen-summary{grid-template-columns:1fr}.wine-grid{grid-template-columns:1fr}.wine-grid .span-2{grid-column:auto}.review-summary{grid-template-columns:1fr;text-align:center}.score-ring{margin:auto}.issue-counts{grid-template-columns:repeat(4,1fr)}.output-bar{flex-wrap:wrap}.output-bar>div:first-child{width:100%}.output-bar .btn{flex:1}.impact-hero>div:first-child{display:block}.impact-hero .btn{width:100%;margin-top:10px}.impact-visual{overflow:auto}.master-allergen-list{grid-template-columns:repeat(3,1fr)}.allergen-picker section>div,.compact-allergen-grid{grid-template-columns:repeat(2,1fr)}.form-grid.five{grid-template-columns:repeat(2,1fr)}.modal-backdrop{padding:0}.modal,.modal.wide{border-radius:0;max-height:100vh;height:100vh}.toast-region{left:12px;right:12px;bottom:12px}.toast{min-width:0}.breadcrumbs span{display:none}.breadcrumbs span:after{display:none}
}

@media(max-width:1180px){.traceability-grid{grid-template-columns:1fr}.impact-hero-v2 .impact-criteria{min-width:0!important}}
@media(max-width:900px){.impact-hero-v2 .impact-criteria{grid-template-columns:1fr}.bulk-revision-bar{grid-template-columns:1fr}}
@media(max-width:640px){.evidence-row{grid-template-columns:36px 1fr}.evidence-actions{grid-column:1/-1;flex-direction:row;align-items:center}.version-row{grid-template-columns:16px 1fr}.version-row>div:last-child{grid-column:2;align-items:flex-start}.snapshot-grid{grid-template-columns:85px 1fr}.component-row{grid-template-columns:28px 1fr 34px;padding:8px 0;border-bottom:1px solid var(--line)}.component-row>select,.component-row>input,.component-row>label,.component-row>.component-allergen-btn{grid-column:2}.component-row>.danger{grid-column:3;grid-row:1}.component-row>span{grid-column:1;grid-row:1}}
