/* Shared workspace treatment; existing views retain their data/action contracts. */
:root {
  --paper:#f4f8fc; --card:rgba(255,255,255,.78); --card2:rgba(237,244,252,.88); --detail-panel:rgba(247,250,255,.97);
  --ink:#13213a; --ink2:#52647c; --ink3:#687b94; --ink4:#92a1b5;
  --line:rgba(39,69,108,.14); --line2:rgba(39,69,108,.07);
  --acc:#326df5; --acc-s:rgba(50,109,245,.11);
  --up:#d94d59; --dn:#099b75;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;
  --serif:var(--sans); --mono:"SF Mono","JetBrains Mono",ui-monospace,monospace;
  --sh:0 12px 35px -18px rgba(38,71,117,.24),inset 0 1px 0 rgba(255,255,255,.75);
}
[data-theme=dark] {
  --paper:#07111f; --card:rgba(15,32,53,.9); --card2:rgba(22,43,68,.92); --detail-panel:rgba(12,25,43,.97);
  --ink:#eff6ff; --ink2:#b5c6da; --ink3:#92a7c0; --ink4:#677f9e;
  --line:rgba(177,206,241,.15); --line2:rgba(177,206,241,.07);
  --acc:#79a9ff; --acc-s:rgba(121,169,255,.15); --up:#ff7785; --dn:#45d0a1;
  --sh:0 12px 35px -18px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06);
}
.workspace .app{padding:14px 14px 14px 210px;gap:12px}
.workspace .top{top:14px;height:56px;padding:0 18px;gap:16px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--sh);backdrop-filter:none}
.workspace .wordmark{font:750 23px var(--sans);letter-spacing:-1.3px}
.workspace .tabs{position:fixed;top:82px;bottom:14px;left:14px;width:184px;height:auto;display:flex;flex-direction:column;gap:5px;padding:14px 10px;border:1px solid var(--line);border-radius:22px;background:var(--card);box-shadow:var(--sh);overflow-y:auto;backdrop-filter:blur(24px)}
.workspace .tab{width:100%;height:44px;min-height:44px;padding:0 12px;border-radius:11px;justify-content:flex-start;font-size:13px;color:var(--ink2)}
.workspace .tab.on{color:var(--acc);background:var(--acc-s)}
.workspace .tab::after{display:none}
.workspace .tab .n{margin-left:auto}
.workspace .search{flex:1;max-width:400px}
.workspace .search input,.workspace .search input:focus{width:100%;height:36px}
.workspace .strip{height:44px;min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:14px;background:var(--card);gap:18px}
.workspace .work{gap:12px;grid-template-columns:minmax(0,1fr) 350px}
.workspace .content{padding:26px 22px 48px;background:var(--card);border:1px solid var(--line);border-radius:22px;max-width:none;min-height:calc(100dvh - 152px)}
.workspace h1{font-weight:700;letter-spacing:-.045em}
.workspace .date-big{font-size:40px}
.workspace .hero{grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:20px}
.workspace .lede{font-size:14px;line-height:1.85}
.workspace .detail{top:138px;border:1px solid var(--line);border-radius:20px;background:var(--card);box-shadow:var(--sh);overflow:hidden}
.workspace .mcard,.workspace .dlist,.workspace .rcard,.workspace .scard,.workspace .riskbar,.workspace .grid{border-radius:15px}
.workspace .btn.pri{background:var(--acc);color:#fff}
.workspace .sec-h h2{font-size:17px;font-weight:650}
.workspace .tab-nav{display:flex}
.workspace .navlink{display:none}
.workspace .empty{line-height:1.8}
@media(min-width:1600px){.workspace .app{max-width:1920px;margin:auto}.workspace .work{grid-template-columns:minmax(0,1fr) 400px}}
@media(max-width:1180px){
  .workspace .app{padding-left:162px}.workspace .tabs{width:136px}
  .workspace .work{grid-template-columns:minmax(0,1fr)}
  .workspace .detail{top:0;height:100dvh;overflow:auto;border-radius:20px 0 0 20px;background:var(--detail-panel);backdrop-filter:blur(24px)}
  .workspace .hero{grid-template-columns:1fr}.workspace .clock{display:none}
  .workspace .content{padding:22px 18px}.workspace .rgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .workspace .work{display:block}.workspace .detail{border-radius:22px 22px 0 0;top:auto}
  .workspace .hero{grid-template-columns:1fr}.workspace .content{min-height:70vh}
}
@media(max-width:720px){
  .workspace .app{padding:8px;gap:8px}.workspace .top{top:8px;height:auto;min-height:108px;padding:10px 12px 58px;flex-wrap:wrap;gap:10px;border-radius:16px}
  .workspace .tabs{position:absolute;top:auto;bottom:7px;left:7px;right:7px;width:auto;height:40px;display:flex;flex-direction:row;gap:4px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow-x:auto;overflow-y:hidden;backdrop-filter:none}
  .workspace .tab{width:auto;min-height:40px;height:40px;padding:0 10px;flex-shrink:0;font-size:12px}
  .workspace .search{order:0;max-width:none;flex:1;min-width:100px;margin:0}.workspace .search input{font-size:12px}
  .workspace .top-r{gap:5px;margin-left:auto}.workspace .who{display:none}
  .workspace #logoutBtn{display:inline-flex;min-height:36px;padding:0 8px}
  .workspace .pop{position:fixed;top:66px;left:14px;right:14px;width:auto;max-height:calc(100dvh - 84px);overflow:auto;background:var(--paper)}
  .workspace .wordmark{font-size:20px}.workspace .strip{padding:0 12px;border-radius:12px}
  .workspace .content{padding:20px 14px 36px;border-radius:18px}.workspace .date-big{font-size:32px}
  .workspace .qres{position:fixed;top:65px;left:16px;right:16px;width:auto}
  .workspace .rgrid{grid-template-columns:1fr}.workspace .detail{z-index:60}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.auth-screen .card{border-radius:24px;padding:36px;box-shadow:var(--sh);backdrop-filter:blur(20px)}
.auth-screen .wordmark{font:750 28px var(--sans);letter-spacing:-1.3px}
.auth-screen .go{background:var(--acc);color:white}
.research-screen{--bg:var(--paper);--bg2:var(--paper);--surface:var(--card);--surface2:var(--card2);--txt:var(--ink);--muted:var(--ink2);--faint:var(--ink3);--gold:var(--acc);--gold-dim:var(--acc-s);--gold-bd:var(--line);--disp:var(--sans);--shadow:var(--sh)}
.research-screen header{margin:14px;border:1px solid var(--line);border-radius:18px;background:var(--card);top:14px}
.research-cta{font:inherit;color:var(--acc);background:var(--acc-s);border:1px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer}

/* Details are summoned, never an empty permanent column. */
.workspace .work{grid-template-columns:minmax(0,1fr)}
.workspace .detail[hidden]{display:none!important}
.workspace .detail.open{display:block;position:fixed;inset:12px 12px 12px auto;width:min(540px,calc(100vw - 24px));height:auto;max-height:none;overflow:auto;z-index:60;background:var(--detail-panel);backdrop-filter:blur(24px);transform:none;border-radius:22px}
.workspace .scrim:not([hidden]){display:block!important}
body.workspace.locked{overflow:hidden}
.section-switch{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.view-pager{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--ink2)}
.page-jump{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap}
.page-jump input{width:48px;min-width:0;height:32px;padding:4px;text-align:center;border:1px solid var(--line);border-radius:8px;background:var(--card2);color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;appearance:textfield}
.page-jump input::-webkit-inner-spin-button{appearance:none}
.page-jump small{color:var(--ink3);font:inherit}
.search-hint{font-size:11px;color:var(--ink3);padding:6px 10px}
.workspace .qi:focus-visible{outline:2px solid var(--acc);outline-offset:-2px;background:var(--card2)}
.workspace .dp-price>.sub{display:block;font-size:11px;line-height:1.5;flex-basis:100%}
@media(max-width:720px){
  .view-pager{gap:4px;font-size:11px}
  .view-pager>.btn{min-width:60px;padding-inline:9px}
  .page-jump{gap:4px}
  .page-jump small{display:none}
  .workspace .qi{min-height:44px;touch-action:manipulation}
  .workspace [data-clear-sigs].armed{max-width:150px;height:auto;min-height:32px;white-space:normal;line-height:1.4}
}
.history-picker{display:flex;align-items:center;gap:10px;margin:12px 0}
.history-picker select{font:inherit;background:var(--card2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px}
.workspace .strip{height:auto;min-height:60px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;overflow:visible;white-space:normal;padding:8px 14px}
.strip-stamp{font-size:11px;overflow-wrap:anywhere}
.strip-switch{display:flex;align-items:center;gap:6px;min-width:0;flex:1;justify-content:flex-end}
.strip-focus{min-width:0;flex:1;max-width:680px}
.strip-focus .tick,.strip-focus .tick.end{display:flex;flex-wrap:wrap;white-space:normal;gap:5px;margin:0;font-size:11px}
.strip-focus .st{font-size:11px;white-space:normal;text-align:left}
.strip-count{font-size:10px;color:var(--ink3);min-width:24px}
.strip-switch>.icon-btn{width:28px;height:28px;flex-shrink:0}
@media(max-width:720px){
  .workspace .strip{display:block;padding:7px 12px}
  .strip-stamp{margin-bottom:4px}
  .strip-switch{width:100%}
  .workspace .content{padding:16px 14px 14px;min-height:0}
  .workspace .vh{margin-bottom:12px;gap:8px}
  .workspace .day-h{margin:12px 0 8px}
  .workspace .since{display:block}
  .workspace .since .num{white-space:nowrap}
  .workspace .chips{flex-wrap:wrap;overflow:visible;margin:10px 0;padding:0;gap:5px}
  .workspace .grid{overflow:visible}
  .workspace table{display:block;min-width:0!important;width:100%!important}
  .workspace thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .workspace tbody{display:block}
  .workspace tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px;gap:4px}
  .workspace tbody td,.workspace tbody td.hm{display:block;position:static!important;min-width:0;padding:6px!important;text-align:left;white-space:normal;overflow-wrap:anywhere;border:0;box-shadow:none!important}
  .workspace td::before{content:attr(data-label);display:block;font:10px var(--sans);color:var(--ink3);margin-bottom:3px}
  .workspace .grid .row-btns{flex-wrap:wrap;justify-content:flex-start}
}
.workspace [data-sel]{touch-action:manipulation}
@media(max-width:720px){.workspace .detail.open{inset:8px;width:auto;border-radius:20px}}
.workspace .detail-section[hidden]{display:none}
.workspace .detail-switch{padding:0 20px;margin:0 0 14px}
.workspace .detail-section .dp-act{position:static}
.workspace .detail-section .kl{height:clamp(160px,calc(100dvh - 320px),360px)}
.workspace .content{min-height:0}
.workspace #toastHost{display:contents}
.signal-filter{display:none}
.workspace [data-screen-label="今日"] .hero{grid-template-columns:1fr}
@media(max-width:720px){
  .workspace .signal-chips{display:none}
  .signal-filter{display:flex;gap:10px;align-items:center;font-size:12px;margin:8px 0}
  .signal-filter select{font:inherit;background:var(--card2);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px;flex:1}
}
@media(max-width:720px) and (max-height:740px){
  .workspace .top{padding:6px 10px!important;gap:5px}
  .workspace .workspace-destination{min-height:32px;padding:3px 10px}
  .workspace .strip{padding:5px 10px;min-height:0}
  .workspace .strip-stamp{margin-bottom:0}
  .workspace .content{padding:10px}
  .workspace .vh{flex-direction:row;align-items:flex-start;flex-wrap:nowrap;gap:8px;margin-bottom:8px}
  .workspace .vh>div:first-child{min-width:0;flex:1}
  .workspace .vh h1{font-size:22px}
  .workspace .vh .sub{font-size:11px;margin-top:4px;line-height:1.4}
  .workspace .vh-r{flex-shrink:0}
  .workspace .section-switch{margin-bottom:8px;gap:5px}
  .workspace tbody tr{padding:5px;gap:2px}
  .workspace tbody td,.workspace tbody td.hm{padding:4px!important;font-size:11px}
  .workspace .grid .tags{gap:3px}
  .workspace .grid .tag{font-size:10px}
  .workspace .day-h{margin:8px 0 5px}
  .workspace .history-picker{margin:4px 0}
  .workspace .empty{padding:12px 8px;overflow-wrap:anywhere}
  .workspace .pform.pf5{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:10px}
  .workspace .pform.pf5 label{min-width:0}
  .workspace .pform.pf5 label:last-of-type,.workspace .pform-b{grid-column:1/-1}
  .workspace .pform.pf5 input,.workspace .pform.pf5 select{width:100%;min-width:0}
}
