/* ==========================================================================
   MAMMOTH CUP — 共有デザインシステム（管理系ページ共通）
   ダーク／アクセント #ff4d00／Bebas Neue・Barlow Condensed・JetBrains Mono。
   計測アプリ(timing.html)は実戦用コンソールとして独自スタイルのまま。
   ========================================================================== */
@font-face{font-family:'Bebas Neue';font-weight:400;font-display:swap;src:url(fonts/bebas-neue-400.woff2) format('woff2');}
@font-face{font-family:'Barlow Condensed';font-weight:600;font-display:swap;src:url(fonts/barlow-condensed-600.woff2) format('woff2');}
@font-face{font-family:'Barlow Condensed';font-weight:700;font-display:swap;src:url(fonts/barlow-condensed-700.woff2) format('woff2');}
@font-face{font-family:'JetBrains Mono';font-weight:400;font-display:swap;src:url(fonts/jetbrains-mono-400.woff2) format('woff2');}

:root{
  --bg:#0a0c0f;--surface:#141821;--surface2:#1c222c;--elev:#232a35;--border:#2a313c;
  --accent:#ff4d00;--accent-soft:#ff4d0022;--green:#00e676;--red:#ff3355;--amber:#ffb300;--gold:#f5c518;--blue:#4da3ff;
  --text:#e8eaed;--muted:#8b95a3;--radius:12px;--radius-sm:9px;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --sans:-apple-system,BlinkMacSystemFont,'Hiragino Sans','Yu Gothic',Meiryo,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{-webkit-text-size-adjust:100%;}
body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100dvh;line-height:1.5;}
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 39px,#ffffff04 39px,#ffffff04 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,#ffffff04 39px,#ffffff04 40px);}
a{color:inherit;}
/* 全幅（PC/iPad横で画面いっぱい。中央寄せの余白を作らない） */
.wrap{position:relative;z-index:1;width:100%;margin:0;padding:0 24px 64px;}
.wrap.narrow{max-width:none;}

/* ---- app bar / nav ---- */
.appbar{position:relative;z-index:2;display:flex;align-items:center;gap:14px;padding:18px 4px 14px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:6px;}
.brand{font-family:'Bebas Neue',sans-serif;font-size:30px;letter-spacing:4px;line-height:1;text-decoration:none;color:var(--text);white-space:nowrap;}
.brand span{color:var(--accent);}
.crumb{font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:3px;color:var(--muted);border-left:1px solid var(--border);padding-left:14px;}
.crumb.accent{color:var(--accent);border:none;padding-left:0;}
.nav{display:flex;gap:4px;}
.nav a{font-family:'Barlow Condensed',var(--sans);font-weight:600;font-size:14px;letter-spacing:1px;text-transform:uppercase;padding:7px 13px;border-radius:8px;text-decoration:none;color:var(--muted);border:1px solid transparent;}
.nav a:hover{color:var(--text);background:var(--surface2);}
.nav a.on{color:#fff;background:var(--accent);}
.spacer{flex:1;}
.meta-r{font-family:var(--mono);font-size:12px;color:var(--muted);}
.meta-r b{color:var(--accent);}

/* ---- section heading ---- */
.h2{font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:2px;color:var(--muted);margin:26px 4px 12px;}

/* ---- buttons（iPadタップ前提：大きめ・矢印なし） ---- */
.btn{font-family:var(--sans);font-size:16px;font-weight:700;padding:14px 20px;min-height:50px;border-radius:11px;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:nowrap;transition:border-color .12s,background .12s,transform .06s;}
.btn:active{transform:scale(.97);}
.btn.go{background:var(--accent);color:#fff;border-color:var(--accent);}
.btn.go:active{background:#ff6620;}
.btn.ghost{background:transparent;color:var(--muted);}
.btn.ghost:active{color:var(--red);border-color:var(--red);}
.btn.sm{padding:10px 16px;font-size:14px;min-height:42px;}
.btn.lg{font-size:19px;padding:20px;min-height:64px;font-weight:800;}
.btn:disabled{opacity:.35;}
@media(hover:hover){.btn:hover{border-color:var(--accent);}.btn.go:hover{background:#ff6620;}}

/* ---- inputs ---- */
input[type=text],input[type=search]{font-family:var(--sans);font-size:15px;padding:11px 13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:#fff;outline:none;}
input[type=text]:focus,input[type=search]:focus{border-color:var(--accent);}

/* ---- card / tool ---- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.tools{display:flex;gap:12px;flex-wrap:wrap;}
.tool{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;flex:1;min-width:240px;}
.tool h3{font-size:15px;margin-bottom:8px;}
.tool p{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:10px;}

/* ---- table ---- */
.tbl-wrap{overflow-x:auto;margin-top:6px;}
table.data{width:100%;border-collapse:collapse;font-size:14px;}
table.data th{text-align:left;font-size:10px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;padding:10px;border-bottom:1px solid var(--border);white-space:nowrap;}
table.data td{padding:12px 10px;border-bottom:1px solid #ffffff0c;vertical-align:middle;}
table.data tbody tr:hover{background:#ffffff05;}
.num{font-family:'Bebas Neue',sans-serif;color:#fff;}
.mono{font-family:var(--mono);}

/* ---- pills / tags / chips ---- */
.pill{font-size:10px;font-weight:800;letter-spacing:.5px;padding:3px 9px;border-radius:20px;white-space:nowrap;}
.pill.done{background:#00e67618;color:var(--green);}.pill.live{background:var(--accent-soft);color:var(--accent);}
.pill.pre{background:#6b768522;color:var(--muted);}.pill.lock{background:#f5c51818;color:var(--gold);}
.tag{font-size:10px;font-weight:700;padding:3px 7px;border-radius:5px;white-space:nowrap;display:inline-block;}
.tag.a{background:var(--accent-soft);color:var(--accent);}.tag.b{background:#4da3ff22;color:var(--blue);}
.tag.s{background:linear-gradient(135deg,#f5c518,#e8a000);color:#1a1a2e;}
.tag.ck{background:#00e67618;color:var(--green);}.tag.wi{background:#4da3ff18;color:var(--blue);}
.chip{font-family:var(--sans);font-size:12px;font-weight:700;padding:8px 13px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--muted);cursor:pointer;}
.chip.on{background:var(--accent);color:#fff;border-color:var(--accent);}

/* ---- misc ---- */
.empty,.status{padding:40px 20px;text-align:center;color:var(--muted);font-size:14px;}
.note{font-size:11px;color:var(--muted);margin-top:14px;line-height:1.7;}
.count{font-family:var(--mono);font-size:12px;color:var(--muted);}

/* ---- modal ---- */
.ovl{display:none;position:fixed;inset:0;z-index:50;background:#000000c4;align-items:flex-start;justify-content:center;overflow-y:auto;padding:30px 14px;}
.ovl.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:720px;width:100%;padding:20px;position:relative;z-index:1;}
.modal .mh{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.modal .close{margin-left:auto;font-size:22px;color:var(--muted);cursor:pointer;background:none;border:none;padding:4px 10px;}
