:root{--bg:#121212;--body:#1e1e1e;--s1:#2a2a2a;--s2:#333333;--div:#3a3a3a;--fg:#ededed;--fg2:#bdbdbd;--off:#6b6b6b;--acc:#fea500;--on-acc:#121212;--danger:#ef2828;--warn:#f5c518;--ok:#34a853;--on-danger:#ffffff;--font:"Montserrat","Pretendard",system-ui,sans-serif;--r6:6px;--r8:8px;--r12:12px;--r20:20px;--nav-w:240px;--top-h:56px;--pad:32px}*{box-sizing:border-box}body,html{margin:0}body{background:var(--body);color:var(--fg);font-family:var(--font);font-size:18px;line-height:1.5;min-width:1280px}a{color:inherit;text-decoration:none}.ms{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;font-size:24px;line-height:1;display:inline-block;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.shell{display:flex;min-height:100vh}.nav{width:var(--nav-w);flex:none;background:var(--bg);padding:16px 0}.nav .brand{font-weight:700;font-size:18px;padding:8px 20px 24px}.nav a{display:flex;align-items:center;gap:12px;height:48px;padding:0 16px;font-size:16px;white-space:nowrap;color:var(--fg);border-left:4px solid transparent}.nav a:hover{background:var(--s1)}.nav a.on{color:var(--acc);border-left-color:var(--acc);font-weight:600}.nav a .grow{flex:1 1}.nav a .pc-only{font-size:18px;color:var(--off)}.main{flex:1 1;flex-direction:column;min-width:0}.main,.top{display:flex}.top{height:var(--top-h);background:var(--bg);align-items:center;gap:16px;padding:0 var(--pad)}.top .tt{flex:1 1;font-size:26px;font-weight:700}.top button{background:none;border:0;color:var(--fg);width:48px;height:48px;display:grid;place-items:center;cursor:pointer;border-radius:var(--r12)}.top button:hover{background:var(--s1)}.cnt{padding:24px var(--pad);display:flex;flex-direction:column;gap:24px}.nbadge{min-width:20px;height:20px;border-radius:10px;background:var(--acc);color:var(--on-acc);font-size:14px;font-weight:600;line-height:20px;text-align:center;padding:0 6px}.card{background:var(--s1);border-radius:var(--r12);padding:16px;display:flex;flex-direction:column;gap:8px}.sub{color:var(--fg2)}.status,.sub{font-size:16px}.status{display:inline-flex;align-items:center;gap:8px}.status.ok .ms{color:var(--ok)}.status.bad .ms{color:var(--danger)}