:root{--bg:#f7f2ea;--sf:#fff;--sunk:#f1e9dd;--ink:#2b2320;--soft:#6f635a;--faint:#9b8d80;--bd:#e7dccb;--acc:#a84e2e;--acc-hover:#8a3f24;--acc-sf:#f4e5dd;--gold:#b0791f;--gold-sf:#f5ebd6;--gold-bd:#e7d3a8;--gold-ink:#7a5514;--f-head:"Prompt", "Sarabun", system-ui, -apple-system, sans-serif;--f-body:"Sarabun", system-ui, -apple-system, sans-serif;--line-parent:#d9c8ad;--line-parent-ghost:#c9a97c;--line-bridge:#b08a52;--line-sibling:#b5122e;--line-spouse:#d63a7a;--ribbon:#1a1614;--shadow-node:0 1px 2px #2b23200d, 0 10px 22px -14px #2b23202e}*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;background:#eee6d8;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--f-head);margin:0;font-weight:600}a{color:var(--acc);text-decoration:none}a:hover{color:var(--acc-hover)}button{font-family:var(--f-head);cursor:pointer}input,select,textarea{font-family:var(--f-body);font-size:15px}.app-frame{background:var(--bg);flex-direction:column;width:100%;max-width:430px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden;box-shadow:0 0 60px -20px #2b232040}@media (min-width:640px){.app-frame{max-width:760px}}@media (min-width:1024px){.app-frame{max-width:1120px;box-shadow:none}}.admin-list{flex-direction:column;gap:12px;display:flex}@media (min-width:760px){.admin-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start;display:grid}}.admin-content{padding:16px}@media (min-width:1024px){.admin-content{padding:24px 28px}}.admin-report-split{grid-template-columns:1fr}@media (min-width:900px){.admin-report-split{grid-template-columns:1.6fr 1fr}}.tt-scroll{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.tt-topbar{background:var(--sf);border-bottom:1px solid var(--bd);padding:16px 18px 12px}.tt-goldrule{background:linear-gradient(90deg, var(--gold) 0%, #d9b877 45%, transparent 90%);border-radius:2px;height:2px;margin-top:12px}.tt-crest{background:var(--acc-sf);width:34px;height:34px;color:var(--acc);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tt-iconbtn{border:1px solid var(--bd);background:var(--sf);width:34px;height:34px;color:var(--soft);border-radius:10px;flex:none;justify-content:center;align-items:center;display:flex}.tt-card{background:var(--sf);border:1px solid var(--bd);border-radius:16px}.tt-btn{width:100%;height:48px;font-family:var(--f-head);border:0;border-radius:13px;justify-content:center;align-items:center;gap:8px;font-size:14.5px;font-weight:600;display:flex}.tt-btn:disabled{opacity:.55}.tt-btn--pri{background:var(--acc);color:#fff}.tt-btn--sec{background:var(--sf);color:var(--ink);border:1px solid var(--bd)}.tt-btn--gold{background:var(--gold-sf);color:var(--gold-ink);border:1px solid var(--gold-bd)}.tt-field{flex-direction:column;gap:6px;display:flex}.tt-field label{color:var(--soft);font-size:12.5px;font-weight:600}.tt-field .req{color:var(--acc)}.tt-input{border:1px solid var(--bd);background:var(--sf);height:46px;color:var(--ink);border-radius:12px;width:100%;padding:0 13px;font-size:14px}.tt-input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-sf);outline:0}.tt-seg{background:var(--sunk);border-radius:12px;gap:4px;padding:5px;display:flex}.tt-seg button{font-family:var(--f-body);color:var(--soft);background:0 0;border:0;border-radius:9px;flex:1;padding:9px 0;font-size:13px;font-weight:600}.tt-seg button.on{background:var(--sf);color:var(--acc);box-shadow:0 1px 2px #2b23201a}.tt-error{color:#a4331f;background:#f8e6df;border:1px solid #eccabb;border-radius:10px;padding:10px 12px;font-size:13px}.tt-muted{color:var(--soft);font-size:13px}.tt-hint{background:var(--gold-sf);border:1px solid var(--gold-bd);color:#7a5a1c;border-radius:13px;gap:10px;padding:12px 13px;font-size:12.5px;line-height:1.5;display:flex}.tt-hint svg{color:var(--gold);flex:none;margin-top:1px}.tt-spin{border:2.5px solid var(--bd);border-top-color:var(--acc);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite tt-spin}@keyframes tt-spin{to{transform:rotate(360deg)}}.tt-center{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}
