@font-face{font-family:Quicksand Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/quicksand-vietnamese-wght-normal-ei70gACF.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:Quicksand Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/quicksand-latin-ext-wght-normal-CrJ75Ewg.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:Quicksand Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/quicksand-latin-wght-normal-Buj9m_3d.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{--c-espresso: #47270e;--c-espresso-2: #5a3416;--c-espresso-3: #6b4423;--c-copper: #bb7741;--c-copper-dark: #8f5527;--c-copper-light: #d9a273;--c-cream: #fdf8f1;--c-cream-deep: #f6ecdd;--bg: #f7f5f2;--surface: #ffffff;--surface-sunken: #faf8f5;--text: #141415;--text-muted: #63686d;--text-faint: #9b9ea1;--border: #e8e3dc;--border-strong: #d6cfc5;--focus-ring: 0 0 0 3px rgba(187, 119, 65, .25);--ok: #0a7a38;--ok-soft: #e7f5ec;--warn: #8a5a00;--warn-soft: #fdf3dc;--danger: #c0261f;--danger-soft: #fdecea;--info: #2f5b8a;--info-soft: #eaf1f8;--neutral-soft: #f0eeeb;--font: "Quicksand Variable", "Quicksand", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-full: 999px;--shadow-overlay: 0 12px 32px rgba(71, 39, 14, .18);--dur: .16s;--ease: cubic-bezier(.4, 0, .2, 1);--sidebar-w: 244px;--gutter: clamp(16px, 2.5vw, 56px);--topbar-h: 56px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:var(--fs-base);font-weight:500;line-height:1.5;color:var(--text);background:var(--bg)}h1,h2,h3,h4{font-weight:700;color:var(--c-espresso);line-height:1.3}h3{font-size:var(--fs-md);margin:var(--sp-6) 0 var(--sp-3)}a{color:var(--c-copper-dark);text-underline-offset:2px}a:hover{color:var(--c-espresso)}img{max-width:100%}:focus-visible{outline:none;box-shadow:var(--focus-ring)}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.cms{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh}.cms-nav{position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;background:var(--c-espresso);color:#f3e9dc;padding:var(--sp-5) var(--sp-3)}.cms-brand{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-1);padding:var(--sp-1) var(--sp-3) var(--sp-5);color:#fff;text-decoration:none}.cms-brand__logo{display:block;width:128px;height:auto}.cms-brand__sub{display:block;font-size:var(--fs-xs);color:var(--c-copper-light);font-weight:600}.cms-nav__group{margin-top:var(--sp-4)}.cms-nav__label{padding:0 var(--sp-3) var(--sp-1);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#f3e9dc8c}.cms-nav a{position:relative;display:flex;align-items:center;gap:var(--sp-3);min-height:38px;padding:0 var(--sp-3);margin:2px 0;border-radius:var(--r-md);color:#f3e9dcd9;text-decoration:none;font-weight:600;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.cms-nav a svg{flex-shrink:0;opacity:.85}.cms-nav a:hover{background:#ffffff12;color:#fff}.cms-nav a.active{background:#fdf8f11f;color:#fff}.cms-nav a.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--c-copper)}.cms-nav a.active svg{color:var(--c-copper-light);opacity:1}.cms-nav a:focus-visible{box-shadow:0 0 0 2px var(--c-copper-light)}.cms-body{display:flex;flex-direction:column;min-width:0}.cms-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:var(--sp-3);height:var(--topbar-h);padding:0 var(--sp-8);background:#f7f5f2eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.cms-topbar .cms-topbar__menu{display:none}.cms-topbar__title{display:none;font-weight:700;color:var(--c-espresso)}.cms-topbar__spacer{flex:1}.cms-topbar__user{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-muted);font-size:var(--fs-sm);min-width:0}.cms-topbar__user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cms-avatar{width:30px;height:30px;border-radius:var(--r-full);flex-shrink:0;display:grid;place-items:center;background:var(--c-cream-deep);color:var(--c-espresso);font-weight:700;font-size:var(--fs-sm);text-transform:uppercase}.env-pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:700;background:var(--warn-soft);color:var(--warn)}.env-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.env-pill--production{background:var(--ok-soft);color:var(--ok)}.cms-main{width:100%;min-width:0;padding:var(--sp-6) var(--gutter) 64px}.cms-banner{background:var(--danger-soft);color:var(--danger);border:1px solid #f5c6c2;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);margin-bottom:var(--sp-4);font-weight:600}.cms-scrim{display:none}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;margin-bottom:var(--sp-5)}.page-header h2{margin:0;font-size:var(--fs-xl)}.page-header__desc{margin:var(--sp-1) 0 0;color:var(--text-muted)}.page-header__actions{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.page-header__actions .btn+.btn{margin-left:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 14px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.btn:hover{background:var(--surface-sunken);border-color:var(--c-copper-light);color:var(--c-espresso)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-espresso);border-color:var(--c-espresso);color:#fff}.btn-primary:hover{background:var(--c-espresso-3);border-color:var(--c-espresso-3);color:#fff}.btn-danger{color:var(--danger);border-color:#efc2be}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.btn-small{min-height:30px;padding:0 10px;font-size:var(--fs-sm)}.btn+.btn{margin-left:var(--sp-2)}.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.btn-row .btn+.btn{margin-left:0}.card,.form{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-4)}.card>h3:first-child,.form>h3:first-child{margin-top:0}.card__title{margin:0 0 var(--sp-3);font-size:var(--fs-md)}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);align-items:start;margin-bottom:var(--sp-4)}.grid-2>.card{margin-bottom:0}.stack>*+*{margin-top:var(--sp-4)}.muted{color:var(--text-muted)}.info-row{display:flex;gap:var(--sp-3);padding:7px 0;border-bottom:1px dashed var(--border)}.info-row:last-child{border-bottom:0}.info-row__label{width:180px;flex-shrink:0;color:var(--text-muted)}.info-row__value{min-width:0;word-break:break-word;font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--sp-3);margin-bottom:var(--sp-6)}.stat{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-4);border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);color:inherit;text-decoration:none;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.stat:hover{border-color:var(--c-copper-light);background:var(--c-cream);color:inherit}.stat__label{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600}.stat__value{font-size:var(--fs-2xl);font-weight:700;color:var(--c-espresso);font-variant-numeric:tabular-nums;line-height:1.2}.stat--zero .stat__value{color:var(--text-faint)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:var(--sp-4)}table{width:100%;border-collapse:separate;border-spacing:0}th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--surface-sunken);color:var(--text-muted);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.num .badge{white-space:normal;text-align:left}td .btn{min-height:30px;padding:0 10px;font-size:var(--fs-sm)}td .btn+.btn{margin-left:6px}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background var(--dur) var(--ease)}tbody tr:hover{background:var(--c-cream)}tr.muted td{color:var(--text-faint)}td a{font-weight:700}td .sub,td>div{color:var(--text-muted);font-size:var(--fs-sm)}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.nowrap{white-space:nowrap}.cell-img{width:44px;height:44px;object-fit:contain;border-radius:var(--r-sm);background:var(--c-cream);display:block}.table-empty{text-align:center;color:var(--text-muted);padding:var(--sp-6)}.break-all{max-width:320px;word-break:break-all}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}.search{display:flex;gap:var(--sp-2);flex:1;min-width:240px;max-width:560px}.search input,.input{flex:1;min-width:0;min-height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);font:inherit;color:var(--text)}.search input:focus,.input:focus{border-color:var(--c-copper);box-shadow:var(--focus-ring);outline:none}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--sp-3)}.chip{min-height:32px;padding:0 12px;border-radius:var(--r-full);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);font:inherit;font-weight:600;font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.chip:hover{border-color:var(--c-copper-light);color:var(--c-espresso)}.chip[aria-pressed=true]{background:var(--c-espresso);border-color:var(--c-espresso);color:#fff}.badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:700;background:var(--neutral-soft);color:var(--text-muted);white-space:nowrap}.badge-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-red{background:var(--danger-soft);color:var(--danger)}.badge-green{background:var(--ok-soft);color:var(--ok)}.badge-amber{background:var(--warn-soft);color:var(--warn)}.badge-blue{background:var(--info-soft);color:var(--info)}.badge-copper{background:var(--c-cream-deep);color:var(--c-espresso)}.badge-lg{font-size:var(--fs-sm);padding:4px 12px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-4);min-width:0}.field label{font-weight:700;color:var(--c-espresso);font-size:var(--fs-sm)}.field small{color:var(--text-muted);font-size:var(--fs-xs);line-height:1.45}.field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.field textarea{width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);font:inherit;font-weight:500;color:var(--text);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.field textarea{line-height:1.55;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--c-copper);box-shadow:var(--focus-ring);outline:none}.field input:invalid:not(:placeholder-shown):not(:focus){border-color:var(--danger)}.field input:disabled,.field select:disabled,.field textarea:disabled{background:var(--surface-sunken);color:var(--text-muted)}.field input[type=checkbox],.field input[type=radio]{width:18px;height:18px;accent-color:var(--c-espresso)}.field-narrow{max-width:220px}.field-wide{flex:3!important}.row{display:flex;gap:var(--sp-4);flex-wrap:wrap}.row>.field{flex:1;min-width:160px}fieldset.group{border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5) var(--sp-1);margin:0 0 var(--sp-4)}fieldset.group>legend{padding:0 var(--sp-2);font-weight:700;color:var(--c-espresso)}.actions{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--border)}.actions .btn+.btn{margin-left:0}.table-more{border-top:0;padding-top:0;margin-top:0}.error,.ok{display:block;padding:10px 14px;border-radius:var(--r-md);margin:var(--sp-2) 0 var(--sp-3);font-weight:600}.error{background:var(--danger-soft);color:var(--danger)}.ok{background:var(--ok-soft);color:var(--ok)}.field .error{padding:0;background:none;margin:0}.warnings{background:var(--warn-soft);border:1px solid #f0d9a4;color:#5c3d00;border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin:var(--sp-3) 0}.warnings ul{margin:6px 0 0;padding-left:18px}.loading{color:var(--text-muted)}.hint{color:var(--text-muted);margin:0 0 var(--sp-3)}.thumbs{display:flex;gap:var(--sp-2);flex-wrap:wrap}.thumb{display:inline-flex;flex-direction:column;align-items:center;gap:6px;width:fit-content;border:1px solid var(--border);border-radius:var(--r-md);padding:6px;background:var(--c-cream);text-align:center}.thumb img{width:96px;height:96px;object-fit:contain;display:block;border-radius:var(--r-sm);background:#fff}.thumb-inline{vertical-align:middle;margin-left:var(--sp-2)}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-4)}.preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-4);min-height:300px;overflow:auto}.preview img{max-width:100%}@media (min-width: 1680px){:root{--fs-xs: 13px;--fs-sm: 14px;--fs-base: 15px;--fs-md: 17px;--fs-lg: 19px;--fs-xl: 24px;--fs-2xl: 30px;--sidebar-w: 264px}}@media (min-width: 2200px){:root{--fs-xs: 14px;--fs-sm: 15px;--fs-base: 16px;--fs-md: 18px;--fs-lg: 21px;--fs-xl: 26px;--fs-2xl: 34px;--sidebar-w: 288px}}@media (max-width: 1100px){.grid-2{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.cms{grid-template-columns:minmax(0,1fr)}.cms-nav{position:fixed;z-index:40;left:0;top:0;bottom:0;width:272px;height:auto;transform:translate(-100%);transition:transform .2s var(--ease)}.cms-nav--open{transform:none;box-shadow:var(--shadow-overlay)}.cms-scrim--open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#14141566}.cms-topbar{padding:0 var(--sp-4)}.cms-topbar .cms-topbar__menu{display:inline-flex}.cms-topbar__title{display:block}.cms-topbar__user span{display:none}.cms-main{padding:var(--sp-4) var(--sp-4) 48px}.split{grid-template-columns:minmax(0,1fr)}th,td{white-space:nowrap}td.break-all{white-space:normal;min-width:220px}.info-row{flex-direction:column;gap:2px}.info-row__label{width:auto;font-size:var(--fs-sm)}.field input:not([type=checkbox]):not([type=radio]):not([type=file]),.field select,.field textarea,.search input{font-size:var(--fs-md)}.form,.card{padding:var(--sp-4)}.row>.field{min-width:140px}}.row-link{cursor:pointer}.form-full{max-width:none}.fit{width:fit-content}.total{font-size:var(--fs-lg);color:var(--c-espresso)}.card .table-wrap,.form .table-wrap{margin-bottom:0}.auth-page{min-height:100vh;display:grid;place-items:center;padding:var(--sp-6) var(--sp-4);background:var(--c-espresso);background-image:radial-gradient(circle at 20% 15%,rgba(187,119,65,.28),transparent 45%)}.auth-card{width:100%;max-width:400px;background:var(--surface);border-radius:var(--r-lg);padding:var(--sp-8) var(--sp-6);box-shadow:var(--shadow-overlay)}.auth-card .cms-brand{color:var(--c-espresso);padding:0;margin-bottom:var(--sp-6)}.auth-card .cms-brand__logo{width:156px}.auth-card .cms-brand__sub{color:var(--c-copper-dark)}.auth-card h1{font-size:var(--fs-xl);margin:0 0 var(--sp-2)}.auth-card .hint{margin-bottom:var(--sp-5)}.auth-card .btn-primary{width:100%;min-height:44px;justify-content:center}.auth-card__foot{margin:var(--sp-4) 0 0}.auth-card__links{display:flex;justify-content:space-between;gap:var(--sp-3);margin-top:var(--sp-4)}.auth-card__links .btn{min-height:40px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.cms-topbar__actions{display:flex;align-items:center;gap:var(--sp-2)}.temp-password{border:1px solid var(--c-copper-light);background:var(--c-cream);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-4)}.temp-password code{display:inline-block;font-size:var(--fs-lg);font-weight:700;letter-spacing:.06em;padding:6px 12px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border-strong);margin:var(--sp-2) var(--sp-2) var(--sp-2) 0;-webkit-user-select:all;user-select:all;word-break:break-all}
