@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-vietnamese-wdth-normal.rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-ext-wdth-normal.7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/_astro/archivo-latin-wdth-normal.DY7AcnAa.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}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/jetbrains-mono-latin-600-normal.C8RAYTDA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-600-normal.BfsvjouI.woff) format("woff")}:root{--ink:#15171a;--paper:#f5f3ee;--sand:#ece9e2;--line:#d6d2c9;--line-soft:#e3dfd6;--orange:#f47b20;--orange-dk:#e06a12;--rust:#a8430a;--muted:#5b5f66;--muted-dark:#9ea3aa;--on-dark:#c9ccd1;--dark-line:#2a2d32;--dark-border:#3a3e45;--card:#fff;--ok:#14502b;--ok-bg:#e3f4e8;--warn:#7a4a00;--warn-bg:#fdf0d5;--bad:#7a2410;--bad-bg:#fde8e2;--info:#1d4a7a;--info-bg:#e6eef7;--font:"Archivo Variable","Archivo Fallback",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--r:4px;--rl:8px;--nav-h:68px}@font-face{font-family:Archivo Fallback;src:local("Arial");size-adjust:103%;ascent-override:88%;descent-override:22%;line-gap-override:0%}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:var(--rust)}a:hover{color:var(--ink)}:focus-visible{outline:3px solid var(--orange);outline-offset:2px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}img{max-width:100%;display:block}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;padding:0}.skip{position:absolute;left:-9999px;top:0;background:var(--orange);color:var(--ink);padding:12px 18px;z-index:300;font-weight:700}.skip:focus{left:8px;top:8px;color:var(--ink)}.mono{font-family:var(--mono)}.muted{color:var(--muted)}.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--rust)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 20px;border-radius:var(--r);font:inherit;font-weight:700;font-size:16px;line-height:1.2;border:1.5px solid transparent;cursor:pointer;text-align:center;text-decoration:none;background:none;color:var(--ink)}.btn--primary{background:var(--orange);color:var(--ink)}.btn--primary:hover{background:var(--orange-dk);color:var(--ink)}.btn--dark{background:var(--ink);color:var(--paper)}.btn--dark:hover{background:#000;color:#fff}.btn--outline{border-color:var(--ink)}.btn--outline:hover{background:var(--ink);color:var(--paper)}.btn--sm{min-height:44px;padding:8px 14px;font-size:15px}.btn--block{display:flex;width:100%}.btn[disabled],.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.linkbtn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:12px 4px;min-height:44px;font:inherit;font-weight:700;color:var(--rust);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;min-height:56px;padding-top:max(10px,env(safe-area-inset-top))}.brand{min-height:44px;display:flex;align-items:center;gap:10px;font-weight:800;font-stretch:106%;letter-spacing:-.01em;color:var(--paper);text-decoration:none;font-size:18px}.brand:hover{color:var(--paper)}.brand i{width:28px;height:28px;border-radius:6px;background:var(--orange);display:grid;place-items:center;font-style:normal;color:var(--ink);font-size:16px}.who{font-size:14px;color:var(--on-dark);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:55vw}.side{display:none}.tabs{position:fixed;z-index:50;left:0;right:0;bottom:0;background:var(--ink);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--dark-line)}.tabs a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:var(--nav-h);padding:6px 2px;color:var(--on-dark);text-decoration:none;font-size:12px;font-weight:600;position:relative}.tabs a[aria-current=page]{color:var(--orange)}.tabs a[aria-current=page]:before{content:"";position:absolute;top:0;left:20%;right:20%;height:3px;background:var(--orange)}.tabs .dot,.side .dot{position:absolute;top:8px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--orange);color:var(--ink);font-size:11px;font-weight:800;display:grid;place-items:center}main.main{flex:1;padding:20px 16px calc(var(--nav-h) + 28px + env(safe-area-inset-bottom));width:100%;max-width:1100px;margin:0 auto;outline:none}main.main:focus{outline:none}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:20px}.page-head h1{font-size:clamp(28px,5vw,40px);line-height:1.05;font-weight:850;font-stretch:106%;letter-spacing:-.02em}.page-head h1:focus{outline:none}.page-head p{color:var(--muted);margin-top:6px}@media(min-width:900px){.shell{display:grid;grid-template-columns:260px 1fr;grid-template-rows:auto 1fr}.topbar{grid-column:1 / -1;display:none}.shell.has-banner .topbar{display:none}.side{display:flex;flex-direction:column;gap:4px;background:var(--ink);color:var(--paper);padding:22px 14px;position:sticky;top:0;align-self:start;height:100vh;grid-row:1 / -1}.shell.has-banner .side{top:0}.side .brand{padding:0 10px 22px}.side a.nav{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px;border-radius:var(--r);color:var(--on-dark);text-decoration:none;font-weight:600;position:relative}.side a.nav:hover{background:var(--dark-line);color:var(--paper)}.side a.nav[aria-current=page]{background:var(--dark-line);color:var(--paper);box-shadow:inset 3px 0 0 var(--orange)}.side a.nav .dot{position:static;margin-left:auto}.side .foot{margin-top:auto;padding:12px 10px 0;font-size:14px;color:var(--muted-dark);border-top:1px solid var(--dark-line);overflow-wrap:anywhere}.side .foot a{color:var(--on-dark)}.tabs{display:none}main.main{padding:36px 40px 60px}}.banner{padding:10px 16px;font-size:15px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:center;text-align:center}.banner--demo{background:var(--orange);color:var(--ink);font-weight:600}.banner--demo a{color:var(--ink);font-weight:800;text-decoration:underline;display:inline-flex;align-items:center;min-height:44px;padding:0 6px}.banner--ro{background:var(--info-bg);color:var(--info);border-bottom:1px solid #b9cde4}.banner .linkbtn{color:inherit;padding:8px 4px}.banner--demo,.banner--ro{position:sticky;top:0;z-index:60}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--rl);padding:20px}.card h2{font-size:18px;font-weight:750;margin-bottom:10px}.card--dark{background:var(--ink);color:var(--paper);border-color:var(--ink)}.card--dark .muted{color:var(--muted-dark)}.stack{display:flex;flex-direction:column;gap:16px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.grid2{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.kpis{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}@media(min-width:700px){.kpis{grid-template-columns:repeat(4,1fr)}}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--rl);padding:16px;display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink)}.kpi .v{font-size:clamp(26px,4vw,36px);font-weight:850;letter-spacing:-.02em;line-height:1.05;font-stretch:106%}.kpi .l{font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.kpi .s{font-size:14px;color:var(--muted)}.kpi--bad{border-color:#e5a595;background:var(--bad-bg)}a.kpi:hover{border-color:var(--ink)}.status{border-radius:var(--rl);padding:22px 20px;display:flex;flex-direction:column;gap:12px;border:1px solid var(--line);background:var(--card)}.status h2{font-size:clamp(24px,4.5vw,32px);font-weight:850;line-height:1.1;letter-spacing:-.02em;font-stretch:106%;margin:0}.status--live{background:var(--ok-bg);border-color:#a7d9b5}.status--preview{background:var(--info-bg);border-color:#b9cde4}.status--wait{background:var(--warn-bg);border-color:#ecd08b}.status--bad{background:var(--bad-bg);border-color:#f3b9a8}.status ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:5px 10px;border-radius:20px;background:var(--ink);color:var(--paper);align-self:flex-start}.pill--ok{background:var(--ok)}.pill--info{background:var(--info)}.pill--warn{background:var(--warn)}.pill--bad{background:var(--bad)}.badge{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:3px 8px;border-radius:3px;background:var(--orange);color:var(--ink);white-space:nowrap}.badge--grey{background:var(--sand);color:var(--muted);border:1px solid var(--line)}.badge--ok{background:var(--ok-bg);color:var(--ok)}.badge--warn{background:var(--warn-bg);color:var(--warn)}.badge--bad{background:var(--bad-bg);color:var(--bad)}.badge--info{background:var(--info-bg);color:var(--info)}.chip{display:inline-block;background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:6px 12px;font-size:14px}.chips{display:flex;flex-wrap:wrap;gap:8px}.fchip{min-height:44px;padding:8px 16px;border-radius:22px;border:1.5px solid var(--line);background:var(--card);font:inherit;font-weight:600;font-size:15px;cursor:pointer;color:var(--ink)}.fchip[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.list{list-style:none;margin:0;padding:0;background:var(--card);border:1px solid var(--line);border-radius:var(--rl);overflow:hidden}.list>li+li{border-top:1px solid var(--line-soft)}.item{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;min-height:64px;text-decoration:none;color:var(--ink);width:100%}a.item:hover{background:var(--paper);color:var(--ink)}.item .main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.item .t{font-weight:700;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.item .m{color:var(--muted);font-size:15px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.item time{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap;padding-top:3px}.item.unread{box-shadow:inset 4px 0 0 var(--orange)}.item.unread .t{font-weight:850}.kv{display:grid;grid-template-columns:minmax(110px,170px) 1fr;gap:10px 16px;margin:0}.kv dt{color:var(--muted);font-size:14px}.kv dd{margin:0;overflow-wrap:anywhere}@media(max-width:520px){.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:10px}}.actions{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.photos{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}@media(min-width:600px){.photos{grid-template-columns:repeat(3,1fr)}}@media(min-width:1000px){.photos{grid-template-columns:repeat(4,1fr)}}.photo{position:relative;display:block;aspect-ratio:4/3;background:var(--sand);border-radius:var(--rl);overflow:hidden;border:1px solid var(--line)}.photo img{width:100%;height:100%;object-fit:cover}.photo span{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(transparent,#15171acc);color:#fff;font-size:12px;padding:18px 8px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tablewrap{background:var(--card);border:1px solid var(--line);border-radius:var(--rl);overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:15px}.tbl th{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);white-space:nowrap;background:var(--paper)}.tbl td{padding:6px 14px;border-bottom:1px solid var(--line-soft);vertical-align:middle;min-height:48px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr:hover{background:#faf8f4}.tbl td a.cell{display:flex;flex-direction:column;justify-content:center;min-height:48px;font-weight:700;color:var(--ink);text-decoration:none}.tbl td a.cell small{font-weight:400;color:var(--muted)}.tbl td a.cell:hover{color:var(--rust)}.tbl tr:focus-within{outline:2px solid var(--orange);outline-offset:-2px}.tbl td.num,.tbl th.num{text-align:right}@media(max-width:760px){.hide-sm{display:none}}.toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.toolbar .field{flex:1 1 200px}.field{display:flex;flex-direction:column;gap:6px;font-size:15px;font-weight:600}.field input,.field select,.field textarea{font:inherit;font-weight:400;font-size:16px;min-height:48px;padding:12px 14px;border:1.5px solid var(--line);border-radius:var(--r);background:#fff;color:var(--ink);width:100%}.field textarea{min-height:96px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid var(--orange);outline-offset:0;border-color:var(--ink)}.hint{font-size:14px;color:var(--muted);font-weight:400}.notice{padding:12px 14px;border-radius:var(--r);font-size:15px;border:1px solid}.notice--info{background:var(--info-bg);border-color:#b9cde4;color:var(--info)}.notice--ok{background:var(--ok-bg);border-color:#a7d9b5;color:var(--ok)}.notice--warn{background:var(--warn-bg);border-color:#ecd08b;color:var(--warn)}.notice--bad{background:var(--bad-bg);border-color:#f3b9a8;color:var(--bad)}.empty{text-align:center;padding:40px 20px;background:var(--card);border:1px dashed var(--line);border-radius:var(--rl);display:flex;flex-direction:column;align-items:center;gap:10px}.empty h2{font-size:20px;font-weight:750}.empty p{color:var(--muted);max-width:42ch}.empty svg{color:var(--muted)}.skel{background:linear-gradient(90deg,var(--sand) 25%,#f3f1ec 50%,var(--sand) 75%);background-size:200% 100%;animation:shim 1.4s infinite linear;border-radius:var(--r)}@keyframes shim{to{background-position:-200% 0}}.skel--line{height:16px}.skel--block{height:120px;border-radius:var(--rl)}@media(prefers-reduced-motion:reduce){.skel{animation:none}*{scroll-behavior:auto!important;transition:none!important}}.login{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--ink)}.login-card{width:100%;max-width:440px;background:var(--paper);border-radius:var(--rl);padding:28px 24px;display:flex;flex-direction:column;gap:18px}.login-card h1{font-size:30px;line-height:1.05;font-weight:850;font-stretch:106%;letter-spacing:-.02em}.login-card h1:focus{outline:none}.login .brand{color:var(--paper);margin-bottom:20px;justify-content:center}.ts{min-height:65px}.big-icon{width:56px;height:56px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center}.big-icon--bad{background:var(--bad-bg);color:var(--bad)}
