:root{font-family:'Noto Sans Thai',sans-serif;color:#172e2b;background:#f4f6f3;font-size:16px;--green:#12664f;--line:#d8e2dc}*{box-sizing:border-box}body{margin:0}header{padding:18px 3%;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);background:white}a{color:var(--green)}main{max-width:1600px;margin:auto;padding:28px 3%}h1{font-size:clamp(1.6rem,3vw,2.4rem);margin:0}h2{font-size:1.1rem;margin:0 0 12px}p{margin:8px 0 16px}.eyebrow,.badge{font-family:'IBM Plex Mono',monospace;font-size:.8rem;letter-spacing:.05em}.badge{background:#e0efe7;padding:6px 10px;border-radius:4px}.heading,.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px}.controls{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:24px;background:#e6eee9}.controls>div{display:flex;flex-direction:column;gap:8px}section{background:white;padding:22px;border:1px solid var(--line);border-radius:10px;margin:20px 0}button,select{font:inherit;font-size:.9rem;padding:10px 14px;border:1px solid #aebfb5;border-radius:5px;background:white;color:#172e2b;cursor:pointer}button:hover{background:#dcebe3}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #db9b23;outline-offset:3px}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#084a38}#segments{display:flex;flex-wrap:wrap;gap:8px}#segments label{background:white;border:1px solid var(--line);border-radius:5px;padding:8px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.metrics>div{border-left:3px solid var(--green);padding:4px 18px}.metrics strong{display:block;font-size:1.8rem}.metrics span,.hint{color:#586d64;font-size:.875rem}.screens{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:20px 0 28px}.screen{border:1px solid var(--line);background:white;border-radius:8px;overflow:hidden}.screen-head{padding:12px;font-size:.875rem;display:flex;justify-content:space-between}.display{padding:22px 15px;min-height:150px;background:#183f36;color:white;display:flex;flex-direction:column;justify-content:center;border-bottom:5px solid #bfdb7a}.display small{font-family:'IBM Plex Mono';font-size:.75rem;opacity:.8}.display b{font-size:1.2rem;margin-top:10px}.next{padding:14px;font-size:.875rem;min-height:125px}.next b{display:block;color:var(--green);margin:5px 0}.data-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.data-grid section{min-width:0;margin:0}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.875rem;text-align:left}th{font-weight:500;color:#52675e;background:#f2f5f2;white-space:nowrap}td,th{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:#65776e}.win{background:#e4f3e9}.tag{display:inline-block;padding:2px 6px;background:#eaf0eb;border-radius:3px;margin:2px;font-size:.8rem}#log{max-height:260px;overflow:auto;padding-left:25px;font-size:.875rem}#log li{padding:7px;border-bottom:1px solid var(--line)}footer{font-size:.875rem;color:#586d64;padding:16px 0 35px}@media(max-width:1100px){.screens{grid-template-columns:repeat(3,1fr)}.controls{grid-template-columns:1fr 1fr}.controls>div:first-child{grid-column:1/-1}.data-grid{grid-template-columns:1fr}}@media(max-width:650px){.screens,.controls{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.heading,.section-title{align-items:flex-start;flex-direction:column}header{gap:12px;flex-wrap:wrap}section{padding:15px}main{padding:20px 4%}}
:root{scroll-behavior:auto}.personas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:15px 0 22px}.persona{padding:0 0 12px;text-align:left;overflow:hidden;border:2px solid transparent;background:#f1f3f1}.persona b,.persona>span:not(.atlas){display:block;padding:5px 12px}.persona[aria-pressed=true]{border-color:#12664f;background:#dcece3}.atlas{display:block;background-image:url('assets/personas.png');background-size:500% 100%;background-position:calc(var(--panel)*25%) center;background-repeat:no-repeat;width:100%;aspect-ratio:0.6}.atlas.ad{background-image:url('assets/content.png');aspect-ratio:0.8}.selected-info{background:#e8f1eb;padding:14px;border-left:3px solid #12664f}.route{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;margin:20px 0}.stop{display:flex;flex-direction:column;align-items:center;gap:6px;position:relative;border-top:3px solid #c4cfc8;padding:12px 5px}.stop:not(:last-child):after{content:'→';position:absolute;right:-17px;top:48%}.stop.visited{border-color:#12664f}.stop .atlas{width:65px;height:108px}.route-status{height:108px;display:grid;place-items:center;color:#65766d}.count{font-weight:600;background:#183f36;color:white;padding:14px}.actions{display:flex;flex-wrap:wrap;gap:10px}button:disabled{opacity:.5;cursor:default}.display .atlas{max-height:180px;width:100%;margin-bottom:10px}.next>.atlas{height:170px;width:102px;margin:0 auto 12px}.next{min-height:180px}.display{min-height:105px}.content-card{font-size:.875rem}.content-card .atlas{max-height:220px;width:132px;margin:0 auto 10px}.content-card b{display:block}summary{cursor:pointer;padding:15px 0;font-weight:600}nav{display:flex;gap:12px}#erd h3{font-size:1rem;margin-top:24px}.erd-scroll{overflow:auto;margin:16px 0}.erd-svg{display:block;min-width:920px;width:100%;height:auto}.erd-svg text{font-family:'IBM Plex Mono',sans-serif;fill:#172e2b;font-size:14px}.erd-svg .entity{fill:#f0f5f1;stroke:#8eab9b}.erd-svg .edge{fill:none;stroke:#526f60;stroke-width:1.5}.erd-svg .rel{font-size:13px;fill:#526f60}@media(max-width:800px){.personas{grid-template-columns:repeat(3,1fr)}.route{gap:8px}.stop:not(:last-child):after{right:-10px}.stop>span:not(.atlas){font-size:.8rem}}@media(max-width:500px){.personas{grid-template-columns:repeat(2,1fr)}.route{grid-template-columns:1fr}.stop{display:grid;grid-template-columns:70px 1fr 65px;min-height:130px}.stop small{grid-column:2}.stop .atlas,.stop .route-status{grid-column:3;grid-row:1/3}.stop:not(:last-child):after{content:'↓';right:50%;top:auto;bottom:-17px}.screens{grid-template-columns:1fr}.screen{display:grid;grid-template-columns:1fr 1fr}.screen-head{grid-column:1/-1}}
.erd-svg{min-width:1440px}.erd-scroll{border-bottom:1px solid var(--line)}
/* Shared page navigation: links styled as document tabs, not ARIA in-page tabs. */
nav[aria-label="Lab pages"]{display:flex;flex-wrap:nowrap;align-items:stretch;gap:6px;margin:0 0 28px;padding:8px 8px 0;background:#e5ece7;border:1px solid #c5d5cb;border-bottom:2px solid var(--green);border-radius:12px 12px 0 0;overflow-x:auto;scrollbar-width:thin;scroll-padding-inline:8px}
nav[aria-label="Lab pages"]>a{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:52px;padding:13px 22px;color:#40594c;background:#d9e4dd;border:1px solid #c5d5cb;border-bottom:0;border-radius:8px 8px 0 0;text-decoration:none;font-size:.95rem;font-weight:500;line-height:1.5;white-space:nowrap;transition:background-color .15s,color .15s}
nav[aria-label="Lab pages"]>a:hover{background:#f2f7f3;color:#084a38}
nav[aria-label="Lab pages"]>a[aria-current="page"]{background:#fff;color:#084a38;border-color:#8bac99;box-shadow:inset 0 4px 0 var(--green);font-weight:700}
nav[aria-label="Lab pages"]>a:focus-visible{outline:3px solid #9b6500;outline-offset:-5px}
@media(max-width:650px){nav[aria-label="Lab pages"]{gap:4px;padding:6px 6px 0}nav[aria-label="Lab pages"]>a{padding:12px 15px;min-height:48px;font-size:.875rem}}
@media(prefers-reduced-motion:reduce){nav[aria-label="Lab pages"]>a{transition:none}}
.atlas.person.overlap{background-image:url('assets/personas-overlap.png')}.pair-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:18px 0}.pair-people .persona{display:grid;grid-template-columns:100px 1fr;align-items:center;padding:10px}.pair-people .atlas{grid-row:1/3}.pair-people .persona span:not(.atlas){align-self:start}@media(max-width:500px){.pair-people .persona{display:flex;flex-direction:column}.pair-people .atlas{width:100px}}
.auction-controls{display:flex;flex-wrap:wrap;gap:20px;margin:18px 0}.auction-controls label{display:flex;flex-direction:column;gap:8px}.auction-formula{padding:18px;background:#f0f5f1;margin-top:20px;border-left:3px solid #12664f}.auction-formula h3{margin-top:0;font-size:1.1rem}.auction-formula code{font-family:inherit;font-weight:600;overflow-wrap:anywhere}.auction-formula p{line-height:1.8}
