@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.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:#f6f4ef;--surface:#fff;--line:#e7e3da;--line-soft:#efece5;--ink:#1b1a17;--muted:#6d675c;--faint:#9a9488;--accent:#1d5c48;--accent-ink:#fff;--accent-soft:#e5efea;--danger:#b0342b;--danger-soft:#f8e9e7;--warn-soft:#f6ecd6;--radius:12px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--font:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}h1,h2,h3,p{margin:0}h1{letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.25}h2{letter-spacing:-.01em;font-size:17px;font-weight:650}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:13px}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:44px;padding:0 var(--s5);border:1px solid var(--line);background:var(--surface);border-radius:10px;font-weight:600;transition:background .15s,border-color .15s;display:inline-flex}.btn:hover{background:#faf9f6;border-color:#d8d3c7}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.primary:hover{background:#174a39}.btn.danger{color:var(--danger)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--line-soft)}.btn.sm{min-height:36px;padding:0 var(--s4);font-size:14px}.btn:disabled{opacity:.55;cursor:default}.field{gap:var(--s2);display:grid}.field>label,.field>.lbl{color:var(--muted);font-size:13px;font-weight:600}.input,select.input,textarea.input{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;min-height:46px;padding:10px 14px}textarea.input{resize:vertical;min-height:96px}.input:hover{border-color:#d3cdbf}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.hint{color:var(--faint);font-size:13px}.err{color:var(--danger);background:var(--danger-soft);padding:var(--s3) var(--s4);border-radius:10px;font-size:14px}.switch{align-items:center;gap:var(--s3);min-height:44px;display:inline-flex}.switch input{width:20px;height:20px;accent-color:var(--accent)}.auth{min-height:100%;padding:var(--s6) var(--s4);place-items:center;display:grid}.auth-card{gap:var(--s6);width:100%;max-width:400px;display:grid}.brand{align-items:center;gap:var(--s3);letter-spacing:-.01em;font-size:17px;font-weight:700;display:flex}.mark{background:var(--accent);color:#fff;border-radius:9px;place-items:center;width:32px;height:32px;font-size:15px;font-weight:700;display:grid}.auth-head{gap:var(--s2);display:grid}.auth-form{gap:var(--s4);display:grid}.divider{align-items:center;gap:var(--s4);color:var(--faint);font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.link{color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.shell{grid-template-columns:248px 1fr;min-height:100%;display:grid}.side{height:100vh;padding:var(--s6) var(--s4);gap:var(--s6);border-right:1px solid var(--line);background:var(--bg);flex-direction:column;display:flex;position:sticky;top:0}.nav{gap:var(--s1);display:grid}.nav a{align-items:center;gap:var(--s3);min-height:44px;padding:0 var(--s3);color:var(--muted);border-radius:10px;font-weight:600;text-decoration:none;display:flex}.nav a:hover{background:var(--line-soft);color:var(--ink)}.nav a.on{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}.nav svg{flex:none;width:20px;height:20px}.me{gap:var(--s3);padding:var(--s3);margin-top:auto;display:grid}.me .who{line-height:1.4;display:grid}.main{padding:var(--s7) var(--s7) var(--s8);width:100%;max-width:1040px}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--s4);margin-bottom:var(--s6);flex-wrap:wrap;display:flex}.page-head p{margin-top:var(--s2);max-width:54ch}.offline{background:var(--warn-soft);color:#6b5314;padding:var(--s2) var(--s4);text-align:center;font-size:13px}.bottom{display:none}.tabs{gap:var(--s5);border-bottom:1px solid var(--line);margin-bottom:var(--s5);scrollbar-width:none;display:flex;overflow-x:auto}.tab{padding:var(--s3) 0;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:600}.tab:hover{color:var(--ink)}.tab.on{color:var(--ink);border-bottom-color:var(--accent)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.list{display:grid}.item{gap:var(--s4);padding:var(--s4) var(--s5);border-top:1px solid var(--line-soft);grid-template-columns:1fr auto;align-items:center;min-height:68px;display:grid}.item:first-child{border-top:0}.item .t{font-weight:600}.item .m{color:var(--muted);gap:2px var(--s4);flex-wrap:wrap;margin-top:2px;font-size:13px;display:flex}.item .right{align-items:center;gap:var(--s4);display:flex}.price{font-variant-numeric:tabular-nums;text-align:right;font-weight:650}.tag{background:var(--line-soft);color:var(--muted);border-radius:99px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.tag.ok{background:var(--accent-soft);color:var(--accent)}.tag.warn{background:var(--warn-soft);color:#7a5f12}.swatch{border:1px solid #0000001f;border-radius:8px;flex:none;width:28px;height:28px}.empty{padding:var(--s8) var(--s5);text-align:center;gap:var(--s4);justify-items:center;display:grid}.empty p{max-width:38ch;color:var(--muted)}.loading{padding:var(--s7);text-align:center;color:var(--faint)}.welcome{gap:var(--s6);display:grid}.stat-grid{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat{padding:var(--s5);gap:var(--s2);display:grid}.stat .n{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.scrim{z-index:40;background:#1b1a1759;animation:.15s fade;position:fixed;inset:0}.sheet{z-index:41;background:var(--surface);flex-direction:column;width:min(460px,100%);animation:.2s ease-out slide;display:flex;position:fixed;top:0;bottom:0;right:0}.sheet header{padding:var(--s5) var(--s6);border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;display:flex}.sheet .body{padding:var(--s6);gap:var(--s5);flex:1;align-content:start;display:grid;overflow-y:auto}.sheet footer{padding:var(--s4) var(--s6);border-top:1px solid var(--line-soft);gap:var(--s3);justify-content:space-between;display:flex}.two{gap:var(--s4);grid-template-columns:1fr 1fr;display:grid}@keyframes fade{0%{opacity:0}}@keyframes slide{0%{opacity:0;transform:translate(24px)}}@media (width<=800px){.shell{grid-template-columns:1fr;padding-bottom:72px}.side{display:none}.main{padding:var(--s6) var(--s4) var(--s7)}h1{font-size:22px}.item{padding:var(--s4)}.bottom{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:var(--s2) var(--s2) calc(var(--s2) + env(safe-area-inset-bottom));grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.bottom a,.bottom button{padding:var(--s2) 0;color:var(--muted);background:0 0;border:0;justify-items:center;gap:2px;min-height:52px;font-size:12px;font-weight:600;text-decoration:none;display:grid}.bottom a.on{color:var(--accent)}.bottom svg{width:22px;height:22px}.sheet{border-radius:18px 18px 0 0;width:100%;max-height:92vh;animation:.22s ease-out rise;top:auto}.sheet .body{padding:var(--s5) var(--s4)}.sheet header,.sheet footer{padding-left:var(--s4);padding-right:var(--s4)}.two{grid-template-columns:1fr}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}button.rowbtn{text-align:left;border:0;border-top:1px solid var(--line-soft);background:0 0;width:100%}button.rowbtn:first-child{border-top:0}button.rowbtn:hover{background:#faf9f6}.sheet.wide{width:min(560px,100%)}.album-line{gap:var(--s2);grid-template-columns:1fr 130px auto;align-items:center;display:grid}.msgbox{white-space:pre-wrap;word-break:break-word;font:inherit;background:var(--bg);border:1px solid var(--line-soft);padding:var(--s4);border-radius:10px;margin:0;font-size:14px;line-height:1.65}@media (width<=800px){.album-line{grid-template-columns:1fr 110px}.album-line .btn{grid-column:1/-1;justify-self:start}}.group{gap:var(--s4);padding-top:var(--s5);border-top:1px solid var(--line-soft);display:grid}.group h3{font-size:15px;font-weight:650}
