:root{color-scheme:light;--page:light-dark(#ffffff,#0a0a0c);--rail:light-dark(#f4f4f6,#16181d);--surface:light-dark(#ffffff,#16181d);--surface2:light-dark(#fafafa,#1d2027);--surface3:light-dark(#f4f4f5,#23262e);--ink:light-dark(#09090b,#fafafa);--ink2:light-dark(#3f3f46,#d4d4d8);--muted:light-dark(#71717a,#8b8f99);--grid:light-dark(#f4f4f5,#23262e);--axis:light-dark(#e4e4e7,#2a2d34);--ring:light-dark(#e4e4e7,#2a2d34);--brand:#1f324e;--accent:light-dark(#1f324e,#93b4dc);--accent-soft:light-dark(rgba(31,50,78,.08),rgba(147,180,220,.16));--on-accent:light-dark(#ffffff,#0a0a0c);--s1:light-dark(#0284c7,#38bdf8);--s2:light-dark(#ea580c,#fb923c);--s3:light-dark(#059669,#34d399);--good:light-dark(#16a34a,#4ade80);--warn:light-dark(#b45309,#fbbf24);--county:light-dark(#1d4ed8,#7dabff);--serious:light-dark(#ea580c,#fb923c);--crit:light-dark(#dc2626,#f87171);--radius:12px;--shadow-card:0 1px 2px rgba(17,19,24,.04),0 12px 30px -16px rgba(17,19,24,.28);--shadow-card-hover:0 2px 6px rgba(17,19,24,.07),0 18px 40px -20px rgba(17,19,24,.4);font-size:15px}html.dark{color-scheme:dark;--shadow-card:0 1px 2px rgba(0,0,0,.5),0 12px 30px -16px rgba(0,0,0,.8);--shadow-card-hover:0 2px 6px rgba(0,0,0,.6),0 18px 40px -20px rgba(0,0,0,.9)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--page);color:var(--ink);font-family:var(--font-geist-sans),"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.neu-rest{transition:box-shadow .2s ease,transform .2s ease,color .15s ease}.neu-rest:hover{box-shadow:8px 8px 18px rgba(141,149,171,.8),-7px -7px 16px #ffffff;transform:translateY(-2px)}.neu-rest:active{box-shadow:inset 6px 6px 13px rgba(133,141,163,.85),inset -6px -6px 12px #ffffff;transform:none}.neu-inset{box-shadow:inset 6px 6px 13px rgba(133,141,163,.9),inset -6px -6px 12px #ffffff;background-color:rgba(120,128,150,.1)}html.dark .neu-rest:hover{box-shadow:6px 6px 16px rgba(0,0,0,.55),-5px -5px 14px rgba(255,255,255,.03)}html.dark .neu-inset,html.dark .neu-rest:active{box-shadow:inset 5px 5px 12px rgba(0,0,0,.6),inset -5px -5px 11px rgba(255,255,255,.035)}html.dark .neu-inset{background-color:rgba(255,255,255,.06)}#app{display:flex;overflow:hidden}#sidebar{width:228px;min-width:228px;background:var(--rail);margin:8px 0 8px 8px;border-radius:16px;display:flex;flex-direction:column;padding:18px 12px;gap:2px;overflow-y:auto}.mobile-nav-backdrop,.mobile-nav-close,.mobile-nav-toggle{display:none}.brand{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:4px 10px 16px}.brand .logo{display:flex;align-items:baseline;gap:4px;flex-shrink:0;filter:drop-shadow(0 1px 1px rgba(17,19,24,.16)) drop-shadow(0 5px 11px rgba(17,19,24,.24))}.brand .logo img{height:19px;width:auto;flex-shrink:0}html.dark .brand .logo img{filter:invert(1) brightness(1.6)}.brand .logo b{font-weight:900;font-size:26px;line-height:1;letter-spacing:-.03em;text-transform:uppercase;color:var(--brand)}html.dark .brand .logo b{color:#dbe6f5}.brand .t{flex:0 0 100%;margin-top:-4px;font-weight:600;font-size:.68rem;line-height:1.15;letter-spacing:.08em}.brand .t,.navsec{color:var(--muted);text-transform:uppercase}.navsec{margin-top:14px;padding:0 10px 6px;font-size:.66rem;letter-spacing:.1em}.navitem{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;color:var(--ink2);cursor:pointer;font-size:.88rem;border:none;background:none;width:100%;text-align:left}.navitem:hover{color:var(--ink)}.navitem.active{color:var(--brand);font-weight:700}html.dark .navitem.active{color:#dbe6f5}.navitem .ic{width:18px;text-align:center;opacity:.9}.navitem .pill{margin-left:auto;background:var(--surface);border:1px solid var(--ring);border-radius:99px;font-size:.66rem;padding:2px 7px;color:var(--muted)}.navitem.locked{opacity:.35;cursor:not-allowed}.navitem.locked:hover{box-shadow:none;transform:none}#main{flex:1 1;display:flex;flex-direction:column;min-width:0}#topbar{display:flex;align-items:center;gap:12px;padding:12px 22px;border-bottom:1px solid var(--ring);background:var(--page)}#topbar .spacer{flex:1 1}input[type=number],input[type=search],input[type=text],select,textarea{background:var(--surface);color:var(--ink);border:1px solid var(--ring);border-radius:8px;padding:7px 10px;font-size:.86rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0}.switch-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-right:-6px}.topbar-store{font-weight:650}.btn,.topbar-store{font-size:.85rem;color:var(--ink)}.btn{background:var(--surface);border:1px solid var(--ring);border-radius:8px;padding:7px 14px;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-card);transition:background .15s,border-color .15s,box-shadow .2s}.btn:hover{background:var(--surface3)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:650}.btn.primary:hover{background:#2b4468}.btn.ghost{background:none;box-shadow:none}.btn.small{padding:4px 10px;font-size:.76rem}.btn.danger{color:var(--crit);border-color:var(--crit)}.btn:disabled{opacity:.4;cursor:not-allowed}#content{flex:1 1;overflow-y:auto;padding:24px 26px 60px}h1.pagetitle{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.pagehead{display:flex;align-items:center;gap:14px;margin-bottom:6px;padding-bottom:14px;border-bottom:1px solid var(--ring)}.pagehead .sub{color:var(--muted);font-size:.85rem;margin-top:3px}.pagehead .right{margin-left:auto;display:flex;gap:8px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.chip{border:1px solid var(--ring);border-radius:99px;padding:5px 13px;font-size:.78rem;color:var(--ink2);cursor:pointer;background:var(--surface)}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.chips.sub{margin-top:-8px;padding-left:10px;border-left:2px solid var(--ring)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));grid-gap:16px;gap:16px}.card{background:var(--surface);border:1px solid var(--ring);border-radius:var(--radius);overflow:hidden;cursor:pointer;box-shadow:var(--shadow-card);transition:transform .2s ease-out,box-shadow .2s ease-out,border-color .2s}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.card .photo{height:120px;display:flex;align-items:center;justify-content:center;font-size:2.6rem;position:relative;overflow:hidden}.card .photo .photoimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.card .photo .price{position:absolute;right:10px;top:10px;background:rgba(9,9,11,.72);color:#fff;border-radius:8px;padding:3px 9px;font-size:.8rem;font-weight:700}.card .name .has-lesson{margin-left:auto;flex-shrink:0;font-size:.95rem;line-height:1}.card .body{padding:12px 14px 14px}.card .name{font-weight:650;font-size:.95rem;display:flex;align-items:center;gap:8px}.card .meta{color:var(--muted);font-size:.76rem;margin-top:4px}.tag{display:inline-block;background:var(--surface3);border-radius:6px;font-size:.68rem;color:var(--ink2);margin:6px 4px 0 0}.badge,.tag{padding:2px 8px}.badge{font-size:.64rem;border-radius:99px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.badge.active{background:light-dark(#dcfce7,rgba(74,222,128,.16));color:light-dark(#15803d,#4ade80)}.badge.seasonal{background:light-dark(#e0f2fe,rgba(56,189,248,.16));color:light-dark(#0369a1,#38bdf8)}.badge.testing{background:light-dark(#fef3c7,rgba(251,191,36,.16));color:light-dark(#b45309,#fbbf24)}.badge.upcoming{background:light-dark(#ede9fe,rgba(167,139,250,.18));color:light-dark(#6d28d9,#a78bfa)}.badge.archived{background:var(--surface3);color:var(--muted)}.badge.locked{background:var(--accent-soft);color:var(--accent)}.badge.draft{background:var(--surface3);color:var(--ink2)}.badge.submitted{background:light-dark(#ffedd5,rgba(251,146,60,.16));color:light-dark(#c2410c,#fb923c)}.badge.review{background:light-dark(#fef3c7,rgba(251,191,36,.16));color:light-dark(#b45309,#fbbf24)}.badge.approved{background:light-dark(#dcfce7,rgba(74,222,128,.16));color:light-dark(#15803d,#4ade80)}.panel{background:var(--surface);border:1px solid var(--ring);border-radius:var(--radius);padding:18px 20px;margin-bottom:18px;box-shadow:var(--shadow-card)}.panel h3{font-size:.95rem;margin-bottom:12px;display:flex;align-items:center;gap:8px}.panel h3 .hint{font-weight:400;color:var(--muted);font-size:.76rem;margin-left:auto}table.tbl{width:100%;border-collapse:collapse;font-size:.84rem}.tbl th{color:var(--muted);font-weight:600;text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;padding:7px 10px;background:var(--surface2);border-bottom:1px solid var(--axis)}.tbl th:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.tbl th:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.tbl td{padding:8px 10px;border-bottom:1px solid var(--grid);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl .num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tbl tr.rowhover:hover{background:var(--surface2)}.tbl tr.county td{color:var(--county)}.tbl tr.county td .abs{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:3px;cursor:help}.county-search{width:min(100%,420px);margin-bottom:14px}.searchbox{display:flex;align-items:center;gap:10px;margin:0 0 14px}.searchbox input{width:min(100%,380px)}.searchcount{color:var(--muted);font-size:.78rem;white-space:nowrap}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:14px;gap:14px;margin-bottom:18px}.kpi{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--ring);border-radius:var(--radius);padding:16px 16px 14px;box-shadow:var(--shadow-card);transition:transform .2s ease-out,box-shadow .2s ease-out}.kpi:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.kpi:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--tone-a),var(--tone-b))}.kpi{--tone-a:#8b5cf6;--tone-b:#d946ef;--tone:#8b5cf6}.kpi:nth-child(8n+2){--tone-a:#0ea5e9;--tone-b:#2563eb;--tone:#0ea5e9}.kpi:nth-child(8n+3){--tone-a:#34d399;--tone-b:#14b8a6;--tone:#10b981}.kpi:nth-child(8n+4){--tone-a:#fbbf24;--tone-b:#f97316;--tone:#f59e0b}.kpi:nth-child(8n+5){--tone-a:#fb7185;--tone-b:#ec4899;--tone:#f43f5e}.kpi:nth-child(8n+6){--tone-a:#6366f1;--tone-b:#7c3aed;--tone:#6366f1}.kpi:nth-child(8n+7){--tone-a:#2dd4bf;--tone-b:#10b981;--tone:#14b8a6}.kpi:nth-child(8n+8){--tone-a:#d946ef;--tone-b:#ec4899;--tone:#d946ef}.kpi .lbl{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.kpi .val{font-size:1.55rem;font-weight:700;margin-top:6px;letter-spacing:-.02em;color:var(--tone);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi .delta{font-size:.75rem;margin-top:3px;color:var(--ink2)}.kpi .delta.up{color:var(--good)}.kpi .delta.down{color:var(--serious)}.cols{display:grid;grid-gap:18px;gap:18px}.cols.c2{grid-template-columns:1fr 1fr}.cols.c3{grid-template-columns:1fr 1fr 1fr}.cols.c21{grid-template-columns:1.6fr 1fr}@media(max-width:1100px){.cols.c2,.cols.c21,.cols.c3{grid-template-columns:1fr}}.ingrow{display:flex;gap:8px;align-items:center;margin-bottom:8px}.ingrow select{flex:1 1}.ingrow input{width:74px}.ingrow .cost{width:64px;text-align:right;color:var(--ink2);font-size:.8rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ingrow .x{color:var(--muted);cursor:pointer;padding:4px 6px;border-radius:6px}.ingrow .x:hover{background:var(--surface3);color:var(--crit)}.livebar{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:10px;gap:10px}.live{background:var(--surface2);border:1px solid var(--ring);border-radius:10px;padding:10px 12px;text-align:center}.live .lbl{font-size:.64rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.live .val{font-size:1.1rem;font-weight:700;margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.live.ok .val{color:var(--good)}.live.bad .val{color:var(--serious)}.formrow{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}.formrow .fld{display:flex;flex-direction:column;gap:5px}.formrow label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.tagpick{display:flex;flex-wrap:wrap;gap:6px}.tagpick .tp{border:1px solid var(--ring);border-radius:99px;padding:4px 11px;font-size:.75rem;cursor:pointer;color:var(--ink2)}.tagpick .tp.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.garnishgroup{margin-bottom:12px}.garnishgroup:last-child{margin-bottom:0}.garnishgroup .lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px}#modal-back{inset:0;background:rgba(9,9,11,.4);z-index:40}#modal,#modal-back{position:fixed;display:none}#modal{top:4vh;left:50%;transform:translateX(-50%);width:min(880px,94vw);max-height:92vh;overflow-y:auto;background:var(--surface);border:1px solid var(--ring);border-radius:16px;z-index:41;box-shadow:var(--shadow-card-hover)}#modal .mhead{padding:22px 24px 4px;position:relative;display:flex;gap:20px;align-items:flex-start}#modal .mphoto{width:192px;height:192px;flex:0 0 192px;display:flex;align-items:center;justify-content:center;font-size:3.4rem;overflow:hidden;border-radius:14px}#modal .mheadtext{flex:1 1;min-width:0;padding-right:42px}#modal .mclose{position:absolute;top:12px;right:14px;background:var(--surface3);border:1px solid var(--ring);color:var(--ink);width:32px;height:32px;border-radius:99px;cursor:pointer;font-size:1rem}#modal .mbody{padding:10px 24px 26px}.spec2{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:10px;gap:10px;margin:14px 0}.spec2 .sp{background:var(--surface2);border-radius:9px;padding:9px 11px}.spec2 .sp .l{font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.spec2 .sp .v{font-size:.86rem;font-weight:600;margin-top:3px}.pipe{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}@media(max-width:1100px){.pipe{grid-template-columns:1fr 1fr}}.pipecol{background:var(--surface);border:1px solid var(--ring);border-radius:var(--radius);padding:14px;min-height:200px;box-shadow:var(--shadow-card)}.pipecol h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:12px;display:flex;gap:8px;align-items:center}.pipecard{background:var(--surface2);border:1px solid var(--ring);border-radius:10px;padding:11px 12px;margin-bottom:10px}.pipecard:hover{box-shadow:var(--shadow-card)}.pipecard .n{font-weight:650;font-size:.87rem}.pipecard .m{color:var(--muted);font-size:.73rem;margin:4px 0 8px}.pipecard .acts{display:flex;gap:6px;flex-wrap:wrap}#bt-mode{position:fixed;inset:0;background:var(--page);z-index:60;display:none;flex-direction:column;overflow-y:auto}#bt-mode .bt-top{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:18px 26px;position:-webkit-sticky;position:sticky;top:0;background:var(--page);border-bottom:1px solid var(--ring)}#bt-mode input{font-size:1.2rem;padding:12px 18px;flex:1 1;border-radius:12px}#bt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:14px;gap:14px;padding:22px 26px}.btcard{background:var(--surface);border:1px solid var(--ring);border-radius:12px;padding:16px;cursor:pointer;font-size:1.05rem;font-weight:650;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-card);transition:transform .2s ease-out,box-shadow .2s ease-out}.btcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}#bt-recipe{padding:10px 26px 80px;max-width:760px;margin:0 auto;width:100%}#bt-recipe .big-name{font-size:2.3rem;font-weight:800;letter-spacing:-.02em;margin:16px 0 4px}#bt-recipe .bt-line{font-size:1.5rem;padding:13px 4px;border-bottom:1px solid var(--grid);display:flex;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}#bt-recipe .bt-line .amt{width:120px;font-weight:750;color:var(--accent)}#bt-recipe .bt-method{font-size:1.25rem;background:var(--surface);border:1px solid var(--ring);border-radius:12px;padding:16px 18px;margin-top:18px;line-height:1.5;box-shadow:var(--shadow-card)}#bt-recipe .allergen{margin-top:14px;color:var(--warn);font-size:.95rem}.qcrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.qcrow .q{background:var(--surface2);border-radius:8px;padding:6px 12px;font-size:.8rem;color:var(--ink2)}.update-bar{position:fixed;z-index:80;left:50%;transform:translateX(-50%);bottom:max(18px,env(safe-area-inset-bottom));width:min(560px,calc(100vw - 28px));display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--accent);border-radius:12px;padding:12px 14px;font-size:.82rem;color:var(--muted);box-shadow:var(--shadow-card-hover)}.update-bar b{color:var(--ink)}.update-bar .btn{margin-left:auto;flex-shrink:0}.viz-tip{position:fixed;z-index:70;pointer-events:none;display:none;background:var(--surface);border:1px solid var(--ring);border-radius:8px;padding:6px 10px;font-size:.76rem;color:var(--ink);box-shadow:var(--shadow-card-hover)}.quiz-opt,svg text{font-family:inherit}.quiz-opt{display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--ring);color:var(--ink2);border-radius:9px;padding:10px 14px;margin-bottom:8px;cursor:pointer;font-size:.88rem;box-shadow:var(--shadow-card)}.quiz-opt:hover{border-color:var(--accent);color:var(--ink)}.quiz-opt.correct{border-color:var(--good);color:var(--good)}.quiz-opt.wrong{border-color:var(--crit);color:var(--crit)}.notice{background:var(--surface2);border:1px dashed var(--axis);border-radius:12px;padding:12px 16px;color:var(--muted);font-size:.82rem;margin-bottom:16px}.flavor-axis-lbl{fill:var(--muted);font-size:11px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--axis);border-radius:6px}::-webkit-scrollbar-track{background:transparent}a{color:inherit;text-decoration:none}#app{height:100vh}.navitem{font-family:inherit}#content{position:relative}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(1200px 600px at 50% -10%,rgba(31,50,78,.07),transparent),var(--rail)}.login-card{width:min(400px,92vw);background:var(--surface);border:1px solid var(--ring);border-radius:16px;padding:34px 32px;box-shadow:var(--shadow-card-hover)}.login-card .logo{display:flex;align-items:baseline;gap:5px;margin-bottom:18px;filter:drop-shadow(0 1px 1px rgba(17,19,24,.16)) drop-shadow(0 5px 11px rgba(17,19,24,.24))}.login-card .logo img{height:22px;width:auto}html.dark .login-card .logo img{filter:invert(1) brightness(1.6)}.login-card .logo b{font-weight:900;font-size:30px;line-height:1;letter-spacing:-.03em;text-transform:uppercase;color:var(--brand)}html.dark .login-card .logo b{color:#dbe6f5}.login-card h1{font-size:1.25rem;margin-bottom:4px}.login-card .sub{color:var(--muted);font-size:.85rem;margin-bottom:22px}.login-card label{display:block;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin:14px 0 6px}.login-card input{width:100%;padding:10px 12px;font-size:.95rem}.login-card button{width:100%;margin-top:22px;padding:11px;font-size:.95rem}.login-err{color:var(--crit);font-size:.82rem;margin-top:12px}.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);gap:12px}.spin{width:18px;height:18px;border:2px solid var(--axis);border-top-color:var(--accent);border-radius:99px;animation:sp 1s linear infinite}@keyframes sp{to{transform:rotate(1turn)}}@media(max-width:760px){#app{height:100vh;height:100dvh}#sidebar{position:fixed;inset:0 auto 0 0;z-index:50;width:min(300px,86vw);min-width:0;padding:max(18px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom));margin:0;border-radius:0 16px 16px 0;box-shadow:18px 0 50px rgba(17,19,24,.28);transform:translateX(-102%);visibility:hidden;pointer-events:none;transition:transform .2s ease-out,visibility 0s linear .2s}#sidebar.mobile-open{transform:translateX(0);visibility:visible;pointer-events:auto;transition:transform .2s ease-out,visibility 0s}#sidebar .navitem,.brand{min-height:44px}.brand{padding-right:2px}.mobile-nav-close,.mobile-nav-toggle{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border:1px solid var(--ring);border-radius:10px;color:var(--ink);background:var(--surface);cursor:pointer;font:inherit}.mobile-nav-close{margin-left:auto}.mobile-nav-backdrop:focus-visible,.mobile-nav-close:focus-visible,.mobile-nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mobile-nav-backdrop{display:block;position:fixed;inset:0;z-index:49;width:100%;height:100%;border:0;background:rgba(9,9,11,.4);cursor:pointer}#main{width:100%;min-height:0}#topbar{min-height:60px;gap:8px;padding:max(8px,env(safe-area-inset-top)) 12px 8px}#topbar .spacer,#topbar .switch-label,.profile-summary,.topbar-bartender{display:none}#topbar .topbar-select{flex:1 1 130px;min-width:100px;max-width:220px;min-height:44px}#content{padding:16px 14px max(44px,env(safe-area-inset-bottom))}.pagehead{align-items:flex-start;flex-wrap:wrap}.pagehead .right:empty{display:none}.pagehead .right:not(:empty){width:100%;margin-left:0}}@media(prefers-reduced-motion:reduce){#sidebar,#sidebar.mobile-open{transition:none}}.locale-switch{display:flex;gap:6px;padding:6px 10px 2px}.locale-switch button{flex:1 1;border:1px solid transparent;border-radius:10px;padding:5px 8px;font:inherit;font-size:.76rem;color:var(--muted);background:none;cursor:pointer}.locale-switch button:hover{color:var(--ink)}.locale-switch button.on{color:var(--brand);font-weight:700;border-color:var(--ring);background:var(--surface)}html.dark .locale-switch button.on{color:#dbe6f5}.source-panel .alt{color:var(--muted);font-weight:400}.source-title{font-size:1.05rem;font-weight:650;margin-bottom:2px}.source-book{color:var(--muted);font-size:.76rem;margin-bottom:12px}.source-steps-head{margin:16px 0 6px;font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.source-steps{font-size:.9rem;color:var(--ink2);line-height:1.85;white-space:pre-line}.source-steps-note{margin-top:10px;color:var(--muted);font-size:.76rem;font-style:italic}.source-panel .tag{margin:0 0 0 6px}.unit-switch{display:flex;gap:2px;border:1px solid var(--ring);border-radius:9px;padding:2px;background:var(--surface)}.unit-switch button{border:none;background:none;border-radius:7px;padding:3px 10px;cursor:pointer;font:inherit;font-size:.76rem;color:var(--muted)}.unit-switch button:hover{color:var(--ink)}.unit-switch button.on{background:var(--accent-soft);color:var(--accent);font-weight:700}.store-logo{max-width:82%;max-height:74%;object-fit:contain}.card .photo.has-logo{background:#0a0a0c!important}.ivea-mark{filter:brightness(0) invert(1)}.store-logo-preview{width:52px;height:52px;object-fit:contain;border:1px solid var(--ring);border-radius:8px;background:var(--surface2);padding:4px}.lesson-stage{position:relative;background:#000;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin:10px 0}.lesson-video{width:100%;max-height:70vh;display:block}.lesson-stamp{position:absolute;right:14px;top:12px;color:rgba(255,255,255,.42);font-size:.72rem;letter-spacing:.04em;text-shadow:0 1px 3px rgba(0,0,0,.9);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;max-width:60%;text-align:right}.lesson-stage-waiting{min-height:220px;color:var(--muted);gap:10px}.lesson-video::cue{background:transparent;color:#fff;font-family:Helvetica Neue,Helvetica,sans-serif;text-shadow:0 0 4px #000,0 0 8px #000,0 1px 2px #000}.lesson-note{font-size:.82rem;color:var(--muted);margin:8px 0 0}.lesson-note-warn{color:var(--warn,#c76b3a)}.lesson-recipe{margin-top:10px}html[data-embedded] #sidebar,html[data-embedded] .mobile-nav-toggle{display:none}html[data-embedded] #main{margin-left:0;width:100%}.logo .astral-mark{height:26px;width:26px;border-radius:7px;align-self:center}@font-face{font-family:GeistSans;src:url(/_next/static/media/0b78ff376f6b9734-s.p.woff2) format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:GeistSans Fallback;src:local("Arial");ascent-override:94.56%;descent-override:27.76%;line-gap-override:0.00%;size-adjust:106.28%}.__className_8adcd2{font-family:GeistSans,GeistSans Fallback}.__variable_8adcd2{--font-geist-sans:"GeistSans","GeistSans Fallback"}