:root{--bg: var(--tg-bg-color, #ffffff);--secondary-bg: var(--tg-secondary-bg-color, #f2f2f7);--text: var(--tg-text-color, #000000);--hint: var(--tg-hint-color, #8e8e93);--link: var(--tg-link-color, #007aff);--button: var(--tg-button-color, #007aff);--button-text: var(--tg-button-text-color, #ffffff);--destructive: var(--tg-destructive-text-color, #ff3b30);--radius: 12px}:root[data-scheme=dark]{--bg: var(--tg-bg-color, #17212b);--secondary-bg: var(--tg-secondary-bg-color, #232e3c);--text: var(--tg-text-color, #ffffff);--hint: var(--tg-hint-color, #7d8b99)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45;padding-bottom:env(safe-area-inset-bottom)}.screen{max-width:640px;margin:0 auto;padding:16px}h1{font-size:20px;margin:0 0 4px}.hint{color:var(--hint);font-size:14px;margin:0 0 16px}.card{background:var(--secondary-bg);border-radius:var(--radius);padding:16px;margin-bottom:12px}.tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tool{background:var(--secondary-bg);color:var(--text);border:none;border-radius:var(--radius);padding:16px 12px;font-size:15px;text-align:left;cursor:pointer}.tool:disabled{opacity:.45;cursor:default}.tool small{display:block;color:var(--hint);font-size:12px;margin-top:4px}button.primary{width:100%;background:var(--button);color:var(--button-text);border:none;border-radius:var(--radius);padding:14px;font-size:16px;font-weight:500;cursor:pointer}button.primary:disabled{opacity:.5;cursor:default}button.link{background:none;border:none;color:var(--link);font-size:15px;padding:8px 0;cursor:pointer}.progress{height:6px;background:var(--bg);border-radius:3px;overflow:hidden;margin:12px 0 8px}.progress>span{display:block;height:100%;background:var(--button);transition:width .25s ease}.file-input{display:block;width:100%;padding:24px 16px;border:2px dashed var(--hint);border-radius:var(--radius);text-align:center;color:var(--hint);cursor:pointer}.file-input input{display:none}.error{color:var(--destructive);font-size:14px;margin:8px 0}.result-text{white-space:pre-wrap;word-break:break-word;font-size:15px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.text-input{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--hint);border-radius:var(--radius);padding:12px;font-size:16px;font-family:inherit}.text-input:focus{outline:none;border-color:var(--button)}button.card.row{border:none;cursor:pointer;font-family:inherit;font-size:15px;color:var(--text)}
