:root{--bg:#f1f5f9;--bg-card:#fff;--text:#0f172a;--text-muted:#64748b;--border:#e2e8f0;--border-strong:#cbd5e1;--primary:#4f46e5;--primary-light:#eef2ff;--success:#059669;--warning:#d97706;--danger:#dc2626;--info:#2563eb;--shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-lg:0 16px 48px rgba(0,0,0,.16);--d-bg:#d1fae5;--d-fg:#065f46;--n-bg:#dbeafe;--n-fg:#1e3a8a;--al-bg:#fef3c7;--al-fg:#92400e;--ro-bg:#fee2e2;--ro-fg:#991b1b;--x-bg:#e2e8f0;--x-fg:#475569;--eon-bg:#ede9fe;--eon-fg:#5b21b6;--eoff-bg:#fce7f3;--eoff-fg:#9d174d;--exc-bg:#d1fae5;--exc-fg:#065f46;--gd-bg:#dbeafe;--gd-fg:#1e40af;--pos-bg:#fef3c7;--pos-fg:#92400e;--wk-bg:#fee2e2;--wk-fg:#991b1b;--easy-bg:#d1fae5;--easy-fg:#065f46;--norm-bg:#dbeafe;--norm-fg:#1e3a8a;--heav-bg:#fef3c7;--heav-fg:#92400e;--risk-bg:#fee2e2;--risk-fg:#991b1b;--weekend-bg:#f8fafc;--today-ring:#4f46e5}

@media(prefers-color-scheme:dark){:root{--bg:#0b1220;--bg-card:#131c2e;--text:#f1f5f9;--text-muted:#94a3b8;--border:#1f2a44;--border-strong:#2a3756;--primary:#818cf8;--primary-light:#312e81;--success:#10b981;--warning:#fbbf24;--danger:#f87171;--info:#60a5fa;--d-bg:#064e3b;--d-fg:#6ee7b7;--n-bg:#1e3a8a;--n-fg:#93c5fd;--al-bg:#78350f;--al-fg:#fcd34d;--ro-bg:#7f1d1d;--ro-fg:#fca5a5;--x-bg:#1e293b;--x-fg:#94a3b8;--eon-bg:#4c1d95;--eon-fg:#c4b5fd;--eoff-bg:#831843;--eoff-fg:#f9a8d4;--exc-bg:#064e3b;--exc-fg:#6ee7b7;--gd-bg:#1e3a8a;--gd-fg:#93c5fd;--pos-bg:#78350f;--pos-fg:#fcd34d;--wk-bg:#7f1d1d;--wk-fg:#fca5a5;--easy-bg:#064e3b;--easy-fg:#6ee7b7;--norm-bg:#1e3a8a;--norm-fg:#93c5fd;--heav-bg:#78350f;--heav-fg:#fcd34d;--risk-bg:#7f1d1d;--risk-fg:#fca5a5;--weekend-bg:#0f1729;--today-ring:#a5b4fc}}

*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}

body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;height:100vh;height:100dvh;overflow:hidden;display:flex;flex-direction:column;overscroll-behavior:none}

.app-header{flex-shrink:0;background:var(--bg-card);border-bottom:1px solid var(--border);padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:6px}

.app-title{font-size:16px;font-weight:700;display:flex;align-items:center;gap:7px;min-width:0;flex:1}.app-title .emoji{font-size:18px;flex-shrink:0}.app-title .txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.header-actions{display:flex;gap:4px;flex-shrink:0;align-items:center}

.icon-btn{width:38px;height:38px;border:none;background:transparent;border-radius:9px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font-size:17px;transition:background .15s}.icon-btn:active{background:var(--border)}

.hdr-chip{height:32px;padding:0 11px;border:none;border-radius:16px;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:5px;transition:all .15s;white-space:nowrap}

.hdr-chip.today-chip{background:var(--primary-light);color:var(--primary)}.hdr-chip.today-chip:active{background:var(--primary);color:#fff}

.hdr-chip.swap-chip{background:var(--primary);color:#fff}.hdr-chip.swap-chip:active{opacity:.85}

.hdr-chip.summary-chip{background:var(--bg);border:1px solid var(--border);color:var(--text-muted)}.hdr-chip.summary-chip:active{border-color:var(--primary);color:var(--primary)}

.screen{flex:1;min-height:0;display:none}.screen.show{display:flex;flex-direction:column}

#uploadScreen.show{display:block;overflow-y:auto}

.upload-inner{max-width:480px;margin:0 auto;padding:28px 18px calc(28px + env(safe-area-inset-bottom))}

.hero{text-align:center;margin-bottom:24px}.hero .icon-box{width:68px;height:68px;background:var(--primary-light);border-radius:18px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:34px}.hero h1{font-size:20px;font-weight:700;margin-bottom:5px}.hero p{color:var(--text-muted);font-size:14px}.creator-tag{margin-top:10px;font-size:12px;color:var(--text-muted);font-weight:600}.creator-tag strong{color:var(--primary)}

.upload-tabs{display:flex;gap:4px;background:var(--bg-card);border-radius:12px;padding:4px;margin-bottom:14px;border:1px solid var(--border)}.upload-tab{flex:1;padding:9px;background:transparent;border:none;border-radius:9px;color:var(--text-muted);font-size:14px;font-weight:600;cursor:pointer}.upload-tab.active{background:var(--primary);color:#fff}

.tab-pane{display:none}.tab-pane.active{display:block}

.drop-zone{width:100%;padding:32px 18px;border:2px dashed var(--border-strong);border-radius:14px;background:var(--bg-card);text-align:center;cursor:pointer;transition:all .2s}.drop-zone:active,.drop-zone.dragover{border-color:var(--primary);background:var(--primary-light)}.drop-zone .file-icon{font-size:30px;margin-bottom:9px}.drop-zone .label{font-weight:600;font-size:15px;margin-bottom:4px}.drop-zone .hint{font-size:12px;color:var(--text-muted)}

.text-area{width:100%;min-height:180px;padding:12px;font-size:15px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;color:var(--text);font-family:ui-monospace,monospace;resize:vertical}.text-area:focus{outline:none;border-color:var(--primary)}

.btn-primary{width:100%;padding:13px;background:var(--primary);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;margin-top:10px}.btn-primary:active{transform:scale(.99)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}

.btn-danger{width:100%;padding:11px;background:transparent;color:var(--danger);border:1px solid var(--danger);border-radius:12px;font-size:14px;font-weight:600;cursor:pointer;margin-top:8px}

.info-bar{flex-shrink:0;padding:8px 14px;background:var(--bg-card);border-bottom:1px solid var(--border);display:flex;gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.info-bar::-webkit-scrollbar{display:none}.info-item{flex-shrink:0}.info-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.info-value{font-size:14px;font-weight:600;margin-top:2px}

.toolbar{flex-shrink:0;padding:9px 12px;display:flex;gap:7px;background:var(--bg);border-bottom:1px solid var(--border)}.focus-note{display:none;flex-shrink:0;padding:6px 12px;background:rgba(79,70,229,.08);border-bottom:1px solid var(--border);font-size:11px;line-height:1.35;color:var(--text-muted)}.focus-note strong{color:var(--primary)}.focus-note .key{display:block;margin-top:2px;font-size:10px;opacity:.85}.search-wrap{flex:1;position:relative}.search-wrap input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--border);background:var(--bg-card);border-radius:10px;font-size:16px;color:var(--text);-webkit-appearance:none}.search-wrap input:focus{outline:none;border-color:var(--primary)}.search-wrap::before{content:"🔍";position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.45}

.pill-btn{flex-shrink:0;padding:8px 13px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:5px}.pill-btn.active{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.pill-btn .badge{background:var(--primary);color:#fff;font-size:10px;padding:1px 6px;border-radius:6px;min-width:18px;text-align:center}

.grid-wrap{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:var(--bg-card);position:relative;isolation:isolate}

.grid-table{border-collapse:separate;border-spacing:0;font-size:12px}.grid-table th,.grid-table td{padding:0;margin:0;vertical-align:middle;text-align:center;background-color:var(--bg-card);white-space:nowrap;box-shadow:inset -1px -1px 0 var(--border)}

.grid-table thead th.date-cell{position:-webkit-sticky;position:sticky;top:0;z-index:30;background-color:var(--bg-card);min-width:40px;width:40px;padding:5px 0;font-size:11px;line-height:1.2;font-weight:600}.grid-table thead th.date-cell .dow{font-weight:700}.grid-table thead th.date-cell .md{font-size:10px;color:var(--text-muted);margin-top:1px}.grid-table thead th.date-cell.weekend{background-color:var(--weekend-bg)}.grid-table thead th.date-cell.today{background-color:var(--primary-light);color:var(--primary);box-shadow:inset -1px -1px 0 var(--border),inset 0 -3px 0 var(--today-ring)}.grid-table thead th.date-cell.today .md{color:var(--primary);font-weight:700}

.grid-table tbody th.name-cell{position:-webkit-sticky;position:sticky;left:0;z-index:20;background-color:var(--bg-card);min-width:130px;max-width:130px;text-align:left;padding:7px 9px;font-weight:500;cursor:pointer;box-shadow:inset -1px -1px 0 var(--border),2px 0 4px -2px rgba(0,0,0,.08)}.grid-table tbody th.name-cell:active{background-color:var(--bg)}.grid-table tbody th.name-cell .nm{font-size:12px;line-height:1.25;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.grid-table tbody th.name-cell .rl{font-size:10px;color:var(--text-muted);margin-top:2px;font-weight:400}

.grid-table thead th.corner-cell{position:-webkit-sticky;position:sticky;top:0;left:0;z-index:40;background-color:var(--bg-card);min-width:130px;max-width:130px;text-align:left;padding:7px 9px;font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;box-shadow:inset -1px -1px 0 var(--border),2px 2px 4px -2px rgba(0,0,0,.08)}

.stat-cell{height:38px;font-weight:700;font-size:12px;cursor:pointer}.stat-cell.weekend{background-color:var(--weekend-bg)}.stat-cell.today{box-shadow:inset -1px -1px 0 var(--border),inset 0 -2px 0 var(--today-ring)}

.stat-cell.s-D{background-color:var(--d-bg);color:var(--d-fg)}.stat-cell.s-N{background-color:var(--n-bg);color:var(--n-fg)}.stat-cell.s-AL{background-color:var(--al-bg);color:var(--al-fg)}.stat-cell.s-RO{background-color:var(--ro-bg);color:var(--ro-fg)}.stat-cell.s-X{background-color:var(--x-bg);color:var(--x-fg)}.stat-cell.s-EON{background-color:var(--eon-bg);color:var(--eon-fg)}.stat-cell.s-EOFF{background-color:var(--eoff-bg);color:var(--eoff-fg)}.stat-cell.empty{color:var(--text-muted);opacity:.3}

.my-row th.name-cell{border-left:3px solid var(--primary)!important;background-color:var(--primary-light)!important}.my-row th.name-cell .nm{color:var(--primary);font-weight:700}

.grid-wrap.compact .grid-table thead th.date-cell{min-width:28px;width:28px;padding:3px 0;font-size:10px}.grid-wrap.compact .grid-table thead th.date-cell .md{font-size:9px}.grid-wrap.compact .stat-cell{height:30px;font-size:11px}.grid-wrap.compact .grid-table tbody th.name-cell{min-width:100px;max-width:100px;padding:5px 7px}.grid-wrap.compact .grid-table tbody th.name-cell .nm{font-size:11px}.grid-wrap.compact .grid-table thead th.corner-cell{min-width:100px;max-width:100px;padding:5px 7px;font-size:8px}

.legend{flex-shrink:0;padding:7px 12px;padding-bottom:calc(7px + env(safe-area-inset-bottom));display:flex;gap:9px;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--bg-card);border-top:1px solid var(--border);scrollbar-width:none}.legend::-webkit-scrollbar{display:none}.leg-item{flex-shrink:0;display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-muted)}.leg-box{width:18px;height:18px;border-radius:4px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}

.leg-D{background:var(--d-bg);color:var(--d-fg)}.leg-N{background:var(--n-bg);color:var(--n-fg)}.leg-AL{background:var(--al-bg);color:var(--al-fg)}.leg-RO{background:var(--ro-bg);color:var(--ro-fg)}.leg-X{background:var(--x-bg);color:var(--x-fg)}.leg-EON{background:var(--eon-bg);color:var(--eon-fg)}.leg-EOFF{background:var(--eoff-bg);color:var(--eoff-fg)}

.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.48);opacity:0;pointer-events:none;transition:opacity .22s;z-index:50}.sheet-backdrop.show{opacity:1;pointer-events:auto}

.sheet{position:fixed;left:0;right:0;bottom:0;background:var(--bg-card);border-radius:18px 18px 0 0;padding:8px 18px calc(20px + env(safe-area-inset-bottom));max-height:91dvh;overflow-y:auto;transform:translateY(100%);transition:transform .26s cubic-bezier(.32,.72,0,1);z-index:55;box-shadow:var(--shadow-lg)}.sheet.show{transform:translateY(0)}.sheet .handle{width:36px;height:4px;background:var(--border-strong);border-radius:2px;margin:6px auto 14px}.sheet h3{font-size:17px;font-weight:700;margin-bottom:4px}.sheet .sub{font-size:13px;color:var(--text-muted);margin-bottom:16px}

.sheet-section{margin-bottom:18px}.sheet-section-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:700;margin-bottom:8px}

.chip-row{display:flex;gap:6px;flex-wrap:wrap}.chip{padding:7px 12px;background:var(--bg);border:1px solid var(--border);border-radius:18px;font-size:13px;font-weight:500;cursor:pointer;color:var(--text)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}

.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--border);gap:12px}.toggle-row:last-child{border-bottom:none}.toggle-row .lbl{font-size:15px;font-weight:500}.toggle-row .desc{font-size:12px;color:var(--text-muted);margin-top:2px}

.switch{flex-shrink:0;width:46px;height:27px;background:var(--border-strong);border-radius:14px;position:relative;cursor:pointer;transition:background .2s}.switch::after{content:"";position:absolute;top:2px;left:2px;width:23px;height:23px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:var(--shadow-sm)}.switch.on{background:var(--primary)}.switch.on::after{transform:translateX(19px)}

.emp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:14px}.emp-stat{padding:7px 4px;border-radius:8px;text-align:center}.emp-stat .v{font-size:17px;font-weight:700;line-height:1.1}.emp-stat .l{font-size:9px;opacity:.8;margin-top:2px}

.emp-stat.s-D{background:var(--d-bg);color:var(--d-fg)}.emp-stat.s-N{background:var(--n-bg);color:var(--n-fg)}.emp-stat.s-AL{background:var(--al-bg);color:var(--al-fg)}.emp-stat.s-RO{background:var(--ro-bg);color:var(--ro-fg)}.emp-stat.s-X{background:var(--x-bg);color:var(--x-fg)}.emp-stat.s-EON{background:var(--eon-bg);color:var(--eon-fg)}.emp-stat.s-EOFF{background:var(--eoff-bg);color:var(--eoff-fg)}

.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-grid .dow-hd{font-size:9px;font-weight:700;color:var(--text-muted);text-align:center;padding:3px 0;text-transform:uppercase}

.cal-cell{aspect-ratio:1;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;background:var(--bg);border:1px solid var(--border);gap:1px}.cal-cell.pad{background:transparent;border:none}.cal-cell .dn{font-weight:700;font-size:11px}.cal-cell .dc{font-size:9px;opacity:.9;font-weight:700}

.cal-cell.s-D{background:var(--d-bg);color:var(--d-fg);border-color:transparent}.cal-cell.s-N{background:var(--n-bg);color:var(--n-fg);border-color:transparent}.cal-cell.s-AL{background:var(--al-bg);color:var(--al-fg);border-color:transparent}.cal-cell.s-RO{background:var(--ro-bg);color:var(--ro-fg);border-color:transparent}.cal-cell.s-X{background:var(--x-bg);color:var(--x-fg);border-color:transparent}.cal-cell.s-EON{background:var(--eon-bg);color:var(--eon-fg);border-color:transparent}.cal-cell.s-EOFF{background:var(--eoff-bg);color:var(--eoff-fg);border-color:transparent}.cal-cell.today{box-shadow:0 0 0 2px var(--today-ring)}

.mode-tabs{display:flex;background:var(--bg);border-radius:12px;padding:4px;margin-bottom:16px;gap:4px}.mode-tab{flex:1;padding:9px 6px;background:transparent;border:none;border-radius:9px;color:var(--text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:5px}.mode-tab.active{background:var(--bg-card);color:var(--primary);box-shadow:var(--shadow-sm)}

.input-field{width:100%;padding:10px 13px;border:1px solid var(--border);background:var(--bg);border-radius:10px;font-size:16px;color:var(--text);-webkit-appearance:none}.input-field:focus{outline:none;border-color:var(--primary)}

.name-results{max-height:210px;overflow-y:auto;margin-top:7px}.emp-result{padding:10px 12px;border:1px solid var(--border);border-radius:10px;margin-top:6px;cursor:pointer;background:var(--bg);display:flex;justify-content:space-between;align-items:center;gap:10px}.emp-result:active{background:var(--primary-light);border-color:var(--primary)}.emp-result .nm{font-size:14px;font-weight:600}.emp-result .rl{font-size:11px;color:var(--text-muted);margin-top:2px}

.me-selected{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;background:var(--primary-light);border-radius:10px;gap:10px}.me-selected .who{display:flex;flex-direction:column;min-width:0}.me-selected .who .nm{font-weight:600;font-size:14px;color:var(--primary)}.me-selected .who .rl{font-size:11px;color:var(--text-muted);margin-top:2px}

.link-btn{background:none;border:none;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;padding:6px 10px;border-radius:6px}.link-btn:active{background:var(--bg-card)}

.empty-hint{color:var(--text-muted);font-size:13px;padding:14px;text-align:center;display:block}

.swap-card{padding:12px 13px;border-radius:12px;background:var(--bg);border:1px solid var(--border);border-left-width:4px;margin-bottom:10px}.swap-card.excellent{border-left-color:var(--success)}.swap-card.good{border-left-color:var(--info)}.swap-card.possible{border-left-color:var(--warning)}.swap-card.weak{border-left-color:var(--danger)}

.swap-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:9px}.swap-card-head .who{min-width:0;flex:1}.swap-name{font-weight:600;font-size:14px;line-height:1.25}.swap-role{font-size:11px;color:var(--text-muted);margin-top:2px}

.score-badge{flex-shrink:0;display:inline-flex;align-items:center;padding:4px 9px;border-radius:14px;font-size:12px;font-weight:700;white-space:nowrap}.score-badge.excellent{background:var(--exc-bg);color:var(--exc-fg)}.score-badge.good{background:var(--gd-bg);color:var(--gd-fg)}.score-badge.possible{background:var(--pos-bg);color:var(--pos-fg)}.score-badge.weak{background:var(--wk-bg);color:var(--wk-fg)}

.swap-reasons{display:flex;flex-direction:column;gap:4px;font-size:12px}.swap-reason{display:flex;gap:6px;align-items:flex-start;line-height:1.35}.swap-reason.ok{color:var(--success)}.swap-reason.no{color:var(--danger)}.swap-reason.warn{color:var(--warning)}.swap-reason.muted{color:var(--text-muted)}

.swap-warnings{margin-top:8px;padding:7px 10px;background:var(--pos-bg);color:var(--pos-fg);border-radius:8px;font-size:11px;display:flex;flex-direction:column;gap:3px}

.swap-proposal{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-top:9px;font-size:13px}.proposal-title{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:700;margin-bottom:7px}.proposal-line{display:flex;gap:8px;align-items:flex-start;padding:3px 0;line-height:1.45}.proposal-line .arrow{flex-shrink:0;width:16px;font-weight:700;text-align:center}.proposal-line.cov .arrow{color:var(--success)}.proposal-line.ret .arrow{color:var(--primary)}.proposal-alt{margin-top:7px;font-size:11px;color:var(--text-muted)}

.view-sched-btn{width:100%;margin-top:9px;padding:8px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--primary);font-size:12px;font-weight:600;cursor:pointer;text-align:center}.view-sched-btn:active{background:var(--primary-light)}

.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:14px}.sum-cell{padding:8px 4px;border-radius:9px;text-align:center}.sum-cell .sv{font-size:20px;font-weight:700;line-height:1}.sum-cell .sl{font-size:10px;opacity:.85;margin-top:2px;font-weight:600}

.sum-cell.s-D{background:var(--d-bg);color:var(--d-fg)}.sum-cell.s-N{background:var(--n-bg);color:var(--n-fg)}.sum-cell.s-AL{background:var(--al-bg);color:var(--al-fg)}.sum-cell.s-RO{background:var(--ro-bg);color:var(--ro-fg)}.sum-cell.s-X{background:var(--x-bg);color:var(--x-fg)}.sum-cell.s-EON{background:var(--eon-bg);color:var(--eon-fg)}.sum-cell.s-EOFF{background:var(--eoff-bg);color:var(--eoff-fg)}.sum-cell.s-total{background:var(--bg);color:var(--text);border:1px solid var(--border)}

.wl-list{display:flex;flex-direction:column;gap:8px}.wl-item{display:flex;align-items:center;gap:10px;padding:9px 11px;background:var(--bg);border-radius:10px;cursor:pointer}.wl-item:active{background:var(--primary-light)}.wl-info{flex:1;min-width:0}.wl-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wl-issues{font-size:11px;color:var(--text-muted);margin-top:2px}

.wl-badge{flex-shrink:0;padding:4px 9px;border-radius:12px;font-size:12px;font-weight:700}.wl-badge.easy{background:var(--easy-bg);color:var(--easy-fg)}.wl-badge.normal{background:var(--norm-bg);color:var(--norm-fg)}.wl-badge.heavy{background:var(--heav-bg);color:var(--heav-fg)}.wl-badge.risky{background:var(--risk-bg);color:var(--risk-fg)}.wl-badge.excluded{background:var(--x-bg);color:var(--x-fg)}.wl-view-btn{flex-shrink:0;padding:7px 9px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--primary);font-size:11px;font-weight:700;cursor:pointer}.wl-view-btn:active{background:var(--primary-light)}.summary-focus-row th.name-cell{background:var(--primary-light)!important;border-left:3px solid var(--primary)!important}.stat-cell.hl-consec{box-shadow:inset 0 0 0 2px rgba(220,38,38,.55),inset -1px -1px 0 var(--border)!important}.stat-cell.hl-consec-strong{box-shadow:inset 0 0 0 3px rgba(220,38,38,.9),inset -1px -1px 0 var(--border)!important}.stat-cell.hl-flip-direct{box-shadow:inset 0 0 0 3px rgba(147,51,234,.9),inset -1px -1px 0 var(--border)!important}.stat-cell.hl-flip-n2d{box-shadow:inset 0 0 0 3px rgba(220,38,38,.95),inset -1px -1px 0 var(--border)!important}.stat-cell.hl-flip-one{box-shadow:inset 0 0 0 2px rgba(249,115,22,.85),inset -1px -1px 0 var(--border)!important}.stat-cell.hl-flip-two{box-shadow:inset 0 0 0 2px rgba(234,179,8,.85),inset -1px -1px 0 var(--border)!important}.stat-cell.hl-pattern{outline:2px dashed rgba(234,179,8,.85);outline-offset:-4px}.stat-cell.hl-isolated{outline:2px dashed rgba(100,116,139,.9);outline-offset:-4px}.stat-cell.hl-weekend{box-shadow:inset 0 0 0 2px rgba(37,99,235,.8),inset -1px -1px 0 var(--border)!important}

.short-table{width:100%;font-size:13px;border-collapse:collapse}.short-table td{padding:6px 0;border-bottom:1px solid var(--border)}.short-table td:last-child{text-align:right;font-weight:700;font-family:ui-monospace,monospace}

.toast{position:fixed;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);padding:10px 18px;border-radius:12px;background:var(--text);color:var(--bg);font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);z-index:70;opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;max-width:92vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:var(--danger);color:#fff}.toast.success{background:var(--success);color:#fff}
