:root{
  --navy:#071b33; --navy2:#09294f; --blue:#1266d6; --bg:#eef3f8; --card:#fff;
  --text:#0f172a; --muted:#64748b; --line:#dbe4ee; --red:#ef233c; --orange:#f59e0b;
  --green:#16a34a; --purple:#7c3aed; --cyan:#0284c7; --shadow:0 8px 22px rgba(15,23,42,.10);
}
*{box-sizing:border-box} body{margin:0;font-family:"Meiryo","Yu Gothic",system-ui,sans-serif;background:var(--bg);color:var(--text)}
.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--navy),#03101f);color:#fff;padding:18px 16px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}.logo{width:42px;height:42px;border-radius:10px;background:#dbeafe;color:#0b2b52;display:grid;place-items:center;font-weight:900}.brand span{display:block;color:#9fb4cc;font-size:12px}.nav{display:flex;flex-direction:column;gap:8px}.nav button{border:0;width:100%;padding:12px 12px;border-radius:10px;background:transparent;color:#dbeafe;text-align:left;font-weight:700;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.nav button.active,.nav button:hover{background:#0f65d8;color:#fff}.badge{font-size:12px;border-radius:999px;padding:3px 8px;background:#1d4ed8;color:#fff}.badge.red{background:var(--red)}.badge.orange{background:var(--orange)}.side-title{margin:18px 8px 6px;color:#90a8c5;font-size:12px;font-weight:800}.side-footer{position:absolute;bottom:18px;color:#8aa0b9;font-size:12px}.main{padding:18px 22px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;background:linear-gradient(90deg,#061a31,#0b2b52);color:#fff;border-radius:16px;padding:14px 18px;box-shadow:var(--shadow)}h1{margin:0;font-size:30px}p{margin:4px 0 0;color:inherit}.top-actions{display:flex;gap:12px;align-items:center}.update,.source{font-size:12px;color:#cbd5e1;text-align:right}button#reloadBtn{border:1px solid #60a5fa;background:#0f65d8;color:#fff;border-radius:10px;padding:10px 18px;font-weight:800;cursor:pointer}.grid{display:grid;gap:14px}.kpis{grid-template-columns:repeat(6,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:16px}.kpi{display:flex;align-items:center;gap:14px;min-height:106px}.icon{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;font-size:30px}.icon.red{background:#fee2e2;color:var(--red)}.icon.orange{background:#fef3c7;color:var(--orange)}.icon.green{background:#dcfce7;color:var(--green)}.icon.blue{background:#dbeafe;color:var(--blue)}.icon.purple{background:#ede9fe;color:var(--purple)}.kpi small{color:var(--muted);font-weight:700}.kpi strong{font-size:40px;line-height:1}.delta{font-size:13px;color:var(--muted)}.delta.up{color:var(--green)}.delta.bad{color:var(--red)}.layout-main{grid-template-columns:1.05fr 1.95fr}.layout-bottom{grid-template-columns:1fr 1fr 1fr}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-title h2{font-size:18px;margin:0}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{border-bottom:1px solid #edf2f7;padding:9px 8px;text-align:left}.table th{color:#475569;font-size:12px;background:#f8fafc}.bar{height:14px;background:#e7eef7;border-radius:999px;overflow:hidden}.bar span{display:block;height:100%;background:linear-gradient(90deg,#93c5fd,#0f65d8)}.status{font-weight:800}.status.ok{color:var(--green)}.status.warn{color:var(--orange)}.status.danger{color:var(--red)}.urgent-list{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.urgent-card{border:1px solid #f1c4c4;border-radius:12px;padding:10px;background:linear-gradient(180deg,#fff,#fff8f8);position:relative}.rank{position:absolute;top:10px;left:10px;background:var(--red);color:#fff;width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-weight:900}.thumb{height:105px;margin-top:20px;background:#f1f5f9;border-radius:10px;display:grid;place-items:center;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:contain}.part-title{font-weight:900;margin-top:8px}.meta{font-size:12px;color:#475569}.pill{display:inline-block;border-radius:7px;padding:4px 8px;font-size:12px;font-weight:900;color:#fff}.pill.red{background:var(--red)}.pill.orange{background:var(--orange)}.pill.purple{background:var(--purple)}.pill.green{background:var(--green)}.days{font-size:26px;color:var(--red);font-weight:900}.chart-bars{display:flex;align-items:end;gap:14px;height:190px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px}.month{flex:1;text-align:center;font-size:12px;color:#475569}.barcol{height:var(--h);background:linear-gradient(180deg,#0f65d8,#93c5fd);border-radius:8px 8px 0 0;margin:6px auto;width:32px}.notice{background:#f8fafc;border-left:4px solid var(--blue);border-radius:10px;padding:10px;margin-bottom:8px}.notice.warning{border-color:var(--orange)}.notice.urgent{border-color:var(--red)}.shop-head{grid-template-columns:repeat(5,1fr)}.tabs{display:flex;gap:8px;margin-bottom:14px}.tabs button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 16px;font-weight:800}.tabs button.active{background:#eaf2ff;color:#0f65d8;border-color:#93c5fd}.wide-table{font-size:13px}.thumb-mini{width:58px;height:42px;object-fit:contain;background:#f1f5f9;border-radius:6px}.priority{font-weight:900;text-align:center;color:#fff;border-radius:8px;padding:8px;background:#94a3b8}.priority.p1{background:var(--red)}.priority.p2{background:#f97316}.priority.p3{background:var(--orange)}
@media(max-width:1200px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.kpis,.layout-main,.layout-bottom,.shop-head{grid-template-columns:1fr}.urgent-list{grid-template-columns:1fr 1fr}.side-footer{display:none}}
@media print{body{background:#fff}.sidebar,.topbar button{display:none}.app{display:block}.main{padding:0}.topbar{box-shadow:none;color:#000;background:#fff;border:1px solid #ccc}.card{box-shadow:none;break-inside:avoid}.kpis{grid-template-columns:repeat(3,1fr)}.layout-main,.layout-bottom{grid-template-columns:1fr}.urgent-list{grid-template-columns:repeat(2,1fr)} }
