:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#1e293b;background:#f5f7fa;font-synthesis:none;--red:#e64c48;--muted:#8290a3;--line:#edf0f4}*{box-sizing:border-box}body{margin:0;font-size:13px}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{text-decoration:none;color:inherit}.topbar{height:72px;background:#fff;border-bottom:1px solid #e8edf2;display:flex;justify-content:space-between;align-items:center;padding:0 3.5%}.brand{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:650}.brand-icon{display:grid;place-items:center;background:var(--red);width:33px;height:33px;color:white;font-size:18px;border-radius:10px}.brand-divider{padding:0 14px;color:#d1d8e1;font-weight:400}.topbar-right{display:flex;align-items:center;gap:9px;color:#728096;font-size:12px}.live-dot{height:7px;width:7px;background:#3da98c;border-radius:50%}.version{border-left:1px solid #e0e5eb;margin-left:9px;padding-left:18px}main{max-width:1680px;margin:auto;padding:37px 3.5% 20px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.eyebrow{font-size:10px;letter-spacing:2px;color:#9aa5b5;font-weight:650}h1{font-size:29px;letter-spacing:-.8px;margin:8px 0 10px}p{color:#8290a3;margin:0;line-height:1.8}.heading-actions{display:flex;gap:10px}.button{border-radius:7px;padding:11px 17px;border:1px solid #dfe5ed;background:white;white-space:nowrap}.button.primary{color:#fff;background:var(--red);border-color:var(--red);box-shadow:0 3px 8px #e64c4818}.button.primary span{margin-left:20px;font-size:17px}.button.secondary{color:#526176}.button:hover{filter:brightness(.97)}.button.small{padding:8px 12px;font-size:12px}.panel{background:#fff;border:1px solid #e7ecf2;border-radius:10px;box-shadow:0 2px 3px #20304a02}.filters{padding:19px 22px;display:flex;gap:24px;align-items:flex-end;margin-bottom:22px}.filter-label{display:block;font-size:11px;font-weight:600;color:#6b798d;margin-bottom:9px}.segmented{padding:3px;border-radius:6px;background:#f1f4f8;display:flex}.segmented button{border:0;color:#8a96a7;background:none;border-radius:4px;padding:7px 22px}.segmented button.active{background:white;color:#d64b47;box-shadow:0 1px 4px #24395516;font-weight:650}input,select{border:1px solid #e2e7ee;border-radius:6px;padding:9px 11px;background:white;color:#455469;height:37px}input[type=number]{width:150px}#date{min-width:160px}select{min-width:130px}.search-label{flex:1}.search-label input{width:100%;min-width:190px}input::placeholder{color:#a3adbb}.text-button{border:0;background:transparent;color:#cf514c;font-size:12px;padding:10px 0;white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.metric{background:white;border:1px solid #e7ecf2;border-radius:10px;padding:21px 23px;position:relative;min-height:145px}.metric.primary-metric{background:#fff7f5;border-color:#f3ddd8}.metric-label{font-size:12px;color:#7e8b9d;display:flex;justify-content:space-between;align-items:center}.metric-icon{width:28px;height:28px;background:#f4f6fa;border-radius:7px;display:grid;place-items:center;color:#8997aa;font-size:16px}.primary-metric .metric-icon{color:#dc6258;background:#fdeae6}.metric-value{font-size:35px;font-weight:650;letter-spacing:-1px;margin:11px 0 8px;font-variant-numeric:tabular-nums}.metric-value small{font-size:12px;letter-spacing:0;color:#94a0af;font-weight:400;margin-left:7px}.metric-foot{font-size:11px;color:#8b97a7;display:flex;gap:16px}.metric-foot b{font-weight:600;color:#596a7f;margin-left:4px}.green{color:#239d7a!important}.orange{color:#dc9258!important}.reconcile{display:flex;align-items:center;gap:14px;padding:17px 22px;margin-bottom:25px;background:#f4fbf8;border-color:#dceee6}.reconcile.warning{background:#fffaf0;border-color:#f2e6ca}.reconcile-icon{display:grid;place-items:center;border-radius:50%;background:#e0f3e9;width:28px;height:28px;color:#249276;font-weight:700;flex-shrink:0}.warning .reconcile-icon{background:#fbefce;color:#b38a28}.reconcile strong{font-size:12px;font-weight:600}.reconcile p{font-size:11px;margin-top:4px}.reconcile-counts{margin-left:auto;display:flex;gap:22px;flex-shrink:0}.reconcile-counts span{color:#87968e;font-size:11px}.reconcile-counts b{display:block;font-size:17px;color:#3a6856;margin-top:4px}.section-heading{display:flex;align-items:center;justify-content:space-between;padding:23px 23px 19px;gap:16px}h2{font-size:15px;margin:0 0 6px;font-weight:650}.section-heading p{font-size:11px}.count-badge{background:#f1f4f8;color:#8390a3;display:inline-block;font-size:10px;padding:2px 7px;border-radius:4px;margin-left:7px;font-weight:500;vertical-align:middle}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;text-align:left}th{background:#fafbfd;font-size:11px;color:#8794a6;font-weight:500;padding:13px 18px;border-top:1px solid #f0f3f6;border-bottom:1px solid #edf1f5}td{padding:17px 18px;border-bottom:1px solid #f0f3f6;font-size:12px;color:#536278;font-variant-numeric:tabular-nums}th:first-child,td:first-child{padding-left:24px}.team-table th:not(:first-child),.team-table td:not(:first-child){text-align:right}.team-table td:nth-child(2){font-weight:650;color:#263b55}.team-table tbody tr{cursor:pointer}.team-table tbody tr:hover,.team-table tbody tr.selected{background:#fff8f5}.team-table tr.selected td:first-child{box-shadow:inset 3px 0 var(--red)}.team-name{font-weight:550;color:#35465d}.team-mark{display:inline-grid;place-items:center;width:26px;height:26px;background:#eef2fa;color:#7886ac;border-radius:7px;margin-right:10px;font-size:11px}.team-mark.unassigned{background:#fff1dd;color:#c4954d}.teams-panel{margin-bottom:24px}.books-panel{margin-bottom:23px}.book-actions{display:flex;gap:10px}.book-title{color:#304159;font-weight:550;margin-bottom:6px;max-width:340px;overflow:hidden;text-overflow:ellipsis}.book-id{font-size:10px;color:#9aa5b4;font-family:Consolas,monospace}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:4px;font-size:10px;padding:4px 7px;background:#f1f4f8;color:#8b98a9}.badge.online{background:#eaf7f0;color:#309b76}.badge.offline{background:#f8eee9;color:#bf886b}.badge.real{background:#edf2fd;color:#718abe}.badge.comic{background:#f2edfc;color:#9a7dc1}.muted{color:#a0aaba}.project-note{display:block;color:#a2acba;font-size:10px;margin-top:5px}.pagination{padding:17px 23px;display:flex;justify-content:space-between;align-items:center;color:#8e9bad;font-size:11px}.pagination>div{display:flex;align-items:center;gap:15px}.notes{padding:0 3px}h3{font-size:11px;color:#77869a;font-weight:600;margin:0 0 8px}.notes p{font-size:11px;line-height:1.9;color:#96a0af}footer{display:flex;justify-content:space-between;border-top:1px solid #e4e9ef;margin-top:27px;padding-top:17px;font-size:10px;color:#a1acba}.message{padding:14px 18px;border:1px solid #f2d9ce;background:#fff5ee;color:#b57245;border-radius:7px;margin-bottom:18px;font-size:12px}.empty{padding:44px;text-align:center;color:#9ba7b6}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}body.loading .metrics{opacity:.5}@media(min-width:1450px){.team-table th,.team-table td{padding-right:22px;padding-left:22px}}@media(max-width:1000px){.filters{gap:13px;flex-wrap:wrap}.search-label{min-width:230px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{align-items:flex-start}.heading-actions{margin-top:23px}.reconcile-counts{gap:12px}.metric{min-height:130px}.section-heading{align-items:flex-start}}@media(max-width:620px){.topbar{height:60px;padding:0 18px}.brand{font-size:14px}.brand-divider{padding:0 7px}.version{display:none}.topbar-right{font-size:10px}main{padding:24px 14px}.page-heading{display:block}.heading-actions{margin-top:18px}.eyebrow{font-size:9px}h1{font-size:26px}.filters{padding:17px;gap:16px}.search-label{flex-basis:100%}.metrics{gap:10px}.metric{padding:16px;min-height:132px}.metric-value{font-size:29px}.metric-foot{gap:7px;font-size:10px;flex-wrap:wrap}.reconcile{align-items:flex-start;padding:16px;flex-wrap:wrap}.reconcile-counts{margin-left:42px}.section-heading{padding:18px;flex-wrap:wrap}.book-actions{width:100%}.book-actions select{flex:1}.pagination{padding:14px}.pagination>div{gap:8px}footer{gap:20px}.metric-icon{display:none}}
.filters{flex-wrap:wrap}
.mobile-nav,.mobile-teams{display:none}
.query-status{font-size:11px;padding:7px 2px;color:#74869a;min-height:30px}
#team-period{color:#586e85;font-weight:550;margin-bottom:3px}
body.loading #team-body{opacity:.45;pointer-events:none}

/* Keep filters and results together; overview and details share the same date selection. */
[hidden]{display:none!important}
.workspace-toolbar{position:sticky;top:0;z-index:20;background:#f5f7fa;padding:10px 0 0;margin:-10px 0 22px}
.workspace-toolbar .filters{margin-bottom:0;gap:18px;padding:15px 20px}
#jump-details{margin-left:auto}
.view-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #e0e6ee;padding:8px 0 0;background:#f5f7fa}
.view-nav>div{display:flex;gap:22px}
.view-nav button{border:0;border-bottom:2px solid transparent;background:none;padding:12px 3px;color:#8190a2;font-weight:550}
.view-nav button.active{color:#d94b47;border-bottom-color:#e64c48}
.view-nav button.active .count-badge{background:#fbe7e3;color:#c96358}
#result-context{font-size:11px;color:#8290a3;text-align:right}
.detail-filters{display:flex;align-items:flex-end;gap:15px;flex-wrap:wrap;padding:2px 23px 20px}
.detail-filters .search-label{min-width:220px}
.detail-filters .search-label input{width:100%}
.detail-filters #company{max-width:250px}
.detail-result-bar{padding:12px 23px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f4;background:#fafbfd;color:#7d8c9e;font-size:11px;gap:14px}
.detail-result-bar>div{display:flex;align-items:center;gap:12px;white-space:nowrap}
#books-panel,#metrics{scroll-margin-top:calc(var(--toolbar-height,180px) + 14px)}
#book-scroll{max-height:56vh;min-height:120px;overscroll-behavior:contain}
#book-scroll th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 #e5eaf0}
body.loading #book-body{opacity:.45}
.book-actions{align-items:center}
@media(max-width:760px){.workspace-toolbar{position:static}.workspace-toolbar .filters{padding:15px;gap:14px}.view-nav{align-items:flex-start;flex-wrap:wrap;padding-bottom:8px}.view-nav>div{gap:18px}#result-context{width:100%;text-align:left;font-size:10px}.detail-filters{padding:0 18px 16px;gap:12px}.detail-filters label{flex:1;min-width:130px}.detail-filters label select{width:100%;max-width:none!important}.detail-filters .search-label{flex-basis:100%}.detail-result-bar{padding:12px 16px;flex-wrap:wrap}.detail-result-bar>div{margin-left:auto}#book-scroll{max-height:55vh}#jump-details{margin-left:0}}

/* Phone layout: touch controls, organization cards, and book cards without horizontal scrolling. */
@media(max-width:760px){
  html{scroll-padding-bottom:86px}
  main{padding:22px 12px calc(90px + env(safe-area-inset-bottom,0px));min-width:0}
  .topbar{padding:12px 16px;height:auto;min-height:60px;gap:10px;flex-wrap:wrap}
  .brand{font-size:14px;min-width:0}.brand-divider{padding:0 8px}
  .topbar-right{font-size:10px;min-width:0}.version{display:none}
  #source-label{max-width:150px;overflow-wrap:anywhere}
  .page-heading{display:block;margin-bottom:18px}.page-heading p{font-size:12px}
  .heading-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
  .heading-actions button{min-width:0;padding:10px 8px;font-size:12px;white-space:normal}
  button,.button,.button.small,.text-button{min-height:44px;touch-action:manipulation}
  input,select{height:44px;font-size:16px;min-width:0;max-width:100%;width:100%}
  input[type=date],input[type=month]{min-inline-size:0;appearance:none;-webkit-appearance:none}
  #date{min-width:0;width:100%}input[type=number]{width:100%}
  .filter-label{font-size:11px;margin-bottom:7px}
  .workspace-toolbar .filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px;padding:15px}
  .filters>div:first-child,.filters>#single-date{grid-column:1/-1}
  .filters>label{min-width:0}.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(82px,1.5fr);width:100%}
  .segmented button{padding:8px 4px;font-size:13px;min-width:0}
  #jump-details{margin-left:0;width:100%;white-space:normal}
  #apply-range{padding:8px;white-space:normal}
  .view-nav>div{width:100%;gap:0}.view-nav>div>button{flex:1;font-size:13px}
  .query-status{font-size:11px;line-height:1.7;padding:7px 1px;overflow-wrap:anywhere}
  .metrics{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric{padding:15px 13px;min-height:130px;min-width:0}.metric-label{font-size:11px;line-height:1.6}
  .metric-icon{display:none}.metric-value{font-size:28px;margin:10px 0 8px}.metric-value small{font-size:10px;margin-left:4px}
  .metric-foot{font-size:10px;gap:3px 8px;flex-wrap:wrap;line-height:1.7}
  .reconcile{padding:15px;gap:10px;flex-wrap:wrap}.reconcile>div:not(.reconcile-counts){flex:1;min-width:0}
  .reconcile-counts{width:100%;margin:2px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
  .reconcile-counts span{font-size:10px}.reconcile-counts b{font-size:16px}
  .section-heading{padding:18px 15px;gap:10px;align-items:flex-start;flex-wrap:wrap}
  .section-heading>div{min-width:0}h2{font-size:15px;line-height:1.6}
  .section-heading p{font-size:11px;overflow-wrap:anywhere}
  .team-desktop{display:none}.mobile-teams{display:grid;gap:12px;padding:0 12px 15px}
  .mobile-team-card{border:1px solid #e7ecf2;border-radius:9px;padding:13px;background:#fff}
  .mobile-team-open{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;padding:0 0 8px;color:#33465d;font-weight:600;font-size:13px}
  .mobile-team-open>span:first-child{min-width:0;overflow-wrap:anywhere}.mobile-team-link{font-size:11px;color:#d05b52;white-space:nowrap;font-weight:400}
  .mobile-team-total{padding:9px 0 12px;color:#8491a3;font-size:11px}.mobile-team-total strong{font-size:25px;color:#283e58;margin:0 5px;font-variant-numeric:tabular-nums}
  .mobile-team-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px 14px}
  .mobile-team-stats>span{display:flex;justify-content:space-between;align-items:center;gap:5px;color:#8995a6;font-size:11px}.mobile-team-stats b{color:#4c6079;font-size:13px;font-variant-numeric:tabular-nums}
  .mobile-team-extra{border-top:1px solid #edf0f4;margin-top:12px;padding-top:2px}
  .mobile-team-extra summary{cursor:pointer;color:#8795a6;font-size:11px;padding:13px 0;min-height:44px}
  .mobile-team-extra p{font-size:10px;margin-top:12px;color:#8c9aac}
  body.loading .mobile-teams{opacity:.45;pointer-events:none}
  .book-actions{display:flex;width:100%;justify-content:space-between;gap:8px}.book-actions button{font-size:11px}
  .detail-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:0 15px 16px;gap:12px}
  .detail-filters label,.detail-filters .search-label{min-width:0;max-width:100%}.detail-filters label:first-child,.detail-filters .search-label{grid-column:1/-1}
  .detail-filters .search-label input{min-width:0}.detail-filters #reset{grid-column:1/-1;text-align:right;padding:0}
  .detail-result-bar{padding:12px 15px;gap:8px}.detail-result-bar>span{width:100%;font-size:11px;line-height:1.7}
  .detail-result-bar>div{width:100%;justify-content:space-between;margin-left:0}.detail-result-bar .button{padding:7px 15px}
  #book-scroll{max-height:none;min-height:0;overflow:visible;overscroll-behavior:auto;padding:0 12px}
  .book-table,.book-table tbody{display:block;width:100%;white-space:normal}
  .book-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .book-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 14px;border:1px solid #e4eaf1;border-radius:9px;margin:12px 0;padding:13px}
  .book-table td,.book-table td:first-child{display:block;min-width:0;padding:10px 0;border:0;font-size:12px;line-height:1.8;overflow-wrap:anywhere}
  .book-table td:first-child{grid-column:1/-1;border-bottom:1px solid #edf0f4;padding:0 0 12px}
  .book-table td:nth-child(3),.book-table td:nth-child(8){grid-column:1/-1}
  .book-table td[data-label]:not(:first-child)::before{content:attr(data-label);display:block;font-size:10px;color:#9aa6b5;margin-bottom:4px}
  .book-table td.empty{grid-column:1/-1;text-align:center;padding:30px 0}
  .book-title{font-size:14px;line-height:1.7;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;margin-bottom:7px}
  .book-id{font-size:11px;overflow-wrap:anywhere;word-break:break-all}.badge{font-size:11px;padding:4px 7px}.project-note{font-size:10px;overflow-wrap:anywhere}
  .pagination{flex-wrap:wrap;gap:10px;padding:12px 15px 17px}.pagination>span{width:100%}.pagination>div{width:100%;justify-content:space-between}
  .mobile-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;z-index:40;background:#fffffffa;border-top:1px solid #e3e9f0;padding:6px 10px calc(6px + env(safe-area-inset-bottom,0px));box-shadow:0 -3px 15px #263a5006}
  .mobile-nav button{border:0;background:transparent;color:#8c98a9;font-size:12px;min-height:45px;border-radius:7px}
  .mobile-nav button.active{background:#fff0ec;color:#d55a51;font-weight:600}
  footer{gap:14px;flex-wrap:wrap;font-size:10px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}
