:root{color-scheme:dark;--bg:#0d1117;--surface:#161b22;--surface-raised:#1c2128;--topbar-bg:rgba(13,17,23,.88);--text:#e6edf3;--text-secondary:#8b949e;--line:#30363d;--muted:#6e7681;--brand:#3b82f6;--brand-dark:#2563eb;--brand-light:#0c1a2e;--brand-rgb:59,130,246;--success:#3fb950;--success-bg:#0d2818;--warning:#d29922;--warning-bg:#271d00;--info:#58a6ff;--info-bg:#0c1a2e;--purple:#bc8cff;--purple-bg:#1c0f2e;--danger:#f85149;--danger-bg:#2d0f0f;--nav-bg:#010409;--button-dark-bg:var(--brand);--button-dark-text:#fff;--radius:8px;--radius-sm:6px;--radius-xs:4px;--shadow-xs:0 1px 3px rgba(0,0,0,.5);--shadow-sm:0 2px 8px rgba(0,0,0,.6);--shadow:0 4px 20px rgba(0,0,0,.7);--shadow-lg:0 8px 32px rgba(0,0,0,.8)}[data-theme=light]{color-scheme:light;--bg:#f6f8fa;--surface:#fff;--surface-raised:#f0f2f4;--topbar-bg:rgba(246,248,250,.88);--text:#1f2328;--text-secondary:#656d76;--line:#d1d9e0;--muted:#6e7681;--brand:#2563eb;--brand-dark:#1d4ed8;--brand-light:#eff6ff;--brand-rgb:37,99,235;--success:#1a7f37;--success-bg:#dafbe1;--warning:#9a6700;--warning-bg:#fff8c5;--info:#0969da;--info-bg:#ddf4ff;--purple:#8250df;--purple-bg:#fbefff;--danger:#cf222e;--danger-bg:#ffebe9;--nav-bg:#24292f;--button-dark-bg:var(--nav-bg);--button-dark-text:#fff;--shadow-xs:0 1px 3px rgba(0,0,0,.06);--shadow-sm:0 2px 8px rgba(0,0,0,.07);--shadow:0 4px 20px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.14)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans Thai,sans-serif;font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.app-shell{min-height:100dvh;padding-bottom:92px}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:var(--topbar-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);padding:12px 18px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:16px;font-weight:600;letter-spacing:-.2px}.page{padding:16px 16px 8px}.page,.page-header{width:min(100%,720px);margin:0 auto}.page-header{padding:20px 16px 16px}.page-header-title{font-size:22px;font-weight:700;letter-spacing:-.5px;line-height:1.2}.page-header-sub{font-size:13px;color:var(--text-secondary);margin-top:4px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.section-title{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px}.section-action{font-size:13px;color:var(--brand);font-weight:600}.feed-list{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}.feed-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .1s;text-decoration:none;color:inherit}.feed-item:last-child{border-bottom:none}.feed-item:active{background:var(--surface-raised)}.feed-item-icon{width:40px;height:40px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0;letter-spacing:.3px}.feed-item-body{flex:1 1;min-width:0}.feed-item-title{font-size:14px;font-weight:600}.feed-item-sub,.feed-item-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.feed-item-sub{font-size:12px;color:var(--text-secondary);margin-top:2px}.feed-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.feed-item-add{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 14px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s,color .15s;text-decoration:none}.feed-item-add:hover{border-color:var(--brand);color:var(--brand)}.tag{display:inline-flex;align-items:center;border-radius:var(--radius-xs);padding:2px 7px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.tag-open{background:var(--success-bg);color:var(--success)}.tag-talking{background:var(--warning-bg);color:var(--warning)}.tag-matched{background:var(--info-bg);color:var(--info)}.tag-success{background:var(--purple-bg);color:var(--purple)}.tag-expired{background:var(--danger-bg);color:var(--danger)}.tag-archived{color:var(--muted)}.tag-archived,.tag-route{background:var(--surface-raised);border:1px solid var(--line)}.tag-route{color:var(--text-secondary)}.tag-category{background:var(--brand-light);color:var(--brand)}.countdown{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;border-radius:var(--radius-xs);padding:2px 7px}.countdown.fresh{background:var(--success-bg);color:var(--success)}.countdown.soon{background:var(--warning-bg);color:var(--warning)}.countdown.urgent{background:var(--danger-bg);color:var(--danger)}.countdown.expired{background:var(--surface-raised);color:var(--muted)}.card{padding:16px}.card,.card-image{background:var(--surface);border-radius:var(--radius);border:1px solid var(--line)}.card-image{overflow:hidden}.card-image .card-img{width:100%;height:180px;object-fit:cover}.card-image .card-img-placeholder{width:100%;height:140px;background:var(--surface-raised);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--text-secondary);font-size:13px;font-weight:500}.card-image .card-body{padding:14px 16px 16px}.stack{gap:12px}.stack,.stack-sm{display:flex;flex-direction:column}.stack-sm{gap:8px}.row{justify-content:space-between;gap:10px}.row,.row-start{display:flex;align-items:center}.row-start{gap:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.info-row{align-items:center;flex-wrap:wrap}.field,.info-row{display:flex;gap:6px}.field{flex-direction:column}.label{font-size:13px;font-weight:600;color:var(--text-secondary)}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:var(--radius-xs);padding:10px 12px;background:var(--bg);color:var(--text);outline:none;transition:border-color .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand)}.textarea{min-height:96px;resize:vertical}.button{min-height:40px;border:none;border-radius:var(--radius-sm);padding:0 16px;background:var(--brand);color:#fff;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:opacity .15s,transform .1s;-webkit-tap-highlight-color:transparent}.button:active{transform:scale(.98);opacity:.9}.button:disabled{opacity:.4;cursor:not-allowed;transform:none}.button.secondary{background:var(--surface-raised);color:var(--text);border:1px solid var(--line)}.button.ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--line)}.button.danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--line)}.button.dark{background:var(--button-dark-bg);color:var(--button-dark-text)}.button-sm{min-height:30px;padding:0 10px}.button-sm,.chip{font-size:12px;border-radius:var(--radius-xs)}.chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--surface);color:var(--text-secondary);font-weight:500;white-space:nowrap;border:1px solid var(--line)}.chip.active{background:var(--surface-raised);color:var(--text);border-color:var(--muted)}.chip.brand{background:var(--brand-light);color:var(--brand);border-color:transparent}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-xs);padding:3px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.badge-open{background:var(--success-bg);color:var(--success)}.badge-talking{background:var(--warning-bg);color:var(--warning)}.badge-matched{background:var(--info-bg);color:var(--info)}.badge-success{background:var(--purple-bg);color:var(--purple)}.badge-expired{background:var(--danger-bg);color:var(--danger)}.badge-archived{color:var(--muted)}.badge-archived,.rank-badge{background:var(--surface-raised)}.rank-badge{display:inline-flex;align-items:center;border-radius:var(--radius-xs);padding:2px 7px;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--text);border:1px solid var(--line)}.upload-zone{border:1px dashed var(--line);border-radius:var(--radius);padding:28px 16px;text-align:center;cursor:pointer;background:var(--bg);transition:border-color .15s}.upload-zone:hover{border-color:var(--brand)}.upload-zone.has-image{border-style:solid;border-color:var(--line);padding:0;overflow:hidden}.upload-preview{width:100%;height:200px;object-fit:cover}.bottom-nav{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:100;background:var(--nav-bg);padding:6px 4px;gap:2px;box-shadow:0 4px 24px rgba(0,0,0,.6),0 0 0 1px hsla(0,0%,100%,.06)}.bottom-nav,.nav-item{border-radius:999px;display:flex;align-items:center}.nav-item{flex-direction:column;justify-content:center;gap:3px;padding:7px 16px;color:hsla(0,0%,100%,.3);font-size:10px;font-weight:600;transition:background .15s,color .15s;cursor:pointer;-webkit-tap-highlight-color:transparent;min-width:58px}.nav-item svg{width:20px;height:20px;stroke-width:1.8}.nav-item.active{background:hsla(0,0%,100%,.1);color:#fff}.nav-item.active svg{stroke-width:2.2}.filter-scroll{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}.filter-scroll::-webkit-scrollbar{display:none}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 24px;text-align:center}.empty-icon{width:48px;height:48px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);color:var(--muted)}.avatar,.empty-icon{display:flex;align-items:center;justify-content:center}.avatar{border-radius:999px;background:var(--brand);color:#fff;font-weight:700;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.detail-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.detail-row:last-child{border-bottom:none}.detail-key{color:var(--text-secondary)}.detail-val{font-weight:600;text-align:right}.muted{color:var(--text-secondary)}.divider{height:1px;background:var(--line);border:none;margin:4px 0}@keyframes spin{to{transform:rotate(1turn)}}