@font-face{font-family:OPPOSans;src:url(/fonts/OPPOSans-Variable-subset.woff2) format("woff2-variations"),url(/fonts/OPPOSans-Variable-subset.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+0020-007E,U+2000-206F,U+3000-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:Inter,-apple-system,PingFang SC,Microsoft YaHei,system-ui,sans-serif;font-feature-settings:"cv11","ss01","tnum";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:var(--bg-app);color:var(--ink-1);overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}input,textarea{font:inherit;color:inherit}:root{--plan: oklch(.685 .169 277);--do: oklch(.795 .184 86);--check: oklch(.765 .177 163);--act: oklch(.704 .191 22);--plan-soft: oklch(.685 .169 277 / .14);--do-soft: oklch(.795 .184 86 / .16);--check-soft: oklch(.765 .177 163 / .14);--act-soft: oklch(.704 .191 22 / .14);--kpi-yellow: oklch(.82 .16 86);--kpi-blue: oklch(.72 .14 248);--kpi-purple: oklch(.7 .16 295);--kpi-red: oklch(.7 .18 22);--radius-card: 1rem;--radius-ctrl: .5rem;--radius-pill: 9999px;--font-display: "OPPOSans", "Inter", -apple-system, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--shadow-inset-recess: inset 0 1px 0 0 oklch(0 0 0 / .06), 0 0 0 1px var(--line-1) inset;--gradient-phase-plan: linear-gradient(135deg, var(--plan), oklch(.62 .18 260));--gradient-phase-do: linear-gradient(135deg, var(--do), oklch(.78 .16 60));--gradient-phase-check: linear-gradient(135deg, var(--check), oklch(.74 .17 195));--gradient-phase-act: linear-gradient(135deg, var(--act), oklch(.66 .18 36));--scrim-modal: oklch(.3 .04 50 / .5);--t-fast: .14s cubic-bezier(.2,.8,.2,1);--t-med: .24s cubic-bezier(.2,.8,.2,1);--t-slow: .42s cubic-bezier(.2,.8,.2,1)}:root,[data-theme=maillard]{color-scheme:light;--bg-app: oklch(.945 .018 65);--bg-sidebar: oklch(.915 .022 60);--bg-card: oklch(.965 .014 70);--bg-card-2: oklch(.935 .02 65);--bg-overlay: oklch(.965 .014 70 / .92);--bg-pill: oklch(.905 .024 58);--bg-input: oklch(.955 .018 68);--ink-1: oklch(.24 .022 52);--ink-2: oklch(.42 .018 55);--ink-3: oklch(.58 .016 58);--ink-4: oklch(.72 .014 60);--line-1: oklch(.86 .018 56);--line-2: oklch(.8 .022 54);--line-3: oklch(.55 .024 52 / .3);--plan-fg: oklch(.5 .18 277);--do-fg: oklch(.55 .18 70);--check-fg: oklch(.5 .16 163);--act-fg: oklch(.52 .2 22);--shadow-card: 0 0 0 1px var(--line-1), 0 12px 28px -14px oklch(.3 .04 50 / .3);--shadow-hover: 0 0 0 1px var(--line-2), 0 18px 38px -14px oklch(.28 .05 50 / .4);--shadow-focus: 0 0 0 1px var(--line-2), 0 24px 48px -16px oklch(.25 .06 48 / .5);--shadow-glow: 0 0 24px -2px oklch(.7 .15 60 / .25);--ambient-1: radial-gradient(60% 40% at 0% 0%, oklch(.78 .1 60 / .35), transparent 70%);--ambient-2: radial-gradient(50% 50% at 100% 100%, oklch(.78 .08 35 / .25), transparent 70%);--frost-bg: oklch(.94 .02 60 / .78)}[data-theme=dark]{--scrim-modal: oklch(0 0 0 / .55);color-scheme:dark;--bg-app: oklch(.145 .005 285);--bg-sidebar: oklch(.16 .005 285);--bg-card: oklch(.19 .006 285);--bg-card-2: oklch(.22 .007 285);--bg-overlay: oklch(.19 .006 285 / .85);--bg-pill: oklch(.23 .008 285);--bg-input: oklch(.18 .005 285);--ink-1: oklch(.97 .004 285);--ink-2: oklch(.78 .006 285);--ink-3: oklch(.62 .008 285);--ink-4: oklch(.45 .008 285);--line-1: oklch(1 0 0 / .06);--line-2: oklch(1 0 0 / .12);--line-3: oklch(1 0 0 / .2);--plan-fg: var(--plan);--do-fg: var(--do);--check-fg: var(--check);--act-fg: var(--act);--shadow-card: 0 0 0 1px oklch(0 0 0 / .4), 0 20px 40px -10px oklch(0 0 0 / .5);--shadow-hover: 0 0 0 1px oklch(1 0 0 / .1), 0 26px 52px -12px oklch(0 0 0 / .6);--shadow-focus: 0 0 0 1px oklch(1 0 0 / .16), 0 30px 60px -14px oklch(0 0 0 / .7);--shadow-glow: 0 0 28px -2px oklch(.7 .15 248 / .35);--shadow-inset-recess: inset 0 1px 0 0 oklch(1 0 0 / .04), 0 0 0 1px oklch(0 0 0 / .4) inset;--ambient-1: radial-gradient(50% 40% at 0% 0%, oklch(.55 .18 277 / .18), transparent 70%);--ambient-2: radial-gradient(50% 50% at 100% 100%, oklch(.62 .14 235 / .14), transparent 70%);--frost-bg: oklch(.16 .008 285 / .62)}.app-shell{position:fixed;inset:0;display:grid;grid-template-columns:var(--sidebar-w, 224px) 1fr;background:var(--bg-app);transition:background var(--t-med)}.app-shell:before,.app-shell:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0}.app-shell:before{background:var(--ambient-1);opacity:.9}.app-shell:after{background:var(--ambient-2);opacity:.9}.app-shell>*{position:relative;z-index:1}.main-area{overflow-y:auto;overflow-x:hidden;padding:28px 36px 80px;scroll-behavior:smooth}.main-area::-webkit-scrollbar,.scroll-area::-webkit-scrollbar{width:5px;height:5px}.main-area::-webkit-scrollbar-thumb,.scroll-area::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:9999px}.main-area::-webkit-scrollbar-thumb:hover,.scroll-area::-webkit-scrollbar-thumb:hover{background:var(--line-3)}h1,h2,h3,.display-num{font-family:var(--font-display);font-feature-settings:"tnum"}.card{background:var(--bg-card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:box-shadow var(--t-fast),transform var(--t-fast)}.card.is-hover:hover{box-shadow:var(--shadow-hover)}.card-pad{padding:20px}.card-pad-l{padding:24px 28px}.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:var(--radius-ctrl);background:var(--bg-pill);color:var(--ink-1);font-size:13px;font-weight:500;transition:background var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);box-shadow:0 0 0 1px var(--line-1) inset}.btn:hover{background:var(--bg-card-2);box-shadow:0 0 0 1px var(--line-2) inset}.btn:active{transform:scale(.98)}.btn.is-primary{background:var(--ink-1);color:var(--bg-app);box-shadow:0 0 0 1px var(--ink-1) inset}.btn.is-ghost{background:transparent;box-shadow:none}.btn.is-icon{width:36px;padding:0;justify-content:center}.btn.is-sm{height:28px;padding:0 10px;font-size:12px}.input{height:36px;padding:0 12px;border-radius:var(--radius-ctrl);background:var(--bg-input);color:var(--ink-1);outline:none;box-shadow:0 0 0 1px var(--line-1) inset;transition:box-shadow var(--t-fast);font-size:13px}.input::placeholder{color:var(--ink-4)}.input:focus-visible{box-shadow:0 0 0 2px var(--plan) inset}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:600;letter-spacing:.02em;background:var(--bg-pill);color:var(--ink-2);white-space:nowrap}.badge.is-plan{background:var(--plan-soft);color:var(--plan-fg)}.badge.is-do{background:var(--do-soft);color:var(--do-fg)}.badge.is-check{background:var(--check-soft);color:var(--check-fg)}.badge.is-act{background:var(--act-soft);color:var(--act-fg)}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:4px;background:var(--bg-pill);box-shadow:0 0 0 1px var(--line-2) inset,0 1px 0 0 var(--line-2);font:500 10.5px JetBrains Mono,monospace;color:var(--ink-2)}.phase-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0}.kpi{position:relative;overflow:hidden;transition:box-shadow var(--t-fast),transform var(--t-fast)}.kpi:hover{transform:translateY(-2px)}.kpi-yellow{--kpi: var(--kpi-yellow)}.kpi-blue{--kpi: var(--kpi-blue)}.kpi-purple{--kpi: var(--kpi-purple)}.kpi-red{--kpi: var(--kpi-red)}.kpi{background:color-mix(in oklch,var(--kpi) 8%,var(--bg-card));box-shadow:0 0 0 1px color-mix(in oklch,var(--kpi) 14%,transparent),0 12px 28px -14px #3e281b33}.kpi:hover{box-shadow:0 0 0 1px color-mix(in oklch,var(--kpi) 35%,transparent),0 0 24px -2px color-mix(in oklch,var(--kpi) 30%,transparent),0 18px 38px -14px #3c21114d}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .45s var(--t-med) both}@keyframes spin360{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pulse-glow{0%,to{box-shadow:0 0 60px 0 var(--glow-color, oklch(.72 .16 230 / .4))}50%{box-shadow:0 0 100px 8px var(--glow-color, oklch(.72 .16 230 / .55))}}@keyframes float-particle{0%{transform:translate(0) scale(1);opacity:0}20%{opacity:var(--p-opacity, .55)}to{transform:translate(var(--p-x, 0),var(--p-y, -200px)) scale(.4);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:0ms!important;transition-duration:0ms!important}}:where(button,[role=button],a,input,select,textarea):focus-visible{outline:2px solid var(--plan);outline-offset:2px;border-radius:6px}
