:root{font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",sans-serif;color:#18384b;background:#edf3f6;font-size:15px;line-height:1.6;--navy:#173e5a;--teal:#166f83;--line:#d6e2e9;--danger:#b34f36}*{box-sizing:border-box}body{margin:0}header{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:14px;background:var(--navy);color:white;padding:14px 18px;min-height:60px}header>a{font-size:30px;line-height:1;color:white;text-decoration:none}header small{margin-left:auto;font-size:11px;color:#c5dce7}main{max-width:740px;margin:auto;padding:14px 16px 60px}#identity{display:flex;align-items:end;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:3px solid var(--teal)}#identity label{flex:1;margin:0;font-size:12px}#identity button{width:auto;margin:0;min-height:40px;padding:8px 14px}#identity select{padding:8px 4px;background:transparent;border:0}h1{font-size:25px;margin:20px 0 5px;line-height:1.35}h2{font-size:19px;margin:0 0 15px}h3{font-size:15px;margin:16px 0 8px}.subtle{font-size:12px;color:#647f90}.ribbon{background:#e5f0f4;border-left:3px solid var(--teal);padding:10px 12px;margin:14px 0;font-size:12px}.menu{display:flex;align-items:center;gap:16px;text-decoration:none;color:inherit;background:#fff;border-bottom:1px solid var(--line);padding:18px 14px;min-height:86px}.menu.primary{background:var(--navy);color:#fff;border-radius:8px 8px 0 0}.menu strong{display:block;font-size:17px}.menu small{display:block;color:#688391;font-size:12px}.menu.primary small{color:#b9d0dd}.menu svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.6;flex-shrink:0}.menu .chevron{margin-left:auto;font-size:23px}.section{background:#fff;border:1px solid var(--line);border-radius:8px;padding:16px;margin:14px 0}.section.flush{padding:0;overflow:hidden}.metric strong{font-size:31px;display:block;color:#102d41;line-height:1.5}.metric span{font-size:13px;color:#6d8290}.metric small{font-size:12px;color:#8194a0}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric.secondary strong{font-size:23px}.tabs{display:flex;gap:6px;margin:16px 0}.tabs a{flex:1;text-align:center;color:var(--teal);text-decoration:none;padding:8px 3px;border:1px solid #bed3dd;border-radius:5px;background:white;font-size:13px}.tabs a.active{background:var(--teal);color:#fff}label{display:block;margin:12px 0;font-size:13px;color:#456576}input,select,textarea{display:block;width:100%;padding:12px;border:1px solid #bdced8;border-radius:5px;font:inherit;background:#fbfdfe;color:#18384b;min-height:46px}textarea{min-height:100px;resize:vertical}button,.button{display:block;width:100%;padding:12px;border:0;border-radius:5px;background:var(--teal);color:#fff;font:inherit;font-weight:600;min-height:46px;margin:12px 0;text-align:center;text-decoration:none;cursor:pointer}button.secondary,.button.secondary{background:#e9f1f5;color:#245a70;border:1px solid #bdd2dd}.disabled{color:#8799a2}.empty{text-align:left;padding:17px 0;font-size:13px;color:#6d8290;border-top:1px solid var(--line)}.warning{color:var(--danger);background:#fff1ed;border-left:3px solid var(--danger);padding:10px 12px;font-size:12px;margin:12px 0}#message:empty{display:none}#message{color:var(--danger);background:#fff1ed;padding:10px 12px;font-size:13px;margin-top:12px;overflow-wrap:anywhere}.rows{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}td,th{padding:10px 6px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}th{color:#6b818f;font-weight:400}td:last-child{text-align:right;font-variant-numeric:tabular-nums}.rank{display:grid;grid-template-columns:minmax(65px,1fr) 2fr 70px;align-items:center;gap:10px;margin:15px 0;font-size:12px}.bar{height:8px;background:#eef2f5;border-radius:8px}.bar i{display:block;height:8px;background:#287bb7;border-radius:8px}.bar.teal i{background:#16a197}dialog{max-width:390px;width:90%;border:1px solid var(--line);border-radius:10px;padding:22px}dialog::backdrop{background:#173e5a99}:focus-visible{outline:3px solid #b97a38;outline-offset:3px}ul.file-list{padding-left:18px;font-size:12px;overflow-wrap:anywhere}.status{display:inline-block;font-size:11px;padding:2px 8px;background:#e3f3ec;color:#287354;border-radius:10px}a.inline{color:var(--teal)}.upload-group{padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line)}.upload-group input{font-size:12px;padding:8px}.fine{font-size:11px;color:#728995}.danger{color:var(--danger)}@media(max-width:350px){main{padding:12px}h1{font-size:23px}.section{padding:13px}.tabs{gap:3px}.tabs a{font-size:12px}.split{gap:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

pre{white-space:pre-wrap;overflow-wrap:anywhere}header>a{min-width:36px;min-height:44px;display:flex;align-items:center;justify-content:center}
.original-board{--board-blue:#2c7dcc;--board-track:#f2f2f5;background:white;color:#25292e;max-width:540px;margin:18px auto;padding:10px 12px 24px;border-radius:16px;font-size:14px;line-height:1.65}.original-board h2{font-size:19px;color:inherit;margin:0 0 17px}.original-board h3{font-size:15px}.board-hero{background:#173e64;border-radius:24px;color:white;padding:26px 17px;margin-bottom:18px}.board-hero h2{font-size:21px;color:white}.board-hero p,.board-hero small{font-size:12px;color:#b0c2d2}.board-section{margin:24px 0}.board-section>h2{padding-left:8px;border-left:4px solid var(--board-blue)}.board-card{border:1px solid #eceef1;border-radius:20px;padding:18px 16px}.board-metric-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.board-metric{background:#f3f6f9;border-radius:17px;padding:14px;min-width:0}.board-metric small{display:block;color:#7c858e;font-size:12px}.board-metric strong{display:block;font-size:28px;line-height:1.8;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.board-metric.hero{background:var(--board-blue);color:white}.company-board .board-metric.hero{background:#1b466f}.board-metric.hero small{color:#c5d8e5}.board-note{font-size:12px;color:#7c858e;white-space:pre-wrap}.board-text{white-space:pre-wrap;overflow-wrap:anywhere}.board-missing{font-size:12px;color:#ce7444}.board-ranking-head,.board-ranking{display:grid;grid-template-columns:minmax(100px,1.35fr) minmax(65px,1fr) minmax(65px,1fr);gap:8px}.board-ranking-head{font-size:11px;color:#7c858e}.board-ranking{padding:18px 0 7px;align-items:start;font-size:14px}.board-ranking>div:not(:first-child),.board-ranking-head>span:not(:first-child){text-align:right}.board-ranking small{display:block;font-size:11px;color:#7c858e;overflow-wrap:anywhere}.board-ranking meter{grid-column:1/-1;width:100%;height:12px;margin:6px 0}.board-ranking .blue{color:var(--board-blue)}.original-board table{font-size:12px}.original-board th,.original-board td{padding:10px 4px}.board-bar{display:grid;grid-template-columns:72px 1fr minmax(75px,auto);align-items:center;gap:8px;margin:15px 0;font-size:12px}.board-bar b{text-align:right}.board-bar meter{width:100%;height:16px}meter::-webkit-meter-bar{background:#f2f2f5;border:0;border-radius:8px}meter::-webkit-meter-optimum-value{background:var(--board-blue);border-radius:8px}.board-bar.teal{--board-blue:#16a699}.board-bar.slate{--board-blue:#9caabd}.west-board{--board-blue:#16a699}@media(max-width:420px){.original-board{padding:8px}.board-card{padding:15px 10px}.board-metric-pair{gap:8px}.board-metric{padding:10px}.board-metric strong{font-size:24px}.board-ranking,.board-ranking-head{grid-template-columns:minmax(80px,1.25fr) 1fr 1fr;font-size:12px;gap:5px}.board-bar{grid-template-columns:60px 1fr 80px;gap:5px}}
.feedback-preview{display:block;max-width:100%;height:auto;border:1px solid #d6e2e9;border-radius:6px;margin:12px 0}
.income-current .split{grid-template-columns:repeat(2,minmax(0,1fr))}.income-current .metric strong{font-size:clamp(20px,5vw,26px);line-height:1.4;overflow-wrap:anywhere}.income-history-item{overflow-wrap:anywhere}

#identity{flex-wrap:wrap}#identity label{min-width:90px}#identity #signIn{max-width:100%;overflow-wrap:anywhere}#employeeDialog{max-width:calc(100vw - 32px)}.adjustment-item{overflow-wrap:anywhere}

/* Task02: two-column phone menu; all secondary pages and original board retain their layout. */
.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0!important;background:transparent!important;border:0!important}
.menu-grid .menu{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;min-height:145px;margin:0;padding:18px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0;color:var(--navy);text-decoration:none}
.menu-grid .menu.primary{background:#173e5a;color:white;border-color:#173e5a}
.menu-grid .menu svg{display:block;flex:none;width:30px;height:30px;color:var(--teal)}
.menu-grid .menu.primary svg{color:#a7d8e6}.menu-grid .menu>span{min-width:0}.menu-grid .menu strong{display:block;font-size:17px;line-height:1.4}.menu-grid .menu small{display:block;font-size:12px;line-height:1.6;margin-top:5px;color:#617b8c;overflow-wrap:anywhere}.menu-grid .menu.primary small{color:#c3dbe5}.menu-grid .menu .chevron{display:none}
.operation-dialog{max-width:460px;width:calc(100vw - 32px);max-height:calc(100dvh - 40px);overflow:auto;padding:20px}.dialog-summary{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.75;margin:12px 0 20px;max-height:52dvh;overflow:auto}
button:disabled{cursor:wait;opacity:.65}.menu-grid .menu:focus-visible{outline-offset:2px}#identity select:disabled{opacity:1;color:inherit}
@media(max-width:350px){.menu-grid{gap:10px}.menu-grid .menu{padding:15px 12px;min-height:150px}.menu-grid .menu strong{font-size:16px}.operation-dialog{padding:16px}}

/* Author button/menu display must never override native hidden permissions. */
[hidden]{display:none!important}

/* Task05 inherits the original operating-board palette and type scale. */
main:has(.train-board){max-width:1080px}.train-board{max-width:none;padding:16px}.train-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.train-metrics .board-metric strong{font-size:clamp(21px,3vw,31px);line-height:1.5}.train-metrics .board-metric strong small{display:inline;font-size:12px;margin-left:4px}.train-metrics .board-metric span{display:block}.train-metrics .hero .board-note,.train-metrics .hero .board-missing{color:#fff}.train-metrics .train-pending{font-size:20px}.train-board summary{cursor:pointer;min-height:44px;padding:10px 0;font-size:15px;font-weight:600}.train-board details{min-width:0}.train-period{margin:12px 0}.train-types{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.train-type h3{margin:0;font-size:19px}.train-type .train-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.train-type .train-metrics>div:last-child{grid-column:1/-1}.train-driver,.train-detail{overflow-wrap:anywhere;border-bottom:1px solid var(--line);padding:10px 0;font-size:13px}.train-driver p{margin:5px 0}.train-driver small{color:#647f90}.train-channel{border-bottom:1px solid var(--line)}.train-channel summary b{display:block;color:var(--teal);font-variant-numeric:tabular-nums;font-size:17px}.train-channel summary small{display:inline}.train-board .board-note{overflow-wrap:anywhere}.train-board .board-hero{margin-top:0}
@media(max-width:600px){.train-board{padding:8px}.train-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.train-metrics>div:last-child{grid-column:1/-1}.train-types{grid-template-columns:1fr}.train-board .board-metric strong{font-size:23px}.train-board .train-pending{font-size:19px}.train-board .board-hero{padding:22px 16px}}
#reportSummary,#reportDownloads{overflow-wrap:anywhere}.split:has(#reportFrom){grid-template-columns:repeat(2,minmax(0,1fr))}#reportFrom,#reportTo{min-width:0}

/* Live train board shares the approved report's selected-day columns and ranked bars. */
.train-daily-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.train-daily-columns .train-type{min-width:0}.train-daily-columns h3{font-size:17px}.train-chart{min-width:0;margin:8px 0}.train-chart-row{padding:9px 0}.train-chart-meta{display:flex;justify-content:space-between;align-items:start;gap:9px;font-size:13px}.train-chart-meta>span{min-width:0;overflow-wrap:anywhere}.train-chart-meta i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px}.train-chart-meta small{display:block;margin-left:15px;font-size:11px;color:#647f90}.train-chart-meta b{white-space:nowrap;font-variant-numeric:tabular-nums}.train-chart-track{height:12px;margin-top:7px;border-radius:4px;background:#edf2f7;overflow:hidden}.train-chart-fill{display:block;height:100%;border-radius:4px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.train-chart-row.partial .train-chart-fill{background-image:repeating-linear-gradient(135deg,transparent,transparent 5px,#ffffff66 5px,#ffffff66 8px)}.train-chart-row.partial b{color:#a4552c}.train-chart-row.missing .train-chart-track{height:21px;background:transparent;border-bottom:1px dashed #bacbd7;border-radius:0;overflow:visible}.train-chart-track small{font-size:11px;color:#647f90}.train-chart-row.zero .train-chart-track{border-left:2px solid #9bacbc}
@media(max-width:600px){.train-daily-columns{gap:8px}.train-daily-columns .board-card{padding:13px 9px}.train-daily-columns h3{font-size:15px}.train-daily-columns .train-chart-meta{flex-wrap:wrap;font-size:12px;gap:3px}.train-daily-columns .train-chart-meta b{margin-left:auto}.train-daily-columns .train-chart-meta i{display:none}}
.train-tone-blue{--train-color:#287bd2}.train-tone-teal{--train-color:#159986}.train-tone-purple{--train-color:#8460c5}.train-tone-orange{--train-color:#ee963c}.train-tone-pink{--train-color:#d86382}.train-tone-slate{--train-color:#4f8fa8}.train-chart-meta i{background:var(--train-color)}.train-chart-fill{width:100%;margin:0;border:0}.train-chart-fill::-webkit-meter-bar{height:12px;background:#edf2f7;border:0;border-radius:4px}.train-chart-fill::-webkit-meter-optimum-value{background:var(--train-color);border-radius:4px}.train-chart-fill::-moz-meter-bar{background:var(--train-color);border-radius:4px}.train-chart-row.partial .train-chart-fill::-webkit-meter-optimum-value{background-image:repeating-linear-gradient(135deg,transparent,transparent 5px,#ffffff66 5px,#ffffff66 8px)}

/* Calculation selections remain readable on narrow screens. */
#calculationFiles input[type=checkbox]{display:inline-block;width:20px;height:20px;min-height:20px;padding:0;margin:0 8px 0 0;vertical-align:middle}#calculationFiles label{overflow-wrap:anywhere}#calculationFiles summary{cursor:pointer;color:var(--teal)}

#dayState{white-space:pre-line;overflow-wrap:anywhere}#dayState button{white-space:normal}
/* A full report canvas, independent of the employee's phone viewport. */
.long-image-capture{position:absolute;left:-20000px;top:0;width:960px;padding:20px;background:#f2f6fa;color:#173a5b;box-sizing:border-box;pointer-events:none}
.long-image-capture main{margin:0;padding:0;max-width:none;width:100%}
.long-image-meter{display:block;height:9px;width:100%;background:#dce7f0;border-radius:5px;overflow:hidden}
.long-image-meter-fill{display:block;height:100%;background:#16758b;border-radius:5px}

/* Company version hashes must wrap on employee phone screens. */
#board .fine{overflow-wrap:anywhere;}
