:root{--bg:#fafafa;--bg-soft:#ffffff;--bg-deep:#f5f5f5;--ink:#0a0a0a;--ink-mid:#404040;--ink-soft:#737373;--line:#e5e5e5;--lime:#a3e635;--lime-deep:#84cc16;--red:#ef4444;--warn:#f59e0b;--info:#3b82f6}*{margin:0;padding:0;box-sizing:border-box}html{font-size:14px}body{font-family:Noto Sans JP,-apple-system,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}code{font-family:JetBrains Mono,monospace;font-size:12px;background:var(--bg-deep);padding:2px 6px;border-radius:3px}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.app-sidebar{background:var(--ink);color:#fff;padding:24px 16px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.app-sidebar h1{font-size:16px;font-weight:900;letter-spacing:-.02em;margin-bottom:4px;display:flex;align-items:center;gap:8px}.app-sidebar h1 .dot{width:10px;height:10px;background:var(--lime);display:inline-block}.app-sidebar .tag{font-size:10px;color:var(--lime);letter-spacing:.1em;margin-bottom:28px}.app-sidebar nav a{display:block;padding:8px 12px;font-size:13px;font-weight:600;color:rgba(255,255,255,.7);border-left:3px solid transparent;margin-bottom:4px}.app-sidebar nav a.active,.app-sidebar nav a:hover{background:rgba(163,230,53,.1);color:var(--lime);border-left-color:var(--lime)}.app-sidebar .footer{position:absolute;bottom:24px;left:16px;right:16px;font-size:11px;color:rgba(255,255,255,.4)}.app-main{padding:32px 40px;max-width:1180px}.app-main h2{font-size:22px;font-weight:900;letter-spacing:-.02em;margin-bottom:20px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:28px}.kpi-card{background:var(--bg-soft);border:2px solid var(--ink);padding:18px 20px;box-shadow:4px 4px 0 var(--ink)}.kpi-label{font-size:11px;font-weight:700;color:var(--ink-soft);letter-spacing:.05em;margin-bottom:6px}.kpi-value{font-size:28px;font-weight:900;letter-spacing:-.02em}.kpi-value .unit{font-size:14px;font-weight:600;color:var(--ink-soft);margin-left:4px}.data-table{width:100%;background:var(--bg-soft);border:2px solid var(--ink);border-collapse:collapse}.data-table td,.data-table th{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:13px}.data-table th{background:var(--ink);color:#fff;font-weight:800;font-size:11px;letter-spacing:.05em}.data-table tbody tr:hover{background:var(--bg-deep)}.data-table .badge{display:inline-block;padding:2px 8px;font-size:10px;font-weight:800;border:1.5px solid var(--ink);border-radius:0}.badge-active{background:var(--lime);color:var(--ink)}.badge-paused{background:#f3f4f6;color:var(--ink-mid)}.badge-churned{background:#fee2e2;color:#7f1d1d}.badge-critical{background:var(--red);color:#fff}.badge-warn{background:var(--warn);color:var(--ink)}.badge-info{background:var(--info);color:#fff}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ink);padding:24px}.login-card{background:#fff;border:3px solid var(--ink);padding:40px 36px;max-width:400px;width:100%;box-shadow:8px 8px 0 var(--lime-deep)}.login-card h1{font-size:22px;font-weight:900;margin-bottom:14px;line-height:1.4}.login-card p{font-size:13px;color:var(--ink-mid);margin-bottom:24px}.login-card input{width:100%;padding:12px 16px;border:2px solid var(--ink);font-size:14px;font-weight:600;margin-bottom:14px}.login-card button{width:100%;padding:14px;background:var(--ink);color:#fff;border:3px solid var(--ink);font-weight:800;box-shadow:4px 4px 0 var(--lime-deep)}.login-card .msg{font-size:12px;color:var(--lime-deep);font-weight:700;margin-top:8px;min-height:18px}.login-card .err{color:var(--red)}