:root{--bg:#F4F5F7;--panel:#FFFFFF;--panel-2:#EDEFF3;--ink:#171A21;--ink-2:#555B68;--ink-3:#868C9B;--rule:#DCDFE6;--rule-2:#C2C7D2;--accent:#3B4E8C;--ok:#2E6B4F;--ok-bg:#E3EFE8;--warn:#8A6510;--warn-bg:#F3EAD6;--bad:#97362B;--bad-bg:#F4E4E1;--chat-accent:#95191F;--chat-accent-ink:#95191F;--f-ui:"IBM Plex Sans Thai",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Consolas,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#12141A;--panel:#1A1D25;--panel-2:#22262F;--ink:#E6E9EF;--ink-2:#A4AAB8;--ink-3:#767D8C;--rule:#2B3038;--rule-2:#3B4250;--accent:#93A6E4;--ok:#7FC49C;--ok-bg:#172A20;--warn:#DBAB53;--warn-bg:#2C2312;--bad:#E2897A;--bad-bg:#2E1815;--chat-accent-ink:#E58A8F}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-ui);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:var(--accent)}.mono,code{font-family:var(--f-mono);font-size:.88em}.shell{max-width:900px;margin:0 auto;padding:32px 20px 80px;display:flex;flex-direction:column;gap:26px}.topbar{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:space-between;border-bottom:2px solid var(--ink);padding-bottom:14px}.brand{font-weight:700;font-size:19px;letter-spacing:-.01em}.eyebrow{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px}.card{background:var(--panel);border:1px solid var(--rule);padding:20px;display:flex;flex-direction:column;gap:12px}.card h2{margin:0;font-size:17px;font-weight:600}.muted{color:var(--ink-2);margin:0}.small{font-size:13.5px}.kv{display:grid;grid-template-columns:150px 1fr;grid-gap:8px 16px;gap:8px 16px}.kv dt{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-top:3px}.kv dd{margin:0}.pill{display:inline-block;font-family:var(--f-mono);font-size:11.5px;font-weight:500;padding:2px 9px;border-radius:2px;white-space:nowrap}.pill--ok{background:var(--ok-bg);color:var(--ok)}.pill--warn{background:var(--warn-bg);color:var(--warn)}.pill--bad{background:var(--bad-bg);color:var(--bad)}.pill--mute{background:var(--panel-2);color:var(--ink-3)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));grid-gap:1px;gap:1px;background:var(--rule);border:1px solid var(--rule)}.grid2>div{background:var(--panel);padding:14px 16px}.btn{display:inline-block;font:inherit;font-size:14px;font-weight:500;cursor:pointer;background:var(--accent);color:#fff;border:1px solid transparent;padding:9px 18px;border-radius:3px;text-decoration:none}.btn:hover{filter:brightness(1.08)}.btn--quiet{background:transparent;color:var(--ink-2);border-color:var(--rule-2)}.btn:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.notice{border-left:3px solid var(--warn);background:var(--warn-bg);padding:12px 15px;font-size:14px}.notice--bad{border-left-color:var(--bad);background:var(--bad-bg)}.center{min-height:78vh;display:flex;align-items:center;justify-content:center}.login{max-width:380px;width:100%;text-align:center;gap:18px}.login,ul.plain{display:flex;flex-direction:column}ul.plain{margin:0;padding-left:18px;gap:5px}ul.plain li{font-size:14px;color:var(--ink-2)}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs a{text-decoration:none;padding:5px 12px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.stack{list-style:none;margin:0;padding:0;gap:12px}.form,.stack{display:flex;flex-direction:column}.form{gap:16px}.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px;gap:12px}.field{display:flex;flex-direction:column;gap:6px}.field>label,.label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.field>label.check{font-family:var(--f-ui);font-size:14px;letter-spacing:0;text-transform:none;color:var(--ink);display:flex;gap:8px;align-items:center;cursor:pointer}.input,.select,.textarea{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--rule-2);border-radius:3px;background:var(--panel);color:var(--ink);width:100%}.textarea{line-height:1.6;resize:vertical}.input:focus-visible,.select:focus-visible,.textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hint{font-size:12.5px;color:var(--ink-3);margin:0}.errors{margin:0;padding-left:18px}.notice--ok{border-left-color:var(--ok);background:var(--ok-bg)}.scroll-x{overflow-x:auto}.boxed{border:1px solid var(--rule);background:var(--panel);padding:11px 15px;display:flex;flex-direction:column;gap:5px}.stat-num{display:block;font-size:20px;font-weight:600;letter-spacing:-.01em;margin:2px 0}.grid2>a{background:var(--panel);padding:14px 16px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:2px}.grid2>a:hover{background:var(--panel-2)}table.data{width:100%;border-collapse:collapse;font-size:13.5px}table.data th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--rule-2);font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:500;white-space:nowrap}table.data td{padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top}details.fold{border:1px solid var(--rule);background:var(--panel)}details.fold>summary{cursor:pointer;padding:11px 15px;font-weight:500;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;list-style:none}details.fold>summary::-webkit-details-marker{display:none}details.fold>summary:before{content:"\25B8";color:var(--ink-3);margin-right:2px}details.fold[open]>summary:before{content:"\25BE"}details.fold[open]>summary{border-bottom:1px solid var(--rule)}.fold-body{padding:13px 15px;display:flex;flex-direction:column;gap:10px}.reply{white-space:pre-wrap;margin:0;font-family:var(--f-ui);font-size:14px;line-height:1.6}.btn--small{padding:4px 10px;font-size:12.5px}.btn:disabled{opacity:.55;cursor:default;filter:none}.cc-list{display:flex;flex-direction:column;border:1px solid var(--rule);background:var(--panel)}.cc-row,.tr-row{display:grid;grid-gap:8px;gap:8px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--rule);font-size:13.5px}.cc-row{grid-template-columns:minmax(80px,.9fr) minmax(110px,1.1fr) minmax(110px,1.1fr) minmax(190px,1.6fr) 150px}.cc-row.cc-row--noteam{grid-template-columns:minmax(110px,1.1fr) minmax(110px,1.1fr) minmax(190px,1.6fr) 150px}.tr-row{grid-template-columns:minmax(90px,.8fr) minmax(160px,1.8fr) minmax(120px,1fr) minmax(190px,1.4fr) 150px}.cc-list>:last-child{border-bottom:0}.cc-row--head{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding-top:6px;padding-bottom:6px}.cc-row--add,.cc-row--editing,.cc-row--head{background:var(--panel-2)}.cc-row .input,.cc-row .select,.tr-form .input{padding:6px 8px;font-size:13.5px}.cc-code{gap:8px}.cc-actions,.cc-code{display:flex;align-items:center;flex-wrap:wrap}.cc-actions{gap:6px;justify-content:flex-end}.cc-inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}.cc-error{color:var(--bad);font-size:12.5px}.cc-wide{grid-column:1/-1}.cc-empty{padding:10px;border-bottom:1px solid var(--rule)}.tr-row .hint{display:block}.tr-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:8px 10px;gap:8px 10px;padding:10px;border-bottom:1px solid var(--rule);background:var(--panel-2)}.tr-form .cc-actions{justify-content:flex-start}@media (max-width:640px){.cc-row,.cc-row.cc-row--noteam,.tr-row{grid-template-columns:1fr 1fr}.cc-row--head{display:none}.cc-actions{grid-column:1/-1;justify-content:flex-start}}.chat-app{height:100dvh;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.chat-head{display:flex;align-items:center;gap:12px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;background:var(--panel);border-bottom:1px solid var(--rule);flex:0 0 auto}.chat-head__text{min-width:0;flex:1 1}.chat-head__name{font-weight:700;font-size:16px;line-height:1.2}.chat-head__sub{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-close{font:inherit;background:transparent;border:0;color:var(--ink-3);font-size:18px;padding:6px 8px;cursor:pointer}.chat-avatar{width:28px;height:28px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:var(--chat-accent);color:#fff;font-family:var(--f-mono);font-size:10px;font-weight:600}.chat-avatar:empty{background:transparent}.chat-avatar--lg{width:40px;height:40px;font-size:13px}.chat-avatar--xl{width:72px;height:72px;font-size:22px;margin:0 auto 14px}.chat-list{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 12px 8px}.chat-thread{display:flex;flex-direction:column;gap:3px}.chat-time{text-align:center;font-size:11.5px;color:var(--ink-3);margin:14px 0 8px;font-family:var(--f-mono)}.chat-row{display:flex;align-items:flex-end;gap:8px}.chat-row--user{justify-content:flex-end}.chat-row--last{margin-bottom:8px}.chat-col{display:flex;flex-direction:column;gap:3px;max-width:80%;min-width:0}.chat-row--user .chat-col{align-items:flex-end}.chat-who{font-size:11px;color:var(--ink-3);margin:0 6px}.chat-bubble{padding:9px 14px;border-radius:20px;font-size:15px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.chat-bubble--user{background:var(--chat-accent);color:#fff;border-bottom-right-radius:6px}.chat-bubble--bot{background:var(--panel-2);color:var(--ink);border-bottom-left-radius:6px}.chat-row--bot:not(.chat-row--last) .chat-bubble--bot{border-bottom-left-radius:20px}.chat-note{font-size:11.5px;color:var(--ink-3);margin:0 6px}.chat-card{width:min(100%,340px)}.chat-row--bot .chat-col:has(.chat-card){max-width:calc(100% - 36px)}.flex-card{background:#FFFFFF;color:#171A21;border-radius:16px;overflow:hidden;border:1px solid var(--rule)}.flex-carousel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;scrollbar-width:thin}.flex-carousel>.flex-card{flex:0 0 min(100%,300px);scroll-snap-align:start}.chat-card:has(.flex-carousel){width:100%}.flex-tap{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-tap:active{filter:brightness(.95)}.flex-btn{font:inherit;font-size:13.5px;font-weight:600;padding:8px 12px;border-radius:8px;border:1px solid #dcdfe6;background:#F4F5F7;color:#95191F;cursor:pointer}.flex-btn--primary{background:#95191F;color:#fff;border-color:transparent}.chat-typing{display:flex;gap:4px;align-items:center;padding:12px 14px}.chat-typing span{width:7px;height:7px;border-radius:50%;background:var(--ink-3);animation:chat-dot 1.2s ease-in-out infinite}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.chat-chips{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 6px 36px}.chat-chips--center{justify-content:center;padding-left:0}.chat-chip{font:inherit;font-size:13.5px;padding:7px 13px;border-radius:999px;border:1px solid var(--chat-accent-ink);background:var(--panel);color:var(--chat-accent-ink);cursor:pointer;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-chip:active{background:var(--panel-2)}.chat-empty{text-align:center;color:var(--ink-2);padding:48px 20px;font-size:14.5px}.chat-empty--bad{color:var(--bad)}.chat-input{display:flex;align-items:flex-end;gap:8px;padding:8px 10px max(8px,env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--rule);flex:0 0 auto}.chat-input__field{flex:1 1;font:inherit;font-size:15px;line-height:1.4;padding:10px 16px;border-radius:22px;border:1px solid var(--rule-2);background:var(--bg);color:var(--ink);resize:none;max-height:120px;min-height:42px}.chat-input__field:focus-visible{outline:2px solid var(--chat-accent-ink);outline-offset:1px}.chat-send{width:42px;height:42px;border-radius:50%;border:0;background:var(--chat-accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}.chat-send:disabled{opacity:.4;cursor:default}.chat-toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:8px 16px;border-radius:999px;font-size:13.5px;box-shadow:0 4px 16px rgba(0,0,0,.2)}.chat-panel-view{background:var(--bg);padding:12px}.chat-panel-view .chat-col{max-width:min(80%,520px)}.chat-body{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.chat-suggest{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:2px 0 6px 36px}.chat-suggest__label{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.chat-chip--soft{border-color:var(--rule-2);color:var(--ink-2);background:transparent;font-size:13px;padding:6px 12px}