:root{--bg:#0b0f14;--panel:#12171f;--panel-2:#171d27;--line:#232b37;--line-2:#2d3747;--text:#e8edf3;--muted:#9aa6b6;--faint:#6b7686;--blue:#3b82f6;--blue-soft:#1d3461;--green:#22c55e;--green-soft:#113a25;--amber:#f5b53b;--amber-soft:#3d2f0f;--red:#ef4444;--red-soft:#3f1515;--violet:#a78bfa;--radius:14px;--radius-sm:8px}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--text)}body{font-family:IBM Plex Sans Thai,Noto Sans Thai,system-ui,sans-serif;font-size:14px;line-height:1.5;font-feature-settings:"tnum" 1}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}button,input,select{font:inherit;color:inherit}h1,h2,h3{margin:0;font-weight:600}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.faint{color:var(--faint)}.small{font-size:12px}.top{position:-webkit-sticky;position:sticky;top:0;z-index:20;height:64px;gap:8px;padding:0 24px;background:var(--bg);border-bottom:1px solid var(--line)}.top,.top .brand{display:flex;align-items:center}.top .brand{gap:10px;font-weight:700;margin-right:28px}.top .brand .logo{width:36px;height:36px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#60a5fa,#1d4ed8);display:grid;place-items:center;font-size:11px;color:#fff}.top nav{display:flex;gap:6px}.top nav a{padding:8px 14px;border-radius:999px;color:var(--muted);font-weight:500;position:relative}.top nav a:hover{color:var(--text)}.top nav a[aria-current=page]{color:var(--blue)}.top nav a[aria-current=page]:after{content:"";position:absolute;left:14px;right:14px;bottom:-2px;height:2px;background:var(--blue);border-radius:2px}.top .spacer{flex:1 1}.top .icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--panel);display:grid;place-items:center;color:var(--muted)}.wrap{max-width:1400px;margin:0 auto;padding:28px 24px 60px}.page-head{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{font-size:26px;font-weight:700}.page-head .ctl{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.seg a{width:38px;height:36px;display:grid;place-items:center;color:var(--muted)}.seg a[aria-current=true]{background:var(--blue);color:#fff}input.ctl-inp,select.ctl-sel{height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text)}.search{display:grid;grid-template-columns:300px minmax(0,1fr);grid-gap:24px;gap:24px;align-items:start}@media (max-width:960px){.search{grid-template-columns:1fr}}.filters{display:flex;flex-direction:column;gap:14px}.box{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.box h3{font-size:14px;font-weight:600;margin-bottom:10px}.box .hint{color:var(--faint);font-size:12px;margin-top:6px;line-height:1.45}.field{position:relative}.field input,.field select{width:100%;height:42px;padding:0 12px 0 38px;border-radius:10px;border:1px solid var(--line-2);background:var(--panel-2);color:var(--text)}.field input::placeholder{color:var(--faint)}.field svg{position:absolute;left:12px;top:13px;width:16px;height:16px;color:var(--faint)}.field.plain input{padding-left:12px}.group-t{font-size:13px;color:var(--muted);margin:14px 0 8px;display:flex;justify-content:space-between}.checks{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px 10px;gap:6px 10px}.checks.one{grid-template-columns:1fr}.check{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;color:var(--text)}.check input{width:16px;height:16px;accent-color:var(--blue)}.row2{display:flex;gap:8px}.btn{height:42px;padding:0 18px;border-radius:10px;border:1px solid var(--blue);background:var(--blue);color:#fff;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn.ghost{background:var(--panel-2);border-color:var(--line-2);color:var(--text);font-weight:500}.btn.sm{height:34px;padding:0 12px;font-size:13px}.btn.danger{background:#7f1d1d;border-color:#7f1d1d}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.grid.list{grid-template-columns:1fr}@media (max-width:1100px){.grid{grid-template-columns:1fr}}.card{display:grid;grid-template-columns:112px minmax(0,1fr);grid-gap:16px;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;transition:border-color .15s}.card:hover{border-color:var(--line-2);background:var(--panel-2)}.grid.list .card{grid-template-columns:72px minmax(0,1fr);padding:14px 18px}.seal{width:112px;height:112px;border-radius:14px;display:grid;place-items:center;font-weight:700;font-size:26px;color:#fff;letter-spacing:.02em;overflow:hidden;text-align:center;padding:8px;line-height:1.1}.grid.list .seal{width:72px;height:72px;font-size:18px;border-radius:10px}.seal small{font-size:11px;font-weight:500;opacity:.85;display:block;margin-top:4px}.card .meta-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.pill{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid var(--line-2);background:var(--panel-2);color:var(--text);white-space:nowrap}.pill.status{border-width:1.5px}.pill.s-plan{color:var(--violet);border-color:var(--violet)}.pill.s-tor{color:#60a5fa;border-color:#60a5fa}.pill.s-invite{color:#38bdf8;border-color:#38bdf8}.pill.s-bidding{color:var(--amber);border-color:var(--amber)}.pill.s-awarded,.pill.s-contract{color:var(--green);border-color:var(--green)}.pill.s-contract{background:var(--green-soft)}.pill.s-cancelled{color:var(--red);border-color:var(--red)}.pill.s-unknown{color:var(--muted)}.card .title{font-weight:600;font-size:15px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:4px}.card .org{color:var(--muted);font-size:13px;margin-bottom:10px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{height:26px;display:inline-flex;align-items:center;padding:0 10px;border-radius:var(--radius-sm);background:var(--panel-2);border:1px solid var(--line);font-size:12px;color:var(--text)}.card .bm{margin-left:auto;color:var(--faint)}.empty{padding:70px 0;text-align:center}.empty,.pager{color:var(--muted)}.pager{display:flex;gap:10px;justify-content:center;align-items:center;padding:24px 0}.proj{display:grid;grid-template-columns:360px minmax(0,1fr);grid-gap:24px;gap:24px;align-items:start}@media (max-width:960px){.proj{grid-template-columns:1fr}}.seal.lg{width:100%;height:auto;aspect-ratio:1;font-size:44px;border-radius:18px;margin-bottom:16px}.tl{list-style:none;margin:0;padding:0}.tl li{display:grid;grid-template-columns:30px 1fr;grid-gap:14px;gap:14px;position:relative;padding-bottom:20px}.tl li:before{content:"";position:absolute;left:14px;top:30px;bottom:0;width:2px;background:var(--line-2)}.tl li:last-child:before{display:none}.tl .ck{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--panel-2);border:2px solid var(--line-2);color:var(--faint)}.tl li.done .ck{background:var(--green);border-color:var(--green);color:#fff}.tl li.now .ck{background:var(--amber);border-color:var(--amber);color:#111}.tl .lbl{font-weight:600;padding-top:4px}.tl .sub{color:var(--muted);font-size:12px;margin-top:4px}.tl .date{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:8px;background:var(--blue-soft);color:#bfdbfe;font-size:12px}.sec-t{font-size:18px;font-weight:600;margin:26px 0 12px}.sec-t:first-child{margin-top:0}.title-box{background:var(--blue-soft);border:1px solid #294a86;border-radius:var(--radius);padding:16px 18px;font-size:16px;font-weight:600;line-height:1.45}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.facts .f{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}.facts .f.wide{grid-column:1/-1}.facts b{display:block;font-weight:600;font-size:13px;margin-bottom:4px}.facts span{color:var(--muted)}.facts span.big{color:var(--text);font-size:15px}.facts .delta{color:var(--green)}table.data{width:100%;border-collapse:collapse}table.data th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:10px 12px;background:var(--panel-2)}table.data th:first-child{border-radius:8px 0 0 8px}table.data th:last-child{border-radius:0 8px 8px 0}table.data td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}table.data td.r,table.data th.r{text-align:right}.item-box{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.item-box .ih{font-weight:600;margin-bottom:4px}.item-box .is{color:var(--muted);font-size:12px;margin-bottom:10px}.docs-table a{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--blue-soft);color:#bfdbfe}.link-box{display:flex;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.link-box small{color:var(--muted);display:block}.src{color:var(--faint);font-size:12px;margin-top:16px}.tabs{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:4px;gap:4px;margin-bottom:20px}.tabs a{padding:8px 16px;border-radius:9px;color:var(--muted);font-weight:500}.tabs a[aria-current=true]{background:var(--panel-2);color:var(--text)}.save{margin-left:auto;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--faint);cursor:pointer;display:grid;place-items:center}.save:hover{border-color:var(--line-2);color:var(--text)}.save.on{color:var(--amber)}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag-list form{display:inline}.tag-list .chip button{background:none;border:0;color:var(--faint);margin-left:6px;cursor:pointer;padding:0}textarea.ta{width:100%;min-height:90px;padding:10px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--panel-2);color:var(--text);font:inherit;resize:vertical}.user-chip{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.user-chip .av{width:28px;height:28px;border-radius:50%;background:#2563eb;display:grid;place-items:center;font-size:12px;font-weight:700}.landing{max-width:1100px;margin:0 auto}.hero{padding:48px 0 36px;text-align:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--panel);color:var(--muted);font-size:13px;margin-bottom:22px}.eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px var(--green-soft)}.hero h1{font-size:46px;line-height:1.15;font-weight:700;letter-spacing:-.01em;margin-bottom:18px}.hero p{max-width:680px;margin:0 auto 26px;color:var(--muted);font-size:16px;line-height:1.7}.hero .cta{display:flex;gap:10px;justify-content:center;margin-bottom:36px}.stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:12px;gap:12px;max-width:820px;margin:0 auto}.stats div{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.stats b{display:block;font-size:26px;font-weight:700}.stats span{color:var(--muted);font-size:13px}.feats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px;margin:24px 0 44px}.feat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.feat .ic{width:40px;height:40px;border-radius:10px;background:var(--blue-soft);color:#93c5fd;display:grid;place-items:center;font-size:20px;margin-bottom:12px}.feat h3{font-size:15px;margin-bottom:6px}.feat p{color:var(--muted);font-size:13px;margin:0;line-height:1.6}.sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px}.sec-head h2{font-size:22px}.how{text-align:center;padding:48px 0 20px}.how h2{font-size:24px;margin-bottom:20px}.how ol{list-style:none;padding:0;margin:0 auto 24px;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px;max-width:900px;counter-reset:s}.how li{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;text-align:left;counter-increment:s}.how li:before{content:counter(s);display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--blue);color:#fff;font-size:13px;font-weight:700;margin-bottom:10px}.how li b{display:block;margin-bottom:4px}.how li span{color:var(--muted);font-size:13px}.foot{color:var(--faint);font-size:12px;text-align:center;padding:30px 0 10px;border-top:1px solid var(--line);margin-top:30px}@media (max-width:900px){.hero h1{font-size:32px}.feats,.how ol,.stats{grid-template-columns:1fr 1fr}}@media (max-width:560px){.feats,.how ol,.stats{grid-template-columns:1fr}}