:root{--radius:10px;--radius-sm:7px;--font:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP","Yu Gothic","Meiryo",sans-serif;--display:var(--font);--mono:"SFMono-Regular",Consolas,"Roboto Mono","Courier New",monospace;--speed:.15s;--ink:#0d0d0d;--muted:#6b7280;--line:#e8e8e8;--line-soft:#f2f2f2;--bg:#fafafa;--surface:#fff;--surface-dim:#fafafa;--primary:#1a1a1a;--primary-deep:#000;--primary-soft:#f4f4f5;--accent:#1a1a1a;--accent-soft:#f4f4f5;--ok:#337a4d;--ok-soft:#eef6f0;--warn:#8a6d1f;--warn-soft:#f7f2e3;--danger:#b23b30;--danger-soft:#f9ecea;--side-bg:#fafafa;--side-text:#3a3a3a;--side-muted:#9aa0a6;--side-hover:#f0f0f1;--side-active:#eaeaeb;--side-active-text:#0d0d0d;--wire1:#fafafa;--wire2:#f2f2f2;--wire-border:#d8d8d8;--shadow:0 1px 2px rgba(0,0,0,.04);--focus:#1a1a1a;--on-primary:#fff}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);font-size:14px;line-height:1.7;font-weight:400;letter-spacing:0;-webkit-font-smoothing:antialiased;transition:background var(--speed)}a,body{color:var(--ink)}a{text-underline-offset:3px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.app{display:grid;grid-template-columns:300px 1fr;min-height:100vh}.side{background:var(--side-bg);color:var(--side-text);border-right:1px solid var(--line);padding:22px 12px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto;transition:background var(--speed)}.logo{padding:4px 12px 20px}.logo-img{display:block;width:100%;max-width:188px;height:auto}.nav{list-style:none}.nav li{padding:8px 12px;cursor:pointer;font-size:13px;color:var(--side-text);border-left:3px solid transparent;border-radius:0 var(--radius-sm) var(--radius-sm) 0;transition:background var(--speed),color var(--speed)}.nav li:hover{background:var(--side-hover)}.nav li.on{background:var(--side-active);color:var(--side-active-text);font-weight:700;border-left-color:var(--accent)}.nav li .sid{font-family:var(--mono);margin-right:7px}.nav .grp,.nav li .sid{font-size:9.5px;color:var(--side-muted)}.nav .grp{padding:16px 12px 5px;letter-spacing:.18em}.nav a{color:inherit;text-decoration:none;display:block}.subnav li{font-size:11.5px;padding:6px 12px}.subnav li .cat-ico{margin-right:7px}.main{padding:32px 40px 72px;max-width:1120px}.app-footer{margin-top:48px;padding-top:16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:11px}.app-footer,.app-footer a{color:var(--muted)}.app-footer .footer-note{color:var(--warn)}.crumb{font-size:11px;color:var(--muted);margin-bottom:7px;letter-spacing:.03em}h1{font-family:var(--display);font-size:20px;font-weight:700;margin-bottom:3px;letter-spacing:.02em}.sub{color:var(--muted);font-size:12.5px;margin-bottom:18px}.row{display:grid;grid-gap:16px;gap:16px}.c2{grid-template-columns:1fr 1fr}.c3{grid-template-columns:1fr 1fr 1fr}.c21{grid-template-columns:2fr 1fr}.c12{grid-template-columns:1fr 2fr}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card h3{font-size:13px;font-weight:700;margin-bottom:12px;display:flex;align-items:center;gap:8px;letter-spacing:.02em}.card h3 .hint{font-weight:500;font-size:11px;color:var(--muted)}.mt{margin-top:16px}.btn{display:inline-block;white-space:nowrap;border:1px solid var(--primary);background:var(--primary);color:var(--on-primary);padding:7px 15px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:700;cursor:pointer;text-decoration:none;transition:background var(--speed),border-color var(--speed),filter var(--speed)}.btn:hover{background:var(--primary-deep);border-color:var(--primary-deep)}.btn.ghost{background:transparent;color:var(--primary)}.btn.ghost:hover{background:var(--primary-soft)}.btn.warm{background:var(--accent);border-color:var(--accent)}.btn.warm:hover{filter:brightness(.93)}.btn.sm{padding:4px 11px;font-size:11.5px;font-weight:500}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.badge{display:inline-block;font-size:10.5px;font-weight:600;padding:2.5px 9px;border-radius:99px;letter-spacing:.02em}.badge.ok{background:var(--ok-soft);color:var(--ok)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.acc{background:var(--accent-soft);color:var(--accent)}.badge.pri{background:var(--primary-soft);color:var(--primary)}.badge.mut{background:var(--line-soft);color:var(--muted)}.kpi{font-family:var(--display);font-size:25px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.01em}.kpi small{font-size:11px;color:var(--muted);font-weight:500;margin-left:5px;letter-spacing:.02em}.bar{height:7px;background:var(--line-soft);overflow:hidden}.bar,.bar i{border-radius:99px}.bar i{display:block;height:100%;background:var(--primary)}table.t{width:100%;border-collapse:collapse;font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.t th{font-size:10.5px;color:var(--muted);text-align:left;font-weight:600;padding:7px 9px;border-bottom:1px solid var(--line);letter-spacing:.05em}table.t td{padding:9px;border-bottom:1px solid var(--line-soft);vertical-align:top}table.t tr:hover td{background:var(--surface-dim)}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:5px;letter-spacing:.02em}.field label .req{color:var(--danger);font-size:10px;margin-left:6px;font-weight:600}.field label .opt{color:var(--muted);font-size:10px;font-weight:500;margin-left:6px}.in{width:100%;border:1px solid var(--line);border-radius:var(--radius-sm);padding:8.5px 11px;font-size:12.5px;background:var(--surface);color:var(--ink);font-family:var(--font);transition:border-color var(--speed),box-shadow var(--speed)}.in:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.in.ta{min-height:250px}.help{font-size:11px;color:var(--muted);margin-top:4px}.auto{background:var(--primary-soft);border:1px solid transparent;border-radius:var(--radius-sm);padding:8.5px 11px;color:var(--primary-deep)}.auto,.note{font-size:12px}.note{border-left:3px solid var(--accent);background:var(--accent-soft);padding:10px 14px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.note.danger{border-left-color:var(--danger);background:var(--danger-soft)}.wire{border:1.5px dashed var(--wire-border);border-radius:var(--radius-sm);background:repeating-linear-gradient(45deg,var(--wire1),var(--wire1) 8px,var(--wire2) 8px,var(--wire2) 16px);color:var(--muted);align-items:center;justify-content:center;font-size:11px;min-height:80px;text-align:center}.tabs,.wire{display:flex}.tabs{gap:2px;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{padding:7px 15px;font-size:12px;cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:var(--muted);background:none;border:none;font-family:var(--font);transition:color var(--speed)}.tab.on,.tab:hover{color:var(--ink)}.tab.on{background:var(--surface);border:1px solid var(--line);border-bottom-color:var(--surface);font-weight:700}.apis{margin:0 0 16px;display:flex;flex-wrap:wrap;gap:6px}.api{font-family:var(--mono);font-size:10px;background:var(--surface);border:1px dashed var(--line);color:var(--muted);padding:3px 8px;border-radius:6px}.api b{color:var(--primary);font-weight:700;margin-right:4px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.tag{font-size:11.5px;padding:4px 10px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;transition:background var(--speed),color var(--speed),border-color var(--speed)}.tag:hover{color:var(--ink)}.tag.on{background:var(--primary-soft);border-color:var(--primary-soft);color:var(--primary);font-weight:700}.tasklist{display:flex;flex-direction:column;gap:12px}.taskrow{display:flex;align-items:center;gap:16px}.taskrow>*{margin:0}.taskrow .task-ico{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-sm);background:var(--surface-dim)}.taskrow .taskrow-main{flex:1 1;min-width:0}.taskrow .taskrow-name{font-weight:700;font-size:13.5px;letter-spacing:.02em}.taskrow .taskrow-meta{margin-top:5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.taskrow.locked{opacity:.58}.taskrow.locked .taskrow-name{color:var(--muted)}.row.c3.taskgrid{align-items:start}@media (max-width:1000px){.row.c3.taskgrid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.row.c3.taskgrid{grid-template-columns:1fr}}.taskcard{display:flex;flex-direction:column;gap:10px;padding:16px}.taskcard .taskcard-head{display:flex;align-items:center;gap:10px}.taskcard .task-ico{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);background:var(--surface-dim)}.taskcard .taskcard-name{font-weight:700;font-size:13.5px;letter-spacing:.02em;line-height:1.4}.taskcard .taskcard-desc{font-size:12.5px;color:var(--ink);line-height:1.65}.taskcard .taskcard-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.taskcard .taskcard-action{margin-top:2px}.taskcard.locked{opacity:.58}.muted,.taskcard.locked .taskcard-name{color:var(--muted)}.code,.mono{font-family:var(--mono)}.code{font-size:11.5px;white-space:pre-wrap;word-break:break-all;background:#1b1b1d;color:#e6e6e6;padding:12px;border-radius:var(--radius-sm);max-height:360px;overflow:auto}.preview-frame{width:100%;min-height:280px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:40px;margin-bottom:6px}.acct{position:relative}.acct-btn{background:none;border:none;cursor:pointer;padding:0;line-height:0}.acct-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--primary);color:var(--on-primary);font-weight:700;font-size:14px}.acct-menu{position:absolute;right:0;top:42px;min-width:220px;max-width:280px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;z-index:50}.acct-email{font-size:12.5px;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acct-item{display:block;width:100%;text-align:left;background:none;border:none;padding:8px;font-size:13px;cursor:pointer;border-radius:var(--radius-sm);color:var(--ink)}.acct-item:hover{background:var(--surface-dim)}.hsearch{position:relative;flex:1 1;max-width:460px}.hsearch-in{width:100%;padding:7px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:13px;background:var(--surface)}.hsearch-in:focus{outline:none;border-color:var(--primary)}.hsearch-menu{position:absolute;left:0;right:0;top:40px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:6px;z-index:50;list-style:none;margin:0;max-height:340px;overflow:auto}.hsearch-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer}.hsearch-item.on{background:var(--surface-dim)}.hsearch-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hsearch-cat{font-size:11px;color:var(--muted);flex-shrink:0}.hsearch-empty{color:var(--muted);font-size:12.5px;padding:10px}