:root{--tg-bg: #ffffff;--tg-bg-2: #f4f4f5;--tg-bg-3: #ffffff;--tg-fg: #0f0f0f;--tg-hint: #707579;--tg-link: #2481cc;--tg-accent: #2481cc;--tg-accent-fg: #ffffff;--tg-border: rgba(0, 0, 0, .07);--tg-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 4px 14px rgba(0, 0, 0, .04);--r: 14px}body.tg-dark{--tg-bg-3: rgba(255, 255, 255, .04);--tg-border: rgba(255, 255, 255, .08);--tg-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 22px rgba(0, 0, 0, .3);color-scheme:dark}*{box-sizing:border-box}html,body,#app{margin:0;padding:0;height:100%;background:var(--tg-bg);color:var(--tg-fg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}a{color:var(--tg-link);text-decoration:none;cursor:pointer}button{background:var(--tg-accent);color:var(--tg-accent-fg);border:0;border-radius:var(--r);padding:12px 16px;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .1s}button:active{opacity:.7}button:disabled{opacity:.4;cursor:default}button.secondary{background:var(--tg-bg-2);color:var(--tg-fg);font-weight:500}button.ghost{background:transparent;color:var(--tg-link);padding:6px 8px;font-weight:500}input,textarea{background:var(--tg-bg-2);color:var(--tg-fg);border:1px solid transparent;border-radius:var(--r);padding:12px 14px;font-size:15px;font-family:inherit;outline:none;width:100%;-webkit-appearance:none}input:focus,textarea:focus{border-color:var(--tg-accent)}input::placeholder,textarea::placeholder{color:var(--tg-hint)}.app{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto}.app-body{flex:1;overflow-y:auto;padding:8px 16px calc(96px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.app-tabs{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--tg-bg);border-top:1px solid var(--tg-border);padding:6px 6px calc(8px + env(safe-area-inset-bottom));gap:2px;z-index:50}.app-tabs>a{flex:1;text-align:center;padding:10px 4px 8px;border-radius:10px;color:var(--tg-hint);font-size:11px;line-height:1.2;display:flex;flex-direction:column;align-items:center;gap:4px}.app-tabs>a .icn{font-size:22px}.app-tabs>a.active{color:var(--tg-accent);background:var(--tg-bg-2)}.page-header{display:flex;align-items:baseline;gap:10px;padding:16px 4px 12px}.page-header .icon{font-size:28px;line-height:1}.page-header h1{font-size:24px;font-weight:700;margin:0;letter-spacing:-.02em}.page-header .sub{color:var(--tg-hint);font-size:13px;margin-top:2px}.search-box{position:sticky;top:0;background:var(--tg-bg);padding:8px 0 12px;z-index:5}.list{background:var(--tg-bg-3);border:1px solid var(--tg-border);border-radius:var(--r);overflow:hidden;box-shadow:var(--tg-shadow);margin-bottom:14px}.list-row{display:flex;align-items:center;gap:12px;padding:14px;border-bottom:1px solid var(--tg-border);cursor:pointer;transition:background .1s}.list-row:last-child{border-bottom:0}.list-row:active{background:var(--tg-bg-2)}.list-row .ico{font-size:22px;width:28px;text-align:center}.list-row .name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .chev{color:var(--tg-hint)}.crumbs{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font-size:13px;color:var(--tg-hint);flex-wrap:wrap}.crumbs a{font-weight:500}.hit{background:var(--tg-bg-3);border:1px solid var(--tg-border);border-radius:var(--r);padding:14px;margin-bottom:10px;cursor:pointer;box-shadow:var(--tg-shadow);transition:transform .1s}.hit:active{transform:scale(.99)}.hit-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.hit-title{font-weight:600;font-size:15px}.hit-path{color:var(--tg-hint);font-size:11px;margin-left:auto}.hit-snippet{color:var(--tg-hint);font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.editor-actions{display:flex;gap:8px;margin-top:12px;position:sticky;bottom:88px;background:linear-gradient(transparent,var(--tg-bg) 24px);padding-top:18px}.editor-actions button{flex:1}textarea.editor{min-height:320px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;line-height:1.5;resize:vertical}.preview{background:var(--tg-bg-3);border:1px solid var(--tg-border);border-radius:var(--r);padding:16px;white-space:pre-wrap;word-break:break-word;font-size:14px;line-height:1.55;min-height:320px}.mode-switch{display:inline-flex;background:var(--tg-bg-2);border-radius:999px;padding:3px;margin-bottom:12px}.mode-switch button{background:transparent;color:var(--tg-hint);padding:6px 14px;font-size:13px;border-radius:999px;font-weight:500}.mode-switch button.active{background:var(--tg-bg);color:var(--tg-fg);box-shadow:0 1px 2px #0000001a}.empty{text-align:center;color:var(--tg-hint);padding:40px 16px;font-size:14px}.error{background:#ff5a5a1a;border:1px solid rgba(255,90,90,.3);color:#c53030;padding:12px 14px;border-radius:var(--r);margin:12px 0;font-size:13px;word-break:break-word}body.tg-dark .error{color:#ff8b8b}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.card{background:var(--tg-bg-3);border:1px solid var(--tg-border);border-radius:var(--r);padding:14px;box-shadow:var(--tg-shadow)}.card.span-2{grid-column:span 2}.card .lbl{color:var(--tg-hint);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.card .num{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.1}.card .meta{color:var(--tg-hint);font-size:12px;margin-top:4px}.card .val{font-size:15px;font-weight:600;line-height:1.3}.tags-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag-chip{background:var(--tg-bg-2);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--tg-fg)}.toast{background:var(--tg-bg-3);border:1px solid var(--tg-border);border-radius:var(--r);padding:12px;margin-top:12px;font-size:13px;box-shadow:var(--tg-shadow)}.toast.ok{border-color:#2eb85c66}.toast code{background:var(--tg-bg-2);padding:2px 6px;border-radius:4px;font-size:11px}.kv{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;font-size:13px;margin-bottom:8px}.kv .k{color:var(--tg-hint)}.kv .v{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
