@font-face{font-family:Sarabun;src:url(/fonts/sarabun-400.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Sarabun;src:url(/fonts/sarabun-600.ttf) format("truetype");font-weight:600;font-display:swap}@font-face{font-family:Sarabun;src:url(/fonts/sarabun-700.ttf) format("truetype");font-weight:700;font-display:swap}:root{font-family:Sarabun,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;--paper:#F6F3EA;--card:#FFFDF8;--ink:#171C1C;--muted:#52605B;--line:#D2D8D1;--blue:#2862BE;--orange:#EF6C32;--green:#27845C;--gold:#E7AD22;--softblue:color-mix(in srgb,var(--blue) 9%,var(--card));--softgreen:color-mix(in srgb,var(--green) 9%,var(--card));--softorange:color-mix(in srgb,var(--orange) 9%,var(--card));--softgold:color-mix(in srgb,var(--gold) 16%,var(--card));--green-ink:#1D6345;--orange-ink:#8D3D16;--gold-ink:#765410;--primary-hover:color-mix(in srgb,var(--blue) 86%,var(--ink));--accent-hover:color-mix(in srgb,var(--orange) 88%,var(--ink));--quota-low:var(--green);--quota-medium:#70BDF2;--quota-high:#C2413A;--neutral-soft:#EEF0ED;--neutral:#C4CBC5;--primary:var(--blue);--primary-light:var(--softblue);--accent:var(--orange);--surface:var(--card);--surface-hover:var(--softblue);--border:var(--line);--forest:var(--green-ink)}*{box-sizing:border-box}body{margin:0;font-size:15px;line-height:1.55}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #2862be;outline-offset:3px}button,input,select{color:inherit}h1,h2,h3,h4,p{margin:0}fieldset{border:0;margin:0}fieldset,legend{padding:0}button svg{flex-shrink:0}.muted{color:var(--muted)}.mobile-only{display:none}.skip-link{position:fixed;left:15px;top:-60px;z-index:99;background:var(--blue);color:white;padding:12px}.skip-link:focus{top:10px}.site-header{margin:0 28px;border-bottom:1px solid var(--line);height:78px;justify-content:space-between}.brand,.site-header{display:flex;align-items:center}.brand{gap:12px;color:var(--blue)}.brand:hover{text-decoration:none}.brand strong{display:block;color:var(--ink);font-family:system-ui,sans-serif;font-size:24px;letter-spacing:-.65px;line-height:1.12}.brand small{display:block;color:#3c4756;letter-spacing:1.6px;font-size:12px;margin-top:4px}.header-actions{display:flex;gap:24px;align-items:center}.text-button{border:0;background:transparent;padding:8px 0;color:#27313d;font-weight:600}.text-button:hover{color:var(--blue)}.demo-indicator{color:#9d5a08;font-weight:600;font-size:13px}.live-indicator{color:var(--green);font-weight:600;font-size:13px}.main-shell{max-width:1840px;padding:0 24px;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;padding:25px 9px 23px}h1{font-size:34px;letter-spacing:-1px;line-height:1.3;font-weight:700}.page-heading p{font-size:15px;margin-top:6px;color:#3c4756}.directory-count{color:var(--muted);font-size:12px}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr) 320px;gap:14px;align-items:stretch}.panel{border:1px solid var(--line);border-radius:9px;background:var(--card)}.filter-rail{padding:19px 17px}.filter-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}h2{font-size:19px;font-weight:700;line-height:1.45}.search-control{display:flex;align-items:center;gap:9px;border:1px solid #c7ced8;background:#fff;border-radius:7px;height:44px;padding:0 12px;color:#526179}.search-control input{width:100%;border:0;background:transparent;outline:none;font-size:13px;min-width:0}.search-control:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #2862be20}.field{margin-top:22px}.field label,.field legend{display:block;margin-bottom:8px;font-weight:600;font-size:14px}select{border:1px solid #c7ced8;background:#fff;border-radius:7px;padding:0 11px;height:44px;width:100%;font-size:14px}.segmented{display:flex;padding:3px;border:1px solid #cbd2dc;border-radius:7px;background:#fff;gap:2px}.segmented button{flex:1 1;background:transparent;border:0;border-radius:4px;padding:8px 9px;font-size:12px;white-space:nowrap;color:#485463}.segmented button.active{background:var(--blue);color:white;box-shadow:0 1px 3px #2862be26}.segmented button:hover:not(.active){background:#f0f3f7}.switch-row{position:relative;display:flex;align-items:center;gap:10px;font-size:12px;cursor:pointer;margin:23px 0 0}.switch-row input{position:absolute;opacity:0;width:34px;height:20px;margin:0}.switch-track{display:block;width:34px;height:20px;background:#aab3ba;border-radius:20px;flex-shrink:0;padding:3px;transition:background .15s}.switch-track:before{content:"";display:block;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0002;transition:transform .15s}.switch-row input:checked+.switch-track{background:var(--blue)}.switch-row input:checked+.switch-track:before{transform:translateX(14px)}.switch-row input:focus-visible+.switch-track{outline:3px solid var(--blue);outline-offset:3px}.soft-note{display:flex;gap:9px;background:#eaf1fa;border-radius:5px;padding:13px 11px;color:#305278;font-size:12px;line-height:1.75}.soft-note svg{flex-shrink:0;color:var(--blue);margin-top:3px}.filter-rail .soft-note{margin-top:28px}.reset-filters{font-size:12px;color:var(--muted);margin-top:13px}.icon-button{height:32px;min-width:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfd5df;border-radius:5px;background:#fafbfd;padding:5px;color:#2d3846}.icon-button:hover{background:#eaf1ff}.icon-button:disabled{opacity:.4}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid #cbd2dc;background:#fff;border-radius:6px;min-height:43px;padding:9px 13px;font-size:12px;font-weight:600}.button:hover{background:#f0f4fa}.button.outlined{border-color:var(--blue);color:var(--blue)}.button.primary{background:var(--blue);color:white;border-color:var(--blue)}.button.primary:hover:not(:disabled){background:var(--primary-hover)}.button.is-active{background:#eaf1ff;color:var(--blue);border-color:var(--blue)}.map-panel{position:relative;padding:16px 14px 10px;min-width:0}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-right:0}.map-heading h2{font-size:18px}.result-count{display:block;font-size:10px;color:var(--muted);margin-top:3px}.metric-tabs{flex-shrink:0}.metric-tabs button{padding:7px 11px;font-size:11px}.map-view-row{display:flex;align-items:center;justify-content:space-between;margin-top:15px;font-size:10px;min-height:24px;color:#8a5b23}.view-switch{display:flex;gap:2px}.view-switch button{display:inline-flex;align-items:center;gap:4px;padding:4px 7px;border:0;background:transparent;font-size:10px;color:var(--muted);border-radius:4px}.view-switch button.active{background:var(--softblue);color:var(--blue)}.map-zoom{position:absolute;right:16px;top:99px;display:flex;gap:5px;z-index:2}.map-scroll{width:100%;overflow:auto;overscroll-behavior:contain;margin:6px 0 0;scrollbar-width:thin;scrollbar-color:#c9cfc8 transparent}.map-sizer{position:relative;margin:0 auto}.map-native{position:absolute;top:0;left:0;transform-origin:top left}.province-group{position:absolute;width:70px}.province-name{display:block;max-width:70px;font-size:9px;line-height:12px;white-space:nowrap;text-align:left;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px;color:#344140}.district-tiles{display:grid;grid-template-columns:repeat(4,16px);gap:2px;width:70px}.district-tile{border:0;border-radius:2px;width:16px;height:16px;padding:0;font-family:system-ui,sans-serif;font-size:8px;font-weight:600;color:#fff;line-height:16px;transition:opacity .15s,box-shadow .15s}.district-tile:hover{box-shadow:0 0 0 2px #171c1c;position:relative;z-index:3}.district-tile.secondary{border-bottom:2px solid #263b51}.district-tile.selected{outline:2px solid #171c1c;outline-offset:2px;position:relative;z-index:2;box-shadow:0 0 0 2px #fffdf8}.district-tile.filtered-out{opacity:.12;color:transparent}.color-low{background:var(--green)}.color-medium{background:var(--blue)}.color-high{background:var(--orange)}.color-pending{background:#bec4c4}.color-closed{background:repeating-linear-gradient(135deg,#eceeea,#eceeea 3px,#c7cec6 0,#c7cec6 4px);color:#455048}.region-caption{position:absolute;background:#e9eff2;border-radius:20px;padding:4px 14px;font-size:11px;font-weight:600;color:#314253;white-space:nowrap}.region-caption.north{left:13px;top:45px}.region-caption.northeast{left:480px;top:72px}.region-caption.central{left:0;top:232px}.region-caption.east{left:574px;top:510px}.region-caption.south{left:49px;top:567px}.map-hover{min-height:27px;font-size:11px;color:var(--muted);display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.map-hover strong{font-weight:600;color:var(--ink)}.map-legend{flex-wrap:wrap;justify-content:center;gap:8px 12px;background:#fff;border:1px solid #e1e4de;padding:9px 7px;border-radius:6px;font-size:9px;color:#435047;margin-top:5px}.map-legend,.map-legend span{display:flex;align-items:center}.map-legend span{gap:5px;white-space:nowrap}.map-legend i{width:11px;height:11px;display:block;border-radius:2px}.map-disclaimer{font-size:9px;color:var(--muted);text-align:center;margin:8px 0 0}.district-list{margin-top:16px;height:650px;overflow:auto;padding:0 4px}.district-list-row{width:100%;display:flex;text-align:left;gap:10px;align-items:center;border:0;border-bottom:1px solid #e4e8df;background:transparent;padding:14px 9px}.district-list-row.selected,.district-list-row:hover{background:var(--softblue)}.district-list-row>i{height:12px;width:12px;border-radius:2px;flex-shrink:0}.district-list-row>span{flex:1 1;min-width:0}.district-list-row strong{font-size:13px}.district-list-row small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:4px}.district-list-row b{font-size:17px;color:var(--blue);white-space:nowrap;text-align:right}.district-list-row b small{font-size:9px}.empty-results{min-height:550px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-align:center;color:var(--muted)}.empty-results h3{font-size:18px;color:var(--ink)}.empty-results p{font-size:13px;max-width:280px}.inspector{padding:19px 17px}.inspector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.district-title{font-size:23px;font-weight:700;line-height:1.5;letter-spacing:-.4px}.district-subtitle{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:15px}.data-label{background:#fff0d3;color:#915503;border-radius:18px;padding:3px 9px;font-size:10px;white-space:nowrap}.data-label.is-closed{background:#edf0e9;color:#566450}.coverage-note{font-size:11px;color:var(--muted);margin:9px 0 0}.district-stats{border:1px solid #dce1e1;border-radius:7px;padding:0 12px;margin:20px 0 12px}.district-stats>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e3e7e6;gap:10px;min-height:77px}.district-stats>div:last-child{border:0}.district-stats dt{font-size:14px;white-space:nowrap}.district-stats dd{display:flex;align-items:center;gap:13px;margin:0;white-space:nowrap}.district-stats strong{font-size:29px;font-weight:700;letter-spacing:-.8px;font-family:Sarabun,system-ui,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.district-stats dd>span{font-size:11px;color:#586479;min-width:32px}.district-stats .ratio-number strong{color:var(--blue)}.ratio-note{border:1px solid #c2d5f3;border-radius:5px;padding:10px;font-size:11px;background:#edf4ff}.district-meta-box{margin:14px 0;border:1px solid #dce1e1;border-radius:6px;background:#f9fbf9;padding:10px 12px;font-size:12px;display:flex;flex-direction:column;gap:6px}.district-meta-box .meta-item{display:flex;justify-content:space-between;align-items:center}.district-meta-box .meta-label{color:var(--muted)}.district-meta-box .meta-value{font-weight:600;color:var(--ink)}.source-directory-note{display:block;margin-top:4px;color:#707e78}.inspector-majors h4{font-size:15px;margin:19px 0 10px}.major-rows{border:1px solid #dce1e1;border-radius:6px;overflow:hidden}.major-row{display:grid;width:100%;grid-template-columns:minmax(0,1fr) 52px 60px;gap:5px;align-items:center;text-align:left;font-size:11px;padding:12px 8px;border:0;border-bottom:1px solid #e1e6e2;background:#fffdf8}.major-row:last-child{border:0}.major-row.active{background:#f0f5ff}.major-row:hover{background:#eaf1ff}.major-row>span:first-child{font-weight:600}.major-row>span:nth-child(2){font-size:9px;color:var(--muted);text-align:right}.major-row strong{font-size:13px;text-align:right;white-space:nowrap}.major-row small{display:block;font-size:8px;font-weight:400;color:var(--muted)}.text-low{color:var(--green)}.text-medium{color:var(--blue)}.text-high{color:#a7421b}.major-rows>p{padding:15px;font-size:12px}.inspector-actions{display:flex;gap:8px;margin-top:17px}.inspector-actions>.outlined{flex:1 1}.inspector-actions .button{font-size:11px;padding:8px 10px}.save-button{min-width:76px}.source-note{font-size:9px;color:var(--muted);margin-top:16px;text-align:center}.source-note a{display:block;margin-top:7px}.inspector-empty{min-height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--muted)}.inspector-empty h2{color:var(--ink)}.inspector-empty p{font-size:12px;max-width:250px}.site-footer{padding:18px 4px 30px;display:flex;justify-content:space-between;gap:15px;font-size:10px;color:var(--muted)}.site-footer a{white-space:nowrap}.mobile-controls{display:none}.comparison-bar{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:9px;background:#fff;border:1px solid #b9c9df;box-shadow:0 8px 36px #18395622;z-index:8;white-space:nowrap;font-size:12px}.comparison-bar strong{color:var(--blue);margin-right:6px}.toast{position:fixed;top:18px;left:50%;transform:translateX(-50%);background:#263c4e;color:white;border-radius:6px;padding:13px 19px;font-size:13px;z-index:50;max-width:90vw;box-shadow:0 6px 30px #0002}.load-error,.loading{text-align:center;padding:120px 15px;background:var(--card);border:1px solid var(--line);border-radius:8px}.load-error h2{margin-bottom:12px}.load-error p{margin-bottom:20px}.mobile-filter-overlay{display:none}@media(min-width:1700px){.workspace{grid-template-columns:265px minmax(0,1fr) 350px;gap:18px}.filter-rail,.inspector{padding:23px}.district-title{font-size:27px}.district-stats strong{font-size:33px}.map-panel{padding:20px}.map-scroll{max-height:850px}.map-heading h2{font-size:21px}}@media(max-width:1180px) and (min-width:901px){.main-shell{padding:0 16px}.workspace{grid-template-columns:218px minmax(0,1fr) 276px;gap:10px}.site-header{margin:0 20px}.filter-rail,.inspector{padding:16px 12px}.map-heading{flex-wrap:wrap}.map-heading h2{font-size:17px}.metric-tabs{margin-left:auto}.district-title{font-size:20px}.district-stats{padding:0 9px}.district-stats dt{font-size:11px}.district-stats strong{font-size:26px}.district-stats dd{gap:7px}.district-stats dd>span{font-size:10px}.inspector-actions{flex-wrap:wrap}.inspector-actions>.outlined{flex:1 1}.major-row{grid-template-columns:minmax(0,1fr) 45px 52px}.map-zoom{top:130px}.map-view-row>span{max-width:100px}}@media(max-width:900px){.desktop-only{display:none!important}.mobile-only{display:block}.site-header{height:73px;margin:0 18px}.brand{gap:8px}.brand svg{width:36px;height:35px}.brand strong{font-size:21px}.brand small{font-size:10px;letter-spacing:1px}.header-actions{gap:10px}.header-actions .text-button{font-size:11px}.demo-indicator,.live-indicator{font-size:10px}.main-shell{padding:0 15px}.page-heading{padding:22px 3px 17px}h1{font-size:29px;letter-spacing:-.8px}.page-heading p{font-size:13px;margin-top:5px}.mobile-controls{display:flex;gap:10px;margin-bottom:14px}.mobile-controls select{flex:1 1;height:44px;font-size:15px;background:var(--card)}.mobile-controls .button{padding:8px 13px;font-size:13px;background:var(--card)}.workspace{display:block}.map-panel{padding:14px 10px 10px}.map-heading{flex-wrap:wrap;gap:10px}.map-heading h2{font-size:17px}.result-count{font-size:10px}.metric-tabs{margin-left:auto}.metric-tabs button{font-size:10px;padding:7px}.map-view-row{margin-top:10px;font-size:9px}.map-view-row>span{max-width:140px}.map-zoom{top:95px;right:12px}.map-zoom .icon-button{min-width:29px;height:29px}.map-scroll{margin-top:25px;max-height:750px;min-height:330px}.map-hover{font-size:10px;margin-top:7px;text-align:center}.map-legend{gap:7px 9px;padding:9px}.map-disclaimer,.map-legend{font-size:9px}.site-footer{flex-direction:column;gap:5px;text-align:center;padding:15px 10px 90px;line-height:1.75;font-size:10px}.district-list{height:auto;max-height:700px;padding:0;min-height:330px}.district-list-row{min-height:68px;padding:12px 5px}.district-list-row strong{font-size:12px}.district-list-row b{font-size:17px}.empty-results{min-height:340px}.comparison-bar{bottom:12px;width:calc(100% - 28px);justify-content:space-between;gap:8px;font-size:10px;padding:9px}.comparison-bar .button{font-size:10px;min-height:36px;padding:8px}.comparison-bar .icon-button{min-width:27px;width:27px;height:29px}.mobile-detail-sheet{position:fixed;bottom:0;left:0;right:0;z-index:10;background:var(--card);border:1px solid var(--line);border-radius:17px 17px 0 0;padding:11px 19px 20px;box-shadow:0 -6px 35px #12202b22;max-height:65dvh;overflow-y:auto;overscroll-behavior:contain}.sheet-handle{width:42px;height:4px;border-radius:4px;background:#bfc5cd;margin:0 auto 10px}.inspector-header{margin-bottom:0;justify-content:flex-end;height:0;position:relative}.inspector-header .icon-button{position:absolute;right:-3px;top:0;background:transparent;border:0}.district-title{font-size:21px;padding-right:29px}.district-subtitle{font-size:13px;margin-top:7px}.coverage-note{font-size:10px}.district-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:13px 0;margin-top:15px;margin-bottom:0}.district-stats>div{min-height:60px;border:0;border-right:1px solid #e1e6e2;display:flex;flex-direction:column;justify-content:center;gap:3px}.district-stats>div:last-child{border:0}.district-stats dt{font-size:11px}.district-stats dd{gap:7px}.district-stats strong{font-size:27px}.district-stats dd>span{font-size:9px;min-width:0}.ratio-note{margin-top:13px;font-size:10px;padding:8px}.inspector-majors h4{font-size:13px}.major-row{padding:10px;font-size:11px;grid-template-columns:minmax(0,1fr) 60px 72px}.inspector-actions{margin-top:14px}.inspector-actions .button{font-size:12px;min-height:43px}.source-note{font-size:9px;margin-top:12px}.mobile-filter-overlay{display:flex;position:fixed;inset:0;align-items:flex-end;justify-content:center;background:#17233565;z-index:30}.mobile-filter-panel{border-radius:16px 16px 0 0;background:var(--card);padding:22px;width:100%;max-height:90dvh;overflow:auto}.mobile-filter-panel .filter-heading{margin-bottom:16px}.mobile-filter-panel .soft-note{margin-top:21px}.apply-filters{display:flex;width:100%;margin-top:15px}.mobile-filter-panel .field{margin-top:18px}.mobile-filter-panel .segmented button,.mobile-filter-panel .switch-row{font-size:13px}.mobile-filter-panel h2{font-size:21px}}.major-rows{max-height:190px;overflow-y:auto;scrollbar-width:thin}.map-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 4px}.map-tools p{font-size:10px;color:var(--muted);line-height:1.5;max-width:260px}.map-tools .map-zoom{position:static;gap:6px}.map-tools .map-zoom .icon-button{width:44px;height:44px;min-width:44px}.map-tools+.map-scroll{margin-top:6px;-webkit-user-select:none;user-select:none;touch-action:pan-x pan-y pinch-zoom}.map-scroll:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.map-scroll .map-native{cursor:grab}.map-scroll:active .map-native{cursor:grabbing}.map-native button{cursor:pointer}@media(max-width:900px){.map-tools p{font-size:9px;max-width:145px}.mobile-detail-sheet .inspector-header .icon-button{width:44px;height:44px;min-width:44px;top:-6px}.district-title{padding-right:44px}}@media(min-width:901px){.inspector{max-height:max(540px,calc(100dvh - 230px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}.province-name{font-size:10px}.mobile-filter-dialog{border:1px solid var(--line);border-radius:16px 16px 0 0;background:var(--card);padding:22px;width:100%;max-width:540px;max-height:90dvh;margin:auto auto 0;overflow:auto;color:var(--ink)}.mobile-filter-dialog::backdrop{background:#17233565}.mobile-filter-dialog .soft-note{margin-top:21px}.mobile-filter-dialog .field{margin-top:18px}.mobile-filter-dialog .segmented button,.mobile-filter-dialog .switch-row{font-size:13px}.mobile-filter-dialog h2{font-size:21px}.overview-container{margin-top:14px;display:flex;flex-direction:column;gap:18px}.summary-cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.summary-card{background:#fffdf8;border:1px solid var(--line);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.summary-card-label{font-size:11px;color:var(--muted);font-weight:600}.summary-card-value{display:flex;align-items:baseline;gap:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.summary-card-value strong{font-size:24px;color:var(--ink);line-height:1.2}.summary-unit{font-size:11px;color:var(--muted)}.summary-mixed-tag{display:inline-block;font-size:12px;font-weight:700;color:#b25000;background:#fff3e0;padding:3px 8px;border-radius:4px}.summary-card-hint{font-size:10px;color:var(--muted);line-height:1.5;margin-top:2px}.basis-pills{display:flex;flex-direction:column;gap:3px;margin-top:6px}.basis-pill{font-size:9px;color:#355376;background:#edf4fc;padding:2px 6px;border-radius:3px}.chart-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:6px}.chart-header-row h3{font-size:16px;font-weight:700;color:var(--ink)}.chart-subheading{font-size:11px;color:var(--muted)}.chart-card{background:#fffdf8;border:1px solid var(--line);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:14px}.chart-card-title{font-size:14px;font-weight:700;color:var(--ink)}.chart-bars-list{gap:12px}.chart-bar-row,.chart-bars-list{display:flex;flex-direction:column}.chart-bar-row{gap:4px}.chart-bar-meta{display:flex;justify-content:space-between;align-items:center;font-size:13px}.chart-bar-name{font-weight:600;color:var(--ink)}.chart-bar-val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--blue)}.chart-bar-val strong{font-size:15px}.chart-bar-val small{font-size:10px;color:var(--muted)}.chart-track{width:100%;height:10px;background:#e8ece7;border-radius:5px;overflow:hidden}.chart-fill{height:100%;border-radius:5px;transition:width .3s ease}.fill-low{background:var(--green)}.fill-medium{background:var(--blue)}.fill-high{background:var(--orange)}.fill-pending{background:#bec4c4}.fill-blue{background:var(--blue)}.chart-bar-caption{display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.mixed-warning{color:#b25000;font-weight:600}.accessible-table-wrapper{overflow-x:auto;margin-top:8px}.accessible-summary-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.accessible-summary-table td,.accessible-summary-table th{padding:8px 10px;border-bottom:1px solid #e1e6e2}.accessible-summary-table th{font-weight:600;background:#f6f3ea}.top-districts-list{display:flex;flex-direction:column;gap:8px}.top-district-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid #e3e7e6;border-radius:6px;background:#fff;text-align:left;cursor:pointer;transition:background .15s}.top-district-item:hover{background:var(--softblue);border-color:var(--blue)}.top-rank{font-size:14px;font-weight:700;color:var(--muted);min-width:20px;text-align:center}.top-content{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.top-title-row{display:flex;justify-content:space-between;align-items:center;font-size:12px}.top-name{font-weight:600;color:var(--ink)}.top-val{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--blue)}.chart-empty,.top-val strong{font-size:13px}.chart-empty{color:var(--muted);text-align:center;padding:20px}.chart-cautions{display:flex;flex-direction:column;gap:10px;padding:14px;background:#f0f4f9;border-radius:8px;font-size:12px;line-height:1.6;color:#2d4560}.caution-item{display:flex;gap:8px;align-items:flex-start}.caution-item svg{flex-shrink:0;margin-top:3px;color:var(--blue)}.chart-source-disclaimer{font-size:10px;color:var(--muted);text-align:center;margin-top:4px}.saved-sync-hint{font-size:11px;color:var(--muted);text-align:center;margin-top:-6px;line-height:1.4}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media(max-width:900px){.summary-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card-value strong{font-size:20px}}@media(prefers-reduced-motion:reduce){*,:after,:before{transition:none!important;scroll-behavior:auto!important}}.site-nav{display:flex;gap:8px;align-items:center}.site-nav .nav-link{font-size:13px;font-weight:600;color:#35443e;padding:6px 11px;border-radius:6px;transition:all .15s}.site-nav .nav-link:hover{color:var(--blue);background:#eaf1fa;text-decoration:none}.site-nav .nav-link.active{color:var(--blue);background:#e8f0fe}@media(max-width:768px){.site-header{flex-wrap:wrap;height:auto;padding:10px 0 8px;gap:8px}.site-nav{width:100%;order:3;justify-content:space-around;border-top:1px solid var(--line);padding-top:8px;gap:4px}.site-nav .nav-link{font-size:12px;padding:5px 8px}}.not-found-card{max-width:540px;margin:80px auto;padding:40px 30px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.not-found-icon{color:var(--orange);margin-bottom:8px}.not-found-card h1{font-size:26px}.not-found-card p{color:var(--muted);font-size:14px;max-width:400px}.not-found-actions{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap;justify-content:center}.portal-page-shell{max-width:1100px;margin:28px auto 60px;gap:24px}.portal-hero,.portal-page-shell{display:flex;flex-direction:column}.portal-hero{gap:10px}.portal-badge{align-self:flex-start;background:#e2ebf6;color:var(--blue);font-size:12px;font-weight:700;padding:4px 10px;border-radius:14px}.portal-hero h1{font-size:32px;letter-spacing:-.8px}.portal-hero p{font-size:16px;color:#3c4a45;max-width:750px}.portal-context-pill{display:inline-flex;align-items:center;gap:10px;background:#e9f4ea;border:1px solid #c2e2c5;padding:6px 14px;border-radius:20px;font-size:13px;color:#1c5e2a;align-self:flex-start;margin-top:4px}.pill-clear{color:#b33a2b;font-weight:600;font-size:11px}.pill-clear:hover{text-decoration:underline}.status-callout{padding:22px 24px;border-left:5px solid var(--blue);display:flex;flex-direction:column;gap:18px}.callout-header{display:flex;gap:14px;align-items:flex-start}.callout-icon{font-size:22px;color:var(--blue);font-weight:700;line-height:1}.callout-header h2{font-size:18px;margin-bottom:6px;color:var(--ink)}.callout-header p{font-size:14px;color:#35443e;line-height:1.6}.callout-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.spec-card{background:#f8faf8;border:1px solid #dce2dc;border-radius:7px;padding:12px 14px;display:flex;flex-direction:column;gap:5px}.spec-card strong{font-size:13px;color:var(--ink)}.spec-card span{font-size:11px;color:var(--muted);line-height:1.5}.portal-section{padding:22px 24px}.portal-section h2{font-size:19px;margin-bottom:4px}.section-desc{margin-bottom:16px}.major-pills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.major-pill-card{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#fff;border:1px solid #d0d7ce;border-radius:7px;transition:all .15s;color:var(--ink)}.major-pill-card:hover{border-color:var(--blue);background:var(--softblue);text-decoration:none}.major-pill-card.active{border-color:var(--blue);background:#e8f0fe;box-shadow:0 0 0 1px var(--blue)}.major-pill-name{font-weight:600;font-size:14px}.major-pill-action{font-size:11px;color:var(--blue)}.portal-cross-links{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:8px}.entity-page-shell{max-width:1200px;margin:24px auto 60px;display:flex;flex-direction:column;gap:24px}.breadcrumbs{font-size:12px}.breadcrumbs a{color:var(--muted)}.breadcrumbs a:hover{color:var(--blue)}.entity-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.entity-header h1{font-size:32px;letter-spacing:-.8px;margin-top:6px}.entity-subtitle{font-size:15px;color:#35443e;margin-top:4px}.entity-type-badge{background:#e2ebf6;color:var(--blue)}.data-mode-badge,.entity-type-badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:12px}.data-mode-badge{background:#fff0d3;color:#915503;margin-left:6px}.badge-row{display:flex;align-items:center;gap:6px}.entity-header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.meta-banner{background:#f0f4f9;border:1px solid #d4deeb;border-radius:6px;padding:8px 14px;font-size:12px;color:#2d4560}.entity-section{padding:20px 22px}.entity-section h2{font-size:18px;margin-bottom:12px}.top-sub-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin-top:2px}.row-action-links{display:flex;gap:10px}.row-link{color:var(--blue);font-weight:600}.row-link:hover{text-decoration:underline}.table-district-name{color:var(--ink);font-weight:600}.table-district-name:hover{color:var(--blue)}.status-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700}.status-badge.open{background:#e2f4e4;color:#1c6928}.status-badge.closed{background:#eaecea;color:#4c574f}.status-badge.cancelled{background:#fae5df;color:#a0321a}.status-badge.pending{background:#edf0f4;color:#526477}.table-actions{display:flex;gap:8px}.table-action-link{font-size:11px;font-weight:600;color:var(--blue);white-space:nowrap}.table-action-link:hover{text-decoration:underline}.basis-text{font-size:11px;color:#4c5b55}.directory-info-box{padding:14px 18px;background:#f9fbf9}.info-box-header{display:flex;gap:10px;align-items:flex-start}.info-icon{color:var(--blue);font-weight:700;font-size:18px}.directory-info-box strong{font-size:13px;display:block;margin-bottom:3px}.directory-info-box p{font-size:12px;color:var(--muted);line-height:1.5}.home-shell{max-width:1200px;margin:28px auto 60px;display:flex;flex-direction:column;gap:30px}.home-hero{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:center}.hero-content{display:flex;flex-direction:column;gap:14px}.hero-badge{align-self:flex-start;background:#e9f0f8;color:var(--blue);font-size:12px;font-weight:700;padding:4px 11px;border-radius:14px}.home-hero h1{font-size:36px;letter-spacing:-1px;line-height:1.25}.hero-lead{font-size:16px;color:#35443e;line-height:1.6}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}.hero-button{padding:11px 18px;font-size:14px}.demo-notice-card{padding:20px;display:flex;flex-direction:column;gap:10px;background:#fffdf7;border:1px solid #ebd9b8}.notice-tag{font-size:11px;font-weight:700;color:#915503;background:#fff0d3;padding:3px 8px;border-radius:4px;align-self:flex-start}.demo-notice-card p{font-size:12px;color:#5a4933;line-height:1.6}.home-stats-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat-strip-item{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px 14px;text-align:center;display:flex;flex-direction:column;gap:3px}.stat-strip-item strong{font-size:28px;color:var(--ink);letter-spacing:-.5px}.stat-strip-item span{font-size:12px;color:var(--muted)}.map-showcase-card{padding:26px 28px;display:flex;flex-direction:column;gap:20px}.showcase-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.showcase-badge{font-size:11px;font-weight:700;color:var(--blue);background:#eaf1fa;padding:3px 9px;border-radius:12px;display:inline-block;margin-bottom:6px}.showcase-header h2{font-size:22px;letter-spacing:-.4px}.showcase-header p{font-size:14px;color:#3c4a45;max-width:650px;margin-top:4px}.showcase-preview-box{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;background:#f7faf7;border:1px solid #d7e0d6;border-radius:8px;padding:20px}.preview-illustration{display:flex;flex-direction:column;gap:8px;justify-content:center}.geo-pill{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;text-align:center}.geo-pill.north{background:#dceddb;color:#1d5a22}.geo-pill.northeast{background:#e3eaed;color:#254854}.geo-pill.central{background:#e6e8e5;color:#35443d}.geo-pill.east{background:#ede6dd;color:#59442a}.geo-pill.south{background:#dce6f0;color:#1e4870}.preview-features{gap:14px;justify-content:center}.feature-bullet,.preview-features{display:flex;flex-direction:column}.feature-bullet{gap:3px}.feature-bullet strong{font-size:14px;color:var(--ink)}.feature-bullet span{font-size:12px;color:var(--muted)}.section-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.home-majors-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.home-major-card{padding:16px 18px;display:flex;flex-direction:column;gap:12px}.major-card-top{display:flex;justify-content:space-between;align-items:center}.major-card-top h3{font-size:16px;font-weight:700}.ratio-tag{font-size:11px;color:var(--blue);background:var(--softblue);padding:3px 7px;border-radius:4px}.ratio-tag.muted{background:#eaeeea;color:var(--muted)}.major-card-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid #e7ebe6;padding-top:10px}.major-stat{display:flex;flex-direction:column;gap:2px}.major-stat-label{font-size:10px;color:var(--muted)}.major-stat-val{font-size:16px;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.major-card-actions{display:flex;gap:8px;margin-top:2px}.major-btn{flex:1 1;font-size:11px;min-height:36px;padding:6px 8px}.sample-districts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.sample-district-card{padding:14px 16px;display:flex;flex-direction:column;gap:6px;transition:all .15s;color:var(--ink)}.sample-district-card:hover{border-color:var(--blue);background:var(--softblue);text-decoration:none}.district-card-header{display:flex;align-items:center;gap:8px}.district-type-tag{font-size:10px;font-weight:700;background:#e9eff7;color:var(--blue);padding:2px 6px;border-radius:4px}.district-card-header h4{font-size:14px;margin:0}.district-card-hint{font-size:11px;color:var(--muted)}.pillars-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.pillar-card{padding:24px;display:flex;flex-direction:column;gap:12px}.pillar-badge{align-self:flex-start;font-size:11px;font-weight:700;color:var(--blue);background:#e9eff7;padding:3px 9px;border-radius:12px}.pillar-card h2{font-size:20px}.pillar-card p{font-size:13px;color:#3c4a45;line-height:1.6;flex:1 1}.pillar-status{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);background:#f6f8f6;padding:7px 10px;border-radius:6px}.status-dot{background:var(--gold)}@media(max-width:900px){.home-hero{grid-template-columns:1fr}.home-stats-strip{grid-template-columns:repeat(2,1fr)}.callout-specs,.count-basis-grid,.pillars-grid,.showcase-preview-box,.sources-comparison-grid{grid-template-columns:1fr}.coverage-status-strip{flex-direction:column;align-items:flex-start}.snapshot-info-card{min-width:0;width:100%}.data-source-section{padding:18px 14px}.formula-box{padding:12px 14px}}.snapshot-info-card{display:flex;flex-direction:column;gap:4px;padding:14px 18px;min-width:260px;font-size:12px;background:var(--card)}.info-card-label{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.data-source-section{padding:26px 28px;display:flex;flex-direction:column;gap:16px}.data-source-section h2{font-size:20px;letter-spacing:-.3px;color:var(--ink)}.sources-comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:6px}.source-card{padding:20px;display:flex;flex-direction:column;gap:10px;background:var(--card);min-width:0}.source-card h3{font-size:17px;margin:0}.source-tag{align-self:flex-start;font-size:11px;font-weight:700;padding:3px 9px;border-radius:12px}.source-tag.directory{background:var(--softgreen);color:var(--green-ink)}.source-tag.metric{background:var(--softblue);color:var(--blue)}.source-specs{display:flex;flex-direction:column;gap:5px;font-size:12px;background:#f8faf8;padding:10px 12px;border-radius:6px;border:1px solid #e1e7e0;min-width:0;overflow-wrap:break-word}.source-specs a{word-break:break-all}.source-role-note{font-size:12px;line-height:1.6;border-top:1px solid #e8ece7;padding-top:10px;color:#2b3a35}.count-basis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:8px}.count-basis-card{border:1px solid #dce2dc;border-radius:8px;padding:16px;background:#fff;display:flex;flex-direction:column;gap:8px;min-width:0}.basis-badge{align-self:flex-start;font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px}.basis-badge.registered{background:var(--softblue);color:var(--blue)}.basis-badge.paid{background:var(--softgreen);color:var(--green-ink)}.basis-badge.eligible{background:var(--softgold);color:var(--gold-ink)}.basis-badge.unknown{background:var(--neutral-soft);color:var(--muted)}.count-basis-card p{font-size:12px;color:#3c4a45;line-height:1.5;flex:1 1}.formula-box{padding:16px 20px;background:#f3f7f4;border:1px solid #c8d4c7;border-radius:8px;overflow-x:auto;min-width:0}.formula-display code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#1b392b;font-weight:600;display:block;word-break:break-word}.formula-display code,.rules-list{font-size:13px;overflow-wrap:break-word}.rules-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;line-height:1.6;color:#35443d;min-width:0}.rules-list li{margin:0}.coverage-status-strip{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;background:#f8faf8;border:1px solid #d8e2d7;border-radius:8px;flex-wrap:wrap;font-size:13px;min-width:0}.coverage-warning-tag{font-size:12px;font-weight:600;color:#9b5300;background:#fff3e0;padding:4px 10px;border-radius:4px}.practice-papers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;margin-top:14px}.practice-paper-card{padding:22px;display:flex;flex-direction:column;gap:14px;background:#fff;border-radius:8px;border:1px solid #dce2dc}.paper-card-header{display:flex;flex-direction:column;gap:8px}.paper-tags-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.paper-major-badge{font-weight:700;background:#e9eff7;color:var(--blue)}.paper-major-badge,.paper-version-tag{font-size:11px;padding:3px 8px;border-radius:4px}.paper-version-tag{font-weight:600;background:#f0f4f1;color:#2e593d}.paper-card-header h3{font-size:18px;margin:0;color:var(--ink);line-height:1.4}.paper-description{font-size:13px;color:#405048;line-height:1.5;margin:0}.paper-specs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;background:#f8faf8;border:1px solid #e2e8e2;border-radius:6px;padding:12px}.paper-spec-item{display:flex;flex-direction:column;gap:2px}.paper-spec-item .spec-label{font-size:11px;color:var(--muted)}.paper-spec-item .spec-val{font-size:13px;font-weight:600;color:var(--ink)}.paper-approval-meta{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;word-break:break-all}.paper-approval-meta code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:#f0f3f0;padding:2px 5px;border-radius:4px;color:#1e3a29}.start-practice-wrapper{display:flex;flex-direction:column;gap:8px;margin-top:auto}.start-practice-btn{width:100%;min-height:44px;font-size:13px;justify-content:center}.practice-error-banner{background:#fdf2f2;border:1px solid #f8b4b4;color:#9b1c1c;padding:8px 12px;border-radius:6px;font-size:12px}.paper-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;gap:12px;background:#fff;border-radius:8px;border:1px dashed #cdd7cd}.paper-empty-state .empty-icon{font-size:32px}.paper-empty-state h3{font-size:18px;margin:0;color:var(--ink)}.paper-empty-state p{font-size:13px;color:var(--muted);max-width:460px;margin:0;line-height:1.6}.papers-count-tag{font-size:12px;font-weight:600;color:var(--muted);background:#eef2ee;padding:4px 10px;border-radius:12px}@media(max-width:900px){.practice-papers-grid{grid-template-columns:1fr}}.runner-page-main{padding:16px 20px 40px;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.runner-error-card{padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:580px;margin:40px auto;background:#fff;border-radius:12px;border:1px solid #d8e2d8}.runner-error-card .error-icon{font-size:36px}.runner-error-card h2{font-size:20px;color:var(--ink);margin:0}.runner-error-card p{font-size:14px;color:var(--muted);line-height:1.6;margin:0}.runner-error-card .error-actions{margin-top:8px}.practice-runner-shell{display:flex;flex-direction:column;gap:18px;width:100%;box-sizing:border-box}.practice-runner-header{background:#fff;border:1px solid #dce4dc;border-radius:10px;padding:16px 20px;display:flex;flex-direction:column;gap:12px}.runner-header-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.runner-header-top .back-link{font-size:13px;font-weight:600;color:var(--forest);text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding:0 6px}.runner-header-top .back-link:hover{text-decoration:underline}.paper-title-group{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1 1}.runner-paper-title{font-size:18px;color:var(--ink);margin:0;line-height:1.3}.runner-version-badge{font-size:11px;font-weight:600;background:#eef4ee;color:#2a5938;padding:2px 8px;border-radius:4px}.mobile-palette-toggle{display:none;min-height:44px;padding:0 14px;font-size:13px}.runner-header-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid #edf2ed;padding-top:10px}.autosave-container{display:flex;align-items:center;gap:8px}.save-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px}.save-status.saved{background:#eaf6ed;color:#1d6632}.save-status.saving{background:#fef7e0;color:#9b6d00}.save-status.error{background:#fdf2f2;color:#9b1c1c;border:1px solid #f8b4b4;gap:8px}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-dot.green{background:#2e7d32}.status-dot.amber{background:#f59e0b;animation:pulseDot 1.2s ease-in-out infinite}.status-dot.red{background:#dc2626}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.3}}.retry-save-btn{font-size:11px;font-weight:700;background:#dc2626;color:#fff;border:none;border-radius:4px;padding:2px 8px;cursor:pointer;min-height:28px}.runner-progress-text{font-size:13px;color:var(--muted)}.runner-body-layout{display:grid;grid-template-columns:260px 1fr;gap:20px;align-items:start}.runner-sidebar{background:#fff;border:1px solid #dce4dc;border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:14px;position:sticky;top:16px}.sidebar-header{display:flex;align-items:center;justify-content:space-between}.sidebar-header h3{font-size:14px;margin:0;color:var(--ink)}.close-drawer-btn{display:none;min-height:36px;padding:0 10px;font-size:12px}.question-palette-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.palette-item{min-width:44px;min-height:44px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;border:1px solid #d0dad0;background:#fff;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;position:relative;transition:all .15s ease}.palette-item:hover{background:#f0f5f0;border-color:#b4c5b4}.palette-item.current{border:2px solid var(--forest);outline:2px solid rgba(34,74,48,.2);font-weight:700}.palette-item.answered{background:#e8f4ec;border-color:#a5d3b0;color:#185a29}.palette-item.unanswered{background:#fafbfa;color:#45554d}.palette-check{font-size:10px;line-height:1;margin-top:1px}.palette-legend{justify-content:space-between;gap:8px;font-size:11px;color:var(--muted);border-top:1px solid #edf2ed;padding-top:10px}.legend-item,.palette-legend{display:flex;align-items:center}.legend-item{gap:5px}.legend-swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.legend-swatch.answered{background:#e8f4ec;border:1px solid #a5d3b0}.legend-swatch.unanswered{background:#fafbfa;border:1px solid #d0dad0}.sidebar-submit-wrapper{margin-top:6px}.submit-paper-btn{width:100%;min-height:48px;font-size:14px;font-weight:700;justify-content:center}.runner-question-main{display:flex;flex-direction:column;gap:14px;min-width:0}.question-card{background:#fff;border:1px solid #dce4dc;border-radius:10px;padding:24px 28px;display:flex;flex-direction:column;gap:20px}.question-card-header{justify-content:space-between}.question-badges,.question-card-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.badge-question-num{font-size:13px;font-weight:700;background:#e9eff7;color:var(--blue)}.badge-question-num,.badge-topic{padding:4px 10px;border-radius:6px}.badge-topic{font-size:12px;font-weight:600;background:#f0f4f1;color:#2e593d}.badge-score{font-size:12px;color:var(--muted);background:#f8faf8;padding:4px 8px;border-radius:6px}.question-prompt-box{padding:4px 0}.question-prompt-text{font-size:18px;font-weight:600;line-height:1.6;color:var(--ink);margin:0;outline:none}.choices-group{display:flex;flex-direction:column;gap:12px}.choice-card{display:flex;align-items:flex-start;gap:14px;padding:14px 18px;background:#fff;border:1.5px solid #d4ded4;border-radius:8px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease;min-height:48px;outline:none;-webkit-user-select:none;user-select:none}.choice-card:hover{background:#f6f9f6;border-color:#a8c2a8}.choice-card:focus-visible{outline:2px solid var(--forest);outline-offset:2px}.choice-card.selected{background:#edf5ee;border-color:var(--forest);border-width:2px}.choice-indicator{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#eef2ee;color:var(--ink);font-size:13px;font-weight:700;flex-shrink:0;transition:all .15s ease}.choice-card.selected .choice-indicator{background:var(--forest);color:#fff}.choice-text{font-size:15px;line-height:1.5;color:var(--ink);flex:1 1;padding-top:2px}.question-actions-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #edf2ed;padding-top:18px;flex-wrap:wrap}.runner-nav-btn{min-height:44px;min-width:110px;font-size:13px;justify-content:center}.clear-choice-btn{min-height:44px;font-size:13px;color:#78350f;background:#fffbeb;border-color:#fde68a}.clear-choice-btn:hover:not(:disabled){background:#fef3c7}.clear-choice-btn:disabled{background:#f5f5f5;border-color:#e5e5e5;color:#a3a3a3}.mobile-bottom-bar{display:none}.modal-backdrop{background:rgba(0,0,0,.5);z-index:900}.modal-box{background:#fff;border-radius:12px;border:1px solid #ccd8cc;max-width:520px;width:100%;display:flex;flex-direction:column;gap:18px;padding:24px;box-shadow:0 12px 32px rgba(0,0,0,.15);max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #edf2ed;padding-bottom:12px}.modal-header h2{font-size:18px;margin:0;color:var(--ink)}.close-modal-btn{min-height:36px;min-width:36px;padding:0;font-size:14px;border-radius:6px;justify-content:center}.modal-body{display:flex;flex-direction:column;gap:14px}.summary-stats-box{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;background:#f8faf8;border:1px solid #e1e9e1;border-radius:8px;padding:14px}.summary-item{display:flex;flex-direction:column;gap:2px}.summary-label{font-size:12px;color:var(--muted)}.summary-val{font-size:16px;font-weight:700;color:var(--ink)}.text-success{color:#1e6a32}.text-warning{color:#b45309}.modal-warning-banner{padding:10px 14px;border-radius:6px;font-size:13px;display:flex;align-items:center;gap:8px;line-height:1.4}.modal-warning-banner.amber{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.modal-warning-banner.green{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.modal-warning-banner.red{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.modal-rule-note{font-size:12px;color:var(--muted);line-height:1.6;background:#f9fafb;border-radius:6px;padding:10px 12px}.modal-rule-note code{background:#eef2ee;padding:1px 5px;border-radius:4px;font-family:ui-monospace,Menlo,monospace}.modal-actions-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:6px}.modal-actions-row .button{min-height:44px}.confirm-submit-btn{min-height:44px;font-size:14px;font-weight:700}.submission-notice-banner{padding:24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.submission-notice-banner.success h3{color:#1e6a32;margin:0;font-size:18px}.submission-notice-banner p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.submit-score-card{background:#f8faf8;border:1px solid #dce4dc;border-radius:10px;padding:16px;width:100%;display:flex;flex-direction:column;gap:14px;margin-top:4px}.score-main-display{display:flex;align-items:baseline;justify-content:center;gap:6px}.score-number{font-size:36px;font-weight:800;color:#1e6a32;line-height:1}.score-divider{font-size:24px;color:var(--muted);font-weight:400}.score-denom{font-size:24px;font-weight:700;color:var(--ink)}.score-unit{font-size:14px;color:var(--muted);margin-left:4px}.score-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;border-top:1px solid #e5ebe5;padding-top:12px}.score-meta-item{display:flex;flex-direction:column;gap:2px;text-align:left}.score-meta-label{font-size:12px;color:var(--muted)}.score-meta-value{font-size:14px;font-weight:700;color:var(--ink)}.submit-note-text{font-size:12px;color:var(--muted);line-height:1.5;margin:0}.submit-actions-row{display:flex;justify-content:center;gap:10px;width:100%;margin-top:6px}.submit-actions-row .button{min-height:44px;min-width:140px;justify-content:center}.submitted-score-summary{display:flex;flex-direction:column;align-items:center;gap:4px;margin:8px 0 12px;padding:12px;background:#f8faf8;border:1px solid #dce4dc;border-radius:8px}.submitted-score-val{font-size:20px;font-weight:800;color:#1e6a32}.submitted-answered-val{font-size:13px;color:var(--muted)}.mt-2{margin-top:10px}@media(max-width:900px){.runner-body-layout{grid-template-columns:1fr}.mobile-palette-toggle{display:inline-flex}.runner-sidebar{position:fixed;inset:0;z-index:800;background:rgba(255,255,255,.98);border-radius:0;border:none;padding:24px 20px;overflow-y:auto;display:none}.runner-sidebar.drawer-open{display:flex}.close-drawer-btn{display:inline-flex}.question-palette-grid{grid-template-columns:repeat(5,1fr);gap:10px}.sidebar-submit-wrapper{display:none}.mobile-bottom-bar{display:flex;align-items:center;gap:10px;position:sticky;bottom:0;background:#fff;border-top:1px solid #dce4dc;padding:10px 14px;box-shadow:0 -4px 12px rgba(0,0,0,.06);z-index:100;border-radius:8px}.clear-choice-mobile-btn{min-width:60px}.clear-choice-mobile-btn,.mobile-submit-btn{min-height:44px;font-size:13px;justify-content:center}.mobile-submit-btn{flex:1 1}.question-card{padding:18px 16px}.runner-header-meta{flex-direction:column;align-items:flex-start;gap:8px}}.practice-result-shell{display:flex;flex-direction:column;gap:20px;width:100%;max-width:960px;margin:0 auto;box-sizing:border-box}.practice-result-shell *{box-sizing:border-box}.practice-result-header{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.result-header-top{justify-content:space-between;gap:12px}.result-badges-row,.result-header-top{display:flex;align-items:center;flex-wrap:wrap}.result-badges-row{gap:8px}.badge-version{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0;border-radius:4px}.badge-status,.badge-version{font-size:12px;font-weight:600;padding:3px 8px}.badge-status{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;border-radius:4px}.badge-ref{background:#f8fafc;color:#475569;border:1px solid #e2e8f0;font-size:12px;padding:3px 8px;border-radius:4px}.result-title-group{display:flex;flex-direction:column;gap:6px}.result-paper-title{font-size:24px;font-weight:800;color:var(--ink);margin:0;line-height:1.3;word-break:break-word}.result-paper-desc{font-size:14px;color:var(--muted);margin:0;line-height:1.5}.result-privacy-banner{padding:16px 20px;background:#f8fafc;border:1px solid #e2e8f0;display:flex;align-items:flex-start;gap:14px}.privacy-icon{font-size:20px;line-height:1}.privacy-text-group{display:flex;flex-direction:column;gap:4px}.privacy-text-group strong{font-size:14px;color:var(--ink)}.privacy-text-group p{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.result-overview-card{padding:20px;display:flex;flex-direction:column;gap:20px}.overview-header-row{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px}.overview-kicker{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--primary);letter-spacing:.5px}.overview-heading{font-size:20px;font-weight:800;color:var(--ink);margin:2px 0 0}.submitted-time-tag{font-size:13px;color:var(--muted);background:#f9fafb;padding:4px 10px;border-radius:6px;border:1px solid #e5e7eb}.score-hero-display{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px;background:linear-gradient(180deg,#f0fdf4,#ffffff);border:1px solid #bbf7d0;border-radius:12px}.score-circle-group{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;justify-content:center}.score-achieved-val{font-size:52px;font-weight:800;color:#166534;line-height:1}.score-slash{font-size:32px;color:#94a3b8;font-weight:300}.score-total-val{font-size:32px;font-weight:700;color:var(--ink)}.score-unit-text{font-size:18px;color:var(--muted);margin-left:4px}.score-percentage-pill{background:#dcfce7;color:#15803d;font-size:14px;font-weight:700;padding:4px 14px;border-radius:999px;border:1px solid #86efac}.stats-breakdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stat-box{padding:16px;border-radius:8px;display:flex;flex-direction:column;gap:4px;border:1px solid #e2e8f0;min-width:0}.stat-box.success{background:#f0fdf4;border-color:#bbf7d0}.stat-box.danger{background:#fef2f2;border-color:#fecaca}.stat-box.warning{background:#fffbeb;border-color:#fde68a}.stat-box.neutral{background:#f8fafc;border-color:#e2e8f0}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:20px;font-weight:800;color:var(--ink)}.stat-sub{font-size:11px;color:var(--muted)}.text-danger{color:#b91c1c}.grounded-evaluation-callout{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px}.callout-bullet{font-size:16px;line-height:1.4}.callout-body strong{display:block;font-size:13px;color:var(--ink);margin-bottom:4px}.callout-body p{font-size:12px;color:var(--muted);line-height:1.5;margin:0}.result-section{padding:20px;display:flex;flex-direction:column;gap:16px}.section-title-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.section-kicker{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--primary);letter-spacing:.5px}.section-heading{font-size:18px;font-weight:800;color:var(--ink);margin:2px 0 0}.section-desc{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.topics-count-badge{font-size:12px;font-weight:600;color:#334155;background:#f1f5f9;border:1px solid #cbd5e1;padding:3px 10px;border-radius:999px}.topics-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.topic-card{padding:16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-direction:column;gap:12px;min-width:0}.topic-card.complete{background:#f0fdf4;border-color:#bbf7d0}.topic-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.topic-title{font-size:14px;font-weight:700;color:var(--ink);margin:0;line-height:1.4}.topic-status-badge{font-size:11px;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap}.badge-success{background:#dcfce7;color:#15803d;border:1px solid #86efac}.badge-pending{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.topic-stats-row{display:flex;justify-content:space-between;gap:10px}.topic-stat-item{display:flex;flex-direction:column;gap:2px}.topic-stat-label{font-size:11px;color:var(--muted)}.topic-stat-val{font-size:13px;font-weight:700;color:var(--ink)}.topic-progress-track{height:6px;background:#e2e8f0;border-radius:999px;overflow:hidden}.topic-progress-bar{height:100%;background:#22c55e;border-radius:999px;transition:width .3s ease}.topic-progress-bar.full{background:#16a34a}.topic-progress-meta{font-size:11px;color:var(--muted);text-align:right}.recommendations-perfect-card{padding:20px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;display:flex;align-items:flex-start;gap:16px}.perfect-icon{font-size:28px;line-height:1}.perfect-text h3{font-size:16px;font-weight:700;color:#166534;margin:0 0 6px}.perfect-text p{font-size:13px;color:#15803d;margin:0;line-height:1.5}.recommendations-list{display:flex;flex-direction:column;gap:12px}.recommendations-intro{font-size:13px;color:var(--muted);margin:0}.recommendation-item-card{padding:16px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;display:flex;flex-direction:column;gap:8px;min-width:0}.rec-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.rec-topic-title{font-size:14px;font-weight:700;color:#92400e;margin:0}.rec-missed-tag{font-size:12px;font-weight:600;color:#b45309}.rec-advice-text{font-size:13px;color:#78350f;margin:0;line-height:1.5;word-break:break-word}.rec-catalog-link-box{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.rec-link-note{font-size:12px;color:#92400e;font-weight:600}.rec-catalog-link{font-size:13px;font-weight:700;color:#1b4332;text-decoration:underline;display:inline-flex;align-items:center;min-height:44px;word-break:break-word}.rec-catalog-link:hover{color:var(--primary)}.catalog-ethical-note{color:var(--muted);font-size:12px;line-height:1.4;margin-top:4px}.review-filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-bottom:1px solid #e2e8f0;padding-bottom:12px}.filter-tab-btn{min-height:44px;padding:0 16px;font-size:13px;font-weight:600;border-radius:6px;border:1px solid #cbd5e1;background:#ffffff;color:#475569;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.filter-tab-btn:hover{background:#f8fafc;border-color:#94a3b8}.filter-tab-btn.active{background:var(--primary);border-color:var(--primary);color:#ffffff}.review-empty-state{padding:32px;text-align:center;color:var(--muted);font-size:14px}.review-questions-list{display:flex;flex-direction:column;gap:18px}.review-question-card{padding:20px;border-radius:8px;border:1px solid #e2e8f0;background:#ffffff;display:flex;flex-direction:column;gap:14px;min-width:0}.review-question-card.correct{border-left:4px solid #16a34a}.review-question-card.incorrect{border-left:4px solid #dc2626}.review-card-header{justify-content:space-between;gap:10px}.review-card-header,.review-card-meta{display:flex;align-items:center;flex-wrap:wrap}.review-card-meta{gap:8px}.review-order-badge{font-size:13px;font-weight:700;color:var(--ink);background:#f1f5f9;padding:2px 8px;border-radius:4px}.review-topic-tag{background:#f8fafc;border:1px solid #e2e8f0;padding:2px 8px;border-radius:4px}.review-topic-tag,.review-weight-tag{font-size:12px;color:var(--muted)}.status-pill{font-size:12px;padding:3px 10px;border-radius:999px}.status-correct{background:#dcfce7;color:#15803d;border:1px solid #86efac}.status-wrong{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}.status-unanswered{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.review-prompt-box{display:flex;flex-direction:column;gap:10px}.review-prompt-text{font-size:16px;font-weight:700;color:var(--ink);margin:0;line-height:1.5;word-break:break-word}.review-media-box img{max-width:100%;border-radius:6px;border:1px solid #e2e8f0}.review-choices-list{display:flex;flex-direction:column;gap:8px;min-width:0}.review-choice-item{display:flex;align-items:flex-start;flex-wrap:wrap;gap:8px 12px;padding:12px 14px;border-radius:6px;border:1px solid #e2e8f0;background:#f8fafc;transition:all .15s ease;min-width:0}.review-choice-item.correct-selected{background:#ecfdf5;border-color:#34d399}.review-choice-item.correct-target{background:#f0fdf4;border-color:#86efac;border-style:dashed}.review-choice-item.wrong-selected{background:#fef2f2;border-color:#f87171}.choice-indicator-box{width:26px;height:26px;border-radius:999px;background:#e2e8f0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#475569;flex-shrink:0}.correct-selected .choice-indicator-box,.correct-target .choice-indicator-box{background:#22c55e;color:#ffffff}.wrong-selected .choice-indicator-box{background:#ef4444;color:#ffffff}.choice-body-text{font-size:14px;color:var(--ink);line-height:1.4;flex:1 1 180px;min-width:0;word-break:break-word;overflow-wrap:break-word}.choice-badge-group{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}.user-choice-badge{font-size:11px;font-weight:700;padding:2px 6px;border-radius:4px}.user-choice-badge.badge-good{background:#dcfce7;color:#15803d}.user-choice-badge.badge-bad{background:#fee2e2;color:#b91c1c}.official-correct-badge{font-size:11px;font-weight:700;background:#dcfce7;color:#15803d;padding:2px 6px;border-radius:4px;border:1px solid #86efac}.review-explanation-box{padding:14px 18px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;display:flex;flex-direction:column;gap:6px;min-width:0}.explanation-header{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink);flex-wrap:wrap}.explanation-icon{font-size:16px}.explanation-ref-tag{font-size:11px;color:var(--muted)}.explanation-content-text{font-size:13px;color:#334155;margin:0;line-height:1.5;word-break:break-word}.explanation-media-box img{max-width:100%;margin-top:6px;border-radius:6px}.result-actions-footer{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.restart-error-banner{padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:6px;font-size:13px}.result-footer-buttons{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}.result-footer-buttons .button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.restart-btn{font-size:14px;font-weight:700}@media(max-width:900px){.practice-result-shell{padding:0 2px}.practice-result-header,.result-actions-footer,.result-overview-card,.result-section{padding:16px 14px}.stats-breakdown-grid{grid-template-columns:repeat(2,1fr)}.result-header-top{flex-direction:column;align-items:flex-start}.result-footer-buttons{flex-direction:column;align-items:stretch}.result-footer-buttons .button{width:100%}.review-question-card{padding:14px 12px}.review-choice-item{padding:10px 12px}}@media(max-width:600px){.stats-breakdown-grid,.topics-summary-grid{grid-template-columns:1fr}.review-filter-bar{flex-direction:column;align-items:stretch}.filter-tab-btn{width:100%}.review-card-header,.review-choice-item{flex-direction:column;align-items:flex-start}.review-choice-item{gap:6px}.choice-body-text{flex:none;width:100%}.choice-badge-group{margin-left:0}.score-achieved-val{font-size:40px}.score-slash,.score-total-val{font-size:26px}}.admin-page-container{max-width:1100px;margin:0 auto;padding:24px 16px 60px;width:100%;box-sizing:border-box}.admin-breadcrumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:20px;flex-wrap:wrap}.admin-breadcrumbs a{color:var(--primary);text-decoration:none}.admin-breadcrumbs a:hover{text-decoration:underline}.admin-catalog-shell{display:flex;flex-direction:column;gap:20px;width:100%;box-sizing:border-box}.admin-catalog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.admin-badge{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--primary);background:var(--primary-light,#e0e7ff);border-radius:9999px;margin-bottom:8px}.admin-subtitle{color:var(--muted);font-size:14px;margin:4px 0 0;line-height:1.5}.btn-create-draft{min-height:44px;padding:10px 18px;font-weight:600;white-space:nowrap}.admin-feedback-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:14px;line-height:1.4}.admin-feedback-banner.success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.admin-feedback-banner.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.banner-close-btn{margin-left:auto;background:none;border:none;cursor:pointer;font-size:16px;color:inherit;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.admin-governance-callout{padding:16px 20px;background:#f8fafc;border-left:4px solid var(--primary);font-size:13px;line-height:1.6}.admin-governance-callout strong{color:var(--ink)}.admin-governance-callout ul{margin:8px 0 0;padding-left:20px}.admin-governance-callout li{margin-bottom:6px}.admin-tabs-bar{display:flex;gap:8px;border-bottom:1px solid var(--border);padding-bottom:8px;flex-wrap:wrap}.admin-tab-btn{min-height:44px;padding:8px 16px;background:none;border:1px solid transparent;border-radius:6px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease}.admin-tab-btn:hover{background:var(--surface-hover,#f1f5f9);color:var(--ink)}.admin-tab-btn.active{background:var(--surface);color:var(--primary);border-color:var(--border);box-shadow:0 1px 3px rgba(0,0,0,.05)}.tab-count-badge{font-size:11px;color:var(--muted)}.admin-products-list{display:flex;flex-direction:column;gap:16px}.admin-empty-state{padding:32px;text-align:center;color:var(--muted);font-size:14px}.admin-product-card{padding:20px;display:flex;flex-direction:column;gap:14px;border-radius:8px;background:var(--surface);border:1px solid var(--border);transition:box-shadow .15s ease}.admin-product-card.status-published{border-left:4px solid #10b981}.admin-product-card.status-draft{border-left:4px solid #f59e0b}.admin-product-card.status-archived{border-left:4px solid #94a3b8}.card-top-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.card-title-group{flex:1 1 300px;min-width:0}.card-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}.status-pill{font-size:11px;font-weight:700;padding:2px 8px;border-radius:9999px;display:inline-block}.status-pill.published{background:#dcfce7;color:#15803d}.status-pill.draft{background:#fef3c7;color:#b45309}.status-pill.archived{background:#f1f5f9;color:#64748b}.format-tag,.major-tag,.revision-tag{font-size:11px;padding:2px 8px;border-radius:4px;background:#f1f5f9;color:var(--ink);border:1px solid #cbd5e1}.major-tag.general{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}.product-title{font-size:17px;font-weight:700;color:var(--ink);margin:0 0 4px;line-height:1.35}.product-slug{font-size:12px;color:var(--muted);margin:0}.product-slug code{font-size:12px;background:#f1f5f9;padding:2px 6px;border-radius:4px}.price-box{display:flex;flex-direction:column;align-items:flex-end;text-align:right;flex-shrink:0}.price-label{font-size:11px;color:var(--muted)}.price-value{font-size:20px;color:var(--primary);font-weight:700}.price-value.inquiry{color:#d97706;font-size:18px}.satang-detail{font-size:11px;color:var(--muted)}.product-description{font-size:14px;color:#334155;line-height:1.5;margin:0}.deliverables-box{background:#f8fafc;padding:12px 16px;border-radius:6px;border:1px solid #e2e8f0;font-size:13px}.deliverables-box strong{display:block;margin-bottom:6px;color:var(--ink)}.deliverables-box ul{margin:0;padding-left:0;list-style:none}.deliverables-box li{margin-bottom:4px;color:#334155}.meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px;font-size:12px;padding-top:10px;border-top:1px solid var(--border)}.meta-label{display:block;color:var(--muted);margin-bottom:2px}.order-link-preview{color:var(--primary);text-decoration:underline;word-break:break-all}.approval-code{font-weight:700;color:#047857;background:#ecfdf5;padding:2px 6px;border-radius:4px;border:1px solid #a7f3d0;display:inline-block}.draft-action-panel{margin-top:8px;padding:12px 16px;background:#fffbeb;border:1px solid #fde68a;border-radius:6px}.draft-prompt-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px;color:#92400e}.btn-start-publish{min-height:44px;padding:8px 16px;font-size:13px;font-weight:700}.publish-input-group{display:flex;flex-direction:column;gap:8px}.publish-input-group label{font-size:13px;font-weight:600;color:#92400e}.input-with-button{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.input-with-button input{flex:1 1 240px;min-height:44px;padding:8px 12px;border:1px solid #d97706;border-radius:6px;font-size:14px}.btn-confirm-publish{min-height:44px;padding:8px 16px;font-size:13px;font-weight:700}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;overflow-y:auto}.admin-draft-modal{background:var(--surface);border-radius:12px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px rgba(0,0,0,.2);border:1px solid var(--border);padding:24px;display:flex;flex-direction:column;gap:16px}.admin-draft-modal .modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:12px}.admin-draft-modal .modal-header h2{font-size:18px;margin:0;color:var(--ink)}.modal-close-btn{background:none;border:none;font-size:20px;cursor:pointer;color:var(--muted);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.draft-form{gap:14px}.draft-form,.form-group{display:flex;flex-direction:column}.form-group{gap:6px}.form-group label{font-size:13px;font-weight:600;color:var(--ink)}.form-group input,.form-group select,.form-group textarea{font-size:14px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink);min-height:44px;box-sizing:border-box}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.price-input-toggle{margin-bottom:6px}.checkbox-label{font-size:13px;color:var(--ink);min-height:44px}.baht-input-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.baht-input-row input{max-width:160px}.currency-unit{font-size:14px;font-weight:600;color:var(--ink)}.satang-preview{font-size:12px;color:var(--muted)}.inquiry-price-note{font-size:12px;color:#b45309;margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:10px;padding-top:14px;border-top:1px solid var(--border);flex-wrap:wrap}.btn-save-draft{padding:10px 20px}@media(max-width:900px){.card-top-row{flex-direction:column;align-items:flex-start}.price-box{align-items:flex-start;text-align:left}.form-row,.meta-grid{grid-template-columns:1fr}}@media(max-width:600px){.admin-catalog-header{flex-direction:column;align-items:stretch}.btn-create-draft{width:100%}.admin-tabs-bar{flex-direction:column;align-items:stretch}.admin-tab-btn{width:100%;justify-content:space-between}.draft-prompt-bar{flex-direction:column;align-items:stretch}.btn-start-publish{width:100%}.input-with-button{flex-direction:column;align-items:stretch}.input-with-button button{width:100%}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.product-filter-section{display:flex;flex-direction:column;gap:14px;padding:20px}.filter-section-header{display:flex;flex-direction:column;gap:4px}.filter-section-header h2{font-size:18px;margin:0;color:var(--ink)}.product-filter-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.product-filter-pill{min-height:44px;min-width:44px;padding:8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:9999px;font-size:13px;font-weight:600;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:6px;transition:all .15s ease;box-sizing:border-box}.product-filter-pill:hover{background:var(--surface-hover,#f1f5f9);border-color:#94a3b8}.product-filter-pill.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 1px 3px rgba(0,0,0,.1)}.product-filter-pill.active .filter-pill-count{color:rgba(255,255,255,.85)}.filter-pill-count{font-size:11px;color:var(--muted);font-weight:500}.filtered-products-container{display:flex;flex-direction:column;gap:32px}.products-section{display:flex;flex-direction:column;gap:16px}.products-section.general-section{padding-top:24px;border-top:1px solid var(--border)}.section-heading-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.section-heading-row h2{font-size:18px;margin:0;color:var(--ink)}.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.product-card{display:flex;flex-direction:column;justify-content:space-between;padding:24px;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 1px 3px rgba(0,0,0,.04);transition:box-shadow .2s ease,border-color .2s ease}.product-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08);border-color:#cbd5e1}.product-card-top{display:flex;flex-direction:column;gap:10px}.product-card-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.product-format-badge{border-radius:4px;background:#e0f2fe;color:#0369a1;border:1px solid #bae6fd}.product-format-badge,.product-major-badge{font-size:11px;font-weight:700;padding:3px 8px}.product-major-badge{border-radius:4px}.product-major-badge.specific{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.product-major-badge.general{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.product-card-title{font-size:17px;font-weight:700;color:var(--ink);margin:0;line-height:1.4}.product-card-desc{font-size:13px;line-height:1.55;color:#475569;margin:0}.product-deliverables-box{margin:14px 0;padding:12px 14px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0;font-size:13px}.deliverables-heading{display:block;margin-bottom:8px;color:var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.02em}.product-deliverables-list{margin:0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:6px}.deliverable-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4;color:#334155}.check-bullet{color:#10b981;font-weight:700;font-size:13px;flex-shrink:0}.product-card-bottom{display:flex;flex-direction:column;gap:14px;margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}.product-pricing-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.product-price-display{display:flex;align-items:baseline;gap:6px}.product-price-amount{font-size:22px;font-weight:800;color:var(--primary)}.product-inquiry-tag{font-size:16px;font-weight:700;color:#d97706;background:#fef3c7;padding:2px 8px;border-radius:4px}.product-approval-badge{font-size:11px;color:var(--muted)}.product-approval-badge code{background:#f1f5f9;padding:2px 5px;border-radius:3px}.product-card-actions{display:flex;flex-direction:column;gap:8px}.order-cta-btn{min-width:44px;font-weight:700}.order-cta-btn,.order-disabled-btn{min-height:44px;text-align:center;justify-content:center}.order-disabled-btn{opacity:.6;cursor:not-allowed}.context-explore-btn{min-height:44px;font-size:13px;text-align:center;justify-content:center}.product-empty-state{padding:36px 24px;border-radius:12px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;background:#f8fafc;border:1px dashed #cbd5e1}.empty-state-badge{font-size:12px;font-weight:700;color:#b45309;background:#fef3c7;padding:3px 10px;border-radius:9999px}.product-empty-state h2,.product-empty-state h3{font-size:18px;margin:0;color:var(--ink)}.product-empty-state p{font-size:14px;line-height:1.6;color:#475569;margin:0;max-width:540px}.empty-state-guarantee{font-size:13px;color:var(--muted);font-style:italic}.empty-state-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}.empty-state-actions .button{min-height:44px;min-width:44px}.inspector-catalog-link-box{margin-top:10px;padding:8px 0}.inspector-catalog-link{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:var(--primary);text-decoration:none;min-height:44px;line-height:1.4}.inspector-catalog-link:hover{text-decoration:underline}@media(max-width:600px){.products-grid{grid-template-columns:1fr}.product-filter-bar{flex-direction:column;align-items:stretch}.product-filter-pill{width:100%;justify-content:space-between;box-sizing:border-box}.empty-state-actions{flex-direction:column;align-items:stretch;width:100%}.empty-state-actions .button{width:100%}}.product-title-link{color:inherit;text-decoration:none}.product-title-link:hover{text-decoration:underline;color:var(--primary)}.detail-link-btn{min-height:44px;min-width:44px;justify-content:center;text-align:center;font-weight:600}.product-detail-shell{max-width:1140px;margin:0 auto;padding:0 16px 40px;display:flex;flex-direction:column;gap:24px;box-sizing:border-box}.breadcrumbs{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap;color:var(--muted);padding:8px 0}.breadcrumb-link{color:var(--muted);text-decoration:none}.breadcrumb-link:hover{color:var(--primary);text-decoration:underline}.breadcrumb-separator{color:#94a3b8}.breadcrumb-current{color:var(--ink);font-weight:600}.product-detail-hero{padding:28px;border-radius:12px;display:flex;flex-direction:column;gap:20px}.detail-hero-top{display:flex;flex-direction:column;gap:12px}.detail-badges-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.product-status-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:9999px}.product-status-badge.published{background:#dcfce7;color:#15803d;border:1px solid #86efac}.product-detail-title{font-size:26px;font-weight:800;color:var(--ink);margin:0;line-height:1.35}.product-detail-desc{font-size:15px;line-height:1.6;color:#334155;margin:0;max-width:840px}.product-detail-pricing-box{background:#f8fafc;padding:16px 20px;border-radius:8px;border:1px solid #e2e8f0}.pricing-main-display{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.pricing-label{font-size:13px;color:var(--muted);font-weight:600}.detail-price-amount{font-size:30px;font-weight:800;color:var(--primary)}.detail-inquiry-tag{font-size:22px;font-weight:700;color:#d97706;background:#fef3c7;padding:4px 12px;border-radius:6px}.pricing-truthfulness-note{font-size:12px;color:var(--muted);margin:6px 0 0}.product-detail-grid{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}.detail-main-column{min-width:0}.detail-main-column,.detail-sidebar-column{display:flex;flex-direction:column;gap:24px}.detail-section{padding:24px;border-radius:12px}.detail-section h2{font-size:18px;margin:0 0 6px;color:var(--ink)}.section-subtext{font-size:13px;color:var(--muted);margin:0 0 16px}.detail-deliverables-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.detail-deliverable-item{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.5;color:#1e293b}.check-bullet-lg{color:#10b981;font-weight:800;font-size:16px;flex-shrink:0}.sample-viewer-card{padding:24px;border-radius:12px;display:flex;flex-direction:column;gap:16px;background:var(--surface);border:1px solid var(--border)}.sample-viewer-card.no-sample{background:#f8fafc;border-style:dashed}.sample-badge-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.sample-status-tag{font-size:11px;font-weight:700;padding:3px 10px;border-radius:9999px}.sample-status-tag.released{background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe}.sample-status-tag.unavailable{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.sample-format-tag{font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;background:#f1f5f9;color:var(--ink)}.sample-viewer-card h3{font-size:17px;margin:0;color:var(--ink)}.sample-desc{font-size:13px;color:#475569;margin:6px 0 0}.sample-notice-text{font-size:14px;line-height:1.6;color:#334155;margin:0 0 8px}.sample-guidance-text{font-size:13px;color:var(--muted);margin:0}.sample-specs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;padding:14px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:14px}.spec-label{font-size:11px;color:var(--muted);display:block;margin-bottom:2px}.spec-code{font-size:12px;background:#fff;padding:2px 6px;border-radius:4px;border:1px solid #cbd5e1;word-break:break-all}.spec-value{font-size:12px;color:#047857;font-weight:600}.sample-actions-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.btn-view-sample{min-height:44px;min-width:44px;font-weight:700;justify-content:center;text-align:center}.btn-check-metadata{min-height:44px;min-width:44px;font-size:13px}.sample-guarantee-note{font-size:12px;color:var(--muted);margin:0}.sample-error-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;margin-bottom:12px}.sample-metadata-view{padding:12px 16px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:12px;font-size:13px}.sample-metadata-view h4{margin:0 0 6px;font-size:13px;color:#166534}.metadata-details{display:flex;gap:14px;flex-wrap:wrap}.governance-panel{background:#f8fafc;border-left:4px solid var(--primary)}.governance-header{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.gov-icon{font-size:22px;flex-shrink:0}.governance-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px}.gov-meta-label{font-size:12px;color:var(--muted);display:block}.gov-meta-code{font-size:12px;font-weight:700;color:#065f46;background:#ecfdf5;padding:2px 6px;border-radius:4px;border:1px solid #a7f3d0}.gov-meta-val{font-size:13px;color:var(--ink)}.order-cta-sticky-card{position:sticky;top:20px;padding:22px;border-radius:12px;display:flex;flex-direction:column;gap:14px}.order-cta-sticky-card h3{font-size:17px;margin:0;color:var(--ink)}.cta-explanation{font-size:13px;color:var(--muted);margin:0}.order-cta-container{display:flex;flex-direction:column;gap:10px}.btn-order-direct{min-width:44px;font-size:15px;font-weight:700}.btn-order-direct,.btn-order-disabled{min-height:44px;text-align:center;justify-content:center}.btn-order-disabled{opacity:.6;cursor:not-allowed;width:100%}.order-cta-note{font-size:12px;color:var(--muted);line-height:1.4;margin:0;background:#f8fafc;padding:8px 10px;border-radius:6px;border:1px solid var(--border)}.order-verified-badge{font-size:11px;color:#065f46;display:flex;align-items:center;gap:4px}.order-verified-badge code{background:#ecfdf5;padding:2px 6px;border-radius:4px;border:1px solid #a7f3d0}.order-disabled-hint{font-size:12px;color:var(--muted);text-align:center;margin:6px 0 0}.order-non-commerce-hint{font-size:11px;color:var(--muted);text-align:center;margin:4px 0 0}.cta-divider{border:0;border-top:1px solid var(--border);margin:6px 0}.sidebar-context-links{display:flex;flex-direction:column;gap:8px}.sidebar-context-links strong{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.sidebar-btn{min-height:44px;min-width:44px;font-size:13px;text-align:center;justify-content:center}.detail-cross-links{margin-top:24px}@media(max-width:900px){.product-detail-grid{grid-template-columns:1fr}.order-cta-sticky-card{position:static}}@media(max-width:600px){.product-detail-title{font-size:22px}.governance-meta-grid{grid-template-columns:1fr}.sample-actions-bar{flex-direction:column}.sample-actions-bar .button,.sidebar-context-links .button{width:100%}}.admin-login-wrapper{max-width:520px;margin:30px auto;padding:0 16px}.admin-login-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:32px 28px;box-shadow:0 4px 16px rgba(0,0,0,.04)}.admin-login-header{text-align:center;margin-bottom:20px}.admin-badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;color:var(--gold-ink);background:var(--softgold);border:1px solid var(--gold);margin-bottom:10px}.admin-login-header h1{font-size:22px;color:var(--ink);margin:0 0 8px}.admin-login-subtitle{font-size:13px;color:var(--muted);margin:0}.admin-notice-box{background:var(--softblue);border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:6px;padding:12px 14px;font-size:12px;color:var(--ink);margin-bottom:20px;line-height:1.5}.admin-notice-box p{margin:4px 0 0;color:var(--muted)}.admin-error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b}.admin-error-banner,.admin-success-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:13px;margin-bottom:16px}.admin-success-banner{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#166534}.admin-login-form{display:flex;flex-direction:column;gap:16px}.admin-input{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:14px;color:var(--ink);box-sizing:border-box}.admin-input:focus{outline:2px solid var(--primary);border-color:transparent}.admin-select{min-height:44px}.admin-select,.admin-textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:14px;color:var(--ink);box-sizing:border-box}.admin-textarea{font-family:inherit}.btn-admin-submit{min-height:44px;min-width:44px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;padding:12px 20px;transition:opacity .2s}.btn-admin-submit:hover:not(:disabled){opacity:.9}.btn-admin-submit:disabled{opacity:.6;cursor:not-allowed}.admin-login-footer{margin-top:24px;border-top:1px solid var(--border);padding-top:16px}.demo-credentials-hint{font-size:12px;color:var(--muted);line-height:1.6;margin:0}.demo-credentials-hint code{background:#f1f5f9;padding:2px 6px;border-radius:4px;color:#0f172a}.admin-status-bar{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 18px;margin-bottom:20px;flex-wrap:wrap;gap:10px}.admin-user-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}.admin-role-badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.admin-bar-actions{display:flex;align-items:center;gap:12px}.admin-nav-link-btn{font-size:13px;color:var(--primary);text-decoration:none;font-weight:600;min-height:44px;display:inline-flex;align-items:center;padding:0 8px}.btn-admin-logout{min-height:44px;min-width:44px;padding:8px 14px;border:1px solid var(--border);background:#fff;border-radius:6px;font-size:12px;color:var(--muted);cursor:pointer}.btn-admin-logout:hover{background:#f8fafc;color:#991b1b;border-color:#fecaca}.admin-draft-notice{display:flex;gap:14px;background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid var(--accent);border-radius:8px;padding:16px;margin-bottom:24px}.notice-icon{font-size:24px;flex-shrink:0}.notice-content h3{margin:0 0 6px;font-size:15px;color:var(--ink)}.notice-content p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}.admin-selector-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:24px}.admin-selector-card h2{font-size:16px;margin:0 0 14px;color:var(--ink)}.admin-selectors-grid{display:grid;grid-template-columns:1fr 2fr 1.5fr;gap:14px}.selector-group{display:flex;flex-direction:column;gap:6px}.selector-group label{font-size:13px;font-weight:600;color:var(--ink)}.admin-conflict-banner{display:flex;gap:14px;background:#fffbeb;border:2px solid #f59e0b;border-radius:10px;padding:18px;margin-bottom:24px;align-items:flex-start}.conflict-icon{font-size:26px;flex-shrink:0}.conflict-text h4{margin:0 0 6px;font-size:15px;color:#92400e}.conflict-text p{margin:0 0 12px;font-size:13px;color:#78350f;line-height:1.5}.btn-reload-latest{min-height:44px;min-width:44px;padding:10px 18px;background:#d97706;color:#fff;border:none;border-radius:6px;font-weight:700;font-size:13px;cursor:pointer}.btn-reload-latest:hover{background:#b45309}.admin-editor-layout{display:grid;grid-template-columns:2.5fr 1fr;gap:24px;align-items:start}.admin-form-panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px}.panel-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border);padding-bottom:14px;margin-bottom:20px;flex-wrap:wrap;gap:10px}.panel-header h3{margin:0;font-size:17px;color:var(--ink)}.draft-version-tag{background:#e0f2fe;color:#0369a1;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid #bae6fd}.form-sections{display:flex;flex-direction:column;gap:20px}.form-fieldset{border:1px solid var(--border);border-radius:8px;padding:16px 18px;background:#fafaf9}.form-fieldset legend{font-size:13px;font-weight:700;color:var(--ink);padding:0 6px}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:8px;cursor:pointer;min-height:30px}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.form-submit-row{margin-top:12px}.btn-save-draft{min-height:44px;min-width:44px;width:100%;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;padding:12px;transition:opacity .2s}.btn-save-draft:hover:not(:disabled){opacity:.9}.btn-save-draft:disabled{opacity:.6;cursor:not-allowed}.admin-sidebar-panel{display:flex;flex-direction:column;gap:16px}.sidebar-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px}.sidebar-card h4{margin:0 0 6px;font-size:15px;color:var(--ink)}.sidebar-desc{font-size:12px;color:var(--muted);margin:0 0 16px;line-height:1.4}.audit-timeline{display:flex;flex-direction:column;gap:12px;max-height:500px;overflow-y:auto;padding-right:4px}.audit-timeline-item{padding:12px;background:#f8fafc;border:1px solid var(--border);border-radius:8px}.audit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.audit-action{font-size:11px;font-weight:700;color:#0284c7;text-transform:uppercase}.audit-time{font-size:11px;color:var(--muted)}.audit-summary{font-size:12px;color:var(--ink);margin:0 0 4px;line-height:1.4}.audit-actor{font-size:11px;color:var(--muted);margin:0}.empty-audit-hint{font-size:13px;color:var(--muted);text-align:center;padding:20px 0}.admin-hub-header{text-align:center;margin-bottom:32px}.admin-hub-header h1{font-size:26px;color:var(--ink);margin:8px 0}.admin-hub-subtitle{font-size:14px;color:var(--muted);margin:0}.admin-cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px}.admin-hub-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:28px;display:flex;flex-direction:column;align-items:flex-start}.admin-hub-card .card-badge{font-size:11px;font-weight:700;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;padding:2px 8px;border-radius:4px;margin-bottom:12px}.admin-hub-card h2{font-size:18px;color:var(--ink);margin:0 0 10px}.admin-hub-card p{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 20px;flex-grow:1}.btn-admin-card-action{min-height:44px;min-width:44px;display:inline-flex;align-items:center;padding:10px 18px;background:var(--primary);color:#fff;border-radius:8px;font-size:14px;font-weight:700;text-decoration:none;transition:opacity .2s}.btn-admin-card-action:hover{opacity:.9}.admin-footer-actions{text-align:center}.btn-admin-subtle{font-size:13px;color:var(--muted);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}.btn-admin-subtle:hover{color:var(--ink);text-decoration:underline}@media(max-width:900px){.admin-cards-grid,.admin-editor-layout,.admin-selectors-grid{grid-template-columns:1fr}}@media(max-width:600px){.form-row-2,.form-row-3{grid-template-columns:1fr}.admin-status-bar{flex-direction:column;align-items:flex-start}.admin-bar-actions{width:100%;justify-content:space-between}}.vacancy-dashboard{font-size:16px}.vacancy-dashboard .page-heading p{font-size:16px;line-height:1.6}.vacancy-dashboard button,.vacancy-dashboard input,.vacancy-dashboard select{font:inherit}.vacancy-dashboard .page-heading{margin-bottom:18px}.vacancy-workspace{grid-template-columns:220px minmax(0,1fr) 330px}.vacancy-workspace .field label,.vacancy-workspace .field legend,.vacancy-workspace .filter-rail,.vacancy-workspace .search-control input,.vacancy-workspace .soft-note,.vacancy-workspace .switch-row{font-size:16px}.vacancy-workspace .segmented button{font-size:14px;min-height:44px}.vacancy-workspace .switch-row{min-height:44px}.vacancy-workspace .soft-note{line-height:1.6}.vacancy-workspace h2{font-size:19px;line-height:1.5}.vacancy-workspace .result-count,.vacancy-workspace .snapshot-meta{font-size:14px;line-height:1.5}.vacancy-workspace .view-switch button{min-height:44px;font-size:16px;gap:6px}.vacancy-metric-label{color:var(--blue);font-size:14px;white-space:nowrap}.vacancy-overview{margin-bottom:16px}.vacancy-summary-cards{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px}.vacancy-summary-cards>div{padding:16px 20px;border:1px solid var(--line);border-radius:10px;background:var(--card)}.vacancy-summary-cards span{font-size:16px}.vacancy-summary-cards p{margin:5px 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.vacancy-summary-cards strong{font-size:30px;line-height:1.3}.vacancy-summary-main strong{font-size:40px;color:var(--blue)}.vacancy-coverage-notice,.vacancy-summary-cards small{font-size:14px;line-height:1.6;color:#475569}.vacancy-coverage-notice{margin:8px 0 0}.vacancy-inspector{padding:16px;max-height:max(560px,calc(100dvh - 330px));overflow:auto}.vacancy-list-toolbar{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.vacancy-list-toolbar h2{margin:0}.vacancy-list-toolbar label{font-size:14px}.vacancy-list-toolbar select{width:100%;height:44px;margin-top:4px;border:1px solid var(--line);border-radius:7px;background:var(--card);padding:0 10px;color:var(--ink)}.vacancy-list-rows{max-height:650px;overflow:auto;overscroll-behavior:contain}.vacancy-inspector .vacancy-list-rows{max-height:205px}.vacancy-inspector .vacancy-list{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}.vacancy-row{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--line);border-radius:5px}.vacancy-row.selected{background:var(--softblue)}.vacancy-row-select{border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;padding:12px 6px;min-height:64px;color:var(--ink)}.vacancy-row-select,.vacancy-row-select>span:first-child{flex:1 1;min-width:0}.vacancy-row strong{font-size:16px;line-height:1.5;font-weight:600}.vacancy-row small{display:block;font-size:13px;line-height:1.6;color:#475569}.vacancy-row-number{text-align:right;flex-shrink:0;min-width:44px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.vacancy-row-number b{font-size:25px;color:var(--blue);line-height:1.3}.vacancy-add-compare{border:1px solid var(--line);border-radius:7px;padding:5px;min-width:44px;min-height:44px;background:var(--card);color:var(--ink);font-size:14px!important}.vacancy-add-compare[aria-pressed=true]{background:var(--blue);color:white}.quota-primary{padding:14px!important;margin-top:14px!important;background:var(--softblue);border:1px solid var(--line);border-radius:9px}.quota-primary>div{border:0!important;display:flex!important;flex-direction:row!important;min-height:60px!important;align-items:center!important;justify-content:space-between!important}.quota-primary dt{font-size:16px!important}.quota-primary dd strong{font-size:40px!important;color:var(--blue)}.quota-primary dd span{font-size:16px!important;min-width:auto}.quota-status{font-size:14px;line-height:1.6;margin:8px 0}.quota-evidence{font-size:14px!important;line-height:1.6}.quota-evidence p{font-size:14px;margin:6px 0}.quota-evidence .meta-item{gap:10px}.quota-source-link{display:block;min-height:44px;padding:10px 0}.applicant-secondary{font-size:14px;line-height:1.6;margin:16px 0}.applicant-secondary summary{min-height:44px;cursor:pointer;padding:10px 0}.applicant-secondary dl>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.applicant-secondary dd{margin:0;text-align:right}.vacancy-inspector .district-title{font-size:23px;line-height:1.5}.vacancy-inspector .district-subtitle{font-size:15px}.vacancy-inspector .major-row{grid-template-columns:minmax(0,1fr) auto;min-height:44px;font-size:14px}.vacancy-dashboard .inspector-actions .button{min-height:44px;font-size:15px}.vacancy-dashboard .source-note{font-size:13px;line-height:1.6}.vacancy-workspace .map-legend{flex-wrap:wrap;gap:10px;font-size:13px;line-height:1.5}.vacancy-workspace .color-low{background:var(--quota-low);color:white}.vacancy-workspace .color-medium{background:var(--quota-medium);color:var(--ink)}.vacancy-workspace .color-high{background:var(--quota-high);color:white}.vacancy-workspace .color-cancelled{background:repeating-linear-gradient(45deg,#e2e5e8 0 3px,#888 3px 4px);color:#171c1c}.vacancy-dashboard .site-footer{font-size:14px;line-height:1.7}.vacancy-dashboard .map-disclaimer,.vacancy-dashboard .map-hover{font-size:13px;line-height:1.6}.vacancy-dashboard .map-tools p{font-size:13px}.vacancy-dashboard button:focus-visible,.vacancy-dashboard select:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.vacancy-dashboard .mobile-detail-sheet .quota-primary{display:block}.vacancy-dashboard .mobile-detail-sheet .district-meta-box{font-size:14px}.comparison-bar .button,.comparison-bar .icon-button{min-height:44px;min-width:44px}.comparison-bar{font-size:14px}@media(max-width:1200px) and (min-width:901px){.vacancy-workspace{grid-template-columns:210px minmax(0,1fr) 310px}.vacancy-metric-label{display:none}}@media(max-width:900px){.vacancy-workspace{display:block}.vacancy-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vacancy-summary-main{grid-column:1/-1}.vacancy-summary-cards>div{padding:12px 14px}.vacancy-summary-cards strong{font-size:26px}.vacancy-summary-main strong{font-size:36px}.vacancy-summary-cards span{font-size:14px}.vacancy-summary-cards small{font-size:13px}.vacancy-dashboard .page-heading h1{font-size:28px;line-height:1.5}.vacancy-dashboard .mobile-controls select{min-height:44px;font-size:16px}.vacancy-metric-label{display:none}.vacancy-dashboard .map-heading{gap:8px}.vacancy-dashboard .map-view-row{align-items:flex-start;gap:8px}.vacancy-dashboard .view-switch{flex-shrink:0}.vacancy-dashboard .view-switch button{font-size:14px}.vacancy-dashboard .snapshot-meta{font-size:13px}.vacancy-dashboard .map-tools p{font-size:12px}.vacancy-dashboard .mobile-detail-sheet{max-height:72dvh;padding-bottom:24px}.vacancy-dashboard .mobile-detail-sheet .major-row{grid-template-columns:minmax(0,1fr) auto;min-height:44px;font-size:14px}.vacancy-dashboard .mobile-detail-sheet .source-note{font-size:13px}.vacancy-dashboard .mobile-detail-sheet .inspector-actions .button{min-height:44px;font-size:15px}.vacancy-list-rows{max-height:none}.comparison-bar .button{font-size:13px}.vacancy-row-select{min-height:72px}}.help-swatch--vacancy-low{background:var(--quota-low)}.help-swatch--vacancy-medium{background:var(--quota-medium)}.help-swatch--vacancy-high{background:var(--quota-high)}.vacancy-dashboard .map-legend span{font-size:13px}@media(min-width:901px){.vacancy-dashboard .page-heading{margin-top:18px;margin-bottom:12px}.vacancy-summary-cards>div{padding:12px 18px}.vacancy-summary-cards p{margin:3px 0}.vacancy-summary-main strong{font-size:36px}.vacancy-inspector .vacancy-list-rows{max-height:145px}}.site-header .nav-link,.site-header .text-button{min-height:44px;display:inline-flex;align-items:center}.site-header .nav-link{font-size:14px}@media(min-width:901px){.vacancy-dashboard .page-heading{margin-top:0}}.province-cartogram .cartogram-province-group{position:absolute;pointer-events:none;border-radius:3px}.province-cartogram .cartogram-province-group.emphasized{background:#2862be0b}.province-cartogram .cartogram-province-label{display:block;text-align:center;font-size:18px;font-weight:600;line-height:24px;color:var(--ink);white-space:nowrap}.province-cartogram .cartogram-province-group.emphasized .cartogram-province-label{color:var(--blue)}.vacancy-workspace .province-cartogram .cartogram-tile{position:absolute;font-size:15px!important;line-height:28px;border-radius:1px;box-shadow:0 0 0 1px #fffdf8}.vacancy-workspace .map-scroll{background:var(--paper);border-radius:6px;padding:0;touch-action:auto}.vacancy-workspace .map-tools{display:block;position:relative;padding-right:146px;min-height:52px;margin-top:10px}.vacancy-workspace .map-tools p{max-width:none;padding:10px 0}.vacancy-workspace .map-tools .map-zoom{position:absolute;top:0;right:0;gap:4px}.vacancy-workspace .map-zoom .icon-button{width:44px;height:44px}@media(min-width:901px){.vacancy-workspace{align-items:start}.vacancy-workspace>.filter-rail,.vacancy-workspace>.inspector{position:sticky;top:16px}.vacancy-workspace .map-scroll{max-height:none!important}}.vacancy-workspace .color-pending{color:var(--ink)}.quota-comparison{font-size:16px;line-height:1.6}.compare-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.compare-toolbar label{flex:1 1;max-width:360px;font-weight:600}.compare-toolbar select{display:block;width:100%;min-height:44px;font-size:16px;margin-top:5px}.quota-comparison a,.quota-comparison button{min-height:44px}.compare-toolbar .button{font-size:16px;min-height:44px}.compare-share-feedback{padding:12px;background:var(--softblue);border-radius:7px;margin-bottom:12px;font-size:14px}.compare-share-feedback label{display:block;margin-top:8px}.compare-share-feedback input{display:block;width:100%;min-width:0;min-height:44px;font-size:14px;padding:8px;border:1px solid var(--line);border-radius:4px}.compare-scale-note,.compare-snapshot{font-size:14px;color:var(--muted);margin:8px 0}.quota-compare-chart h3{font-size:20px;margin-top:18px}.quota-compare-chart h3 span{font-size:16px;font-weight:400}.compare-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:13px;margin:10px 0 0}.quota-compare-row{padding:10px 0;border-bottom:1px solid var(--line)}.quota-compare-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.quota-compare-heading h4{font-size:17px;font-weight:600;line-height:1.6;min-width:0;flex:1 1}.quota-compare-count{font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.quota-compare-count strong{font-size:32px;line-height:1.4;color:var(--blue)}.quota-compare-remove{border:1px solid var(--line);border-radius:6px;background:var(--card);min-height:44px;padding:5px 12px;font-size:14px;flex-shrink:0}.quota-compare-value{margin:6px 0}.quota-compare-track{height:18px;border-left:2px solid var(--ink);background:#e4e9ed;overflow:hidden;border-radius:0 4px 4px 0}.quota-compare-fill{height:100%;width:var(--bar-percent);background:var(--compare-color,var(--blue))}.quota-compare-track.unavailable{background:repeating-linear-gradient(135deg,#f1f2f2 0 5px,#d5dade 5px 6px)}.compare-no-count{font-size:13px;color:var(--muted);white-space:normal}.quota-compare-evidence{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;font-size:14px}.quota-compare-evidence a{display:inline-flex;align-items:center}.quota-compare-evidence>span{color:var(--muted)}.quota-compare-delta,.quota-compare-status{font-size:14px;margin-top:4px}.quota-compare-context{display:flex;flex-wrap:wrap;gap:0 18px}.quota-compare-delta{color:var(--blue);font-weight:600}.compare-date-notice{font-size:14px;background:#f5f0e3;border:1px solid var(--line);border-radius:5px;padding:10px 12px;margin:12px 0}.compare-applicants{margin-top:18px;border-top:1px solid var(--line)}.compare-applicants summary{min-height:44px;padding:14px 0;font-size:16px;cursor:pointer}.compare-applicants .compare-table{font-size:15px}.compare-applicants .compare-table td,.compare-applicants .compare-table th{line-height:1.6}.quota-comparison .compare-footnote{font-size:14px;line-height:1.6}.quota-selection-bar{display:grid;grid-template-columns:1fr auto;gap:8px 16px;max-width:980px;width:calc(100% - 48px);white-space:normal}.quota-selection-bar>p{font-size:14px;margin:0}.compare-selection-items{display:flex;gap:8px;list-style:none;padding:0;margin:0;overflow-x:auto;grid-column:1;min-width:0}.compare-selection-items li{display:flex;align-items:center;gap:8px;flex-shrink:0;max-width:260px;border:1px solid var(--line);border-radius:6px;padding:0 4px 0 10px;background:var(--card)}.compare-selection-items li>span{font-size:14px;line-height:1.5}.compare-selection-items .icon-button{width:44px;height:44px;border:0;background:transparent}.compare-selection-actions{grid-column:2;grid-row:1/3;display:flex;align-items:center;gap:8px}.compare-selection-actions .button{font-size:14px;min-height:44px}.vacancy-dashboard.has-comparison{padding-bottom:170px}@media(max-width:600px){.compare-toolbar{flex-direction:column;align-items:stretch;gap:10px}.compare-toolbar label{max-width:none}.quota-compare-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 12px}.quota-compare-heading h4{font-size:16px;grid-column:1}.quota-compare-heading>span{grid-column:1;text-align:left}.quota-compare-remove{grid-column:2;grid-row:1/3}.quota-selection-bar{width:calc(100% - 24px);padding:10px;grid-template-columns:1fr;gap:6px;bottom:12px}.compare-selection-actions{grid-row:auto;grid-column:1;justify-content:space-between}.compare-selection-items{max-height:74px}.quota-compare-evidence{font-size:13px;gap:2px 10px}.quota-compare-status{font-size:13px}.quota-comparison .dialog-demo-note{font-size:14px}.vacancy-dashboard.has-comparison{padding-bottom:220px}}.brand-intro{display:none;position:fixed;inset:0;z-index:100;background:var(--paper);overflow:hidden;--intro-duration:1950ms;--intro-travel-x:calc(40px - 50vw);--intro-travel-y:calc(42px - 50vh + 74px);--intro-header-scale:.18}html[data-brand-intro=playing] .brand-intro{display:grid;place-items:center;animation:intro-dismiss var(--intro-duration) linear forwards}html[data-brand-intro=playing] .privacy-links,html[data-brand-intro=playing] [data-dashboard-entry]{visibility:hidden}html:not([data-brand-intro-motion=full]) body:has(#main:target) .brand-intro{display:none}.intro-content{display:flex;flex-direction:column;align-items:center;gap:20px;padding:28px;text-align:center}.intro-symbol{position:relative;width:clamp(200px,25vw,340px);aspect-ratio:1;transform-origin:center;animation:intro-handoff var(--intro-duration) cubic-bezier(.55,0,.25,1) forwards;will-change:transform}.intro-original,.intro-parts{position:absolute;inset:0;width:100%;height:100%}.intro-parts{animation:intro-parts-finish var(--intro-duration) linear forwards}.intro-original{animation:intro-original var(--intro-duration) linear forwards}.intro-frame{animation:intro-frame var(--intro-duration) ease-out both;transform-origin:center}.intro-tile{transform-box:view-box;animation-duration:.4s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-fill-mode:both}.intro-tile-blue{animation-name:intro-blue;animation-delay:50ms}.intro-tile-orange{animation-name:intro-orange;animation-delay:.22s}.intro-tile-green{animation-name:intro-green;animation-delay:.42s}.intro-tile-gold{animation-name:intro-gold;animation-delay:.55s;animation-duration:.45s}.intro-wordmark{animation:intro-wordmark var(--intro-duration) ease-out forwards}.intro-wordmark strong{font-family:Sarabun,system-ui,sans-serif;font-size:clamp(28px,3.2vw,44px);font-weight:700;letter-spacing:0;line-height:1.5}.intro-wordmark p{font-family:system-ui,sans-serif;font-size:clamp(22px,3vw,30px);font-weight:750;letter-spacing:-.6px;margin-top:6px;color:var(--ink)}.intro-purpose{font-size:14px;color:var(--muted);animation:intro-wordmark var(--intro-duration) ease-out forwards}.intro-skip{position:absolute;right:28px;top:24px;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);font-size:15px;z-index:2}.intro-skip:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.intro-full-motion{display:none;left:28px;right:auto}.intro-replay{min-height:44px;flex-shrink:0}.dashboard-fallback{min-height:100dvh;padding:64px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}.vacancy-dashboard:has(.loading){min-height:100dvh}.dashboard-fallback h1{font-size:28px;line-height:1.5}.dashboard-fallback a,.dashboard-fallback p{font-size:16px;line-height:1.6}.dashboard-fallback a{display:inline-flex;align-items:center;min-height:44px}@keyframes intro-frame{0%,43%{opacity:0;transform:scale(1.18)}51%{opacity:1;transform:scale(.97)}56%,to{opacity:1;transform:scale(1)}}@keyframes intro-blue{0%{opacity:0;transform:translateY(700px) rotate(-32deg) scale(.45,1.5)}35%{opacity:1;transform:translateY(-60px) rotate(8deg) scale(1.12,.85)}55%{transform:translateY(25px) rotate(-3deg) scale(1.18,.8)}76%{transform:translateY(-12px) rotate(1deg) scale(.98,1.07)}to{opacity:1;transform:none}}@keyframes intro-orange{0%{opacity:0;transform:translateX(-740px) rotate(-130deg) scale(.6)}35%{opacity:1;transform:translateX(48px) rotate(12deg) scale(1.08,.82)}58%{transform:translateX(-16px) rotate(-5deg) scale(.94,1.1)}80%{transform:translateX(6px) rotate(2deg)}to{opacity:1;transform:none}}@keyframes intro-green{0%{opacity:0;transform:translate(460px,-380px) rotate(130deg) scale(.55)}38%{opacity:1;transform:translate(-44px,34px) rotate(-14deg) scale(1.1,.84)}62%{transform:translate(14px,-18px) rotate(7deg) scale(.94,1.1)}85%{transform:translate(-5px,5px) rotate(-2deg)}to{opacity:1;transform:none}}@keyframes intro-gold{0%{opacity:0;transform:translateY(-880px) rotate(-250deg) scale(.45)}40%{opacity:1;transform:translateY(38px) rotate(14deg) scale(1.18,.8)}62%{transform:translateY(-20px) rotate(-8deg) scale(.9,1.1)}82%{transform:translateY(6px) rotate(3deg)}to{opacity:1;transform:none}}@keyframes intro-original{0%,49%{opacity:0}56%,to{opacity:1}}@keyframes intro-parts-finish{0%,49%{opacity:1}56%,to{opacity:0}}@keyframes intro-wordmark{0%,35%{opacity:0;transform:translateY(32px) scale(.94)}45%,90%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(1)}}@keyframes intro-handoff{0%,90%{transform:translate(0) scale(1)}to{transform:translate(var(--intro-travel-x),var(--intro-travel-y)) scale(var(--intro-header-scale))}}@keyframes intro-dismiss{0%,90%{opacity:1;visibility:visible;pointer-events:auto}to{opacity:0;visibility:hidden;pointer-events:none}}@keyframes intro-static-dismiss{0%{visibility:visible;pointer-events:auto}to{visibility:hidden;pointer-events:none}}@media(max-width:600px){.intro-skip{right:16px;top:16px;font-size:14px}.intro-full-motion{left:16px;right:auto}.intro-content{gap:18px}.intro-wordmark p{font-size:15px;letter-spacing:1.5px}.intro-purpose{font-size:13px}}@media(prefers-reduced-motion:reduce){html:not([data-brand-intro-motion=full])[data-brand-intro=playing] .brand-intro{animation:intro-static-dismiss 2s step-end forwards}html:not([data-brand-intro-motion=full]) .brand-intro .intro-original,html:not([data-brand-intro-motion=full]) .brand-intro .intro-purpose,html:not([data-brand-intro-motion=full]) .brand-intro .intro-symbol,html:not([data-brand-intro-motion=full]) .brand-intro .intro-wordmark{animation:none;transform:none;opacity:1}html:not([data-brand-intro-motion=full]) .brand-intro .intro-parts{display:none}html:not([data-brand-intro-motion=full]) .intro-full-motion{display:inline-flex}}.vacancy-sidebar{min-width:0;display:flex;flex-direction:column;gap:14px;position:sticky;top:16px}.promo-card{border:1px solid color-mix(in srgb,var(--orange) 35%,var(--line));border-radius:9px;background:var(--softorange);padding:15px;min-width:0}.promo-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.promo-label{font-size:13px;line-height:1.5;font-weight:600;color:var(--orange-ink);white-space:nowrap}.promo-card-content{display:flex;gap:12px;align-items:center;margin-bottom:14px}.promo-card-content>div{min-width:0;flex:1 1}.promo-card h2{font-size:20px;line-height:1.5;margin:0 0 7px}.promo-card p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}.promo-logo{width:76px;height:76px;object-fit:contain;flex-shrink:0}.promo-card .promo-price{font-size:16px;font-weight:700;color:var(--ink);margin-top:8px}.promo-cta{display:flex;width:100%;min-height:44px;font-size:15px;line-height:1.5;gap:9px}.promo-card small{display:block;font-size:13px;line-height:1.6;color:var(--muted);margin-top:8px}.promo-card button:disabled{opacity:1;background:#ecebe5;color:#65706b;border-color:#d1d6ce;cursor:default}.promo-preview{max-width:680px;padding:28px 20px;margin:0 auto}.promo-preview h1{font-size:28px;line-height:1.5;margin-bottom:12px}.promo-preview>p{font-size:16px;line-height:1.6;margin-bottom:20px}.promo-preview .promo-card{max-width:360px}.promo-preview>a{display:inline-flex;align-items:center;min-height:44px;margin-top:16px}@media(max-width:900px){.vacancy-sidebar{position:static;display:block;margin-top:16px}.promo-card{max-width:520px;margin:0 auto}}.quota-compare-count{display:block;margin-bottom:6px}.quota-compare-heading h4{margin:0}@media(min-width:768px){.quota-compare-rows{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:20px;padding-left:38px;position:relative;margin-top:18px}.quota-compare-rows .compare-axis{position:absolute;left:0;top:50px;height:210px;margin:0;display:flex;flex-direction:column-reverse;justify-content:space-between;line-height:1;transform:translateY(6px)}.quota-compare-row{min-width:0;display:grid;grid-template-rows:260px auto auto 1fr;align-content:start;padding:0;border-bottom:0}.quota-compare-value{grid-row:1;margin:0;display:flex;flex-direction:column;align-items:center}.quota-compare-count{flex:0 0 50px;margin:0;display:flex;align-items:flex-start;justify-content:center;gap:4px;line-height:44px}.quota-compare-heading{grid-row:2;align-items:flex-start;flex-direction:column;gap:8px;padding-top:12px}.quota-compare-heading h4{font-size:17px;line-height:1.6;overflow-wrap:anywhere}.quota-compare-track{width:100%;height:210px;flex-shrink:0;display:flex;align-items:flex-end;justify-content:center;border:0;border-bottom:2px solid var(--ink);border-radius:0;position:relative;background:linear-gradient(to top,transparent calc(50% - 1px),var(--line) 50%,transparent calc(50% + 1px))}.quota-compare-fill{width:min(60%,92px);height:var(--bar-percent);border-radius:6px 6px 0 0}.quota-compare-track.unavailable{background:none}.quota-compare-track.unavailable:after{content:"ไม่มีข้อมูล";position:absolute;bottom:12px;color:var(--muted);font-size:14px}.quota-compare-evidence{grid-row:3;display:block;margin-top:10px;font-size:13px;line-height:1.6}.quota-compare-evidence p{margin:0}.quota-compare-evidence>span{display:block}.quota-compare-context{grid-row:4;display:block}.quota-compare-delta{padding:6px 8px;background:var(--softblue);border-radius:5px}}@media(max-width:767px){.quota-comparison .compare-toolbar{flex-direction:row;align-items:flex-end;gap:10px;margin-bottom:10px}.quota-comparison .compare-toolbar label{flex:1 1;min-width:0;font-size:14px}.quota-comparison .compare-toolbar .button{font-size:13px;padding:8px;max-width:130px}.quota-comparison .dialog-demo-note--compact{padding:8px 10px;gap:4px;font-size:13px;line-height:1.5}.quota-comparison .compare-snapshot{font-size:13px;line-height:1.5;margin:8px 0}.quota-comparison .compare-axis{margin-top:8px}.quota-compare-chart h3{margin-top:12px}.quota-compare-heading{display:flex;align-items:flex-start}.quota-compare-heading h4{font-size:16px;line-height:1.5}.quota-compare-count strong{font-size:28px}.quota-compare-remove{padding:5px 8px;font-size:13px}.quota-compare-evidence{font-size:13px;gap:0 10px;line-height:1.5}.quota-compare-evidence p{margin:0}.quota-compare-row{padding:10px 0}}.mobile-filter-dialog button,.vacancy-dashboard .reset-filters{min-height:44px}.mobile-filter-dialog .filter-heading .icon-button{width:44px;height:44px;min-width:44px}.mobile-filter-dialog .field label,.mobile-filter-dialog .field legend,.mobile-filter-dialog .search-control input,.mobile-filter-dialog .switch-row{font-size:16px;line-height:1.5}.mobile-filter-dialog .search-control,.vacancy-workspace .search-control{padding-top:0;padding-bottom:0;min-height:46px}.mobile-filter-dialog .search-control input,.vacancy-workspace .search-control input{height:44px;min-width:0}.vacancy-summary-cards>div{border-top:3px solid var(--blue)}.vacancy-summary-cards>.vacancy-summary-main{background:var(--softblue)}.vacancy-summary-cards>div:nth-child(2){border-top-color:var(--green);background:var(--softgreen)}.vacancy-summary-cards>div:nth-child(2) strong{color:var(--green-ink)}.vacancy-summary-cards>div:nth-child(3){border-top-color:var(--gold);background:var(--softgold)}.quota-compare-row:first-of-type{--compare-color:var(--blue)}.quota-compare-row:nth-of-type(2){--compare-color:var(--orange)}.quota-compare-row:nth-of-type(3){--compare-color:var(--green)}.promo-card .promo-cta{background:var(--orange);color:var(--ink);border-color:var(--orange)}.promo-card .promo-cta:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.demo-notice-card{background:var(--softgold);border-color:var(--gold)}.data-label,.demo-indicator,.demo-notice-card,.snapshot-meta{color:var(--gold-ink)}.data-label{background:var(--softgold)}.live-indicator{color:var(--green-ink)}.intro-baseline{color:var(--ink);stroke-dasharray:709;stroke-dashoffset:709;animation:intro-line .22s cubic-bezier(.22,1,.36,1) 20ms forwards}.intro-wordmark p:before{content:"";display:inline-block;width:30px;height:5px;background:var(--orange);border-radius:3px;vertical-align:middle;margin-right:10px}@keyframes intro-line{to{stroke-dashoffset:0}}.application-check-notice{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--gold);border-left-width:4px;border-radius:8px;background:var(--softgold);margin-bottom:16px;font-size:14px;line-height:1.6}.application-check-notice>svg{flex-shrink:0;color:var(--gold-ink)}.application-check-notice p{flex:1 1;margin:0}.application-check-notice p span,.application-check-notice strong{display:block}.application-check-notice a{display:inline-flex;align-items:center;min-height:44px;white-space:nowrap;font-size:14px}.application-reminder{font-size:14px;line-height:1.6;padding:8px 10px;border-left:3px solid var(--gold);background:var(--softgold);margin:10px 0}.interesting-areas{margin:0 0 16px;border:1px solid var(--line);border-radius:9px;padding:12px 16px;background:var(--card)}.interesting-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.interesting-heading h2{font-size:19px;margin:0}.interesting-tabs{display:flex;gap:4px}.interesting-tabs button{min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:6px;background:var(--card);font-size:14px}.interesting-tabs button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:white}.interest-note{font-size:13px;line-height:1.5;color:var(--muted);margin:6px 0 10px}.interesting-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-height:112px}.interesting-item{min-width:0;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--paper)}.interesting-select{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;border:0;background:none;color:var(--ink);text-align:left;padding:0;margin-bottom:8px}.interesting-select strong{flex:1 1;min-width:0;font-size:15px;line-height:1.5}.interesting-rank{font-size:14px;color:var(--muted)}.interesting-count{font-size:24px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--blue);white-space:nowrap}.interesting-count small{font-size:13px}.like-button{position:relative;display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);font-size:14px;cursor:pointer}.like-button strong{min-width:24px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.like-button.liked{background:var(--softorange);color:var(--orange-ink);border-color:var(--orange)}.like-button.liked svg{fill:var(--orange)}.like-button:disabled{cursor:default;color:var(--muted)}.like-button:not(:disabled):hover{border-color:var(--orange);background:var(--softorange)}.interesting-empty{grid-column:1/-1;margin:auto;font-size:14px;line-height:1.6;color:var(--muted)}.interest-error{display:flex;align-items:center;gap:10px;font-size:14px;margin-top:8px}.interest-error button{min-height:44px}@media(min-width:1201px){.interesting-row{min-height:66px}.interesting-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}.interesting-select{min-width:0;margin-bottom:0}.interesting-count{flex-shrink:0}}@media(max-width:900px){.interesting-heading{align-items:flex-start;flex-direction:column;gap:6px}.interesting-tabs{width:100%}.interesting-tabs button{flex:1 1;padding:8px;font-size:14px}.interesting-areas{padding:12px}.interesting-row{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:10px;min-height:132px}.interesting-item{flex:0 0 260px;scroll-snap-align:start}.interesting-empty{min-width:230px}.application-check-notice{gap:8px;align-items:flex-start;flex-wrap:wrap;padding:10px 12px}.application-check-notice p{min-width:220px}.application-check-notice a{margin-left:28px}.intro-purpose{font-size:12px}}@media(prefers-reduced-motion:reduce){html:not([data-brand-intro-motion=full]) .intro-baseline{display:none}}.interesting-name{flex:1 1;min-width:0}.interesting-name strong{display:block}.interesting-name>small{display:block;font-size:12px;line-height:1.6;color:var(--muted);font-weight:400}.compare-mode-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:12px 0}.compare-mode-tools p{flex:1 1;min-width:140px;font-size:13px;line-height:1.5;color:var(--muted)}.compare-mode-tools .button{min-height:44px;flex-shrink:0}.privacy-links{max-width:1840px;margin:0 auto;padding:12px 24px 24px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;font-size:14px}.privacy-links a,.privacy-links button{display:inline-flex;align-items:center;min-height:44px;color:var(--blue);font:inherit}.privacy-links button{padding:0}.privacy-page{max-width:960px;padding-top:24px;padding-bottom:32px;font-size:16px;line-height:1.8}.privacy-page header{margin:20px 0}.privacy-page h1{font-size:32px;line-height:1.5}.privacy-page h2{font-size:22px;margin:0 0 12px}.privacy-page section{margin-top:28px}.privacy-page p{margin:12px 0}.privacy-page ul{padding-left:24px}.privacy-page li{margin-bottom:10px}.privacy-draft{padding:16px;border:1px solid var(--gold);border-radius:9px;background:var(--softgold);color:var(--gold-ink)}.privacy-table-wrap{overflow:auto;max-width:100%}.privacy-page table{width:100%;border-collapse:collapse;font-size:14px}.privacy-page caption{text-align:left;padding-bottom:12px}.privacy-page td,.privacy-page th{text-align:left;vertical-align:top;padding:12px;border:1px solid var(--line);min-width:120px}.privacy-page th{background:var(--card)}.privacy-page code{overflow-wrap:anywhere}.privacy-page summary{cursor:pointer;min-height:44px;display:list-item}.cookie-category{padding:16px;background:var(--paper);border:1px solid var(--line);border-radius:9px;font-size:14px;line-height:1.7}.cookie-category h3{font-size:18px}.cookie-category p{margin:8px 0}.cookie-choice{display:flex;align-items:flex-start;gap:12px;padding:20px 0;cursor:pointer}.cookie-choice input{width:22px;height:22px;flex-shrink:0;margin-top:3px;accent-color:var(--blue)}.cookie-choice strong{font-size:18px}.cookie-choice small{display:block;margin-top:8px}.cookie-choice small,.cookie-detail{color:var(--muted);font-size:14px;line-height:1.7}.cookie-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.cookie-actions button{flex:1 1;min-height:44px;font-size:15px}.cookie-error{color:#922a2a;font-size:14px;margin-top:16px;line-height:1.7}body:has(.comparison-bar) .privacy-links{padding-bottom:190px}@media(max-width:600px){.privacy-page h1{font-size:28px}.privacy-links{padding-left:16px;padding-right:16px}.cookie-actions{flex-direction:column}}