:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#222222;background:#ffffff;font-size:16px;font-synthesis:none;--ink:#2d493f;--muted:#617b71;--line:#eaefed;--green:#4f8c76;--mint:#f3f5f4;--amber:#a2630f;--blue:#3265a7}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #84b6f2;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:1.85rem;letter-spacing:-.035em;font-weight:650}h2{font-size:1.25rem;font-weight:620}h3{font-size:1rem;font-weight:600}small{font-size:.8125rem}.sidebar{position:fixed;inset:0 auto 0 0;width:202px;padding:34px 20px 24px;background:#333333;color:#222222;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:11px;align-items:center;font-size:1.05rem;font-weight:650;white-space:nowrap}.brand small{display:block;font-size:.625rem;letter-spacing:.12em;color:#222222;font-weight:400;margin-top:6px}.brandmark{display:flex;align-items:flex-end;gap:4px;height:29px;width:29px;padding-bottom:1px}.brandmark i{display:block;width:6px;background:#ffffff;border-radius:1px}.brandmark i:nth-child(1){height:14px}.brandmark i:nth-child(2){height:23px}.brandmark i:nth-child(3){height:29px}.nav-caption{font-size:.75rem;color:#222222;margin:53px 12px 15px}.sidebar nav{display:grid;gap:7px}.sidebar nav a{display:flex;gap:13px;align-items:center;font-size:.9375rem;padding:13px 14px;color:#222222;border-radius:7px}.sidebar nav a:hover{background:#333333;color:white}.sidebar nav a.active{color:#222222;background:#333333}.sidebar nav a span{font-size:1.3rem;line-height:1;width:19px;text-align:center}.sidebar-bottom{margin-top:auto;padding:25px 8px 0;font-size:.8125rem;color:#222222;line-height:1.8}.local-badge{border:1px solid #568574;border-radius:4px;padding:3px 7px;color:#222222;font-size:.75rem}.sidebar-bottom p{margin:10px 0 21px}.backup{border-top:1px solid #4a7666;padding-top:16px;display:flex;justify-content:space-between}.backup:hover{color:white}main{margin-left:202px;min-height:100vh;padding:0 38px;max-width:2000px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}.breadcrumb{color:#222222;font-size:.875rem}.breadcrumb span{margin-left:12px}.breadcrumb span:last-child{color:#222222}.button{border:1px solid #e0e9e5;padding:10px 16px;background:white;border-radius:6px;font-size:.875rem;font-weight:550;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}.button:hover{background:#ffffff}.button.primary{background:#333333;border-color:#6e6e6e;color:#fff}.button.primary:hover{background:#333333}.button.primary span{font-size:1.15rem}.button.small{padding:7px 12px}.button.ghost{border:none;background:transparent;color:var(--muted);padding-left:0}.page-head{display:flex;align-items:center;justify-content:space-between;margin:32px 0 24px;gap:24px}.page-head p{color:var(--muted);font-size:.875rem;margin-top:10px;line-height:1.6}.date-control{display:flex;gap:12px;align-items:center;font-size:.875rem}.date-control label{color:var(--muted)}select,input[type=date],input[type=search],input[type=text]{background:#fff;border:1px solid #e2e9e6;border-radius:6px;color:var(--ink);padding:10px 12px;min-height:40px;font-size:.875rem;max-width:100%}select{padding-right:28px}input[type=search]{width:240px}input[type=date]{width:151px}.data-strip{display:flex;gap:9px;align-items:center;color:var(--muted);font-size:.8125rem;margin-bottom:20px;line-height:1.5}.pill{font-size:.75rem;padding:4px 8px;border-radius:4px;background:#ffffff;color:#222222;white-space:nowrap}.stats{display:grid;grid-template-columns:1.35fr 1fr 1fr 1.1fr;gap:18px;margin-bottom:26px}.stat{background:white;border:1px solid var(--line);border-radius:9px;padding:22px 23px;min-width:0}.stat.primary-stat{background:#ffffff;border-color:#e6e6e6;position:relative;overflow:hidden}.stat.primary-stat:after{content:"";height:100%;width:4px;background:#333333;position:absolute;inset:0 auto 0 0}.stat-label{font-size:.875rem;color:#222222;display:flex;align-items:center;justify-content:space-between;gap:8px}.stat-value{display:flex;align-items:baseline;gap:7px;font-size:2rem;font-weight:650;letter-spacing:-.035em;margin:17px 0 10px;font-variant-numeric:tabular-nums;flex-wrap:wrap;line-height:1.1}.stat-value small{font-size:.875rem;font-weight:400;color:#222222;letter-spacing:0}.stat-note{font-size:.75rem;line-height:1.6;color:#222222}.card{background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:22px;overflow:hidden}.card-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.tabs{display:flex;gap:24px;align-items:center}.tabs button{border:0;padding:5px 0;background:transparent;color:#222222;font-size:1rem;position:relative}.tabs button.active{color:var(--ink);font-weight:650}.tabs button.active:after{content:"";position:absolute;bottom:-21px;height:3px;border-radius:2px;width:100%;left:0;background:#333333}.tabs .count{font-size:.75rem;color:#222222;margin-left:7px}.filters{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.filters label{font-size:.8125rem;color:var(--muted)}.legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:.75rem;color:#222222;padding:12px 22px;background:#fdfdfd;border-bottom:1px solid #f0f4f2}.legend span{display:inline-flex;gap:6px;align-items:center}.swatch{width:7px;height:7px;border-radius:2px;background:#ffffff}.swatch.provided{background:#333333}.swatch.derived{background:#8497d8}.swatch.partial{background:#c49143}.swatch.pending{background:#b1b4d1}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.875rem;white-space:nowrap}th{font-size:.75rem;font-weight:500;color:#222222;background:#ffffff;position:sticky;top:0;z-index:1;text-align:right;padding:14px 17px;border-bottom:1px solid var(--line)}td{padding:15px 17px;border-bottom:1px solid #f2f5f4;text-align:right;font-variant-numeric:tabular-nums;vertical-align:middle}td:first-child,th:first-child{text-align:left;padding-left:22px}td:nth-child(2),th:nth-child(2){text-align:left}tr:last-child td{border-bottom:none}tbody tr:hover{background:#ffffff}th button{border:0;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer}.rank{font-size:.75rem;color:#222222;width:30px;display:inline-block}.rank.top{color:#222222;font-weight:700}.game-link,.company-link{color:#222222;border:0;background:transparent;padding:0;font:inherit;font-weight:550;cursor:pointer;text-align:left}.game-link:hover,.company-link:hover{text-decoration:underline}.game-cell{min-width:180px;max-width:260px}.game-cell small{display:block;color:#222222;font-weight:400;margin:4px 0 0 30px;font-size:.6875rem;letter-spacing:.01em}.category{color:#222222;font-size:.8125rem}.customer-cell{max-width:160px;overflow:hidden;text-overflow:ellipsis;color:#222222;font-size:.8125rem}.metric{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px;white-space:nowrap}.metric.provided{color:#222222}.metric.derived{color:#798aca}.metric.partial,.metric.error,.metric.undefined{color:#a37027}.metric.pending{color:#8a9aab}.metric.missing,.metric.unaggregated{color:#222222}.metric.missing,.metric.pending,.metric.error,.metric.undefined,.metric.unaggregated{font-size:.75rem}.growth-positive{color:#222222}.growth-negative{color:#c18ba4}.pagination{padding:16px 22px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted);gap:12px}.pagination div{display:flex;align-items:center;gap:13px}.explanation{margin:15px 0 0;color:#222222;font-size:.8125rem;line-height:1.8}.explanation summary{cursor:pointer;color:#222222}.explanation p{margin-top:8px;max-width:960px}.empty,.loading{padding:64px 24px;color:var(--muted);text-align:center;line-height:1.8}.empty h3{color:#222222;margin-bottom:8px}.empty button{margin-top:18px}.error-banner{background:#fff1e7;border:1px solid #edd4b7;color:#956123;padding:13px 16px;border-radius:6px;font-size:.875rem;line-height:1.6;margin:16px 0}.back-link{display:inline-block;font-size:.875rem;color:#222222;margin-top:27px}.back-link:hover{color:#222222}.detail-head{margin-top:20px}.detail-sub{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap}.detail-sub code{font-size:.8125rem;color:#222222;background:#ffffff;padding:5px 8px;border-radius:4px}.chart-container{padding:18px 24px 8px;min-height:240px}.chart-container svg{width:100%;height:230px;display:block;overflow:visible}.chart-container text{font-family:inherit;fill:#6e6e6e;font-size:12px}.chart-caption{padding:0 24px 18px;font-size:.75rem;color:#222222}.chart-tools{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.chart-tools label{font-size:.8125rem;color:var(--muted)}.toggle{display:flex;background:#ffffff;padding:3px;border-radius:6px}.toggle button{padding:6px 12px;background:none;border:none;color:#222222;font-size:.8125rem;border-radius:4px}.toggle button.active{color:#222222;background:white;box-shadow:0 1px 3px #0000000e}.import-row{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.import-row h3{margin-bottom:8px}.import-row p{font-size:.8125rem;color:var(--muted);line-height:1.8}.import-row:last-child{border-bottom:0}.import-count{font-size:1.1rem;font-weight:600;white-space:nowrap}dialog{border:1px solid #e6ebe9;border-radius:14px;box-shadow:0 24px 100px #102b2940;padding:0;width:min(700px,calc(100vw - 32px));max-height:90vh;color:var(--ink)}dialog::backdrop{background:#333333;backdrop-filter:blur(2px)}.dialog-head{padding:25px 28px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:.75rem;color:#222222;margin-bottom:7px}.icon-button{background:#ffffff;border:none;border-radius:50%;width:32px;height:32px;flex-shrink:0;font-size:1.4rem;color:#222222}.icon-button:hover{background:#ffffff}#import-body,#raw-body{padding:24px 28px}.upload-box{border:1.5px dashed #cfddd7;border-radius:8px;background:#ffffff;padding:35px 22px;text-align:center}.upload-box h3{margin-bottom:11px}.upload-box p{font-size:.8125rem;color:#222222;line-height:1.8;margin-bottom:19px}.upload-box input{max-width:100%;font-size:.875rem}.import-help{font-size:.8125rem;color:#222222;line-height:1.9;margin-top:17px}.form-field{display:flex;justify-content:space-between;align-items:center;gap:18px;margin:17px 0;font-size:.875rem}.form-field small{display:block;color:var(--muted);line-height:1.6;margin-top:5px}.sheet-preview{border:1px solid var(--line);border-radius:7px;margin-top:12px;padding:17px}.sheet-preview .form-field{margin:0 0 12px}.sheet-preview p{font-size:.8125rem;color:var(--muted);line-height:1.9}.sheet-preview label{display:flex;align-items:center;gap:9px}.sheet-preview input[type=checkbox]{accent-color:#6e6e6e;width:16px;height:16px}.sheet-preview details{margin-top:8px;font-size:.75rem;color:#222222;line-height:1.8;overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.success-box{text-align:center;padding:20px 0}.success-icon{border-radius:50%;width:48px;height:48px;background:#ffffff;color:#222222;font-size:1.6rem;display:grid;place-items:center;margin:0 auto 17px}.success-box p{font-size:.875rem;color:#222222;line-height:1.9;margin-top:10px}.raw-table{white-space:normal;table-layout:fixed}.raw-table td:first-child{width:65%;overflow-wrap:anywhere;padding-left:12px}.raw-table td:nth-child(2){text-align:right;overflow-wrap:anywhere}.raw-note{font-size:.8125rem;color:var(--muted);line-height:1.8;margin-bottom:15px}.source-list{font-size:.75rem;margin:14px 0;color:#222222;line-height:1.8}.text-button{font:inherit;font-size:.8125rem;border:0;background:transparent;color:#222222;padding:0;text-decoration:underline;cursor:pointer}footer{padding:15px 0 28px;color:#222222;font-size:.75rem}#toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#333333;color:white;font-size:.875rem;padding:13px 22px;border-radius:8px;box-shadow:0 4px 20px #0002;transition:.2s;z-index:100}#toast.visible{opacity:1;transform:translate(-50%,0)}
.sidebar{inset:14px auto 14px 14px;width:188px;border-radius:25px;padding:29px 16px 24px;background:linear-gradient(165deg,#375a4d,#263f36);box-shadow:0 8px 26px #528a7512}.brand{font-weight:600}.brandmark i{border-radius:7px}.sidebar nav a{border-radius:14px}.sidebar nav a.active{background:#333333;box-shadow:inset 0 0 0 1px #4f8c7630}.nav-caption{margin-top:45px}.sidebar-bottom{padding-left:7px;padding-right:7px}.local-badge{border-radius:20px;padding:4px 10px}.topbar{border-color:#eeeeee}.button{border-radius:20px;padding:10px 18px;transition:background .16s,transform .16s,box-shadow .16s}.button:hover{transform:translateY(-1px)}.button.primary{box-shadow:0 4px 12px #4f8c7624;background:#333333;border-color:#6e6e6e}.button.primary:hover{background:#333333;box-shadow:0 6px 17px #4f8c7635}.button.small{padding:7px 14px}.button:disabled{transform:none}.stat{border-radius:19px;border-color:#eaeaea;box-shadow:0 4px 15px #54877404;padding:24px}.stat.primary-stat{background:linear-gradient(125deg,#eef2f0,#f5f7f6);border-color:#e3e3e3}.stat.primary-stat:after{height:74px;width:74px;inset:-27px -17px auto auto;border:15px solid #d6e2dd5e;border-radius:50%;background:transparent}.stat-value{color:#222222;font-weight:650}.stat-label{color:#222222}.stat-note{color:#222222}.card{border-radius:19px;border-color:#eaeaea;box-shadow:0 5px 18px #5b807305}.card-head{padding-top:21px;padding-bottom:21px}input[type=date],input[type=search],input[type=text],select{border-radius:12px;background:#fffdfd;border-color:#e6e6e6}.pill{border-radius:20px;padding:5px 10px;background:#ffffff;color:#222222}.data-strip{gap:10px}.tabs{gap:8px;background:#ffffff;padding:4px;border-radius:14px}.tabs button{font-size:.9375rem;border-radius:10px;padding:8px 13px;color:#222222}.tabs button.active{background:white;box-shadow:0 2px 7px #5388751a;color:#222222}.tabs button.active:after{display:none}.tabs .count{color:#222222}.toggle{border-radius:13px;padding:4px;background:#ffffff}.toggle button{border-radius:10px}.rank.top{display:inline-flex;align-items:center;justify-content:center;background:#ffffff;border-radius:8px;width:23px;height:24px;margin-right:7px;font-weight:500}.game-cell small{margin-top:6px}.legend{background:#fdfdfd;border-color:#f0f0f0;padding-top:13px;padding-bottom:13px}.swatch{border-radius:50%;width:6px;height:6px}.metric.provided{color:#222222}.metric.derived{color:#788dc6}.growth-positive{color:#222222}.growth-negative{color:#bf89a4}.pagination{background:#fdfdfd}.dialog-head{background:#ffffff}.upload-box{border-radius:17px;background:#ffffff}dialog{border-radius:23px}.sheet-preview{border-radius:15px}.icon-button{background:#ffffff;color:#222222}.detail-sub code{border-radius:9px}.success-icon{background:#ffffff;color:#222222}.chart-container{padding-top:22px}.stat-label,.stat-note,.category,.customer-cell,.explanation,.import-help,.raw-note{color:#222222}.legend,.chart-caption{color:#222222}th{color:#222222}.game-cell small{color:#222222}footer{color:#222222}.stat.primary-stat .stat-note{color:#222222}
.subsidy-note{display:block;font-size:.75rem;color:#222222;margin-top:5px;line-height:1.5}.metric.new{color:#222222}.allocation-note{background:#ffffff;border:1px solid #e4ebe8;border-radius:13px;padding:13px 17px;color:#222222;font-size:.8125rem;line-height:1.7;margin-bottom:20px}.allocation-note strong{font-weight:600;color:#222222}
.roi-pair{display:inline-flex;align-items:baseline;gap:1px;white-space:nowrap}.roi-multiple{font-size:.8125rem;font-weight:450}.roi-stat{font-size:1.6rem}.roi-stat .roi-multiple{font-size:.9rem}.table-hint{display:flex;justify-content:space-between;gap:18px;padding:12px 22px;font-size:.8125rem;color:#222222;line-height:1.6;background:#fdfdfd;border-bottom:1px solid #ecf0ee}.all-fields{max-height:68vh;max-width:100%;overscroll-behavior:contain;scrollbar-color:#4f8c76 #f3f6f5;scrollbar-width:auto}.all-fields th{white-space:normal;min-width:125px;max-width:230px;line-height:1.6;font-size:.8125rem;vertical-align:middle}.all-fields td{font-size:.875rem}.all-fields th:first-child,.all-fields td:first-child{position:sticky;left:0;min-width:230px;max-width:270px;z-index:2;background:#fff;box-shadow:3px 0 8px #4f8c7609}.all-fields th:first-child{z-index:4;background:#ffffff}.all-fields th{z-index:3;top:0}.all-fields tbody tr:hover td:first-child{background:#ffffff}.all-fields td:nth-child(2){min-width:145px}.all-fields .customer-cell{max-width:200px}.all-fields .id-cell{font-size:.8125rem;color:#222222}.wide-dialog{width:min(1450px,calc(100vw - 40px))}.wide-dialog #raw-body{padding:20px}.source-table{max-height:65vh}.source-table td:nth-child(3),.source-table td:nth-child(4),.source-table td:nth-child(5){text-align:left}.all-fields .metric.detail{color:#222222}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(min-width:1600px){main{padding:0 52px}.stat-value{font-size:2.25rem}}
@media(max-width:1200px){.sidebar{width:180px;padding-left:14px;padding-right:14px}main{margin-left:180px;padding:0 25px}.stats{gap:12px}.stat{padding:20px 16px}.stat-value{font-size:1.8rem}.card-head{padding:18px}.tabs button.active:after{bottom:-19px}.filters input[type=search]{width:190px}.filters select{max-width:170px}}
@media(max-width:900px){.sidebar{position:relative;inset:auto;width:auto;margin:10px;border-radius:20px;padding:16px 22px;flex-direction:row;align-items:center;gap:25px}.nav-caption,.sidebar-bottom,.brand small{display:none}.sidebar nav{display:flex;gap:6px;margin-left:auto}.sidebar nav a{padding:9px 10px;font-size:.8125rem}.sidebar nav a span{display:none}.brand{font-size:.875rem}.brandmark{transform:scale(.8)}main{margin:0;padding:0 20px}.topbar{height:72px}.stats{grid-template-columns:repeat(2,1fr)}.stat{padding:20px}.page-head{margin-top:25px}.card-head{align-items:flex-start}.tabs{height:40px}.tabs button.active:after{bottom:-10px}.filters{width:100%}.filters input[type=search]{flex:1;min-width:150px}.filters select{max-width:200px}.chart-tools{width:100%}h1{font-size:1.65rem}}
@media(max-width:560px){.sidebar{padding:14px 12px;gap:10px;flex-wrap:wrap}.brand{flex:1}.sidebar nav a{font-size:.8125rem;padding:9px 8px}.sidebar nav{margin:0}.brandmark{display:none}main{padding:0 14px}.page-head{flex-wrap:wrap;gap:15px}.date-control{width:100%;justify-content:space-between}.date-control select{flex:1}.stats{gap:10px}.stat{padding:17px 14px}.stat-value{font-size:1.75rem}.stat-label{font-size:.8125rem}.stat-note{font-size:.75rem}.legend{gap:12px;padding:10px 15px}.card-head{padding:16px}.filters input[type=search]{width:100%}.filters select{max-width:none}.pagination{padding:14px;align-items:flex-start;flex-direction:column}.chart-tools input[type=date]{width:137px}.dialog-head{padding:22px 20px}#import-body,#raw-body{padding:20px}.form-field{align-items:flex-start}.sheet-preview{padding:12px}.sheet-preview .form-field{flex-direction:column;gap:12px}.topbar .breadcrumb{font-size:.8125rem}.topbar .breadcrumb span{margin-left:7px}footer{line-height:1.8}.import-row{align-items:flex-start;padding:16px;flex-direction:column}}

body:not(.show-growth) [data-optional="growth"],body:not(.show-appid) [data-optional="appid"],body:not(.show-category) [data-optional="category"]{display:none}.column-controls{display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:12px 22px;color:#222222;font-size:.8125rem}.column-controls label{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.column-controls input{accent-color:#6e6e6e;width:15px;height:15px;margin:0}.detail-head .column-controls{padding:12px 0}.wide-dialog .column-controls{padding:14px 0}

/* Calm green and neutral palette. */
:root{color:#222222;background:#ffffff;--ink:#263b34;--muted:#718079;--line:#e4eae7;--green:#287b63;--mint:#edf5f0}.sidebar{background:#333333}.sidebar nav a.active{background:#333333;color:#fff}.brandmark i{background:#333333}.brand small,.nav-caption,.sidebar-bottom{color:#222222}.sidebar nav a{color:#222222}.sidebar nav a:hover{background:#333333}.local-badge{color:#222222;border-color:#7d7d7d}.stat.primary-stat{background:#ffffff;border-color:#e2e2e2}.stat.primary-stat:after{display:none}.stat-value{color:#222222}.button.primary{background:#333333;border-color:#525252;color:#fff;box-shadow:none}.button.primary:hover{background:#333333}.tabs{background:#ffffff}.tabs button.active{color:#222222}.stat-label,.stat-note,.category,.customer-cell,.explanation,.import-help,.raw-note,.column-controls{color:#222222}.metric.provided{color:#222222}.metric.derived{color:#47799a}.growth-positive{color:#222222}.growth-negative{color:#ae6262}.legend,.chart-caption,th{color:#222222}.stat.primary-stat .stat-note{color:#222222}.game-link,.company-link{color:#222222}.column-controls input{accent-color:#525252}.table-hint{color:#222222;background:#ffffff}.dialog-head{background:#ffffff}.upload-box{background:#ffffff;border-color:#c5c5c5}

/* White background with black text, preserving data-status colors. */
:root{background:#fff;color:#222;--ink:#222;--muted:#666;--line:#e6e6e6;--green:#222;--mint:#fff}
body,main,.card,.stat,.stat.primary-stat,.table-hint,.legend,.pagination,.dialog-head,.upload-box,.sheet-preview,.allocation-note{background:#fff;background-image:none}
.sidebar{background:#fff;color:#222;border:1px solid #e6e6e6;box-shadow:none}
.sidebar nav a,.sidebar nav a.active,.sidebar nav a:hover,.brand,.brand small,.nav-caption,.sidebar-bottom,.local-badge,.backup,.backup:hover{color:#222}
.sidebar nav a.active{background:#f1f1f1;box-shadow:none}.sidebar nav a:hover{background:#f6f6f6}.local-badge{border-color:#ddd}.backup{border-color:#e6e6e6}.brandmark i{background:#333}
.tabs,.toggle{background:#fff;border:1px solid #e6e6e6}.tabs button.active,.toggle button.active{background:#f3f3f3;color:#222;box-shadow:none}
.button.primary{background:#333;border-color:#333;color:#fff}.button.primary:hover{background:#111}.button:hover{background:#f5f5f5}
.stat-value,.game-link,.company-link,.metric.provided,.growth-positive,.text-button,.stat.primary-stat .stat-note,.breadcrumb span:last-child{color:#222}
.pill,.rank.top,.detail-sub code,.icon-button,.success-icon{color:#222;background:#fff;border:1px solid #e6e6e6}
.all-fields th,.all-fields th:first-child,th,.all-fields td:first-child{background:#fff}.all-fields tbody tr:hover td:first-child,tbody tr:hover{background:#fafafa}
input[type=date],input[type=search],input[type=text],select{background:#fff;border-color:#ddd;color:#222}.column-controls input{accent-color:#333}
#toast{background:#333;color:#fff}dialog::backdrop{background:#0004}

/* Compact data tables with inline detail actions. */
.all-fields th{padding:9px 10px;min-width:94px;max-width:180px;line-height:1.4}
.all-fields td{padding:7px 10px;line-height:1.4;font-size:.8125rem}
.all-fields th:first-child,.all-fields td:first-child{min-width:180px;max-width:240px;padding-left:14px}
.all-fields td:nth-child(2){min-width:112px}.all-fields .customer-cell{max-width:170px}
.all-fields .game-cell{min-width:180px;max-width:240px}.all-fields .rank{width:23px;font-size:.6875rem}.all-fields .rank.top{width:20px;height:20px;margin-right:3px;border-radius:5px}
.details-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;margin-left:5px;vertical-align:middle;border:1px solid transparent;border-radius:5px;background:transparent;color:#666;cursor:pointer}
.details-icon:hover{background:#f1f1f1;border-color:#ddd;color:#111}.details-icon:focus-visible{outline:2px solid #555;outline-offset:2px}
.subsidy-note{margin-top:2px;font-size:.6875rem;line-height:1.3}.roi-multiple{font-size:.75rem}
.column-controls{padding:8px 14px;gap:12px}.legend{padding:9px 14px;gap:14px}.table-hint{padding:8px 14px;line-height:1.4}.pagination{padding:10px 14px}.source-table td:nth-child(2),.source-table td:nth-child(3){min-width:90px}
#children-table td:nth-child(2),#children-table th:nth-child(2){text-align:right}

/* Searchable company filter */
.company-picker{position:relative;width:250px;max-width:100%;flex:0 1 250px}
.company-picker #company-filter{width:100%;padding-right:30px}
.company-chevron{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:#555}
#company-options{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:30;max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding:5px;background:#fff;border:1px solid #ddd;border-radius:10px;box-shadow:0 6px 20px #0002}
#company-options[hidden]{display:none}
#company-options [role=option]{display:block;width:100%;border:0;border-radius:6px;padding:9px 10px;text-align:left;background:#fff;color:#222;font-size:.8125rem;overflow-wrap:anywhere}
#company-options [role=option]:hover,#company-options .highlighted{background:#f0f0f0}
#company-options [aria-selected=true]{font-weight:650}
.company-no-results{padding:12px 10px;color:#666;font-size:.8125rem}
@media(max-width:560px){.company-picker{flex:1 1 100%;width:100%}}

.placement-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.placement-filters label{font-size:.8125rem;display:flex;align-items:center;gap:7px}.placement-filters select{max-width:290px}.placement-note,.placement-source{padding:12px 20px 0;font-size:.8125rem;line-height:1.6;color:#555}.placement-source{padding-bottom:12px}.placement-table td:first-child,.placement-table th:first-child{min-width:230px;max-width:280px;white-space:normal}.placement-table td{max-width:280px}.placement-card .empty{padding:25px}@media(max-width:560px){.placement-filters{width:100%}.placement-filters select{max-width:220px}.placement-note,.placement-source{padding-left:16px;padding-right:16px}}

/* Dates with imported ordinary data are dark; unreported dates stay light. */
.data-calendar{position:relative}.calendar-trigger{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid #ddd;border-radius:12px;background:#fff;color:#222;padding:10px 12px;min-width:158px;font-size:.875rem}.calendar-panel{position:fixed;width:300px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;padding:14px;background:#fff;border:1px solid #ddd;border-radius:15px;box-shadow:0 8px 30px #0002;z-index:60}.calendar-panel[hidden]{display:none}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.calendar-head strong{font-size:.9375rem;font-weight:600}.calendar-head button{border:0;border-radius:7px;background:#f3f3f3;color:#333;width:30px;height:30px;font-size:22px;line-height:1}.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.calendar-week{margin-bottom:7px;text-align:center;color:#777;font-size:.75rem}.calendar-day{height:34px;border:1px solid transparent;border-radius:7px;font-size:.8125rem;font-weight:500;padding:0}.calendar-day.has-data,.calendar-legend i.has-data{background:#4a4a4a;color:#fff}.calendar-day.no-data,.calendar-legend i.no-data{background:#f2f2f2;color:#777}.calendar-day.selected{outline:2px solid #477895;outline-offset:1px}.calendar-day.no-data.selected{background:#eaf0f4;color:#244357}.calendar-day:hover{box-shadow:inset 0 0 0 1px #777}.calendar-day:focus-visible{outline:2px solid #477895;outline-offset:1px}.calendar-day[aria-current=date]{text-decoration:underline;text-underline-offset:3px}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:.6875rem;color:#555}.calendar-legend span{display:inline-flex;align-items:center;gap:5px}.calendar-legend i{display:inline-block;width:11px;height:11px;border-radius:3px}.calendar-legend i.selected{border:2px solid #477895;background:#fff}.calendar-foot{display:flex;justify-content:space-between;border-top:1px solid #eee;margin-top:12px;padding-top:10px;gap:10px}.calendar-foot button{border:0;padding:3px 0;background:none;color:#333;font-size:.75rem}.calendar-foot button:hover{text-decoration:underline}
.placement-overview-controls{flex-wrap:wrap;gap:16px}.placement-overview-controls .filters{display:flex;flex-wrap:wrap;gap:8px}.placement-overview-table th:first-child,.placement-overview-table td:first-child{min-width:180px;max-width:260px;white-space:normal}@media(max-width:560px){.sidebar nav{flex-wrap:wrap}.placement-overview-controls .filters select{width:100%}.placement-overview-controls .filters input{width:100%}}
/* Compact placement tables: preserve text size and full values. */
.all-fields.placement-overview-table table,.all-fields.placement-table table{width:max-content;min-width:100%;table-layout:auto}
.all-fields.placement-overview-table th,.all-fields.placement-table th{min-width:0;max-width:none;padding:6px 6px;line-height:1.3;white-space:nowrap}
.all-fields.placement-overview-table td,.all-fields.placement-table td{min-width:0;max-width:none;padding:4px 6px;line-height:1.3}
.all-fields.placement-overview-table th:first-child,.all-fields.placement-overview-table td:first-child{min-width:112px;max-width:220px;padding-left:10px;white-space:nowrap}
.all-fields.placement-table th:first-child,.all-fields.placement-table td:first-child{min-width:0;max-width:none;padding-left:10px;white-space:nowrap}
.all-fields.placement-overview-table td:nth-child(2),.all-fields.placement-table td:nth-child(2){min-width:0}

body:not(.show-company) [data-optional="company"],body:not(.show-games) [data-optional="games"]{display:none}

.favorite-star{border:0;background:transparent;color:#aaa;cursor:pointer;font-size:17px;line-height:1;padding:5px 3px;vertical-align:middle}.favorite-star:hover,.favorite-star:focus-visible{color:#333}.favorite-star.selected{color:#b28737}.favorite-star:disabled{cursor:default;opacity:.8}
.topbar-actions{display:flex;gap:10px;align-items:center}@media(max-width:560px){.topbar{flex-wrap:wrap;height:auto;min-height:72px;padding:12px 0;gap:8px}.topbar-actions{gap:6px}.topbar-actions .button{padding:7px 9px;font-size:12px}}
.topbar-actions{flex-wrap:wrap;justify-content:flex-end}

/* Dynamic viewport units keep full-height surfaces inside the visible area on mobile browsers. */
main{min-height:100dvh}
dialog{max-height:calc(90dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
.all-fields{max-height:68dvh}
.calendar-panel{max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}
.data-strip{flex-wrap:wrap}
#toast{max-width:calc(100vw - 32px);text-align:center;bottom:calc(28px + env(safe-area-inset-bottom))}

/* Touch targets: navigation, import, sign out and pagination stay at least 44px tall. */
.button{min-height:44px}
.button.small{min-height:36px}
.calendar-trigger{min-height:44px}
.sidebar nav a{min-height:44px}
button.backup{width:100%;border:0;border-top:1px solid #e6e6e6;background:transparent;color:#222;font:inherit;font-size:.8125rem;text-align:left;padding:16px 0 0;display:flex;justify-content:space-between;gap:8px;cursor:pointer}
button.backup:hover{color:#222;text-decoration:underline}

/* Login page */
.login-page{display:flex;margin:0;min-height:100dvh;background:#fbfcfb;padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left))}
.login-page .login-main{width:100%;max-width:none;min-height:0;margin:auto;padding:0;display:block}
.login-card{width:min(420px,100%);margin:0 auto;display:flex;flex-direction:column;gap:18px;padding:32px 28px;background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:0 5px 18px #5b807305}
.login-brand{display:flex;gap:11px;align-items:center;font-size:1.05rem;font-weight:600}
.login-brand small{display:block;margin-top:6px;font-size:.625rem;font-weight:400;letter-spacing:.12em;color:#222}
.login-intro h1{font-size:1.5rem;letter-spacing:-.03em}
.login-sub{margin-top:8px;color:var(--muted);font-size:.875rem;line-height:1.6}
.login-field{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.login-field label{font-size:.875rem;color:#222}
.login-field input[type=text],.login-field input[type=password]{width:100%;min-height:48px;font-size:1rem}
.login-submit{width:100%;min-height:48px}
.login-error{margin:0;padding:12px 14px;border-radius:8px;background:#fff1e7;border:1px solid #edd4b7;color:#956123;font-size:.875rem;line-height:1.6;overflow-wrap:anywhere}
.login-error[hidden]{display:none}
@media(max-width:560px){.login-page{padding:16px}.login-card{padding:24px 20px;border-radius:15px}.login-intro h1{font-size:1.35rem}}
@media(max-width:360px){.login-card{padding:20px 16px}}
@media(max-height:520px){.login-page .login-main{margin:0 auto}.login-card{margin:0 auto;padding:20px}}

@media(max-width:900px){
  main{padding-left:calc(20px + env(safe-area-inset-left));padding-right:calc(20px + env(safe-area-inset-right))}
  .sidebar{margin-left:calc(10px + env(safe-area-inset-left));margin-right:calc(10px + env(safe-area-inset-right))}
  .tabs{height:44px}
  .button.small{min-height:44px}
}
@media(max-width:560px){
  main{padding-left:calc(14px + env(safe-area-inset-left));padding-right:calc(14px + env(safe-area-inset-right))}
  /* Narrow screens: keep the identifying column pinned while the rest scrolls sideways. */
  .all-fields th:first-child,.all-fields td:first-child{min-width:126px;max-width:168px;padding-left:12px}
  .all-fields.placement-overview-table th:first-child,.all-fields.placement-overview-table td:first-child{min-width:96px;max-width:160px}
  .all-fields td:nth-child(2){min-width:96px}
  .pagination .button{min-height:44px}
  #import-body,#raw-body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
}

