:root{--bg: var(--tg-theme-bg-color, #0f0f0f);--text: var(--tg-theme-text-color, #ffffff);--hint: var(--tg-theme-hint-color, #999999);--btn: var(--tg-theme-button-color, #2aabee);--btn-text: var(--tg-theme-button-text-color, #ffffff);--secondary: var(--tg-theme-secondary-bg-color, #1a1a1a);--card: var(--tg-theme-section-bg-color, #1c1c1e);--link: var(--tg-theme-link-color, #2aabee);--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--radius: 14px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;padding:0;-webkit-font-smoothing:antialiased}.hidden{display:none!important}.loader-wrap,.error-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:16px;color:var(--hint)}.spinner{width:36px;height:36px;border:3px solid var(--secondary);border-top-color:var(--btn);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.header{padding:16px 16px 12px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0;background:var(--bg);z-index:10;border-bottom:1px solid rgba(255,255,255,.06)}.brand{display:flex;align-items:baseline;gap:8px}.logo{font-weight:800;font-size:22px;background:linear-gradient(135deg,#2aabee,#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sub{color:var(--hint);font-size:13px}.role-switch{display:flex;background:var(--secondary);border-radius:10px;padding:3px;gap:2px}.role-btn{flex:1;border:none;background:transparent;color:var(--hint);padding:8px 0;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.role-btn.active{background:var(--btn);color:var(--btn-text)}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}.stat-card{background:var(--card);border-radius:var(--radius);padding:14px 10px;text-align:center}.stat-label{font-size:11px;color:var(--hint);margin-bottom:6px;text-transform:uppercase;letter-spacing:.3px}.stat-value{font-size:18px;font-weight:700}.chart-card{margin:0 16px 16px;background:var(--card);border-radius:var(--radius);padding:16px}.chart-card h3{font-size:14px;color:var(--hint);margin-bottom:12px;font-weight:600}.content{padding:0 16px 32px;display:flex;flex-direction:column;gap:12px}.panel-card{background:var(--card);border-radius:var(--radius);padding:16px}.panel-card h4{font-size:15px;margin-bottom:10px}.panel-card p{font-size:13px;color:var(--hint);line-height:1.5}.btn-primary{background:var(--btn);color:var(--btn-text);border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:600;cursor:pointer;width:100%;margin-top:8px}.btn-primary:active{opacity:.85}.btn-secondary{background:var(--secondary);color:var(--text);border:none;border-radius:10px;padding:12px 20px;font-size:14px;font-weight:600;cursor:pointer;width:100%}.list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.05)}.list-item:last-child{border-bottom:none}.list-item .title{font-size:14px;font-weight:500}.list-item .meta{font-size:12px;color:var(--hint)}.badge{font-size:11px;padding:3px 8px;border-radius:20px;font-weight:600}.badge-green{background:#22c55e26;color:var(--success)}.badge-yellow{background:#f59e0b26;color:var(--warning)}.badge-red{background:#ef444426;color:var(--danger)}.empty-state{text-align:center;padding:32px 16px;color:var(--hint);font-size:14px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;z-index:100;animation:fadeIn .2s ease}.modal-card{background:var(--card);width:100%;border-top-left-radius:20px;border-top-right-radius:20px;padding:24px 20px 32px;display:flex;flex-direction:column;gap:14px}.modal-card h3{font-size:18px;margin-bottom:4px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:12px;color:var(--hint);font-weight:600}.form-input{background:var(--secondary);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px;color:var(--text);font-size:14px;outline:none}.form-input:focus{border-color:var(--btn)}.modal-actions{display:flex;gap:10px;margin-top:8px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
