/* ZEN Camps ツールハブ 共通スタイル（全タブで使う） */
:root{
  --navy:#0f2740; --blue:#1a73e8; --bg:#f5f7fa; --line:#e0e4ea;
  --gray:#5f6672; --green:#2e7d32; --red:#e53935; --amber:#f6a821;
  --card:#ffffff; --text:#1a1f2b;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#0c1622; --card:#152234; --line:#25384f; --text:#e8edf4; --gray:#9aa8bc; }
}
*{box-sizing:border-box;}
body{font-family:-apple-system,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
     margin:0;background:var(--bg);color:var(--text);min-height:100dvh;}

header{background:var(--navy);color:#fff;padding:22px 26px;}
header h1{margin:0;font-size:21px;letter-spacing:.02em;}
header p{margin:5px 0 0;font-size:12.5px;opacity:.8;}

/* タブ。中身は別URLなので Cloudflare Access を特定のタブだけに掛けられる */
.tabs{background:var(--navy);padding:0 26px;display:flex;gap:4px;
      border-top:1px solid rgba(255,255,255,.08);}
.tabs a{display:block;padding:12px 20px;color:rgba(255,255,255,.62);text-decoration:none;
        font-size:14px;font-weight:600;border-bottom:3px solid transparent;white-space:nowrap;}
.tabs a:hover{color:#fff;}
.tabs a.on{color:#fff;border-bottom-color:var(--blue);}
.tabs .lock{font-size:11px;opacity:.75;margin-left:6px;}
@media(max-width:560px){ .tabs{overflow-x:auto;padding:0 12px;} .tabs a{padding:12px 13px;font-size:13px;} }

.wrap{max-width:1000px;margin:0 auto;padding:26px 24px 60px;}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;}

.card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--blue);
      border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:12px;
      transition:.15s transform,.15s box-shadow;}
.card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(15,39,64,.14);}
.top{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.card h2{margin:0;font-size:17px;}
.kind{font-size:11px;color:var(--gray);border:1px solid var(--line);
      border-radius:20px;padding:2px 9px;white-space:nowrap;}
.desc{font-size:13px;color:var(--gray);line-height:1.65;flex:1;}

.hint{font-size:12px;color:var(--gray);line-height:1.6;background:rgba(127,127,127,.08);
       border-radius:7px;padding:7px 10px;}
.hint code{background:rgba(127,127,127,.16);padding:1px 5px;border-radius:4px;
           font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;}

.status{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--gray);}
.dot{width:10px;height:10px;border-radius:50%;background:#c4ccd8;flex:none;}
.dot.up{background:var(--green);box-shadow:0 0 0 3px rgba(46,125,50,.18);}
.dot.down{background:var(--red);box-shadow:0 0 0 3px rgba(229,57,53,.15);}
.dot.cloud{background:var(--blue);box-shadow:0 0 0 3px rgba(26,115,232,.16);}
.dot.na{background:var(--amber);}

.btn{display:inline-block;text-align:center;background:var(--blue);color:#fff;
     text-decoration:none;border-radius:9px;padding:12px 16px;font-size:14px;
     font-weight:600;transition:.12s filter;}
.btn:hover{filter:brightness(1.07);}
.btn2{display:inline-block;text-align:center;background:transparent;color:var(--blue);
      border:1px solid var(--blue);text-decoration:none;border-radius:9px;padding:9px 14px;
      font-size:12.5px;font-weight:600;transition:.12s background;}
.btn2:hover{background:rgba(26,115,232,.08);}

.empty{color:var(--gray);font-size:14px;}
footer{max-width:1000px;margin:0 auto;padding:0 24px 40px;font-size:12px;color:var(--gray);line-height:1.8;}
code{background:rgba(127,127,127,.14);padding:1px 6px;border-radius:5px;font-size:12px;}
