:root{font-family:Segoe UI,Arial,sans-serif;color:#1c3045;background:#f3f5f7;font-size:15px}*{box-sizing:border-box}body{margin:0}header{height:80px;background:#fff;border-bottom:1px solid #dce3e9;display:flex;align-items:center;justify-content:space-between;padding:0 5vw}.brand{font-size:22px;font-weight:700;letter-spacing:-.5px}.brand span{color:#168477;margin:0 10px}.badge{background:#edf4f3;color:#216e65;border-radius:30px;padding:7px 14px;font-size:12px}main{max-width:1300px;margin:auto;display:grid;grid-template-columns:310px 1fr;gap:52px;padding:42px 30px}h1{font-size:36px;line-height:1.15;letter-spacing:-1.4px;margin:16px 0}aside>p{color:#687783;line-height:1.65}.eyebrow{font-size:11px;letter-spacing:1.7px;font-weight:700;color:#168477}nav{display:grid;gap:7px;margin:30px 0}nav button{background:none;text-align:left;border:0;padding:13px 14px;border-radius:8px;color:#687783}nav button.active{background:#dfeeea;color:#145c53;font-weight:600}.note{font-size:13px;line-height:1.6;background:#e7edf2;padding:16px;border-radius:10px;color:#526475}.toolbar{display:flex;justify-content:flex-end;gap:10px;margin-bottom:20px}button{cursor:pointer;border:1px solid #cfd9e0;border-radius:7px;background:#fff;color:#30465c;padding:10px 16px;font:inherit;font-size:13px}button:hover{border-color:#168477}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #83c9be;outline-offset:2px}button:disabled{opacity:.4;cursor:default}.primary{background:#167e70;border-color:#167e70;color:#fff}.card{background:#fff;border:1px solid #e0e6ea;border-radius:15px;padding:30px;min-height:510px;box-shadow:0 8px 24px #293c4c05}h2{font-size:26px;letter-spacing:-.6px;margin:12px 0}.muted{color:#71808b;line-height:1.6;margin:0 0 28px}.field{display:block;margin:19px 0}.field>span{display:block;font-size:13px;font-weight:600;margin-bottom:8px}.field small{display:block;color:#72808b;margin-top:7px;font-size:12px;line-height:1.5}input:not([type=checkbox]),select,textarea{width:100%;border:1px solid #ccd6de;border-radius:7px;padding:11px;background:#fff;font:inherit;color:#263d50}textarea{min-height:85px;resize:vertical}.check{display:flex;gap:12px;align-items:flex-start;border:1px solid #e1e7ec;padding:15px;margin:10px 0;border-radius:9px}.check input{accent-color:#167e70;width:17px;height:17px;flex-shrink:0}.check span{font-weight:600;font-size:14px}.check small{display:block;font-weight:400;color:#72808b;margin-top:5px;line-height:1.5}.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.footer{display:flex;justify-content:space-between;align-items:center;margin:22px 0}.footer span{font-size:12px;color:#72808b}.notice{padding:13px 15px;border-radius:8px;margin:10px 0;line-height:1.55;font-size:13px;background:#edf4f3;color:#285f55}.error{background:#fff0ed;color:#973b2d}.warning{background:#fff6df;color:#806016}.summary{border-bottom:1px solid #e8edf1;padding:13px 0;display:flex;justify-content:space-between;gap:20px;font-size:14px}.summary strong{text-align:right}.list{font-size:13px;line-height:1.7;padding-left:20px}@media(max-width:900px){main{grid-template-columns:1fr;gap:20px;padding:24px 16px}h1{font-size:28px}h1 br{display:none}nav{grid-template-columns:1fr 1fr;margin:15px 0}aside .note{display:none}.card{padding:22px}.grid{grid-template-columns:1fr}header{padding:0 20px}.badge{font-size:10px}}
.cloud-panel{border:1px solid #c5dfd8;background:#f9fcfb;padding:20px;border-radius:10px;margin:24px 0}.cloud-panel h3{margin:0 0 10px;font-size:18px}.cloud-panel .muted{font-size:13px;margin-bottom:14px}
.real-panel{margin-top:26px;min-width:0}.real-panel h3{font-size:20px}.review-tools{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.counts>div{background:#edf4f3;padding:14px;border-radius:9px}.counts strong{display:block;font-size:25px;color:#145c53}.counts span{display:block;font-size:12px;line-height:1.4;margin-top:5px}.review-list{max-height:640px;overflow:auto;border:1px solid #dce3e9;border-radius:9px}.review-row{padding:16px;border-bottom:1px solid #e3e9ed;overflow-wrap:anywhere}.review-row:last-child{border:0}.review-heading{display:flex;gap:8px;align-items:start;justify-content:space-between}.review-heading strong{font-size:14px}.pill{font-size:11px;background:#e7edf2;padding:4px 8px;border-radius:12px;flex-shrink:0}.pill.excluded{background:#fce9e3;color:#873b2b}.row-meta{font-size:12px;color:#687783;line-height:1.6;margin:8px 0}.row-choice{display:flex;align-items:start;gap:9px;font-size:13px;margin:10px 0}.row-choice input{accent-color:#167e70;margin-top:2px}.review-row summary,.plan-issues summary{cursor:pointer;font-size:13px;padding:9px 0}.recipe-detail{background:#f6f8fa;padding:12px;border-radius:8px;font-size:13px;margin:8px 0}.norm-line{font-size:12px;line-height:1.6}.plan-issues{margin:22px 0;border-top:1px solid #dce3e9}.plan-issues>details{padding:0 12px;border-bottom:1px solid #e3e9ed;max-height:350px;overflow:auto}.workspace{min-width:0}@media(max-width:600px){.counts{grid-template-columns:repeat(2,minmax(0,1fr))}.review-heading{flex-direction:column}.review-tools button{flex:1 1 170px}.card{padding:18px}}

.mapping-panel{margin:22px 0;padding:20px;background:#f9fcfb;border:1px solid #c5dfd8;border-radius:10px}.mapping-card{margin:14px 0;padding:15px;background:#fff;border:1px solid #dce3e9;border-radius:9px}.mapping-panel h4{font-size:17px;margin:24px 0 10px}.mapping-card .field{margin:12px 0}.mapping-panel .muted{font-size:13px;margin:12px 0}

/* RestoGuru: palette and local Fira Sans from the official restoguru.ru. */
.session-controls{display:flex;align-items:center;gap:14px;font-size:13px}.session-controls #session-error{color:#973b2d;font-size:12px}@media(max-width:700px){.session-controls{gap:8px}.session-controls .badge{display:none}}
:root{font-family:'Fira Sans',Segoe UI,Arial,sans-serif;color:#14143a;background:#f5f5f8;--accent:#e21f26;--accent-dark:#c2161c}
header{height:88px;border-color:#14143a1a;box-shadow:0 2px 14px #14143a04}
.brand{display:flex;align-items:center;gap:22px;text-decoration:none;color:#14143a;font-size:16px;font-weight:600;letter-spacing:0}
.brand img{height:58px;width:auto;display:block}
.brand .brand-divider{width:1px;height:30px;background:#e6e6ed;margin:0}
.brand .brand-title{color:#14143a;margin:0}
.badge{background:#fff0f1;color:#bb1a20;font-weight:600;border:1px solid #f7d9da}
h1,h2,h3,h4{color:#14143a}h1{font-size:38px;letter-spacing:-1.2px;line-height:1.12}
aside>p,.muted,.row-meta{color:#65657b}.eyebrow{color:var(--accent)}
nav button{color:#65657b;border-radius:8px}nav button.active{background:#ffebec;color:#b11b22;box-shadow:inset 3px 0 var(--accent)}
.note{background:#eeeeF4;color:#57576f;border-left:3px solid #2f2f82}
.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}
button:hover{border-color:var(--accent)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#efa5a9}
.check input,.row-choice input{accent-color:var(--accent)}
.card{border-color:#e7e7ef;border-radius:16px;box-shadow:0 8px 32px #14143a05}
.cloud-panel,.mapping-panel{background:#fff;border-color:#e7dfe3}.counts>div{background:#fff0f1}.counts strong{color:#bc1b22}
.notice:not(.error):not(.warning){background:#f0f0f8;color:#3f3f6c}
@media(max-width:600px){header{height:78px;padding:0 16px}.brand{gap:12px}.brand img{height:48px}.brand .brand-divider{display:none}.brand .brand-title{font-size:13px;max-width:70px}.badge{font-size:10px;padding:7px 9px}h1{font-size:30px}}
