diff --git a/src/web/static/index.html b/src/web/static/index.html index 9ef6ac9..9e18ca6 100644 --- a/src/web/static/index.html +++ b/src/web/static/index.html @@ -621,6 +621,103 @@ html, body { margin-right: 12px; } @keyframes spin { to { transform: rotate(360deg); } } + +/* Hamburger menu button */ +#btn-menu { + display: none; + background: none; + border: none; + color: var(--text-secondary); + font-size: 22px; + cursor: pointer; + padding: 4px 6px; + line-height: 1; +} + +/* Sidebar backdrop (mobile) */ +#sidebar-backdrop { + display: none; + position: fixed; + inset: 0; + background: rgba(0,0,0,0.5); + z-index: 8; +} + +/* ============================================================ + Mobile Responsive + ============================================================ */ +@media (max-width: 768px) { + #btn-menu { display: block; } + + #sidebar { + position: fixed; + left: -320px; + top: 0; + bottom: 0; + width: 300px; + min-width: 300px; + z-index: 9; + transition: left 0.25s ease; + box-shadow: 4px 0 20px rgba(0,0,0,0.5); + } + #sidebar.open { left: 0; } + #sidebar-backdrop.open { display: block; } + + #app { flex-direction: column; } + #main { + width: 100%; + height: 100dvh; + } + + #header { + padding: 0 12px; + gap: 10px; + min-height: 48px; + height: 48px; + } + #header h1 { font-size: 14px; letter-spacing: 1px; } + #header .turn-badge { font-size: 11px; } + + #chat { + padding: 12px; + gap: 10px; + font-size: 15px; + } + + #input-area { + padding: 8px 10px; + padding-bottom: max(8px, env(safe-area-inset-bottom)); + } + #input-area input { + font-size: 16px; /* prevent zoom on iOS */ + padding: 10px 12px; + } + #btn-send { + width: 44px; + height: 44px; + font-size: 20px; + } + + /* Welcome screen */ + #welcome h1 { font-size: 28px; } + #welcome .subtitle { font-size: 14px; } + .camp-list { max-width: 100%; padding: 0 12px; } + #new-camp-form { width: 100%; max-width: 100%; padding: 0 12px; } + + /* Sidebar content */ + .sidebar-section { padding: 10px 12px; } + .sidebar-section h2 { font-size: 10px; } + .char-name { font-size: 14px; } + .stat-grid { gap: 3px; } + .stat-row { font-size: 12px; } + .area-item { font-size: 12px; } +} + +@media (max-width: 480px) { + #sidebar { width: 260px; min-width: 260px; left: -260px; } + #header h1 { font-size: 12px; } + .msg-bubble { font-size: 14px; } +}
@@ -651,7 +748,7 @@ html, body {