* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.4 system-ui, -apple-system, sans-serif; color: #1a1a1a; background: #fff; -webkit-text-size-adjust: 100%; }
.wrap { max-width: 480px; margin: 0 auto; min-height: 100vh; padding: 12px; padding-bottom: 2rem; display: flex; flex-direction: column; }
.wrap.login-page { justify-content: center; }

.header { text-align: center; margin-bottom: 24px; padding: 20px 8px; background: #fff; margin-left: -12px; margin-right: -12px; margin-top: -12px; padding-top: 12px; }
.header .logo { display: block; margin: 0 auto; width: auto; height: auto; max-width: 200px; max-height: 130px; object-fit: contain; }
.user-line { margin: 10px 0 0; font-size: 0.9rem; color: #555; }
.link { background: none; border: none; color: #0066cc; cursor: pointer; text-decoration: underline; padding: 0; font-size: inherit; }

.hidden { display: none !important; }
.screen { display: block; }
.screen.hidden { display: none !important; }

.card { background: #fff; border-radius: 12px; padding: 20px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.card label { display: block; margin-bottom: 14px; font-size: 0.9rem; color: #444; }
.card input, .card select, .card textarea { width: 100%; padding: 10px 12px; margin-top: 4px; border: 1px solid #ccc; border-radius: 8px; font-size: 16px; }
.card button[type="submit"] { width: 100%; padding: 12px; margin-top: 8px; background: #1a1a1a; color: #fff; border: none; border-radius: 8px; font-size: 1rem; cursor: pointer; }
.card button[type="submit"]:disabled { opacity: 0.6; cursor: not-allowed; }
.error { color: #c00; font-size: 0.9rem; margin-top: 8px; }

#loginScreen { display: flex; flex-direction: column; align-items: center; }
#loginScreen .card { max-width: 320px; width: 100%; margin: 0 auto; text-align: center; background: #f5f5f5; box-shadow: 0 2px 8px rgba(0,0,0,0.06); border: 1px solid #ddd; }
#loginScreen .card label { text-align: left; }
#loginScreen button { margin-top: 16px; }

#queryPanel .card { background: #f5f5f5; box-shadow: 0 2px 8px rgba(0,0,0,0.06); border: 1px solid #ddd; }
#passwordPanel { display: flex; flex-direction: column; align-items: center; }
#passwordPanel .card { background: #f5f5f5; box-shadow: 0 2px 8px rgba(0,0,0,0.06); border: 1px solid #ddd; max-width: 320px; width: 100%; margin: 0 auto; }

.tabs { display: flex; gap: 8px; margin-bottom: 16px; }
.tab { flex: 1; padding: 12px; border: 1px solid #ccc; background: #fff; border-radius: 8px; font-size: 0.95rem; cursor: pointer; }
.tab.active { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }

.panel { display: block; }
.panel.hidden { display: none !important; }

.result { font-size: 0.9rem; max-height: 60vh; overflow: auto; }
.result-loading, .result-message, .result-error { margin: 0; padding: 8px 0; }
.result-error { color: #c00; }
.result-block { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #eee; }
.result-block:last-child { margin-bottom: 0; padding-bottom: 0; border-bottom: none; }
.result-block-title { font-weight: 700; margin-bottom: 10px; color: #333; }
.result-rows { display: flex; flex-direction: column; gap: 8px; }
.result-row { display: flex; flex-direction: column; gap: 2px; }
.result-label { font-size: 0.8rem; color: #666; }
.result-value { word-break: break-word; color: #1a1a1a; }
.result.ok { border-left: 4px solid #0a0; }
.result.error { border-left: 4px solid #c00; }
.result.not_found { border-left: 4px solid #fa0; }

.history-list { display: flex; flex-direction: column; gap: 10px; }
.history-item { background: #f5f5f5; border-radius: 12px; padding: 14px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); border: 1px solid #ddd; }
.history-item .type { font-weight: 600; font-size: 0.9rem; }
.history-item .params { font-size: 0.85rem; color: #555; margin-top: 4px; }
.history-item .meta { font-size: 0.8rem; color: #888; margin-top: 6px; }
.history-item .preview { font-size: 0.8rem; margin-top: 6px; max-height: 80px; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 400px) { .wrap { padding: 8px; } .card { padding: 14px; } }
