:root{--tg-bg: var(--tg-theme-bg-color, #f4f4f5);--tg-secondary-bg: var(--tg-theme-secondary-bg-color, #ffffff);--tg-text: var(--tg-theme-text-color, #18222d);--tg-hint: var(--tg-theme-hint-color, #6d7885);--tg-link: var(--tg-theme-link-color, #2aabee);--tg-button: var(--tg-theme-button-color, #2aabee);--tg-button-text: var(--tg-theme-button-text-color, #ffffff);--tg-destructive: #e53935;--field-bg: color-mix(in srgb, var(--tg-secondary-bg) 78%, var(--tg-bg) 22%);--field-border: color-mix(in srgb, var(--tg-text) 16%, transparent);--field-border-focus: color-mix(in srgb, var(--tg-button) 60%, transparent);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;color:var(--tg-text);background:var(--tg-bg)}.app{max-width:920px;margin:0 auto;padding:calc(106px + env(safe-area-inset-top)) 14px calc(98px + env(safe-area-inset-bottom))}.app-content{padding-bottom:8px}.access-card{max-width:640px;margin:80px auto;text-align:center}.app-header{position:fixed;top:0;left:50%;transform:translate(-50%);width:min(920px,100%);z-index:25;padding:calc(12px + env(safe-area-inset-top)) 14px 10px;background:color-mix(in srgb,var(--tg-bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--tg-text) 10%,transparent)}.app-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.app-brand h1{margin:0;letter-spacing:.04em;font-size:28px;font-weight:800}.app-brand p{margin:6px 0 0;color:var(--tg-hint);font-size:14px}.status-pill{display:inline-flex;align-items:center;white-space:nowrap;padding:8px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid transparent}.status-pill.ok{color:#198754;background:color-mix(in srgb,#198754 14%,var(--tg-secondary-bg));border-color:color-mix(in srgb,#198754 32%,transparent)}.status-pill.warn{color:#9a6700;background:color-mix(in srgb,#f59f00 18%,var(--tg-secondary-bg));border-color:color-mix(in srgb,#f59f00 35%,transparent)}.status-pill.bad{color:var(--tg-destructive);background:color-mix(in srgb,var(--tg-destructive) 14%,var(--tg-secondary-bg));border-color:color-mix(in srgb,var(--tg-destructive) 34%,transparent)}.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.tab{border:0;border-radius:12px;padding:10px 14px;background:var(--tg-secondary-bg);color:var(--tg-text);cursor:pointer;font-weight:600;box-shadow:inset 0 0 0 1px #0000000f}.tab.active{background:color-mix(in srgb,var(--tg-button) 18%,var(--tg-secondary-bg));color:var(--tg-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tg-button) 40%,transparent)}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:10px}.list{display:grid;gap:10px}.card{border:0;border-radius:14px;background:var(--tg-secondary-bg);padding:12px;text-align:left;box-shadow:inset 0 0 0 1px #0000000a}.card.active{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--tg-button) 55%,transparent)}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}.editor{border:0;border-radius:14px;padding:12px;background:var(--tg-secondary-bg);box-shadow:inset 0 0 0 1px #0000000a}label{font-size:13px;font-weight:600;color:var(--tg-hint)}input,textarea,button{width:100%;padding:10px 12px;margin-top:4px;margin-bottom:8px;border:0;border-radius:10px;background:var(--field-bg);color:var(--tg-text);box-shadow:inset 0 0 0 1px var(--field-border)}textarea{resize:vertical}input:focus,textarea:focus{outline:none;box-shadow:inset 0 0 0 1px var(--field-border-focus),0 0 0 3px color-mix(in srgb,var(--tg-button) 20%,transparent)}button{cursor:pointer;font-weight:600}button:not(.tab):not(.card):not(.danger-inline):not(.bottom-nav-tab){background:var(--tg-button);color:var(--tg-button-text);box-shadow:none}button:disabled{opacity:.6;cursor:not-allowed}.inline{display:flex;gap:8px}.inline input{flex:1}.inline button{width:130px}.actions{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.auth-actions{grid-template-columns:repeat(3,1fr)}.compact-list{margin-top:10px}.compact-card{padding:10px}.meta{font-size:12px;color:var(--tg-hint)}.error{color:var(--tg-destructive);font-weight:700}.success{color:#198754;font-weight:700}.channel-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.channel-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--tg-secondary-bg) 88%,#000 12%)}.danger-inline{width:auto;margin:0;padding:7px 10px;border-radius:8px;background:color-mix(in srgb,var(--tg-destructive) 18%,var(--tg-secondary-bg));color:var(--tg-destructive);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tg-destructive) 45%,transparent)}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(920px,100%);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--tg-bg) 84%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid color-mix(in srgb,var(--tg-text) 10%,transparent);z-index:30}.bottom-nav-tab{margin:0;padding:11px 10px;border-radius:12px;background:var(--tg-secondary-bg);color:var(--tg-text);font-weight:700;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tg-text) 10%,transparent)}.bottom-nav-tab.active{background:color-mix(in srgb,var(--tg-button) 22%,var(--tg-secondary-bg));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tg-button) 48%,transparent)}.preview,pre{white-space:pre-wrap;word-break:break-word;overflow-x:auto;font-size:13px;line-height:1.45}summary{cursor:pointer;color:var(--tg-link)}@media (max-width: 820px){.app{padding-top:calc(96px + env(safe-area-inset-top))}.app-brand h1{font-size:24px}.app-brand p{font-size:12px}.status-pill{max-width:54vw;overflow:hidden;text-overflow:ellipsis}.split{grid-template-columns:1fr}.actions{grid-template-columns:1fr 1fr}.auth-actions{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.toolbar>button{width:100%}.bottom-nav{gap:6px;padding-inline:10px}}
