:root{font-family:system-ui,"Microsoft YaHei",sans-serif;color:#1f2937;background:#f5f7fb;font-size:16px;--primary:#1d4ed8;--green:var(--primary);--income:#087f5b;--expense:#a54a13;--line:#dbe3ed}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,.button{border:1px solid var(--line);border-radius:12px;background:white;color:var(--green);padding:12px 16px;cursor:pointer;text-decoration:none;display:inline-block;min-height:46px}button:hover{background:#eef4ff}button:disabled{opacity:.5;cursor:wait}.primary,nav .active{background:var(--green);color:white}.primary:hover{background:#1e40af}.danger{color:#b42318;border-color:#edc4c0}input,select,textarea{width:100%;padding:12px;border:1px solid #7b8ba2;border-radius:10px;min-height:48px;background:white;color:#1f2937}input[type=checkbox]{width:22px;min-height:22px;accent-color:var(--green);vertical-align:middle}textarea{min-height:90px}label{display:block;font-size:14px;font-weight:600;margin:16px 0 7px}h1{font-size:28px;margin:10px 0}h2{font-size:21px;margin:0 0 14px}h3{font-size:17px;margin:0 0 10px}p{line-height:1.65;margin:8px 0}.muted,small{color:#536277;font-size:13px}.tag{font-size:12px;border-radius:6px;background:#eaf1ff;color:#1d4ed8;padding:4px 7px;display:inline-block}.top{height:78px;position:sticky;top:0;background:#f5f7fbf5;backdrop-filter:blur(8px);z-index:2;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px max(18px,calc((100vw - 1000px)/2))}.brand{font-weight:750;white-space:nowrap}.brand small{display:block;margin-top:3px;font-weight:400;font-size:11px}.top button{padding:8px 13px}main{max-width:1036px;padding:22px 18px 115px;margin:auto}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:20px;margin-bottom:16px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric{padding:18px;background:#fff;border:1px solid var(--line);border-radius:16px}.metric strong{display:block;font-size:27px;letter-spacing:-.7px;margin-top:8px;font-variant-numeric:tabular-nums}.metric small{display:block;margin-top:6px}.hero{background:#1d4ed8;color:#fff;border-color:#1d4ed8}.hero .muted,.hero small{color:#edf3ff}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.actions>*{flex:1;min-width:100px}.listrow{padding:17px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.listrow:last-child{border:0}.listrow strong{font-size:17px}.money{font-size:22px;font-weight:700;white-space:nowrap}.empty{padding:28px 10px;text-align:center;color:#536277}.notice{padding:13px 16px;border-radius:12px;background:#fff7e6;color:#854d0e;margin:12px 0;line-height:1.6;overflow-wrap:anywhere}.error{color:#b42318;white-space:pre-wrap}.toolbar{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:10px;margin:14px 0}.toolbar select{grid-column:1/-1}.seg{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.seg .active{background:#eaf1ff;border-color:#1d4ed8;font-weight:700}nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--line);padding:9px 12px max(9px,env(safe-area-inset-bottom));display:flex;gap:5px;justify-content:center;z-index:3}nav button{max-width:230px;flex:1;border:0;padding:10px 4px;font-size:15px;white-space:nowrap}nav span{display:block;font-size:19px;margin-bottom:3px}dialog{width:min(640px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:0;border:0;border-radius:20px;box-shadow:0 20px 100px #0f172a29}dialog::backdrop{background:#0f172a66}dialog header{position:sticky;top:0;background:#fff;z-index:1;padding:15px 20px;border-bottom:1px solid var(--line)}dialog header h2{margin:0}dialog article{padding:4px 20px 22px}dialog form>.primary{width:100%;margin-top:24px}dialog .foot{position:sticky;bottom:0;background:#fff;padding-top:12px}.check{display:flex;align-items:flex-start;gap:10px;line-height:1.6}.check input{flex:none;margin-top:2px}.preview{overflow:auto;max-height:230px;margin:16px 0;border:1px solid var(--line);border-radius:10px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;white-space:nowrap;padding:10px;border-bottom:1px solid var(--line)}.login{max-width:440px;margin:30px auto}.login h1{margin:8px 0 22px}.bigactions button{min-height:110px;text-align:left;font-size:21px;font-weight:700}.bigactions small{display:block;font-weight:400;margin-top:10px}#toast{position:fixed;top:85px;left:50%;transform:translateX(-50%);background:#1f2d43;color:white;border-radius:12px;padding:12px 20px;z-index:10;max-width:90%;box-shadow:0 4px 20px #0003}#pending:empty{display:none}[hidden]{display:none!important}a{color:var(--green)}:focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}.subtle{border:0;background:transparent;padding:8px;font-size:14px;min-height:40px}.loading{opacity:.6;pointer-events:none}footer{margin-top:20px}.upload{padding:18px;border:1px dashed #7b8ba2;border-radius:12px}.authnote{font-size:13px;color:#536277}.source-link{font-size:13px}.in{color:#1d4ed8}.out{color:#a54a13}@media(min-width:750px){.toolbar{grid-template-columns:minmax(120px,1fr) auto 180px}.toolbar select{grid-column:auto}.stats{grid-template-columns:repeat(4,1fr)}.bigactions{grid-template-columns:repeat(3,1fr)}}@media(max-width:420px){main{padding:18px 12px 110px}.card{padding:16px}.metric{padding:15px 13px}.metric strong{font-size:24px}.top{padding:10px 14px}.brand{font-size:16px}.row{gap:8px}.money{font-size:19px}}

.product-report-head,.product-report-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 140px;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.product-report-head{font-size:13px;color:#536277}.product-report-row>strong{overflow-wrap:anywhere;line-height:1.6}.product-report-row>span{text-align:right;font-variant-numeric:tabular-nums}.product-report-head>span:not(:first-child){text-align:right}.mobile-caption{display:none}#unassigned-sales{margin-top:15px;line-height:1.7}@media(max-width:600px){.product-report-head{display:none}.product-report-row{grid-template-columns:1fr 1fr;gap:8px}.product-report-row>strong{grid-column:1/-1}.product-report-row>span:nth-child(2){text-align:left}.mobile-caption{display:inline;font-size:12px;font-weight:400}.product-report-row .money{font-size:19px}}

/* Mobile everyday palette: blue actions; green receipts; amber spending. */
.top{background:#fffffffa}.tag{background:#eaf1ff;color:#1d4ed8}.card,.metric{box-shadow:0 2px 8px #16254204}
.hero{background:#edf9f2;color:#17573b;border-color:#b8ddc8}.hero strong,.in{color:var(--income)}.hero .muted,.hero small{color:#296449}
.stats>.metric:nth-child(2) strong{color:var(--primary)}.stats>.metric:nth-child(4){background:#fff7ed;border-color:#efd2ba}.stats>.metric:nth-child(4) strong,.out{color:var(--expense)}
nav button{color:#536277}nav .active{background:#eaf1ff;color:var(--primary);font-weight:700}nav .active:hover{background:#dfeaff}
.seg .active{background:#eaf1ff;border-color:var(--primary);color:var(--primary)}.notice{border:1px solid #eed19a}.error{color:#b42318}.danger{color:#b42318;background:#fff;border-color:#e4aaa5}
.bigactions .primary small{color:#f4f7ff}button:active,.button:active{background:#e5edfc}.primary:active{background:#1e40af;color:#fff}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:2px}
input[readonly]{background:#f1f4f8;color:#536277;border-color:#c4cedb}.preview thead,th{background:#f1f5fb}.upload{background:#f8faff}.product-report-head{background:#f6f8fc}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
