:root{--bg: #f4f5f7;--panel: #ffffff;--panel-2: #f8f9fb;--border: #e2e5ea;--text: #1d2330;--muted: #6b7385;--accent: #2f6fde;--accent-soft: #e8f0fd;--good: #1f9d55;--bad: #d64545;--warn: #b7791f;--crit: #d9480f;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #12151b;--panel: #1b1f27;--panel-2: #222733;--border: #2e3442;--text: #e6e9ef;--muted: #98a1b3;--accent: #6b9cff;--accent-soft: #233150;--good: #4ccb84;--bad: #ff7272;--warn: #e3b341;--crit: #ff8a4c;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #12151b;--panel: #1b1f27;--panel-2: #222733;--border: #2e3442;--text: #e6e9ef;--muted: #98a1b3;--accent: #6b9cff;--accent-soft: #233150;--good: #4ccb84;--bad: #ff7272;--warn: #e3b341;--crit: #ff8a4c;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:IBM Plex Sans Thai,Noto Sans Thai,Leelawadee UI,Tahoma,system-ui,sans-serif;font-size:14px;line-height:1.45}h1,h2,h3,h4{margin:0;font-weight:600}h2{font-size:15px}h3{font-size:13px;color:var(--muted);font-weight:600}a{color:var(--accent)}.muted{color:var(--muted)}.small{font-size:12px}.num{font-variant-numeric:tabular-nums}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}input,select,textarea,button{font:inherit;color:inherit}input[type=number],input[type=text],input:not([type]),select,textarea{background:var(--panel);border:1px solid var(--border);border-radius:7px;padding:5px 8px;min-width:0;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}input[type=number]{font-variant-numeric:tabular-nums}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}textarea{font-family:ui-monospace,Consolas,monospace;font-size:12px}button,.btn{display:inline-flex;align-items:center;gap:6px;justify-content:center;border:1px solid var(--border);background:var(--panel);border-radius:7px;padding:5px 11px;cursor:pointer;white-space:nowrap}button:hover{border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.ghost{border-color:transparent;background:transparent}button.ghost:hover{background:var(--panel-2)}button.danger{color:var(--bad)}button.sm{padding:2px 8px;font-size:12px}button:disabled{opacity:.5;cursor:default}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.panel>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}.panel>.body{padding:12px 14px}.field{display:flex;flex-direction:column;gap:3px}.field>span{font-size:12px;color:var(--muted)}.row{display:flex;gap:8px;align-items:center}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stack{display:flex;flex-direction:column;gap:10px}.spacer{flex:1}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);padding:0 8px;overflow-x:auto}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:10px 12px;color:var(--muted)}.app{max-width:1400px;margin:0 auto;padding:12px 16px 40px}.top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px}.brand{font-weight:700;font-size:16px}.brand small{font-weight:400;color:var(--muted);margin-left:6px;font-size:12px}.jobbtn{font-weight:600;padding:6px 12px}.search{max-width:260px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}.aside{position:sticky;top:12px;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 24px);overflow:auto}@media(max-width:900px){.layout{grid-template-columns:1fr}.aside{position:static;max-height:none}}.jtabs{display:flex;gap:6px;overflow-x:auto;padding:10px 12px;border-bottom:1px solid var(--border)}.jtab{flex-direction:column;align-items:flex-start;gap:0;padding:5px 12px;min-width:110px}.jtab.active{border-color:var(--accent);background:var(--accent-soft)}.jtab .pts{font-size:12px;color:var(--muted)}.jtab .pts.full{color:var(--good)}.jtab .pts.over{color:var(--bad);font-weight:600}.jtab .match{font-size:11px;color:var(--accent)}.board{display:flex;gap:10px;padding:12px;overflow-x:auto}.col{display:flex;flex-direction:column;gap:8px;min-width:210px;flex:1 1 210px;max-width:260px}.colhead{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}@media(max-width:640px){.board{flex-direction:column;overflow:visible}.col{max-width:none;min-width:0}}.card{display:grid;grid-template-columns:32px 1fr auto;gap:4px 8px;align-items:center;border:1px solid var(--border);border-radius:9px;padding:7px 8px;background:var(--panel);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.card:hover{border-color:var(--accent)}.card.sel{outline:2px solid var(--accent);outline-offset:-1px}.card.learned{background:var(--accent-soft)}.card.maxed{border-color:var(--good)}.card.locked{opacity:.6}.card.req{outline:2px dashed var(--warn);outline-offset:-1px}.card.dep{outline:2px dotted var(--accent);outline-offset:-1px}.card.dim{opacity:.25}.icon{width:32px;height:32px;border-radius:6px;background:var(--panel-2);display:grid;place-items:center;overflow:hidden;font-size:12px;color:var(--muted)}.icon img{width:24px;height:24px;image-rendering:pixelated}.cname{font-weight:500;font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}.cname .lv{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:400;margin-left:4px}.card.learned .cname .lv{color:var(--accent);font-weight:600}.card.maxed .cname .lv{color:var(--good)}.stepper{display:flex;gap:2px}.stepper button{width:26px;height:26px;padding:0;font-weight:700}.pips{grid-column:1 / -1;display:flex;gap:2px}.pips i{flex:1;height:6px;border-radius:3px;background:var(--border)}.pips i.on{background:var(--accent)}.card.maxed .pips i.on{background:var(--good)}.needs{grid-column:1 / -1;font-size:11px;color:var(--warn)}.tag{font-size:10px;padding:0 5px;border-radius:4px;background:var(--panel-2);color:var(--muted);margin-left:4px;vertical-align:1px}.bar{height:6px;background:var(--panel-2);border-radius:3px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--accent)}.bar.full>i{background:var(--good)}.bar.over>i{background:var(--bad)}.ptrow{display:grid;grid-template-columns:1fr auto;gap:2px 8px;font-size:13px}.ptrow .bar{grid-column:1 / -1}.dhead{display:flex;gap:10px;align-items:center}.dhead .icon{width:40px;height:40px}.dhead .icon img{width:32px;height:32px}.dlist{margin:0;padding-left:18px;font-size:13px}.links button{margin:2px 4px 2px 0}.lvtable{overflow-x:auto}.lvtable td.cur,.lvtable th.cur{background:var(--accent-soft)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0e1680;display:grid;place-items:start center;padding:40px 16px;z-index:20;overflow:auto}.modal{width:min(1100px,100%)}.fam{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;padding:10px 0;border-bottom:1px solid var(--border)}.fam:last-child{border-bottom:none}.fam h3{padding-top:4px}.fam .tiers{display:flex;flex-direction:column;gap:4px}.fam .tier{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.fam .tier .tl{width:52px;font-size:11px;color:var(--muted)}.fam button.cur{background:var(--accent);color:#fff;border-color:var(--accent)}@media(max-width:640px){.fam{grid-template-columns:1fr}.fam .tier .tl{width:100%}}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:8px 16px;border-radius:8px;z-index:30}.layout>*{min-width:0}.top>*{min-width:0}@media(max-width:640px){.top .search{max-width:none;flex:1 1 100%;order:5}.jtab{min-width:96px}}.foot{text-align:center;padding:20px 20px 10px}
