.wh{max-width:1240px;margin:0 auto;padding:20px 24px 48px;color:var(--text,#1a1d29);font-size:14px;line-height:1.5}
.wh h1{font-size:26px;line-height:1.25;margin:0 0 4px}
.wh .wh-sub{color:var(--text-muted,#767c8f);margin:0 0 16px;max-width:820px}
.wh-badge{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:999px;background:#fff4e0;color:#8a5a00;font-size:12px;font-weight:600;vertical-align:middle}
.wh-tabs{display:flex;gap:6px;margin:0 0 16px;border-bottom:1px solid var(--border,#e6e8f0)}
.wh-tabs button{border:0;background:none;padding:9px 14px;font:inherit;color:var(--text-muted,#767c8f);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.wh-tabs button.on{color:var(--accent,#1f6b47);border-bottom-color:var(--accent,#1f6b47);font-weight:600}
.wh-month{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.wh-month b{min-width:150px;text-align:center;font-size:16px}
.wh-month button{border:1px solid var(--border-strong,#d7dbe6);background:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:16px}
.wh-month button:disabled{opacity:.35;cursor:default}
.wh-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:0 0 16px}
.wh-tile{background:#fff;border:1px solid var(--border,#e6e8f0);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow-xs,none)}
.wh-tile small{display:block;color:var(--text-muted,#767c8f);font-size:12px}
.wh-tile strong{display:block;font-size:24px;line-height:1.2;margin:2px 0}
.wh-tile em{display:block;font-style:normal;color:var(--text-muted,#767c8f);font-size:12px}
.wh-tile.key{border-color:var(--accent,#1f6b47);background:var(--accent-soft,#e7f3ec)}
.wh-tile .na{color:var(--text-faint,#a3a8b8)}
.wh-note{background:#f4f6fb;border:1px solid var(--border,#e6e8f0);border-radius:10px;padding:10px 14px;margin:0 0 14px;color:#3a4156}
.wh-note.warn{background:#fff8e6;border-color:#f0d9a0;color:#6b4a00}
.wh table{border-collapse:collapse;width:100%;background:#fff}
.wh th,.wh td{border-bottom:1px solid var(--border,#e6e8f0);padding:6px 8px;text-align:right;white-space:nowrap}
.wh th{background:#f4f6fb;font-weight:600;font-size:12px;color:#3a4156;position:sticky;top:0;z-index:1}
.wh td.l,.wh th.l{text-align:left;white-space:normal}
.wh tr.sun td{color:var(--text-faint,#a3a8b8);background:#fafbfd}
.wh tr.part td{background:#fff8e6}
.wh tr.grp td{background:#eef2f7;font-weight:700;text-align:left;font-size:13px}
.wh .tw{overflow:auto;border:1px solid var(--border,#e6e8f0);border-radius:12px}
.wh input[type=number]{width:58px;padding:5px 6px;border:1px solid var(--border-strong,#d7dbe6);border-radius:7px;font:inherit;text-align:center}
.wh input[type=text],.wh input[type=url],.wh select,.wh textarea{padding:6px 8px;border:1px solid var(--border-strong,#d7dbe6);border-radius:7px;font:inherit;background:#fff;max-width:100%}
.wh input[type=text].w-note{width:240px}
.wh td input[type=text]{width:100%;min-width:130px;box-sizing:border-box}
.wh input:disabled,.wh select:disabled{background:#f4f6fb;color:#555}
.wh .saved{color:var(--success,#12b76a);font-size:12px;margin-left:6px}
.wh .err{color:var(--danger,#e6482e);font-size:12px;margin-left:6px}
.wh .chip{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}
.wh .chip.ready{background:#e8faf1;color:#0b7a46}
.wh .chip.timesheet,.wh .chip.need_warehouse{background:#fff4e0;color:#8a5a00}
.wh .chip.api,.wh .chip.partial{background:#e7f0ff;color:#1f4fa3}
.wh .chip.need1c{background:#fdeeec;color:#b3321d}
.wh .chip.later{background:#eef0f5;color:#767c8f}
.wh .how{display:block;color:var(--text-muted,#767c8f);font-size:12px;margin-top:2px}
.wh h2{font-size:17px;margin:22px 0 8px}
.wh .feed{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--border,#e6e8f0)}
.wh .dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:6px;background:#a3a8b8}
.wh .dot.ok{background:#12b76a}.wh .dot.gap{background:#f5a524}.wh .dot.missing{background:#e6482e}
.wh .link-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.wh .link-row input{width:420px}
.wh button.primary{background:var(--accent,#1f6b47);color:#fff;border:0;border-radius:8px;padding:7px 14px;cursor:pointer;font:inherit}
.wh button.ghost{background:#fff;border:1px solid var(--border-strong,#d7dbe6);border-radius:7px;padding:3px 8px;cursor:pointer;font:inherit}
.wh .hist{font-size:13px;color:#3a4156}.wh .hist li{margin:2px 0}.wh .hist time{color:var(--text-faint,#a3a8b8);margin-right:6px}
.wh .req td:first-child{white-space:normal;min-width:320px}
@media(max-width:700px){.wh{padding:12px}.wh .link-row input{width:100%}}

.wh th{white-space:normal}
.wh td.act{white-space:nowrap;text-align:left;min-width:150px}
.wh td.act small{font-size:11px}
.wh table.mt td:first-child,.wh table.mt th:first-child{width:36%}
.wh textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:34px;line-height:1.35}
.wh table.mt td.l{min-width:190px}
