@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-vietnamese-wght-italic-xAqemagA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-ext-wght-italic-DFS986qL.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:italic;font-display:swap;font-weight:200 800;src:url(/assets/newsreader-latin-wght-italic-Bxi8ein9.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:oklch(15% .008 279);--bg-elevated:oklch(13.2% .008 279);--surface:oklch(19.5% .01 279);--surface-2:oklch(16.5% .009 279);--overlay:oklch(23% .011 279);--sidebar:oklch(14% .008 279);--ink:oklch(94% .004 279);--muted:oklch(70% .012 279);--faint:oklch(50% .014 279);--primary:oklch(62% .16 279);--primary-hover:oklch(68% .16 279);--primary-press:oklch(56% .17 279);--primary-btn:oklch(50% .17 279);--primary-btn-hover:oklch(57% .17 279);--on-primary:oklch(99% 0 0);--primary-soft:color-mix(in oklch, var(--primary) 16%, transparent);--primary-line:color-mix(in oklch, var(--primary) 42%, transparent);--gain:oklch(72% .14 155);--gain-soft:color-mix(in oklch, var(--gain) 14%, transparent);--loss:oklch(66% .17 25);--loss-soft:color-mix(in oklch, var(--loss) 14%, transparent);--warn:oklch(78% .14 85);--warn-soft:color-mix(in oklch, var(--warn) 14%, transparent);--border:color-mix(in oklch, var(--ink) 9%, transparent);--border-strong:color-mix(in oklch, var(--ink) 16%, transparent);--hairline:color-mix(in oklch, var(--ink) 5.5%, transparent);--font-sans:"Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Newsreader Variable", Newsreader, Georgia, ui-serif, serif;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.9375rem;--fs-md:1rem;--fs-lg:1.125rem;--fs-xl:1.3125rem;--fs-2xl:1.625rem;--fs-3xl:2.25rem;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.55;--lh-relaxed:1.7;--tracking-tight:-.02em;--tracking-tighter:-.03em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:40px;--sp-9:56px;--sp-10:72px;--r-xs:6px;--r-sm:8px;--r-md:10px;--r-lg:14px;--r-xl:18px;--r-pill:999px;--sidebar-w:252px;--content-max:1080px;--page-pad-x:clamp(16px, 4vw, 48px);--z-sticky:100;--z-mobile-nav:200;--z-dropdown:300;--z-overlay:400;--z-modal:500;--z-toast:600;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 18px #00000061;--shadow-lg:0 18px 48px #00000080;--ring:0 0 0 3px color-mix(in oklch, var(--primary) 38%, transparent);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-standard:cubic-bezier(.4, 0, .2, 1);--dur-fast:.14s;--dur:.2s;--dur-slow:.32s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);font-feature-settings:"cv02", "cv03", "cv04", "cv11", "ss01";font-variant-ligatures:common-ligatures;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-synthesis:none;hanging-punctuation:first last}img,svg,video{max-width:100%;display:block}button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{padding:0;list-style:none}table{border-collapse:collapse;width:100%}h1,h2,h3,h4{font-weight:600;line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);text-wrap:balance}h1{font-size:var(--fs-2xl);letter-spacing:var(--tracking-tighter)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{text-wrap:pretty}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}:focus:not(:focus-visible){outline:none}::selection{background:color-mix(in oklch, var(--primary) 32%, transparent);color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);background-clip:padding-box;border:3px solid #0000}::-webkit-scrollbar-thumb:hover{background:color-mix(in oklch, var(--ink) 24%, transparent);background-clip:padding-box}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "cv02", "cv03"}.prose{font-family:var(--font-serif);font-size:var(--fs-md);line-height:var(--lh-relaxed);text-wrap:pretty;max-width:70ch}.prose--lg{font-size:1.0625rem}.stack>*+*{margin-top:var(--gap,var(--sp-4))}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}@keyframes mc-shimmer{0%{background-position:-480px 0}to{background-position:480px 0}}.skeleton{background:linear-gradient(90deg, var(--surface-2) 0%, var(--overlay) 50%, var(--surface-2) 100%);animation:mc-shimmer 1.5s var(--ease-standard) infinite;border-radius:var(--r-sm);background-size:960px 100%}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.skeleton{background:var(--surface-2);animation:none}}.btn{--btn-h:40px;min-height:var(--btn-h);border-radius:var(--r-md);font-family:var(--font-sans);font-size:var(--fs-base);white-space:nowrap;color:var(--ink);transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:600;line-height:1;display:inline-flex}.btn--sm{--btn-h:32px;font-size:var(--fs-sm);gap:6px;padding:0 12px}.btn__label{display:inline-block}.btn:active{transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--primary-btn);color:var(--on-primary)}.btn--primary:hover:not(:disabled){background:var(--primary-btn-hover)}.btn--primary:active:not(:disabled){background:var(--primary-press)}.btn--subtle{background:var(--surface);border-color:var(--border);color:var(--ink)}.btn--subtle:hover:not(:disabled){background:var(--overlay);border-color:var(--border-strong)}.btn--ghost{color:var(--muted);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface);color:var(--ink)}.btn--danger{color:var(--loss);background:0 0}.btn--danger:hover:not(:disabled){background:var(--loss-soft)}.btn--block{width:100%}.btn.is-loading>.btn__label{opacity:.7}.icon-btn{border-radius:var(--r-md);width:36px;height:36px;color:var(--muted);transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface);color:var(--ink)}.icon-btn--danger:hover{background:var(--loss-soft);color:var(--loss)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-6)}.card--flush{padding:0}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field__label{font-size:var(--fs-sm);color:var(--muted);font-weight:500}.field__hint{font-size:var(--fs-xs);color:var(--faint)}.field__error{font-size:var(--fs-xs);color:var(--loss)}.input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);width:100%;min-height:42px;color:var(--ink);font-size:var(--fs-base);transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);padding:0 12px}.input::placeholder{color:var(--muted);opacity:1}.input:hover{border-color:var(--border-strong)}.input:focus{border-color:var(--primary-line);background:var(--surface);outline:none}.textarea{min-height:120px;line-height:var(--lh-relaxed);resize:vertical;padding:12px}.textarea--prose{font-family:var(--font-serif);font-size:var(--fs-md);line-height:var(--lh-relaxed);font-weight:400}.textarea--lg{min-height:188px}.select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237a7088' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}.input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}.input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}.input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}.form-row{flex-wrap:wrap;gap:12px;display:flex}.form-row>.field{flex:180px}.form-row .field--grow{flex:2 260px}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.form-error{color:var(--loss);font-size:var(--fs-sm)}.form-hint{color:var(--muted);font-size:var(--fs-sm)}.badge{border-radius:var(--r-pill);font-size:var(--fs-xs);letter-spacing:.01em;white-space:nowrap;align-items:center;gap:5px;padding:3px 9px;font-weight:600;line-height:1.4;display:inline-flex}.badge--muted{background:var(--overlay);color:var(--muted)}.badge--primary{background:var(--primary-soft);color:var(--primary)}.badge--gain{background:var(--gain-soft);color:var(--gain)}.badge--loss{background:var(--loss-soft);color:var(--loss)}.badge--warn{background:var(--warn-soft);color:var(--warn)}.is-gain{color:var(--gain)}.is-loss{color:var(--loss)}.is-muted{color:var(--muted)}.is-ink{color:var(--ink)}.spinner{border:2px solid color-mix(in oklch, currentColor 22%, transparent);border-top-color:currentColor;border-radius:50%;animation:.7s linear infinite mc-spin;display:inline-block}@keyframes mc-spin{to{transform:rotate(360deg)}}.state-box{text-align:center;padding:var(--sp-8) var(--sp-6);flex-direction:column;align-items:center;gap:10px;display:flex}.state-box__icon{border-radius:var(--r-pill);background:var(--surface-2);width:44px;height:44px;color:var(--faint);place-items:center;display:grid}.state-box__title{font-size:var(--fs-md);color:var(--ink);font-weight:600}.state-box__hint{font-size:var(--fs-sm);color:var(--muted);max-width:46ch}.state-box--error{text-align:left;padding:var(--sp-4) var(--sp-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:row;align-items:flex-start;gap:12px}.state-box__icon--error{color:var(--loss);background:var(--loss-soft)}.state-box__body{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.state-box__retry{margin-top:2px}.skel-lines{flex-direction:column;gap:8px;display:flex}.skel-lines .skel{height:.8em}.brand{letter-spacing:var(--tracking-tight);align-items:center;gap:10px;font-weight:600;display:inline-flex}.brand__mark{border-radius:var(--r-md);background:var(--primary-soft);width:34px;height:34px;color:var(--primary);flex-shrink:0;place-items:center;display:grid}.brand__name{font-size:var(--fs-md);letter-spacing:-.01em}.brand--compact .brand__mark{width:30px;height:30px}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);flex-wrap:wrap;display:flex}.page-head__sub{color:var(--muted);font-size:var(--fs-sm);margin-top:4px}.page-head__actions{align-items:center;gap:8px;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);flex-direction:column;gap:5px;display:flex}.stat__label{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.stat__value{font-size:var(--fs-xl);font-weight:600;line-height:1.2}.stat__sub{font-size:var(--fs-xs);color:var(--faint)}.stat-row{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.confirm{z-index:var(--z-modal);display:none;position:fixed;inset:0}.confirm.is-open{place-items:center;padding:16px;display:grid}.confirm__backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:mc-fade var(--dur) var(--ease-out);background:#0000008c;position:absolute;inset:0}.confirm__panel{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-xl);width:min(380px,100vw - 32px);padding:var(--sp-6);box-shadow:var(--shadow-lg);animation:mc-pop var(--dur-slow) var(--ease-out);position:relative}.confirm__title{font-size:var(--fs-lg)}.confirm__msg{color:var(--muted);font-size:var(--fs-sm);line-height:var(--lh-normal);margin-top:8px}.confirm__actions{margin-top:var(--sp-5);justify-content:flex-end;gap:10px;display:flex}@keyframes mc-fade{0%{opacity:0}}@keyframes mc-pop{0%{opacity:0;transform:translateY(8px)scale(.97)}}.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{gap:var(--sp-6);height:100vh;padding:var(--sp-6) var(--sp-4);background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;display:flex;position:sticky;top:0}.sidebar>.brand{padding:0 var(--sp-2)}.nav{flex-direction:column;gap:2px;display:flex}.nav__item{border-radius:var(--r-md);width:100%;color:var(--muted);font-size:var(--fs-base);text-align:left;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:12px;padding:10px 12px;font-weight:500;display:flex}.nav__item:hover{background:var(--surface);color:var(--ink)}.nav__item.is-active{background:var(--primary-soft);color:var(--primary);font-weight:600}.more-nav{border-top:1px solid var(--border);padding-top:var(--sp-3)}.more-nav summary{cursor:pointer;color:var(--muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;padding:8px 12px;font-weight:600}.more-nav .nav__item{font-size:var(--fs-sm);padding-left:16px}.sidebar__foot{padding-top:var(--sp-4);border-top:1px solid var(--border);margin-top:auto}.signout-btn{width:100%;color:var(--muted);justify-content:flex-start}.signout-btn:hover{color:var(--ink)}.main{flex-direction:column;min-width:0;display:flex}.content{width:100%;max-width:var(--content-max);padding:var(--sp-8) var(--page-pad-x) var(--sp-10);gap:var(--sp-6);flex-direction:column;flex:1;margin:0 auto;display:flex}.mobile-top,.mobile-nav{display:none}.login{min-height:100vh;padding:var(--sp-6);place-items:center;display:grid;position:relative;overflow:hidden}.login__glow{background:radial-gradient(closest-side, color-mix(in oklch, var(--primary) 26%, transparent), transparent);filter:blur(8px);pointer-events:none;width:760px;max-width:120vw;height:560px;position:absolute;top:-18%;left:50%;translate:-50%}.login__card{gap:var(--sp-5);width:min(420px,100%);padding:var(--sp-8);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:relative}.login__head h1{font-size:var(--fs-2xl);margin-top:4px}.login__head p{color:var(--muted);font-size:var(--fs-sm);margin-top:6px}.login__error{color:var(--loss);font-size:var(--fs-sm)}.login__foot{text-align:center;color:var(--faint);font-size:var(--fs-xs)}.reminder-banner{width:100%;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:var(--ink);font-size:var(--fs-sm);text-align:left;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);align-items:center;gap:10px;display:flex}.reminder-banner:hover{background:var(--overlay);border-color:var(--border-strong)}.reminder-banner>.icon-btn,.reminder-banner svg:first-child{color:var(--warn)}.reminder-banner span{flex:1}.reminder-banner>svg:last-child{color:var(--faint)}.quick-note{gap:var(--sp-3);flex-direction:column;display:flex}.quick-note__label{font-size:var(--fs-md);color:var(--ink);font-weight:600}.quick-note__foot{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.quick-note__status{color:var(--muted);font-size:var(--fs-sm);align-items:center;gap:6px;display:inline-flex}.quick-note__status.is-ok{color:var(--gain)}.card-grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.panel{gap:var(--sp-3);flex-direction:column;display:flex}.panel__label{font-size:var(--fs-xs);color:var(--muted);font-weight:600}.panel__body{flex-direction:column;gap:4px;display:flex}.panel__title{font-size:var(--fs-md);color:var(--ink);font-weight:600;line-height:var(--lh-snug)}.panel__sub{font-size:var(--fs-sm);color:var(--muted)}.panel__quote{font-family:var(--font-serif);font-size:var(--fs-md);line-height:var(--lh-relaxed);color:var(--ink);font-style:italic}.panel__link{align-self:flex-start;margin-top:auto}.pnl-value{font-size:1.75rem;font-weight:600;line-height:1.1}.pnl-sub{font-size:var(--fs-sm)}.recent{gap:var(--sp-3);flex-direction:column;display:flex}.recent__head{justify-content:space-between;align-items:center;display:flex}.recent__head h2{font-size:var(--fs-lg)}.recent__list{flex-direction:column;gap:6px;display:flex}.recent__item{align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);text-align:left;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);display:flex}.recent__item:hover{background:var(--overlay);border-color:var(--border-strong)}.recent__date{font-size:var(--fs-xs);color:var(--muted);flex-shrink:0}.recent__title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:500;overflow:hidden}.recent__arrow{color:var(--faint);flex-shrink:0}.diary-form__body{padding:var(--sp-6);gap:var(--sp-4);flex-direction:column;display:flex}.entry-list{gap:var(--sp-4);flex-direction:column;display:flex}.entry{flex-direction:column;display:flex}.entry__head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6) 0;display:flex}.entry__date{font-size:var(--fs-xs);color:var(--muted)}.entry__actions{gap:2px;display:flex}.entry__title{font-size:var(--fs-xl);margin-top:var(--sp-2);padding:0 var(--sp-6)}.entry__body{margin-top:var(--sp-2);padding:0 var(--sp-6) var(--sp-6);color:var(--ink)}.entry__body.is-muted{color:var(--muted);font-style:italic;font-family:var(--font-sans)}.entry__skel{padding:var(--sp-5) var(--sp-6)}.trades{padding:var(--sp-4) var(--sp-6) var(--sp-5);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg)}.trades__form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.trades__form .input{flex:110px;min-width:0}.trades__form .input--symbol{flex:1.6 130px;font-weight:600}.trades__form .input--ccy{text-align:center;flex:.7 76px}.trades__form .input--when{flex:1.5 168px}.trades__add{flex:none}.trades__rows{margin-top:var(--sp-3);flex-direction:column;display:flex}.trade{align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.trade:first-child{border-top:none}.trade__sym{color:var(--ink);font-weight:600}.trade__qty{color:var(--muted);flex:140px;min-width:0}.trade__notes{color:var(--muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;flex:160px;min-width:0;font-style:italic;overflow:hidden}.trade__del{margin-left:auto}.trades__empty{color:var(--muted);font-size:var(--fs-sm);padding:var(--sp-2) 0}.cal-head{justify-content:center;align-items:center;gap:var(--sp-4);display:flex}.cal-head__title{font-size:var(--fs-lg);text-align:center;min-width:200px}.cal{padding:var(--sp-4)}.cal__weekdays{text-align:center;padding-bottom:var(--sp-2);grid-template-columns:repeat(7,1fr);display:grid}.cal__weekdays span{font-size:var(--fs-xs);color:var(--faint);font-weight:600}.cal__grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.day{aspect-ratio:1;background:var(--surface-2);border-radius:var(--r-md);color:var(--muted);text-align:left;transition:background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border:1px solid #0000;flex-direction:column;justify-content:space-between;align-items:flex-start;padding:8px;display:flex;position:relative}.day:hover{background:var(--overlay)}.day.is-selected{border-color:var(--primary-line);background:var(--primary-soft)}.day--blank{pointer-events:none;background:0 0}.day--skel{padding:4px}.day__num{font-size:var(--fs-sm);color:var(--ink);font-weight:600}.day__pnl{font-size:var(--fs-xs)}.day__pnl.is-dash{color:var(--faint)}.day__note{border-radius:var(--r-pill);background:var(--primary);width:6px;height:6px;position:absolute;bottom:7px;right:7px}.pnl-form{gap:var(--sp-4);flex-direction:column;display:flex}.pnl-form__head{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.pnl-form__head h2{font-size:var(--fs-lg)}.pnl-form__body{gap:var(--sp-4);flex-direction:column;display:flex}.inline-form-wrap{padding:var(--sp-4)}.inline-form{gap:var(--sp-2);flex-wrap:wrap;display:flex}.inline-form .input{flex:240px;min-width:0}.inline-form .btn{flex:none}.principle-list{gap:var(--sp-3);flex-direction:column;display:flex}.principle{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);display:flex}.principle__text{font-family:var(--font-serif);font-size:var(--fs-lg);line-height:var(--lh-relaxed);color:var(--ink);margin:0}.alert-form__body{padding:var(--sp-6);gap:var(--sp-4);flex-direction:column;display:flex}.alert-list{gap:var(--sp-3);flex-direction:column;display:flex}.alert{justify-content:space-between;align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;display:flex}.alert__main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.alert__title{font-size:var(--fs-md);font-weight:600}.alert__meta{font-size:var(--fs-sm);color:var(--muted)}.alert__actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.feature-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.feature-link{text-align:left;color:var(--ink);transition:border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);flex-direction:column;gap:7px;display:flex}.feature-link:hover{background:var(--overlay);border-color:var(--border-strong)}.feature-link span{color:var(--muted);font-size:var(--fs-sm);line-height:var(--lh-normal)}.compact-list,.article-list,.timeline{gap:var(--sp-3);flex-direction:column;display:flex}.compact-list .card{align-items:center;gap:var(--sp-3);padding:var(--sp-4);display:flex}.compact-list .card.is-selected{border-color:var(--primary-line);background:var(--primary-soft)}.row-main{text-align:left;min-width:0;color:var(--ink);flex-direction:column;flex:1;gap:3px;display:flex}.row-main span{color:var(--muted);font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.research-layout{gap:var(--sp-4);grid-template-columns:minmax(220px,.8fr) minmax(320px,1.5fr);align-items:start;display:grid}.research,.stack{gap:var(--sp-4);flex-direction:column;display:flex}.research h3{margin-top:var(--sp-2);font-size:var(--fs-base)}.timeline li{padding-left:var(--sp-4);border-left:1px solid var(--border-strong)}.timeline time,.article-meta{color:var(--faint);font-size:var(--fs-xs);margin-bottom:4px;display:block}.timeline p{color:var(--muted);font-size:var(--fs-sm);white-space:pre-wrap}.text-link{color:var(--primary);font-size:var(--fs-sm);align-self:flex-start;font-weight:600}.text-link:hover{text-decoration:underline}.secret-once{align-items:center;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--warn);border-radius:var(--r-md);background:var(--warn-soft);flex-wrap:wrap;display:flex}.secret-once code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;flex:260px}.page-skel{gap:var(--sp-5);flex-direction:column;display:flex}.page-skel .card-grid{margin-top:var(--sp-2)}@media (width<=920px){.shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-top{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);padding-top:max(var(--sp-3), env(safe-area-inset-top));z-index:var(--z-sticky);background:color-mix(in oklch, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.content{padding:var(--sp-5) var(--page-pad-x) calc(var(--sp-9) + env(safe-area-inset-bottom));gap:var(--sp-5)}.mobile-nav{z-index:var(--z-mobile-nav);padding:6px 4px max(6px, env(safe-area-inset-bottom));background:color-mix(in oklch, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;inset:auto 0 0}.mobile-nav__item{border-radius:var(--r-md);color:var(--muted);font-size:var(--fs-xs);flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;padding:6px 2px;display:flex}.mobile-nav__item.is-active{color:var(--primary)}}@media (width<=540px){.cal{overflow-x:auto}.cal__weekdays,.cal__grid{min-width:460px}.pnl-value{font-size:1.5rem}.entry__title{font-size:var(--fs-lg)}.research-layout{grid-template-columns:1fr}}
