@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+0460-052F,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+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,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+1F00-1FFF}@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+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--brand: #6B1D3A;--brand-dark: #5a1830;--brand-soft: #f3e3e8;--gold: #D4AF37;--gold-soft: #F3E5AB;--ink: #0A0F1A;--ink-soft: #4d5760;--ink-faint: #6f777e;--paper: #FDF8F0;--card: #ffffff;--line: #E8DDD0;--line-strong: #d8c8b4;--good: #1c7a4d;--good-soft: #e2f4ea;--warn: #8a6d1f;--warn-soft: #F3E5AB;--bad: #b3382c;--bad-soft: #fbe6e3;--bad-ink: #ffffff;--on-brand: #ffffff;--skeleton: #ece3d6;--nav-bg: #4A1428;--nav-ink: #E4CBD5;--nav-ink-strong: #ffffff;--nav-active-bg: rgba(255, 255, 255, .12);--nav-line: rgba(255, 255, 255, .11);--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s8: 32px;--s10: 40px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 100px;--shadow-sm: 0 1px 2px rgba(10, 15, 26, .05);--shadow-md: 0 2px 8px rgba(10, 15, 26, .07), 0 1px 2px rgba(10, 15, 26, .04);--shadow-lg: 0 12px 32px rgba(10, 15, 26, .14);--sidebar-w: 236px}@media (prefers-color-scheme: dark){:root{--brand: #c46b8a;--brand-dark: #d98aa5;--brand-soft: #3a1e28;--gold: #e0c15a;--gold-soft: #3a2f14;--ink: #f3ece5;--ink-soft: #c9beb5;--ink-faint: #9d9189;--paper: #14070d;--card: #21141a;--line: #3d2530;--line-strong: #533341;--good: #4fce8f;--good-soft: #123023;--warn: #e0c15a;--warn-soft: #3a2f14;--bad: #e88075;--bad-soft: #331512;--bad-ink: #1a0a12;--on-brand: #1a0a12;--skeleton: #2e1d25;--nav-bg: #1B0D14;--nav-ink: #C2A9B4;--nav-ink-strong: #F6ECF0;--nav-active-bg: rgba(255, 255, 255, .09);--nav-line: rgba(255, 255, 255, .08);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 8px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6)}}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter Variable,Inter,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14.5px;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;letter-spacing:-.015em}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{background:var(--nav-bg);color:var(--nav-ink);padding:var(--s5) var(--s3);display:flex;flex-direction:column;gap:var(--s1);position:sticky;top:0;height:100vh}.sidebar .brand{display:flex;align-items:center;gap:var(--s2);font-weight:800;color:var(--nav-ink-strong);padding:0 var(--s2);margin-bottom:var(--s5)}.sidebar .brand img{width:24px;height:24px}.nav-group{font-size:.64rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--nav-ink);opacity:.55;padding:var(--s4) var(--s2) var(--s1)}.nav-link{display:flex;align-items:center;gap:var(--s3);padding:9px var(--s2);border-radius:var(--r-sm);color:var(--nav-ink);text-decoration:none;font-size:.875rem;font-weight:600;border:none;background:none;font-family:inherit;cursor:pointer;width:100%;text-align:left;transition:background .14s,color .14s}.nav-link svg{width:17px;height:17px;flex:0 0 17px;opacity:.8}.nav-link:hover,.nav-link.active{background:var(--nav-active-bg);color:var(--nav-ink-strong)}.nav-link.active svg{opacity:1}.sidebar-foot{margin-top:auto;padding-top:var(--s3);border-top:1px solid var(--nav-line)}main{padding:var(--s8) var(--s10);max-width:1320px;width:100%}@media (max-width: 1100px){main{padding:var(--s6)}}.page-head{margin-bottom:var(--s6)}.page-head h1{font-size:1.55rem;font-weight:800;margin-bottom:var(--s1)}.page-head .page-sub{color:var(--ink-soft);font-size:.9rem}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s5)}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:var(--s6);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:var(--s4) var(--s5);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:var(--s3)}.panel-head h3{font-size:1rem;font-weight:700}.panel-body{padding:var(--s5)}.panel-body.flush{padding:0}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s4);margin-bottom:var(--s6)}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--s1)}.stat .stat-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.stat .stat-value{font-size:1.9rem;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.1}.stat .stat-note{font-size:.78rem;color:var(--ink-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px var(--s4);min-height:36px;border-radius:var(--r-pill);border:1px solid transparent;font-size:.85rem;font-weight:700;font-family:inherit;cursor:pointer;background:var(--brand);color:var(--on-brand);transition:transform .12s,box-shadow .15s,background .15s;box-shadow:var(--shadow-sm);white-space:nowrap}.btn:hover:not(:disabled){box-shadow:var(--shadow-md)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn svg{width:15px;height:15px}.btn-outline{background:var(--card);border-color:var(--line-strong);color:var(--ink-soft);box-shadow:none}.btn-outline:hover:not(:disabled){background:var(--paper);border-color:var(--ink-faint);color:var(--ink);box-shadow:none}.btn-gold{background:var(--gold);color:#1a0a12}.btn-danger{background:var(--bad);color:var(--bad-ink)}.btn-sm{padding:5px var(--s3);min-height:28px;font-size:.76rem}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);border:none;background:none;color:var(--ink-faint);cursor:pointer;transition:background .14s,color .14s}.icon-btn svg{width:15px;height:15px}.icon-btn:hover{background:var(--bad-soft);color:var(--bad)}.btn .spinner{width:13px;height:13px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-faint);padding:var(--s3) var(--s5);border-bottom:1px solid var(--line);background:var(--paper)}td{padding:var(--s4) var(--s5);border-bottom:1px solid var(--line);color:var(--ink-soft);vertical-align:middle}tbody tr:last-child td{border-bottom:none}td.strong{color:var(--ink);font-weight:650}td.actions{text-align:right;white-space:nowrap}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--paper)}.num{font-variant-numeric:tabular-nums}.table-scroll{overflow-x:auto}.pill{display:inline-flex;align-items:center;gap:5px;font-size:.7rem;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.brand{background:var(--brand-soft);color:var(--brand-dark)}.pill.neutral{background:var(--paper);color:var(--ink-faint);border:1px solid var(--line)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pill-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.field{margin-bottom:var(--s4)}.field label{display:block;font-size:.78rem;font-weight:700;color:var(--ink-soft);margin-bottom:6px}.field label .req{color:var(--bad);margin-left:2px}.field .hint{font-size:.76rem;color:var(--ink-faint);margin-top:5px;font-weight:400}.field input,.field select,.field textarea,.inline-input{width:100%;padding:9px var(--s3);border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-size:.875rem;font-family:inherit;transition:border-color .14s,box-shadow .14s}.field input:hover,.field select:hover,.inline-input:hover{border-color:var(--ink-faint)}.field input:focus,.field select:focus,.field textarea:focus,.inline-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.field select,select.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding:9px var(--s8) 9px var(--s3);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='%236f777e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M5 9l7 7 7-7'/></svg>");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}select.select{border:1px solid var(--line-strong);border-radius:var(--r-sm);background-color:var(--card);color:var(--ink);font-size:.85rem;font-family:inherit;font-weight:600;min-height:36px;width:auto;min-width:200px}.check{display:inline-flex;align-items:center;gap:var(--s2);font-size:.85rem;font-weight:600;color:var(--ink-soft);cursor:pointer}.check input{width:15px;height:15px;accent-color:var(--brand);cursor:pointer}.form-row{display:flex;gap:var(--s3);flex-wrap:wrap;align-items:flex-end}.form-row .field{flex:1 1 180px;margin-bottom:0}.batch-tree{border:1px solid var(--line-strong);border-radius:var(--r-md);padding:var(--s3) var(--s4);max-height:280px;overflow-y:auto;background:var(--card)}.batch-tree .branch-label{font-weight:700;font-size:.85rem;margin:var(--s3) 0 var(--s1)}.batch-tree .branch-label:first-child{margin-top:0}.batch-tree .year-label{font-weight:600;font-size:.8rem;margin:var(--s2) 0 2px 14px;color:var(--ink-faint)}.batch-tree label{display:flex;align-items:center;gap:7px;font-size:.82rem;margin:3px 0 3px 28px;font-weight:500;color:var(--ink);cursor:pointer}.batch-tree label input{width:14px;height:14px;accent-color:var(--brand)}.batch-tree label.disabled{color:var(--ink-faint);cursor:not-allowed}.branch-card{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:var(--s3);overflow:hidden}.branch-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--paper);border-bottom:1px solid var(--line)}.branch-head .branch-name{font-weight:700;font-size:.92rem}.branch-head .spacer{flex:1}.year-row{display:flex;align-items:flex-start;gap:var(--s4);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}.year-row:last-child{border-bottom:none}.year-name{flex:0 0 110px;font-size:.85rem;font-weight:650;color:var(--ink);padding-top:5px}.year-sections{flex:1;display:flex;gap:6px;flex-wrap:wrap;align-items:center}.section-chip{display:inline-flex;align-items:center;gap:6px;background:var(--brand-soft);color:var(--brand-dark);font-size:.76rem;font-weight:700;padding:4px 6px 4px 11px;border-radius:var(--r-pill)}.section-chip button{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;border:none;background:transparent;color:inherit;cursor:pointer;opacity:.55}.section-chip button:hover{opacity:1;background:#0000001f}.section-chip button svg{width:10px;height:10px}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0a080c80;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:var(--s5);animation:fade .14s ease-out}@keyframes fade{0%{opacity:0}}.dialog{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:460px;animation:pop .16s ease-out}.dialog.wide{max-width:620px}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.99)}}.dialog-head{padding:var(--s5) var(--s5) 0}.dialog-head h3{font-size:1.05rem;font-weight:750;margin-bottom:6px}.dialog-body{padding:var(--s4) var(--s5);font-size:.875rem;color:var(--ink-soft);line-height:1.55;max-height:65vh;overflow-y:auto}.dialog-foot{display:flex;justify-content:flex-end;gap:var(--s2);padding:var(--s4) var(--s5) var(--s5);border-top:1px solid var(--line)}.toast-stack{position:fixed;bottom:var(--s6);right:var(--s6);z-index:200;display:flex;flex-direction:column;gap:var(--s2)}.toast{display:flex;align-items:flex-start;gap:var(--s2);background:var(--card);border:1px solid var(--line);border-left:3px solid var(--ink-faint);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:var(--s3) var(--s4);font-size:.85rem;font-weight:600;min-width:260px;max-width:380px;animation:slide .18s ease-out}@keyframes slide{0%{opacity:0;transform:translate(12px)}}.toast.good{border-left-color:var(--good)}.toast.bad{border-left-color:var(--bad)}.toast svg{flex:0 0 16px;width:16px;height:16px;margin-top:1px}.toast.good svg{color:var(--good)}.toast.bad svg{color:var(--bad)}.error{display:flex;gap:var(--s2);align-items:flex-start;background:var(--bad-soft);color:var(--bad);border:1px solid var(--bad);border-radius:var(--r-md);padding:var(--s3) var(--s4);font-size:.84rem;line-height:1.5;margin-bottom:var(--s4);font-weight:500}.error svg{flex:0 0 16px;width:16px;height:16px;margin-top:1px}.empty{text-align:center;padding:var(--s10) var(--s5)}.empty-art{color:var(--brand);opacity:.45;margin-bottom:var(--s3)}.empty-art svg{width:40px;height:40px}.empty h3{font-size:.98rem;font-weight:700;margin-bottom:6px}.empty p{font-size:.85rem;color:var(--ink-soft);margin:0 auto var(--s4);max-width:42ch;line-height:1.55}.skeleton{background:var(--skeleton);border-radius:var(--r-sm);position:relative;overflow:hidden}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);animation:shimmer 1.4s infinite}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-line{height:11px;margin-bottom:var(--s2)}.login-box{max-width:380px;margin:9vh auto;padding:0 var(--s5)}.login-box .panel{margin-bottom:var(--s4)}.login-box .brand-mark{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s6);justify-content:center}.login-box .brand-mark img{width:30px;height:30px}.login-box .brand-mark span{font-weight:800;font-size:1.05rem}.legal-page{max-width:720px;margin:0 auto;padding:var(--s10) var(--s6) 80px}.legal-page h1{font-weight:800;font-size:1.8rem;margin-bottom:var(--s1)}.legal-page .updated{color:var(--ink-faint);font-size:.8rem;margin-bottom:var(--s6)}.legal-page .legal{font-size:.88rem;line-height:1.65;color:var(--ink-soft)}.legal-page .legal h2{font-size:1.05rem;color:var(--ink);margin:var(--s6) 0 var(--s2)}.legal-page .legal h2:first-child{margin-top:0}.legal-page .legal h3{font-size:.92rem;color:var(--ink);margin:14px 0 6px}.legal-page .legal p{margin:0 0 10px}.legal-page .legal ul{margin:0 0 10px;padding-left:var(--s5)}.legal-page .legal li{margin-bottom:6px}.legal-page .contact-box{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:14px var(--s4);margin-top:var(--s2)}.legal-page .contact-box p{margin:2px 0}.footer-links{text-align:center;font-size:.78rem;color:var(--ink-faint);margin-top:var(--s4)}.footer-links a{color:var(--ink-faint);text-decoration:underline}@media (max-width: 860px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;align-items:center;flex-wrap:wrap;gap:var(--s1);padding:var(--s3) var(--s4)}.sidebar .brand{margin-bottom:0;margin-right:var(--s3)}.nav-group{display:none}.nav-link{width:auto}.sidebar-foot{margin-top:0;margin-left:auto;padding-top:0;border-top:none}main{padding:var(--s5) var(--s4);max-width:100%}.year-row{flex-direction:column;gap:var(--s2)}.year-name{flex:none;padding-top:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
