/* ANO Work Hub V5.20 - Pro UI layer (Dashboard, History, Planning, Actual OT, Reports, Master Site, Configuration, Backup) */
.pu-ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ---- unified cards & headings ---- */
#main .card{border-radius:16px;border:1px solid var(--line);box-shadow:0 1px 2px rgba(12,34,56,.05),0 6px 18px -12px rgba(12,34,56,.18)}
#main .card > h2:first-child,#main .section-head h2{font-size:1.02rem;letter-spacing:-.01em;font-weight:650}
#main .section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
#main label{font-weight:550}
#main input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),#main select,#main textarea{border-radius:11px;min-height:44px;transition:border-color .15s,box-shadow .15s}
#main input:focus-visible,#main select:focus-visible,#main textarea:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent)}
#main input[type=date],#main input[type=time],#main input[type=month]{font-variant-numeric:tabular-nums;font-weight:600}
#main .tiny{line-height:1.45}

/* ---- buttons in headers ---- */
#main button.pu-link{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:4px 10px;border-radius:999px;border:1px solid var(--line)!important;background:transparent!important;color:var(--blue)!important;font-size:.82rem;font-weight:600;box-shadow:none}
#main button.pu-link .pu-ic{width:15px;height:15px}

/* ---- drop zones ---- */
.pu-drop{position:relative;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;padding:14px;border:1.5px dashed color-mix(in srgb,var(--blue) 45%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--blue) 5%,var(--surface));cursor:pointer;transition:background .15s,border-color .15s}
.pu-drop:hover,.pu-drop.over{background:color-mix(in srgb,var(--blue) 11%,var(--surface));border-color:var(--blue)}
.pu-drop.has{border-style:solid;border-color:var(--mp-good);background:color-mix(in srgb,var(--mp-good) 7%,var(--surface))}
.pu-drop input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}
.pu-drop-ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--surface);border:1px solid var(--line);color:var(--blue)}
.pu-drop-ic .pu-ic{width:20px;height:20px}
.pu-drop-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 0}
.pu-drop-t small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pu-drop-t strong{font-size:.92rem;color:var(--ink)}
.pu-drop-t small{font-size:.74rem;color:var(--muted);font-weight:500;letter-spacing:.02em}
.pu-drop-f{display:flex;align-items:center;gap:8px;flex-basis:100%;padding:8px 10px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:.84rem;font-weight:600;color:var(--ink);min-width:0}
.pu-drop-f span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pu-drop-f[hidden]{display:none}
.pu-drop-f small{color:var(--muted);font-weight:500}
.pu-drop-f .pu-ic{color:var(--mp-good)}

/* ---- dashboard: week strip ---- */
.pu-days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:10px}
.pu-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 2px 7px;border-radius:12px;border:1px solid var(--line);background:var(--surface);min-width:0;position:relative}
.pu-day .pu-dw{font-size:.68rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.pu-day b{font-size:1.05rem;font-variant-numeric:tabular-nums;color:var(--ink)}
.pu-day em{display:block;width:70%;height:5px;border-radius:99px;margin:3px 0 1px;background:color-mix(in srgb,var(--muted) 25%,transparent)}
.pu-day small{font-size:.66rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px}
.pu-day.office em{background:var(--blue)}
.pu-day.home em{background:var(--mp-good)}
.pu-day.course em{background:#7c3aed}
.pu-day.hol em{background:var(--mp-warn)}
.pu-day.today{border-color:var(--blue);box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 25%,transparent)}
.pu-day.today::after{content:'';position:absolute;top:5px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--blue)}
.pu-leg{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px;font-size:.72rem;color:var(--muted)}
.pu-leg span{display:inline-flex;align-items:center;gap:5px}
.pu-leg i{width:9px;height:9px;border-radius:3px}
.pu-leg i.office{background:var(--blue)}.pu-leg i.home{background:var(--mp-good)}.pu-leg i.course{background:#7c3aed}.pu-leg i.hol{background:var(--mp-warn)}
#main button.pu-up-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px 4px;border:0!important;border-top:1px solid var(--line)!important;border-radius:0;background:transparent!important;color:var(--ink)!important;box-shadow:none;min-height:56px}
#main button.pu-up-row:first-of-type{border-top:0!important}
.pu-up-row > span:last-child{display:flex;flex-direction:column;min-width:0}
.pu-up-row strong{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pu-up-row small{color:var(--muted);font-size:.76rem}
.pu-up-d{display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;height:46px;border-radius:12px;background:color-mix(in srgb,#7c3aed 12%,transparent);color:#7c3aed;flex:none}
.pu-up-d b{font-size:1.05rem;line-height:1}.pu-up-d small{color:inherit!important;font-size:.66rem;font-weight:650;text-transform:uppercase}

/* ---- master site overview ---- */
.pu-sites .pu-hero h2{margin:0}
.pu-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
.pu-tiles:has(> div:nth-child(5)) > div:first-child{grid-column:1 / -1}
@media (min-width:700px){.pu-tiles{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.pu-tiles > div:first-child{grid-column:auto!important}}
.pu-tiles > div{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--blue) 5%,var(--surface));border:1px solid var(--line)}
.pu-tiles b{font-size:1.18rem;font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.01em}
.pu-tiles span{font-size:.72rem;color:var(--muted);font-weight:600}
.pu-tiles > div.warn b{color:var(--mp-warn)}
.pu-bar{height:6px;border-radius:99px;background:color-mix(in srgb,var(--muted) 18%,transparent);margin-top:12px;overflow:hidden}
.pu-bar i{display:block;height:100%;border-radius:inherit;background:var(--mp-good)}
.pu-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.pu-acts button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1 1 150px}
.master-status-item{border-radius:12px!important}
.master-dates{font-variant-numeric:tabular-nums}

/* ---- configuration ---- */
#main .choices.pu-tabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:8px;margin-top:10px}
#main .choices.pu-tabs > button{display:flex;align-items:flex-start;gap:10px;text-align:left;padding:11px 12px;min-height:62px;border-radius:13px;border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--ink)!important;box-shadow:none;font-weight:500}
#main .choices.pu-tabs > button .pu-ic{margin-top:2px;color:var(--blue)}
#main .choices.pu-tabs > button span{display:flex;flex-direction:column;gap:2px;min-width:0}
#main .choices.pu-tabs > button strong{font-size:.88rem;font-weight:650}
#main .choices.pu-tabs > button small{font-size:.72rem;color:var(--muted);line-height:1.3}
#main .choices.pu-tabs > button.selected{border-color:var(--blue)!important;background:color-mix(in srgb,var(--blue) 9%,var(--surface))!important;box-shadow:inset 0 0 0 1px var(--blue)}
.pu-filter{position:sticky;top:6px;z-index:3;display:flex!important;align-items:center;gap:8px;padding:6px 10px;margin:4px 0 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 4px 14px -10px rgba(0,0,0,.35)}
.pu-filter .pu-ic{color:var(--muted)}
#main .pu-filter input{border:0!important;box-shadow:none!important;min-height:38px!important;padding:0!important;background:transparent!important;flex:1}
.pu-count{font-size:.74rem;font-weight:700;color:var(--muted);padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--muted) 14%,transparent);font-variant-numeric:tabular-nums}
#configBody .item.pu-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:10px 12px;border-radius:12px;margin-bottom:6px}
#configBody .item.pu-row > :not(.actions){grid-column:1}
#configBody .item.pu-row > .actions{grid-column:2;grid-row:1 / span 3;display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end;margin:0}
#main #configBody .item.pu-row > .actions button{flex:none!important;width:auto!important;min-height:32px!important;padding:4px 12px!important;font-size:.78rem!important;border-radius:9px!important}
#configBody .item.pu-row{border:1px solid var(--line);background:var(--surface)}
#configBody .item.pu-row b{font-size:.9rem}
#configBody .item.pu-row p{font-size:.85rem}
#configBody .item.pu-row p,#configBody .item.pu-row small{margin:0}
#configBody .item.pu-row strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
#configBody .item.pu-row.off{opacity:.62}
@media (max-width:560px){#configBody .item.pu-row{grid-template-columns:1fr}#configBody .item.pu-row > .actions{grid-column:1;grid-row:auto;justify-content:flex-start;margin-top:6px}}

/* ---- backup ---- */
.pu-bkcard{display:flex;flex-direction:column;gap:12px}
.pu-bk{padding:14px;border-radius:14px;border:1px solid var(--line);background:color-mix(in srgb,var(--blue) 3%,var(--surface))}
.pu-bk h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:.95rem}
.pu-bk h3 .pu-ic{color:var(--blue)}
.pu-bk + .pu-bk h3 .pu-ic{color:var(--mp-warn)}
.pu-bk button.primary,.pu-bk button#restoreNow{width:100%}

/* ---- actual OT charge card ---- */
#chargeCard{border-radius:14px!important}
#chargeCard .cc-input{letter-spacing:.06em;font-weight:700}

/* ---- history ---- */
#recordList article.history-entry{border-radius:14px}
#recordList .hx-month{position:sticky;top:6px;z-index:2;backdrop-filter:blur(8px);background:color-mix(in srgb,var(--canvas) 85%,transparent);border-radius:10px;padding:6px 10px}

/* ---- dark ---- */
html[data-theme=dark] .pu-up-d{color:#b79cff}
@media (prefers-color-scheme:dark){html:not([data-theme]) .pu-up-d{color:#b79cff}}
html[data-theme=dark] #main .card,html:not([data-theme]) #main .card{}
html[data-theme=dark] #main .choices.pu-tabs > button,html[data-theme=dark] #main button.pu-up-row{background:var(--surface)!important;color:var(--ink)!important}
html[data-theme=dark] #main button.pu-up-row{background:transparent!important}
@media (prefers-color-scheme:dark){html:not([data-theme]) #main .choices.pu-tabs > button{background:var(--surface)!important;color:var(--ink)!important}html:not([data-theme]) #main button.pu-up-row{background:transparent!important;color:var(--ink)!important}}
@media print{.pu-week,.pu-up,.pu-sites,.pu-filter{display:none!important}}

/* ===== V5.21 Actual OT summary bar ===== */
.ao-bar{position:sticky;top:6px;z-index:6;margin:10px 0 12px;padding:10px 12px 8px;border-radius:14px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);box-shadow:0 8px 22px -14px rgba(12,34,56,.45)}
.ao-sum{display:flex;align-items:stretch;gap:6px;overflow-x:auto;scrollbar-width:none}
.ao-sum::-webkit-scrollbar{display:none}
.ao-sum > span{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:2px 8px;border-left:1px solid var(--line);flex:none}
.ao-sum > span:first-child{border-left:0;padding-left:0}
.ao-sum b{font-size:.95rem;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;line-height:1.2}
.ao-sum small{font-size:.66rem;color:var(--muted);font-weight:600;white-space:nowrap}
.ao-sum .miss b{color:var(--mp-warn)}
.ao-sum .ao-cc{flex:1 1 auto;min-width:90px}
.ao-sum .ao-cc b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;overflow:hidden;text-overflow:ellipsis}
.ao-chips{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:8px}
.ao-chips::-webkit-scrollbar{display:none}
#main .ao-chips button{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0;min-height:44px!important;padding:4px 2px!important;border-radius:10px!important;font-size:.66rem!important;white-space:nowrap;overflow:hidden;font-weight:600;border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--ink)!important;box-shadow:none!important;width:auto!important}
.ao-chips button i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-style:normal;font-size:.68rem;font-weight:700;background:color-mix(in srgb,var(--muted) 16%,transparent);color:var(--muted)}
.ao-chips button.ok i{background:var(--mp-good);color:#fff}
.ao-chips button.todo i{background:color-mix(in srgb,var(--mp-warn) 18%,transparent);color:var(--mp-warn)}
.ao-prog{display:none;margin-left:auto;flex:none;font-size:.74rem;color:var(--muted);padding-left:6px}
.ao-prog b{color:var(--ink)}
.ao-st{margin-left:auto;font-size:.66rem;font-weight:700;padding:2px 8px;border-radius:999px;letter-spacing:.02em}
h3.pro-h{display:flex;align-items:center;gap:8px}
.ao-st.ok{background:color-mix(in srgb,var(--mp-good) 14%,transparent);color:var(--mp-good)}
.ao-st.todo{background:color-mix(in srgb,var(--mp-warn) 15%,transparent);color:var(--mp-warn)}
.ao-review{border-radius:14px;padding:12px 14px;margin-bottom:12px;border:1px solid var(--line)}
.ao-review.ok{border-color:color-mix(in srgb,var(--mp-good) 45%,var(--line));background:color-mix(in srgb,var(--mp-good) 6%,var(--surface))}
.ao-review.warn{border-color:color-mix(in srgb,var(--mp-warn) 45%,var(--line));background:color-mix(in srgb,var(--mp-warn) 6%,var(--surface))}
.ao-rv-head{display:flex;flex-direction:column;gap:2px}
.ao-rv-head small{color:var(--muted);font-size:.76rem;font-variant-numeric:tabular-nums}
.ao-rv-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.ao-rv-list li{display:flex;align-items:center;gap:10px;font-size:.86rem}
.ao-rv-list li i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-style:normal;font-size:.72rem;font-weight:700;flex:none}
.ao-rv-list li.ok i{background:var(--mp-good);color:#fff}
.ao-rv-list li.todo i{background:var(--mp-warn);color:#fff}
.ao-rv-list li span{display:flex;flex-direction:column;flex:1;min-width:0}
.ao-rv-list li small{color:var(--muted);font-size:.74rem}
#main .ao-rv-list button{min-height:32px!important;padding:3px 12px!important;font-size:.78rem!important;width:auto!important;flex:none}

/* ===== Planning calendar ===== */
.pc-nav{display:flex;align-items:center;gap:6px}
.pc-nav span{font-weight:650;font-size:.88rem;min-width:110px;text-align:center}
#main .pc-nav button{min-height:34px!important;width:34px!important;padding:0!important;border-radius:10px!important}
.pc-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:10px}
.pc-dw{text-align:center;font-size:.66rem;font-weight:700;color:var(--muted);text-transform:uppercase;padding-bottom:2px}
#main .pc-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;aspect-ratio:1/1.08;min-height:0!important;padding:5px 0 3px!important;border-radius:10px!important;border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--ink)!important;box-shadow:none!important;width:auto!important;font-weight:500}
.pc-cell.blank{border:0;background:transparent}
.pc-cell b{font-size:.84rem;font-variant-numeric:tabular-nums}
.pc-k{display:block;width:62%;height:4px;border-radius:9px;background:transparent}
.pc-cell.office .pc-k{background:var(--blue)}.pc-cell.home .pc-k{background:var(--mp-good)}.pc-cell.course .pc-k{background:#7c3aed}.pc-cell.hol .pc-k{background:var(--mp-warn)}
.pc-cell.hol b{color:var(--mp-warn)}
.pc-dots{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
.pc-dots em,.pc-leg em{font-style:normal;font-size:.58rem;font-weight:700;min-width:13px;height:13px;line-height:13px;border-radius:7px;padding:0 3px;color:#fff;text-align:center}
em.p{background:var(--blue)}em.r{background:var(--mp-good)}em.d{background:var(--mp-warn)}
#main .pc-cell.today{border-color:var(--blue)!important;box-shadow:inset 0 0 0 1px var(--blue)!important}
#main .pc-cell.sel{background:color-mix(in srgb,var(--blue) 12%,var(--surface))!important;border-color:var(--blue)!important}
.pc-leg{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;font-size:.7rem;color:var(--muted)}
.pc-leg span{display:inline-flex;align-items:center;gap:5px}
.pc-leg i{width:12px;height:4px;border-radius:9px}
.pc-leg i.office{background:var(--blue)}.pc-leg i.home{background:var(--mp-good)}.pc-leg i.course{background:#7c3aed}.pc-leg i.hol{background:var(--mp-warn)}
.pc-day{margin-top:12px;padding:12px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--blue) 4%,var(--surface))}
.pc-day-h{display:flex;flex-direction:column;margin-bottom:6px}
.pc-day-h small{color:var(--muted);font-size:.74rem}
.pc-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.pc-row > span:first-child{display:flex;flex-direction:column;min-width:0}
.pc-row b{font-size:.88rem}.pc-row small{color:var(--muted);font-size:.74rem}
.pc-acts{display:flex;gap:6px;align-items:center;flex:none}
#main .pc-acts button,#main .pc-day-acts button,#main .pc-bulk button{min-height:34px!important;padding:4px 12px!important;font-size:.8rem!important;width:auto!important}
.pc-badge{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:99px}
.pc-badge.done{background:color-mix(in srgb,var(--mp-good) 15%,transparent);color:var(--mp-good)}
.pc-badge.progress{background:color-mix(in srgb,var(--mp-warn) 15%,transparent);color:var(--mp-warn)}
.pc-day-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.pc-bulk button{white-space:nowrap}
.pc-bulk{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:.84rem}
.pc-tip{margin-top:10px}
.pb-list{display:flex;flex-direction:column;gap:4px;max-height:50vh;overflow:auto}
.pb-row{display:flex!important;gap:10px;align-items:flex-start;padding:8px 4px;border-bottom:1px solid var(--line)}
.pb-row span{display:flex;flex-direction:column}.pb-row small{color:var(--muted);font-size:.76rem}

/* ===== History ===== */
#main #historyFilters{display:flex!important;flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none;padding-bottom:2px}
#main #historyFilters::-webkit-scrollbar{display:none}
#main #historyFilters > button{flex:none!important;width:auto!important;min-height:36px!important;padding:4px 12px!important;border-radius:999px!important;font-size:.82rem!important}
#main .history-hub .section-head{flex-wrap:wrap}
#main button.hx-seltg{min-height:40px!important;width:auto!important}
#main button.hx-seltg.on{border-color:var(--blue)!important;color:var(--blue)!important}
#recordList.hx-selmode article.history-entry{padding-left:46px;position:relative;cursor:pointer}
#recordList.hx-selmode .hx-menu,#recordList.hx-selmode .hx-kebab{display:none!important}
.hx-cb{position:absolute;left:12px;top:14px;margin:0}
.hx-cb input{width:22px;height:22px;accent-color:var(--blue)}
#recordList article.hx-picked{border-color:var(--blue)!important;background:color-mix(in srgb,var(--blue) 6%,var(--surface))!important}
.hx-selbar{position:sticky;bottom:10px;z-index:8;display:flex;align-items:center;gap:6px;margin:12px 0 4px;padding:8px 10px;border-radius:14px;background:var(--navy,#0c2238);color:#fff;box-shadow:0 12px 28px -12px rgba(0,0,0,.55)}
.hx-selbar span{flex:1;font-size:.84rem}
#main .hx-selbar button{min-height:36px!important;padding:4px 12px!important;width:auto!important;border-radius:10px!important;background:rgba(255,255,255,.12)!important;color:#fff!important;border:0!important;font-size:.8rem!important;box-shadow:none!important}
#main .hx-selbar button.danger{background:#c8343e!important}
#main .hx-selbar button:disabled{opacity:.45}

/* ===== Reports ===== */
.pu-chiprow{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-top:8px;padding-bottom:2px}
.pu-chiprow::-webkit-scrollbar{display:none}
#main .pu-chiprow button{flex:none!important;width:auto!important;min-height:32px!important;padding:3px 11px!important;border-radius:999px!important;font-size:.78rem!important;border:1px solid var(--line)!important;background:var(--surface)!important;color:var(--ink)!important;box-shadow:none!important}
#main .pu-chiprow button.on{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}
.pu-chart-leg{display:flex;gap:10px;font-size:.72rem;color:var(--muted)}
.pu-chart-leg span{display:inline-flex;align-items:center;gap:5px}
.pu-chart-leg i{width:10px;height:10px;border-radius:3px}
.pu-chart-leg i.h,.pu-bpair span.h{background:var(--blue)}
.pu-chart-leg i.k,.pu-bpair span.k{background:var(--mp-good)}
.pu-bars{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:4px;height:160px;margin-top:14px;align-items:end;border-bottom:1px solid var(--line)}
.pu-bcol{display:flex;flex-direction:column;height:100%;min-width:0}
.pu-bpair{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px;padding-top:16px}
.pu-bpair span{position:relative;width:min(22px,42%);min-height:2px;border-radius:4px 4px 0 0}
.pu-bpair em{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-style:normal;font-size:.56rem;font-weight:700;color:var(--muted);white-space:nowrap;padding-bottom:1px}
.pu-bcol small{font-size:.6rem;color:var(--muted);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:4px 0 0;margin-bottom:-18px}
.pu-chart .tiny{margin-top:24px}
#main button.pu-prev{display:flex;align-items:center;gap:10px;width:100%;margin:6px 0 10px;padding:12px 14px!important;border-radius:12px!important;border:1.5px solid var(--blue)!important;background:color-mix(in srgb,var(--blue) 8%,var(--surface))!important;color:var(--ink)!important;text-align:left;box-shadow:none!important}
.pu-prev span{display:flex;flex-direction:column}.pu-prev strong{color:var(--blue)}.pu-prev small{color:var(--muted);font-size:.76rem}
.rv-page{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--surface)}
.rv-h{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding-bottom:10px;border-bottom:2px solid var(--ink)}
.rv-h small{display:block;font-size:.64rem;letter-spacing:.12em;color:var(--muted);font-weight:700}
.rv-h strong{font-size:1rem}.rv-h > span{font-size:.78rem;color:var(--muted);text-align:right}
.rv-k{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}
.rv-k div{display:flex;flex-direction:column;padding:8px;border-radius:10px;background:color-mix(in srgb,var(--blue) 6%,var(--surface))}
.rv-k b{font-size:1.05rem;font-variant-numeric:tabular-nums}.rv-k span{font-size:.68rem;color:var(--muted);font-weight:600}
.rv-warn,.rv-ok{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;font-size:.8rem;margin-bottom:10px}
.rv-warn{background:color-mix(in srgb,var(--mp-warn) 12%,transparent);color:var(--mp-warn)}
.rv-ok{background:color-mix(in srgb,var(--mp-good) 12%,transparent);color:var(--mp-good)}
.rv-scroll{overflow-x:auto}
.rv-t{width:100%;border-collapse:collapse;font-size:.76rem;font-variant-numeric:tabular-nums}
.rv-t th{text-align:left;font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 4px;border-bottom:1px solid var(--line)}
.rv-t td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}
.rv-t td small{display:block;color:var(--muted);font-size:.68rem}
.rv-t tr.draft td{opacity:.6}
.rv-t td.miss{color:var(--mp-warn);font-weight:700}
.rv-t td.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem}
.rv-t tfoot td{font-weight:700;border-top:2px solid var(--ink);border-bottom:0}
.rv-acts button{flex:1}
@media print{.ao-bar,.pu-cal,.hx-selbar,.pu-chart,.pu-chiprow,.pu-prev{display:none!important}}
#main .pc-cell.blank{border:0!important;background:transparent!important}

/* ===== V5.22 multi-file master import ===== */
.mb-hint{margin-top:6px;color:var(--muted)}
.mb-panel{margin-top:12px;display:flex;flex-direction:column;gap:10px}
.mb-head{display:flex;flex-direction:column;gap:2px}
.mb-head small{color:var(--muted);font-size:.78rem}
.mb-group{border:1px solid var(--line);border-radius:14px;padding:10px;background:color-mix(in srgb,var(--blue) 3%,var(--surface))}
.mb-gh{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted);margin-bottom:8px;flex-wrap:wrap}
.mb-gh b{color:var(--ink)}
.mb-ds{font-weight:800;font-size:.74rem;padding:3px 10px;border-radius:99px;color:#fff;background:var(--blue);letter-spacing:.04em}
.mb-ds.dsr{background:#7c3aed}
.mb-file{border:1px solid var(--line);border-radius:12px;padding:10px;background:var(--surface);margin-top:8px}
.mb-file.off{opacity:.6}
.mb-row1{display:flex;align-items:flex-start;gap:8px}
.mb-inc input{width:20px;height:20px;margin-top:2px}
.mb-step{display:grid;place-items:center;flex:none;width:24px;height:24px;border-radius:50%;background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue);font-size:.74rem;font-weight:800}
.mb-name{display:flex;flex-direction:column;min-width:0;flex:1}
.mb-name b{font-size:.88rem;overflow-wrap:anywhere}
.mb-name small{color:var(--muted);font-size:.72rem}
.mb-row2{display:grid;grid-template-columns:1fr 110px;gap:8px;margin-top:8px}
.mb-row2 label{font-size:.76rem}
.mb-counts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.mb-counts span{display:inline-flex;align-items:baseline;gap:4px;font-size:.72rem;color:var(--muted);padding:3px 8px;border-radius:99px;background:color-mix(in srgb,var(--muted) 10%,transparent)}
.mb-counts b{font-size:.82rem;color:var(--ink);font-variant-numeric:tabular-nums}
.mb-counts .add b{color:var(--mp-good)}.mb-counts .upd b{color:var(--blue)}.mb-counts .bad b{color:#c8343e}
.mb-note{margin:6px 0 0;font-size:.76rem;padding:6px 9px;border-radius:9px}
.mb-note.warn{background:color-mix(in srgb,var(--mp-warn) 12%,transparent);color:var(--mp-warn)}
.mb-note.bad{background:color-mix(in srgb,#c8343e 10%,transparent);color:#c8343e}
.mb-force{margin-top:6px;font-size:.8rem}
.mb-sum{font-weight:650;font-size:.86rem}
.mb-acts{display:flex;gap:8px}
.mb-acts button{flex:1}

/* ---- V5.23 export file preview ---- */
.ep-wrap{display:flex;flex-direction:column;gap:10px}
.ep-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ep-meta span{display:flex;flex-direction:column;padding:8px 9px;border-radius:11px;background:color-mix(in srgb,var(--blue) 6%,var(--surface));border:1px solid var(--line);min-width:0}
.ep-meta b{font-size:.9rem;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-meta small{font-size:.66rem;color:var(--muted);font-weight:600}
@media(max-width:420px){.ep-meta{grid-template-columns:repeat(2,1fr)}}
.ep-warn{margin:0;font-size:.8rem;padding:7px 10px;border-radius:10px;background:color-mix(in srgb,var(--mp-warn) 12%,transparent);color:var(--mp-warn)}
.ep-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.ep-tabs button{flex:none;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:.78rem;font-weight:650;min-height:0;margin:0}
.ep-tabs button em{font-style:normal;font-size:.7rem;padding:1px 6px;border-radius:99px;background:color-mix(in srgb,var(--muted) 14%,transparent);color:var(--muted)}
.ep-tabs button.nil{opacity:.55}
.ep-tabs button.on{background:var(--blue);border-color:var(--blue);color:#fff;opacity:1}
.ep-tabs button.on em{background:rgba(255,255,255,.22);color:#fff}
.ep-info{font-size:.8rem;color:var(--muted)}.ep-info b{color:var(--ink)}
.ep-scroll{overflow:auto;max-height:55vh;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ep-t{border-collapse:collapse;font-size:.74rem;min-width:100%}
.ep-t th{position:sticky;top:0;background:color-mix(in srgb,var(--blue) 10%,var(--surface));color:var(--ink);text-align:left;font-weight:750;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap;z-index:1}
.ep-t td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}
.ep-scroll.doc .ep-t td{white-space:normal;max-width:none;min-width:70px}
.ep-scroll.doc .ep-t td:nth-child(3){min-width:220px}
.ep-t .ep-n{color:var(--muted);text-align:right;width:1%}
.ep-t tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--muted) 4%,transparent)}
.ep-nil{color:var(--muted);opacity:.6}
.ep-empty{margin:0;padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.82rem;text-align:center}
.ep-always{font-size:.82rem}
.ep-acts{display:flex;gap:8px}.ep-acts button{flex:1;margin:0}
/* V5.24 route choice */
.rc,.rc-res{display:flex;flex-direction:column;gap:9px;margin:10px 0;padding:12px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--blue) 5%,var(--surface)),var(--surface))}
.rc-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.rc-h span{display:flex;flex-direction:column;min-width:0}
.rc-h b{font-size:.92rem;color:var(--ink)}
.rc-h small{font-size:.7rem;color:var(--muted);font-weight:600}
.rc-pro{font-style:normal;font-size:.62rem;font-weight:800;letter-spacing:.08em;padding:3px 7px;border-radius:99px;color:#fff;background:linear-gradient(135deg,var(--blue),color-mix(in srgb,var(--blue) 55%,#7b3fe4))}
.rc-ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rc-seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.rc-seg button{display:flex;align-items:flex-start;gap:7px;text-align:left;padding:9px 9px;margin:0;min-height:0;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:600;transition:border-color .15s,background .15s}
.rc-seg button span{display:flex;flex-direction:column;min-width:0}
.rc-seg button strong{font-size:.8rem;line-height:1.2}
.rc-seg button small{font-size:.66rem;color:var(--muted);font-weight:500;line-height:1.25}
.rc-seg button .rc-ic{color:var(--muted);margin-top:1px}
.rc-seg button.on{border-color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,var(--surface));box-shadow:0 0 0 1px var(--blue) inset}
.rc-seg button.on .rc-ic{color:var(--blue)}
.rc-note{margin:0;font-size:.72rem;color:var(--muted);line-height:1.4}
.rc-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.rc-tiles.n4{grid-template-columns:repeat(2,1fr)}
.rc-tile{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:9px 10px;margin:0;min-height:0;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:left}
.rc-tile .rc-ic{color:var(--muted);width:16px;height:16px;margin-bottom:2px}
.rc-tile small{font-size:.66rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.rc-tile b{font-size:.98rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.rc-tile span{font-size:.74rem;color:var(--muted);font-variant-numeric:tabular-nums}
.rc-tile i{font-style:normal;font-size:.66rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.rc-tile i.dn{color:var(--mp-good)}.rc-tile i.up{color:var(--mp-warn)}
.rc-tile.on{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue) inset;background:color-mix(in srgb,var(--blue) 8%,var(--surface))}
.rc-tile.on .rc-ic{color:var(--blue)}
.rc-legs{border-top:1px solid var(--line);padding-top:6px}
.rc-legs summary{font-size:.78rem;font-weight:700;cursor:pointer;color:var(--ink)}
.rc-leg{display:flex;flex-direction:column;gap:5px;padding:8px 0;border-bottom:1px dashed var(--line)}
.rc-leg:last-child{border-bottom:0}
.rc-lh{display:flex;align-items:center;gap:7px;font-size:.76rem;color:var(--muted);min-width:0}
.rc-lh span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-lh b{color:var(--ink)}
.rc-lh em{font-style:normal;flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.66rem;font-weight:800;background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue)}
.rc-chips{display:flex;flex-wrap:wrap;gap:5px;padding-left:27px}
.rc-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;margin:0;min-height:0;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:.74rem;font-weight:600;font-variant-numeric:tabular-nums}
.rc-chip b{font-size:.68rem;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--muted) 15%,transparent)}
.rc-chip i{font-style:normal;font-size:.6rem;font-weight:800;padding:1px 5px;border-radius:99px;text-transform:uppercase}
.rc-chip i.f{background:color-mix(in srgb,var(--blue) 14%,transparent);color:var(--blue)}
.rc-chip i.s{background:color-mix(in srgb,var(--mp-good) 16%,transparent);color:var(--mp-good)}
.rc-chip.on{border-color:var(--blue);background:var(--blue);color:#fff}
.rc-chip.on b{background:rgba(255,255,255,.25)}
.rc-chip.on i{background:rgba(255,255,255,.22);color:#fff}
@media (max-width:560px){.rc-seg{grid-template-columns:repeat(2,1fr)}.rc-tile{padding:8px 7px}.rc-tile i{font-size:.6rem}.rc-tile b{font-size:.9rem}}
/* V5.25 calendar views + range select */
.pc-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pc-title{display:flex;flex-direction:column;min-width:0}
.pc-title h2{margin:0}
.pc-title small{font-size:.72rem;color:var(--muted);font-weight:600}
.pc-tools{display:flex;align-items:center;gap:6px;flex:none}
.pc-seg{display:inline-flex;padding:3px;border-radius:11px;background:color-mix(in srgb,var(--muted) 12%,transparent)}
#main .pc-seg button{min-height:30px!important;width:auto!important;padding:3px 11px!important;margin:0!important;border:0!important;border-radius:8px!important;background:transparent!important;color:var(--muted)!important;font-size:.76rem!important;font-weight:700;box-shadow:none!important}
#main .pc-seg button.on{background:var(--surface)!important;color:var(--ink)!important;box-shadow:0 1px 3px rgba(0,0,0,.12)!important}
#main .pc-eye{min-height:34px!important;width:34px!important;padding:0!important;margin:0!important;border-radius:10px!important;display:grid;place-items:center}
.pc-eye svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.pu-cal.hidden-cal{padding-top:12px;padding-bottom:12px}
.pu-cal .pc-nav{justify-content:center;margin-top:10px}
#main .pc-nav .pc-today{width:auto!important;padding:0 10px!important;font-size:.74rem!important;font-weight:700}
.pc-grid.week .pc-dw{display:none}
#main .pc-grid.week .pc-cell{aspect-ratio:auto;min-height:68px!important;padding:6px 0 5px!important}
.pc-wd{font-size:.62rem;font-weight:700;color:var(--muted);text-transform:uppercase}
.pc-cell{touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:background .12s,border-color .12s}
.pu-cal.dragging,.pu-cal.dragging *{cursor:cell;user-select:none}
#main .pc-cell.rng{background:color-mix(in srgb,var(--blue) 22%,var(--surface))!important;border-color:var(--blue)!important}
#main .pc-cell.pick{background:var(--blue)!important;border-color:var(--blue)!important;color:#fff!important}
#main .pc-cell.pick b,#main .pc-cell.pick .pc-wd{color:#fff!important}
#main .pc-cell.pick .pc-k{background:rgba(255,255,255,.75)!important}
.pu-cal.picking{border-color:color-mix(in srgb,var(--blue) 45%,var(--line))}
.pc-selbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:10px;padding:9px 11px;border-radius:12px;background:color-mix(in srgb,var(--blue) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line))}
.pc-selbar > span:first-child{display:flex;flex-direction:column;font-size:.82rem}.pc-selbar > span:first-child b{font-size:.95rem;margin-right:2px}
.pc-selbar small{font-size:.7rem;color:var(--muted)}
.pc-selacts{display:flex;gap:6px;flex-wrap:wrap}
#main .pc-selacts button{min-height:32px!important;width:auto!important;padding:3px 11px!important;font-size:.76rem!important;margin:0!important}
.plan-picked{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 10px}
@media (hover:hover){#main .pc-cell:not(.blank):hover{border-color:color-mix(in srgb,var(--blue) 55%,var(--line))!important}}
