.formal-review-workspace{display:grid;gap:14px}.dish-review-switcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.dish-review-switcher button{display:grid;gap:4px;min-width:0;padding:12px 14px;text-align:left;border:1px solid #d8e0dc;border-radius:10px;color:#30463c;background:#fff;cursor:pointer}.dish-review-switcher button.active{border-color:#3d8a68;box-shadow:inset 0 0 0 1px #3d8a68;background:#edf8f2}.dish-review-switcher b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dish-review-switcher span,.dish-review-switcher em{color:#7d8983;font-size:9px;font-style:normal}.dish-review-switcher em{color:#286048;font-weight:700}.formal-dish-form{overflow:hidden;border:1px solid #d8e0dc;border-radius:16px;background:#fff;box-shadow:0 10px 30px #182d240d}.formal-dish-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;background:#f5f7f6;border-bottom:1px solid #e0e6e2}.formal-dish-heading h2{margin:4px 0;font-size:24px}.formal-dish-heading p,.formal-dish-heading small{margin:0;color:#7b8881;font-size:10px}.formal-dish-heading>span,.formal-section-title>span{padding:5px 8px;border-radius:6px;color:#176846;background:#dff5e9;font-size:9px;font-weight:750}.formal-form-section{margin:16px 18px;padding:16px;border:1px solid #dfe5e2;border-radius:12px}.formal-form-section h3{margin:0 0 15px;font-size:14px}.formal-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.formal-section-title h3{margin:0}.formal-basic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.formal-basic-grid label,.formal-settings-grid label{display:grid;align-content:start;gap:6px;min-width:0;color:#52645b;font-size:10px}.formal-basic-grid label>span,.formal-settings-grid label>span{font-weight:700}.formal-basic-grid label>span b,.formal-settings-grid label>span b{float:right;color:#277154;font-size:8px}.formal-basic-grid input,.formal-settings-grid textarea{width:100%;border:1px solid #d5ddd8;border-radius:7px;padding:9px 10px;color:#24382f;background:#fbfcfb;font:inherit}.formal-basic-grid small,.formal-settings-grid small{overflow-wrap:anywhere;color:#7e8c85;line-height:1.45}.formal-control.incorrect input,.formal-control.missing input,.formal-control.source_conflict input,.formal-control.incorrect textarea,.formal-control.missing textarea,.formal-control.source_conflict textarea{border-color:#dfa794;background:#fff4f0}.readonly-tag-box{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-height:34px;padding:6px 8px;border:1px solid #d5ddd8;border-radius:7px;background:#fbfcfb}.readonly-tag-box i{padding:4px 7px;border-radius:5px;color:#25654b;background:#e1f1e8;font-style:normal}.readonly-tag-box em{color:#919b96;font-style:normal}.formal-price-table{overflow-x:auto;margin-top:13px;border:1px solid #dce3df;border-radius:9px}.formal-price-head,.formal-price-row{display:grid;grid-template-columns:120px repeat(4,minmax(130px,1fr));min-width:680px}.formal-price-head{padding:10px 12px;color:#64736b;background:#f3f6f4;font-size:10px}.formal-price-row{align-items:center;padding:10px 12px;border-top:1px solid #e7ece9}.formal-price-row>div{display:grid;gap:3px}.formal-price-row span{color:#273d33}.formal-price-row small{color:#809088;font-size:9px}.formal-price-row.mismatch{background:#fff8f5}.formal-choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:7px;margin-top:13px}.formal-choice{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;min-width:0;padding:8px 9px;border:1px solid #e0e6e2;border-radius:7px;background:#fbfcfb}.formal-choice.selected{border-color:#b7d6c5;background:#edf7f1}.formal-choice.missing,.formal-choice.extra{border-color:#dfaa99;background:#fff5f1}.formal-choice input{accent-color:#34795a}.formal-choice span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.formal-choice small{color:#87938d;font-size:8px}.formal-choice small b{color:#27684e}.formal-evidence{margin:12px 0 0;padding:9px 10px;border-radius:7px;color:#6d5b27;background:#fff8e6;font-size:9px;line-height:1.5}.formal-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.formal-settings-grid textarea{min-height:76px;resize:vertical;line-height:1.5}.formal-excluded{color:#78857e;background:#f7f9f8}.formal-excluded p{margin:0;font-size:11px;line-height:1.65}.formal-review-footer{display:flex;align-items:center;gap:14px;padding:4px 3px;color:#7f8b85;font-size:9px}.formal-review-footer .review-technical{margin:0 0 0 auto}.formal-vip-comparison{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid #d5ddd8;border-radius:8px;background:#fbfcfb;color:#52645b}.formal-vip-comparison label{display:flex;align-items:center;gap:8px}.formal-vip-comparison input{accent-color:#34795a}.formal-vip-comparison strong{color:#27684e;font-size:10px}.formal-vip-comparison.incorrect,.formal-vip-comparison.missing,.formal-vip-comparison.source_conflict{border-color:#dfa794;background:#fff4f0}.formal-vip-comparison.pending_model{border-color:#dfc782;background:#fff9e9}.formal-section-title>span.pending_model{color:#745a13;background:#fff0bd}@media(max-width:760px){.formal-basic-grid,.formal-settings-grid,.formal-choice-grid{grid-template-columns:1fr 1fr}.dish-review-switcher{display:flex;overflow-x:auto}.dish-review-switcher button{flex:0 0 150px}}.new-dish-badge{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;background:#fff0c2;color:#765600;font-size:9px;font-style:normal;font-weight:750;vertical-align:middle}.formal-dish-heading>span.new-dish-badge{padding:5px 9px;font-size:10px}.dish-review-switcher button.fresh{border-style:dashed}.formal-control.changed input,.formal-control.added input,.formal-control.changed textarea,.formal-control.added textarea{border-color:#dfc782;background:#fff9e9}.formal-control.cleared input,.formal-control.cleared textarea{border-color:#dfa794;background:#fff4f0}.formal-control.unchanged{opacity:.72}.formal-section-title>span.changed,.formal-section-title>span.added{color:#745a13;background:#fff0bd}.formal-section-title>span.cleared{color:#983d28;background:#ffe2d9}.formal-section-title>span.unchanged{color:#6f7d76;background:#eef1ef}:root{font-family:Inter,PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif;color:#17231f;background:#edf1ed;font-synthesis:none}*{box-sizing:border-box}html,body,#app{margin:0;max-width:100%}body{background:#edf1ed;overflow-x:clip}a{color:#245d47;text-decoration:none}h1{margin:4px 0 9px;font-size:clamp(26px,4vw,40px);letter-spacing:-.04em}h2{font-size:16px;margin:0 0 12px}.muted{color:#75817b}.small{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;word-break:break-all}.eyebrow{margin:0;color:#637c70;font-size:11px;font-weight:800;letter-spacing:.14em}.topbar{display:flex;gap:24px;align-items:center;padding:14px 24px;color:#eef5f1;background:#132b24;flex-wrap:wrap}.topbar .brand{font-weight:750;color:#eef5f1}.topbar nav{display:flex;gap:16px;flex:1;white-space:nowrap}.topbar nav a{color:#b9c8c1}.topbar nav a.router-link-exact-active{color:#d7ff66;font-weight:700}.topbar .account{display:flex;gap:12px;align-items:center;font-size:13px;white-space:nowrap}.topbar .account a,.topbar .account button.link{color:#b9c8c1}.page{max-width:1500px;margin:0 auto;padding:32px clamp(16px,4vw,56px) 64px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:18px}.page-header>div{min-width:0}.page-header p:last-child{color:#65716c;margin:0}.card{background:#fff;border:1px solid #dce3de;border-radius:16px;box-shadow:0 10px 28px #182d240d;padding:20px;margin-bottom:16px}.card.narrow{max-width:480px}.empty{text-align:center;color:#7b8882;padding:40px}.back{display:inline-block;margin-bottom:12px;font-weight:700}button{font:inherit;cursor:pointer;border-radius:9px;padding:9px 14px;border:1px solid #cbd6d0;background:#fff;color:#243b32}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:#2f7859;border-color:#2f7859;color:#fff;font-weight:700}button.danger{background:#b4432c;border-color:#b4432c;color:#fff;font-weight:700}button.link{border:none;background:none;padding:0;color:#245d47}.secondary-button{flex:0 0 auto}label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#52645b;margin-bottom:12px}label.check{flex-direction:row;align-items:center;margin:0}input,select,textarea{font:inherit;padding:9px 10px;border:1px solid #d5ddd8;border-radius:8px;background:#fbfcfb;color:#24382f}.alert{border:1px solid #efc8bd;border-radius:10px;padding:10px 12px;color:#7f2f20;background:#fff3ef}.notice{border:1px solid #ead7a6;border-radius:10px;padding:10px 12px;color:#6d5b27;background:#fff8e6}.login{max-width:400px;margin:10vh auto 0}.login form{margin-top:16px}.login button{width:100%}.evaluation-guard{display:flex;gap:10px;align-items:baseline;margin-bottom:14px;padding:13px 16px;border:1px solid #c7ddcf;border-radius:12px;color:#1d5b40;background:#edf8f1}.evaluation-guard span{color:#597167;font-size:12px}.review-context{display:grid;grid-template-columns:minmax(260px,1fr) minmax(160px,.4fr);gap:14px;padding:16px;border:1px solid #dce4df;border-radius:13px;background:#fff}.review-context label,.review-context>div{display:grid;gap:6px;margin:0;color:#75827b;font-size:11px}.review-context select{width:100%}.review-context strong{color:#2b4438;font-size:22px}.workspace-tabs{display:flex;align-items:center;gap:4px;margin:16px 0 12px;border-bottom:1px solid #d5ded9;overflow-x:auto;scrollbar-width:none}.workspace-tabs button{flex:0 0 auto;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:10px 12px;color:#6f7d76}.workspace-tabs button.active{color:#1e4938;border-color:#2f7859;font-weight:700}.workspace-tabs button span{margin-left:3px;padding:2px 5px;border-radius:999px;background:#e6ece8;font-size:9px}.formal-review-workspace>.notice{margin:0}.review-detail{display:grid;gap:14px}.review-state{flex:0 0 auto}.formal-dish-heading>span.review-state.approved{color:#176846;background:#dff5e9}.formal-dish-heading>span.review-state.awaiting_review{color:#745a13;background:#fff0bd}.formal-dish-heading>span.review-state.rejected,.formal-dish-heading>span.review-state.withdrawn{color:#983d28;background:#ffe2d9}.change-list{display:grid;gap:6px;margin:13px 0 0;padding:0;list-style:none}.change-list li{display:grid;grid-template-columns:110px minmax(0,1fr) 20px minmax(0,1fr);gap:10px;align-items:baseline;padding:9px 11px;border-radius:8px;background:#fff9e9;font-size:12px}.change-list li.cleared{background:#fff4f0}.change-list li b{color:#52645b}.change-list li span{overflow-wrap:anywhere}.change-list li span:last-child{color:#1e4938;font-weight:700}.change-list li i{color:#9aa59f;font-style:normal}.change-list li small{grid-column:1 / -1;color:#6d5b27;font-size:11px;line-height:1.5;overflow-wrap:anywhere}.review-reason{margin:4px 0 0;color:#745a13;font-size:12px;font-weight:700}.queue-kinds{display:flex;gap:8px;margin:0 0 14px}.queue-kinds button{border-radius:999px;padding:8px 16px;font-weight:700;color:#52645b}.queue-kinds button.active{color:#fff;background:#2f7859;border-color:#2f7859}.queue-kinds button span{margin-left:4px;padding:1px 7px;border-radius:999px;background:#00000014;font-size:11px}.day-group{display:grid;gap:10px;padding:14px;border:1px solid #dce4df;border-radius:13px;background:#fff}.day-group>header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.day-group>header div{display:grid;gap:2px}.day-group>header span{color:#75827b;font-size:12px}.decision{display:grid;gap:10px;margin-top:13px}.decision label{margin:0}.decision textarea{resize:vertical}.decision .actions{display:flex;gap:10px}.formal-form-section>.notice{margin:12px 0 0}.source{border-top:1px solid #e7ece9;padding:8px 0}.source:first-of-type{margin-top:10px}.source summary{cursor:pointer;font-size:13px;color:#345247}.source summary span{color:#84918a}.source pre{white-space:pre-wrap;word-break:break-word;font:12px/1.65 inherit;color:#3e4e47;background:#f7f9f8;padding:12px;border-radius:8px;max-height:480px;overflow:auto}.history{margin:12px 0 0;padding-left:18px;font-size:13px;line-height:1.6}.history li{margin-bottom:6px}.review-technical summary{cursor:pointer}.review-technical pre{max-height:360px;overflow:auto;padding:12px;border-radius:8px;white-space:pre-wrap;word-break:break-all;color:#46594f;background:#f7f9f8;font:10px/1.5 ui-monospace,monospace}.accounts,.audit{width:100%;border-collapse:collapse;font-size:13px}.accounts th,.audit th{text-align:left;color:#75827c;background:#f5f7f5;font-size:11px;border-bottom:1px solid #e3e9e5;padding:10px 8px}.accounts td,.audit td{border-bottom:1px solid #e8eeea;padding:9px 8px;vertical-align:top}.accounts tr.disabled{opacity:.5}.row-actions{display:flex;gap:12px;flex-wrap:wrap}.audit{display:block;overflow-x:auto}@media(max-width:760px){.page-header{display:grid;align-items:start}.review-context{grid-template-columns:1fr}.change-list li{grid-template-columns:1fr;gap:3px}.change-list li i{display:none}}
