/* Thunder Shark — quiet surfaces, precise numbers, electric accents. */
:root{--ink:#23272a;--muted:#6d7c85;--line:#dbe6ec;--canvas:#f2f7f9;--accent:#154360;--accent-dark:#0b2537;--nav:#0f2231;--electric:#17beb4;font-family:"Inter","Segoe UI","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif;font-size:14px;line-height:1.65}
body{background:var(--canvas);-webkit-font-smoothing:antialiased}
.workspace{grid-template-columns:236px minmax(0,1fr)}
.sidebar{background:var(--nav);padding:30px 18px 20px;gap:31px;border-right:1px solid #1d3a4a}
.brand{gap:10px;font-size:14px;font-weight:800;letter-spacing:.6px;line-height:1.25}
.brand-logo{width:43px;height:43px;flex:none;border-radius:11px;box-shadow:0 0 0 1px #d7e5ea,0 1px 3px #0f223126}
.wordmark-light{font-weight:400;margin-left:3px}
.brand small{letter-spacing:2.6px;font-size:10px;color:#93a8b3;margin-top:7px}
.sidebar nav{gap:3px;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#484f52 transparent}
nav a{padding:10px 13px;border-radius:7px;color:#aec2cc;font-size:13px;font-weight:450;gap:13px}
nav a:hover{background:#1d3a4a;color:#eaf6f8}
nav a[aria-current]{background:var(--electric);color:#202528;box-shadow:none;font-weight:650}
nav a .nav-icon{display:flex;width:18px;height:18px;flex:none}
.nav-icon svg{width:18px;height:18px}
.account{border-color:#24404f;padding-top:18px;flex-shrink:0}
.account .avatar{background:#1e3d4d;color:var(--electric);border:1px solid #33586a}
.account small{color:#93a8b3}.account button{color:#b6c1b7}
.topbar{height:80px;padding-inline:40px;background:var(--canvas);border-bottom:1px solid var(--line)}
.global-search{max-width:540px}.global-search>span{color:#777e74}
.global-search button{border-radius:5px;background:#e9ecdf;color:#374346;font-weight:500}
.global-search input::placeholder{color:#858c82;font-size:13px}
.top-assistant{color:#2a3438;display:flex;align-items:center;gap:9px;font-size:12px}.top-assistant svg{width:17px;height:17px}.top-assistant>span{margin-left:9px;color:#809496}
main{padding:34px 40px 55px;max-width:1800px}
h1{font-size:32px;letter-spacing:-1.1px;font-weight:650;margin-bottom:10px}
h2{font-size:17px;letter-spacing:-.25px;font-weight:650}h3{font-weight:650}
.eyebrow{color:#647d7f;font-size:10px;letter-spacing:2px;font-weight:600;margin-bottom:9px}
.page-title{margin-bottom:30px}.page-title p:last-child{font-size:13px}
section{border:1px solid var(--line);border-radius:11px;background:#fff;padding:24px;margin:22px 0;box-shadow:0 2px 2px #192c2e02}
.section-title{margin-bottom:20px}.section-title p{line-height:1.8}
section.section-title{margin-bottom:22px}.ledger-callout{background:#e7f2f5;border-color:#c8dee6;box-shadow:none}
.ledger-callout h2{font-size:18px}.ledger-callout p{color:#5d7576}
.metrics{gap:14px}.metric{border-radius:10px;border:1px solid var(--line);box-shadow:none;padding:22px 23px;background:#fff}
.metric>span{font-size:12px;color:#707c7e}.metric>strong{font-family:"Inter","Segoe UI",system-ui,sans-serif;font-size:32px;font-weight:550;letter-spacing:-1.2px;line-height:1.45;margin:14px 0 7px;color:#242a2c}
.metric>em{font-size:11px;color:#798587}.metric i{color:#7e9395}
.metric.accent{background:#242b2e;border:1px solid #242b2e}
.metric.accent strong{color:var(--electric)}.metric.accent>span,.metric.accent>em,.metric.accent strong small{color:#c0c9b5}
button,.button,.action{border-radius:6px;background:var(--electric);color:#1d2d30;padding:11px 17px;font-weight:650;box-shadow:none;border:1px solid transparent;font-size:12px;transition:background .12s,border-color .12s}
button:hover,.button:hover,.action:hover{background:#39ebef;color:#172629}
.secondary{background:#fff;border:1px solid #dce1d2;color:#435b5e}.secondary:hover{background:#f1f4e6;border-color:#b8d0d2;color:#1c3539}
.quiet{background:transparent;border:0;padding:4px 0;color:#537579}.quiet:hover{background:transparent;color:#1d3539}
input,select,textarea{border:1px solid #dce1d5;border-radius:6px;background:#fcfdf9;font-weight:400;min-height:43px;padding:10px 12px;color:#2d3739}
label{color:#4f6163;font-size:12px;font-weight:550;gap:7px}
input::placeholder,textarea::placeholder{color:#949b8c}
input:focus,textarea:focus,select:focus{border-color:#6a989b;background:white}
:focus-visible{outline:3px solid #76b9bd;outline-offset:2px}
table{font-size:13px;letter-spacing:0}.scroll{border-radius:5px}
th{background:#f5f6ee;color:#6e8284;font-size:11px;letter-spacing:.25px;font-weight:550;padding-block:14px}
td,th{border-color:#ecefe5;padding:14px 13px}
tbody tr:hover td{background:#f7f9ef}.primary-link{color:#2a4145;font-weight:600}.numeric{font-family:"Inter","Segoe UI",system-ui,sans-serif;font-variant-numeric:tabular-nums;font-weight:500}
.subtext{font-size:10px;color:#7d8f91;margin-top:5px}
.pill,.tag{border-radius:4px;padding:4px 8px;background:#d9f2f3;color:#2c6d71;font-size:10px;letter-spacing:.3px;font-weight:500}
.pill.neutral{background:#f0f1eb;color:#748586}.pill.amber{background:#fff3d9;color:#947130}
.notice{background:#e9f4f6;border-left:2px solid #79a7aa;border-radius:0 7px 7px 0;color:#54707a;line-height:1.9;font-size:11px;padding:12px 16px;margin:16px 0 23px}
.notice.danger{background:#fff1eb;color:#99583b;border-color:#ca936a}
.upload-panel{background:#e9f4f7;border:1px dashed #8fbecb;padding:28px}
.upload-panel h2{font-size:20px}.upload-panel p{font-size:13px}
.container-title h3{font-family:"Inter","Segoe UI",system-ui,sans-serif;letter-spacing:.25px;font-weight:650;font-size:18px}
.container-card{border-top:3px solid #e3e9d4}.container-card:target{border-color:#68b8bc;box-shadow:0 0 0 3px #afe8ea80}
.container-title{margin-bottom:16px}.facts{gap:17px}.facts dt{font-size:10px;letter-spacing:.4px;color:#7f8f90}.facts dd{font-weight:500;font-size:13px}
.money-row{border-top:1px solid #ecefe2;border-bottom:1px solid #ecefe2;gap:12px}.money-row small{font-size:10px;color:#7f9192}.money-row strong{font-weight:550;color:#2c4246;font-family:"Segoe UI",system-ui,sans-serif}
summary{color:#3a6064;font-size:12px}details{border-color:#e7ebdf;margin-top:17px;padding-top:14px}
.due-tile{background:#f1f4e4;border:1px solid #e8ecd8;color:#2c494d}.due-tile>span{color:#6d888a}.due-tile strong{font-weight:500}
.assistant-card{background:#eaf0da;border-color:#c7e3e5}.assistant-mark{border:0;background:#b1e3e6;color:#25666b;border-radius:10px}
.tabs{gap:3px;padding-bottom:0;border-color:var(--line)}.tabs button{padding:13px 20px;border:0;border-radius:6px 6px 0 0;font-weight:500;color:#6f8385}
.tabs button.active{color:#214145;background:#ceeced;box-shadow:inset 0 -2px #46969b}.tabs button:hover{background:#edf1df;color:#214145}
.large-total{font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.breadcrumb{color:#768f91;font-size:11px}.results-line{color:#697f81;margin:24px 0 12px;justify-content:space-between}.results-line strong{color:#304649;font-weight:600}
.pagination{border-color:#e2e7d7;color:#7f9091}.pagination .button{font-size:11px}
.source-data{background:#f5f6ef;padding:14px;border-radius:6px;color:#6f8183;font-size:11px;line-height:1.8}
.month-heading{display:flex;gap:15px;align-items:center;font-size:20px;font-weight:550;margin:17px 0 2px}.month-heading:after{content:"";height:1px;background:#dce3d0;flex:1}.month-heading small{font-size:10px;letter-spacing:1px;color:#869ea0}
.auth-splash{display:none}.guest{display:grid;grid-template-columns:minmax(400px,1fr) minmax(440px,1fr);min-height:100dvh;background:#f7f8f1}
.guest .auth-splash{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;background:#0e2434;padding:65px clamp(40px,6vw,110px);position:relative;overflow:hidden}
.auth-splash>img{width:85px;height:85px;margin-bottom:42px}.auth-kicker{font-size:12px;letter-spacing:4px;color:#8dadb0;margin-bottom:30px}
.auth-splash h2{font-size:clamp(42px,4.4vw,72px);font-weight:500;line-height:1.3;letter-spacing:-1.5px;color:#f1f5e7;margin-bottom:30px}.auth-splash h2 em{color:var(--electric);font-style:normal}.auth-splash>p:last-of-type{color:#8a9ea1;font-size:13px;letter-spacing:1px}.auth-edition{position:absolute;bottom:30px;font-size:9px;letter-spacing:2px;color:#6f8286}
.guest main{width:100%;max-width:480px;padding:65px 35px;margin:auto}.guest main>.brand{margin-bottom:40px;font-size:14px;color:#293b3e}.guest main>.brand small{color:#93a8b3}.auth-panel{border:0;box-shadow:none;background:transparent;padding:0;margin:0}.auth-panel h1{font-size:28px;font-weight:600;letter-spacing:-.5px;margin:0 0 12px}.auth-panel>p:not(.eyebrow){font-size:13px;margin-bottom:32px}.auth-panel form{display:flex;flex-direction:column;gap:20px;align-items:stretch}.auth-panel label{flex:auto}.auth-panel input{background:#fff;min-height:48px}.auth-panel button{min-height:48px;margin-top:6px;justify-content:space-between;padding:13px 18px}.auth-panel .auth-foot{font-size:11px;margin-top:24px;color:#8da3a5}.auth-foot a{color:#3b6f75}
@media(min-width:1600px){main{padding:40px 54px 60px}.topbar{padding-inline:54px}}
@media(max-width:1200px) and (min-width:851px){.workspace{grid-template-columns:212px minmax(0,1fr)}.sidebar{padding:25px 13px;gap:25px}.brand{font-size:12px}.brand-logo{width:38px;height:38px}main{padding:28px}.topbar{padding-inline:28px}.metric>strong{font-size:28px}.brand small{font-size:9px;letter-spacing:2px}}
@media(max-height:800px) and (min-width:851px){.sidebar{padding-top:20px;gap:23px}nav a{padding:8px 12px}.account{padding-top:12px}}
@media(max-width:850px){.workspace{display:block}.sidebar{height:auto;padding:17px 20px;gap:17px}.sidebar .brand{font-size:13px}.brand-logo{width:36px;height:36px}.topbar{height:65px;padding-inline:20px}.top-assistant{display:none}.mobile-menu{background:#30393c;border-color:#3c5255;color:#bee2e5;top:20px}.mobile-menu:hover{background:#384b4e;color:#dbf5f6}.sidebar.open nav{gap:7px}.sidebar.open nav a{padding:10px 8px;font-size:11px;justify-content:center}.sidebar.open .account{padding-bottom:5px}main{padding:28px 20px 45px}h1{font-size:27px}.page-title{gap:15px;margin-bottom:25px}.metric>strong{font-size:27px}.guest{display:block}.guest .auth-splash{display:none}.guest main{padding:60px 25px}.guest .brand{margin-bottom:40px}}
@media(max-width:500px){section{padding:19px}.overview-metrics{gap:10px}.metric{padding:16px 14px}.metric>strong{font-size:24px;letter-spacing:-.7px}.metric>span{font-size:11px}.metric>em{font-size:10px}.ledger-panel{padding:0}.money-row{grid-template-columns:1fr 1fr}.money-row strong{font-size:18px}.money-row>div:last-child{grid-column:1/-1}.section-title{flex-wrap:wrap}.notice{font-size:11px}.auth-panel{padding:0}.guest main{padding-top:45px}.page-title>.action{font-size:11px}.month-heading{font-size:18px}.filters input[name=year]{max-width:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.auth-splash{display:none!important}.metric.accent{background:white;color:#222;border:1px solid #ddd}.metric.accent strong,.metric.accent>span,.metric.accent>em{color:#222}}
/* Dense spreadsheet register: frozen heading and container identifiers. */
.register-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}.register-tabs a{padding:12px 18px;color:#6e8183;font-size:12px;white-space:nowrap;border-radius:6px 6px 0 0}.register-tabs a.selected{background:#d3eeef;color:#224347;box-shadow:inset 0 -2px #47979c}.register-tabs span{margin-left:9px;font-variant-numeric:tabular-nums;font-weight:600}.register-hint{font-size:11px;margin-top:14px;line-height:1.9}.register-filters{margin:16px 0;padding:18px}.register-filters .filters label{flex-basis:110px}.register-filters .filters .grow{flex-basis:240px}.register-panel{padding:0;overflow:hidden;margin-top:12px}.register-grid{overflow:auto;max-height:68vh;overscroll-behavior:contain;scrollbar-width:auto;position:relative}.register-table{width:max-content;min-width:100%;font-size:12px}.register-table th,.register-table td{padding:10px 13px;border-right:1px solid #edf0e5;border-bottom:1px solid #e8edde;height:53px}.register-table th{position:sticky;top:0;z-index:3;height:43px;background:#edf1e1;font-size:11px}.register-table tbody tr:nth-child(even) td{background:#fafbf5}.register-table tbody tr:nth-child(odd) td{background:white}.register-table tbody tr:hover td{background:#f0f6df}.register-table .pin-index{position:sticky;left:0;min-width:56px;width:56px;z-index:2;text-align:center;color:#7e9294}.register-table .pin-number{position:sticky;left:56px;min-width:172px;z-index:2;box-shadow:3px 0 5px #1b414408}.register-table .pin-number a{font-weight:600;letter-spacing:.15px}.register-table .pin-number a span{color:#87aeb0;margin-left:9px}.register-table thead .pin-index,.register-table thead .pin-number{z-index:5}.register-table .register-note{white-space:normal;min-width:150px;max-width:210px;line-height:1.7}.register-table .numeric{min-width:105px}.register-table .profit-cell{color:#2c5e63}.register-table .supplement-column{color:#718789}.register-table .subtext{font-size:10px}.register-filters+.results-line span{color:#85999b;font-size:11px}@media(max-width:500px){.register-table .pin-index{min-width:43px;width:43px}.register-table .pin-number{left:43px;min-width:156px}.register-table th,.register-table td{padding:9px 10px}.register-tabs a{padding:11px}.register-grid{max-height:62vh}.register-filters+.results-line{align-items:flex-start;flex-direction:column;gap:5px}}

.action-group{display:flex;gap:8px;flex-wrap:wrap}.form-help{font-size:11px;margin:15px 0 0;color:#6b8487}.payment-reverse{border:0;padding:0;margin:0}.payment-reverse form{min-width:240px}.payment-reverse summary{margin:0}.payment-reverse label{white-space:normal}

.month-sheet-tabs{display:flex;gap:3px;align-items:center;overflow-x:auto;padding:12px 0 3px}.month-sheet-tabs label{flex:0 0 100px;flex-direction:row;align-items:center;font-size:11px;margin-right:9px}.month-sheet-tabs select{min-height:34px;padding:5px;width:78px}.month-sheet-tabs a{white-space:nowrap;padding:8px 13px;font-size:11px;border-bottom:2px solid transparent;color:#6d8e91}.month-sheet-tabs a.selected{background:#cdedef;border-color:#48999e;color:#23494e}.compact-table td,.compact-table th,.register-table td,.register-table th{padding-top:7px;padding-bottom:7px;height:38px}.compact-table .subtext,.register-table .subtext{margin-top:1px}.compact-metrics{display:flex;gap:25px;flex-wrap:wrap;padding:18px 0;color:#6a8385;font-size:12px}.compact-metrics strong{font-size:20px;color:#294145;font-weight:600;margin-left:12px}.view-link{white-space:nowrap}.owner-only-note{font-size:11px;color:#739093}
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:12px 0 22px}.permission-grid label{display:flex;align-items:center;gap:10px;padding:12px;background:#f6f7f3;border-radius:8px}.permission-grid input[type=checkbox]{width:18px;height:18px;min-height:18px;accent-color:#21898d}

.workspace .permission-form{display:block;width:100%}.workspace .permission-grid{width:100%}.workspace .permission-grid label{display:flex;flex-direction:row;align-items:center}.workspace .permission-grid input[type=checkbox]{flex:none;width:18px;margin:0}

.grouped-register .status-column{min-width:118px;width:118px;position:sticky;left:0;background:#fafbf6;z-index:2}.grouped-register .bl-column{min-width:150px;width:150px}.grouped-register .number-column{min-width:126px;width:126px;padding-left:9px;padding-right:9px}.grouped-register .number-column a{font-size:12px;font-weight:600;white-space:nowrap}.grouped-register td.merged-bill{vertical-align:middle;background:#eff2e8!important;border-bottom:2px solid #d6decd;white-space:normal;max-width:190px;overflow-wrap:anywhere}.grouped-register .bill-start td{border-top:2px solid #d6decd}.grouped-register thead .status-column{z-index:5;background:#edf1e1}.container-detail-primary{display:block}.container-detail-primary .container-card{margin-bottom:20px}.container-detail-primary .money-row{max-width:760px}.delivery-summary{display:grid;grid-template-columns:210px 1fr;gap:24px;padding:20px 0;border-top:1px solid var(--line);margin-top:20px}.delivery-summary small{display:block;color:#748d90;margin-bottom:8px}.delivery-summary p{margin:0;white-space:pre-wrap}.container-detail-primary .container-title{justify-content:flex-start;gap:16px}.container-detail-primary .container-title>div{margin-right:auto}@media(max-width:600px){.delivery-summary{grid-template-columns:1fr;gap:14px}.container-detail-primary .container-title{flex-wrap:wrap}.grouped-register .status-column{position:static}}

.bill-review-form{display:block}.bill-review-form fieldset{border:0;padding:0;min-width:0}.bill-review-form table input{width:140px;min-width:110px}.confirmation-check{display:flex;flex-direction:row;align-items:center;gap:10px}.confirmation-check input{width:18px;min-height:18px;flex:none}.bill-review-form .register-note{max-width:340px;min-width:200px;white-space:normal}

.month-sheet-tabs label{white-space:nowrap;flex-basis:115px}.workspace main:has(.grouped-register) .page-title{margin-bottom:16px}.workspace main:has(.grouped-register) .page-title .eyebrow{display:none}.workspace main:has(.grouped-register) .page-title h1{font-size:30px}.workspace main:has(.grouped-register) .register-hint{margin:9px 0}.container-detail-primary .container-card{padding:22px}.container-detail-primary .notice{padding:10px 14px;margin:12px 0}.container-detail-primary .money-row{padding:14px 0;margin:12px 0}.container-detail-primary .delivery-summary{padding:12px 0;margin-top:12px}

/* v2.4: container grid + detail inline editing */
.register-table.grouped-register th,.register-table.grouped-register td{text-align:center;vertical-align:middle}
.register-table.grouped-register th.numeric,.register-table.grouped-register td.numeric{text-align:center}
.register-table.grouped-register .goods-column{width:96px;max-width:110px}
.register-table.grouped-register .weight-column{width:74px}
.register-table.grouped-register .delivery-column,.register-table.grouped-register .note-column{min-width:198px;width:15em}
.register-table.grouped-register .merged-bill{box-shadow:inset 0 0 0 2px #46969b;background:#f4f6ec!important}
.register-table.grouped-register .merged-bill strong{display:block}
.register-table.grouped-register .merged-bill .bl-count{display:block;margin-top:4px;color:#2c6d71;font-weight:700}
.register-table.grouped-register tr.overdue-row td{background:#fbe3e3!important}
.register-table.grouped-register tr.overdue-row td.merged-bill{background:#fbe3e3!important;box-shadow:inset 0 0 0 2px #c96a6a}
.status-select,.status-pill{border-radius:999px;padding:5px 10px;font-weight:700;font-size:.92rem;border:1px solid transparent;text-align:center}
.status-select{cursor:pointer;max-width:136px}
.grouped-register .status-select{width:100%;max-width:100%;padding-right:22px}
.status-select[data-status='待安排'],.status-pill[data-status='待安排']{background:#eceee6;color:#728082}
.status-select[data-status='已确认'],.status-pill[data-status='已确认']{background:#fff3d9;color:#947130}
.status-select[data-status='已送达'],.status-pill[data-status='已送达']{background:#d9f2f3;color:#2c6d71}
td.editable{cursor:text}
td.editable:hover,.editable-inline:hover,.editable-pill:hover{background:#f4f1de;cursor:text}
.editable-inline{border-bottom:1px dashed #8fc2c4}
.cell-editor{width:100%;min-width:92px;padding:6px 8px;border:1.5px solid #46969b;border-radius:8px;font:inherit;background:#fff}
textarea.cell-editor{min-width:172px}
.cell-saved{animation:cellSaved 1.2s ease}
@keyframes cellSaved{0%{background:#c2e8eb}100%{background:transparent}}
.money-inline{width:132px;padding:7px 9px;border:1px solid #dfe3d4;border-radius:9px;font:inherit;font-weight:700;background:#fbfcf7}
.money-inline:focus{border-color:#46969b;outline:none;background:#fff}
.autosave-state{color:#2c6d71;font-size:.9rem;margin-left:8px}
.editable-pill{cursor:text}

.customer-select{border:1px solid #c9d6da;border-radius:8px;padding:4px 8px;font-size:.9rem;background:#fff;max-width:230px}
