:root { --bg: var(--tg-theme-secondary-bg-color, #f4f6fa); --card: var(--tg-theme-bg-color, #fff); --text: var(--tg-theme-text-color, #182230); --muted: var(--tg-theme-hint-color, #778398); --accent: var(--tg-theme-button-color, #2f80ed); --line: rgba(116, 131, 152, .18); --danger: #d95757; }
* { box-sizing: border-box; } body { margin: 0; min-width: 320px; background: var(--bg); color: var(--text); font: 14px/1.35 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } button, input { font: inherit; } button { -webkit-tap-highlight-color: transparent; }
.app-shell { max-width: 640px; margin: 0 auto; padding: calc(16px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom)); }.topbar { display: flex; align-items: center; justify-content: space-between; }.eyebrow { margin: 0 0 3px; color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .11em; } h1 { margin: 0; font-size: 28px; letter-spacing: -.04em; }.live { color: #32966b; font-size: 11px; font-weight: 700; }
.summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 20px 0 16px; }.summary div { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 14px; background: var(--card); }.summary span, .muted, .state { color: var(--muted); font-size: 11px; }.summary strong { display: block; margin-top: 3px; font-size: 23px; letter-spacing: -.05em; }
.status-filters, .type-filters { display: flex; gap: 7px; overflow-x: auto; padding: 1px 0 3px; scrollbar-width: none; }.status-filters { margin-bottom: 10px; }.status-filter, .type-filter { flex: 0 0 auto; padding: 7px 11px; border: 1px solid var(--line); border-radius: 20px; background: var(--card); color: var(--muted); font-size: 12px; }.status-filter.is-active, .type-filter.is-active { border-color: color-mix(in srgb, var(--accent) 35%, transparent); background: color-mix(in srgb, var(--accent) 12%, var(--card)); color: var(--accent); font-weight: 700; }
.search { display: flex; align-items: center; gap: 8px; margin: 15px 0 10px; padding: 0 11px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); color: var(--muted); }.search span { font-size: 22px; }.search input { width: 100%; min-width: 0; padding: 11px 0; border: 0; outline: 0; background: transparent; color: var(--text); }.state { margin: 18px 0; text-align: center; }
.ticket-list { display: grid; gap: 8px; }.ticket { width: 100%; padding: 12px; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 13px; background: var(--card); color: var(--text); text-align: left; box-shadow: 0 1px 3px rgba(21, 32, 50, .03); }.ticket:active { transform: scale(.985); }.status-in_progress { border-left-color: #e3a72d; }.status-partial, .status-partially_done { border-left-color: #886ed5; }.status-waiting_user { border-left-color: #d07c49; }.ticket-header, .ticket-footer, .detail-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }.ticket-id, .date { color: var(--muted); font-size: 11px; font-weight: 700; }.badge { display: inline-block; padding: 3px 7px; border-radius: 20px; background: color-mix(in srgb, var(--accent) 12%, var(--card)); color: var(--accent); font-size: 10px; font-weight: 800; }.ticket-title { display: block; margin: 8px 0 3px; font-size: 14px; }.ticket-details { margin: 0 0 11px; color: var(--muted); font-size: 12px; }.user { min-width: 0; overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.sheet[hidden] { display: none; }.sheet { position: fixed; z-index: 5; inset: 0; }.sheet-backdrop { position: absolute; inset: 0; background: rgba(10, 17, 27, .45); }.sheet-card { position: absolute; right: 0; bottom: 0; left: 0; max-height: 86vh; overflow-y: auto; padding: 22px 16px calc(24px + env(safe-area-inset-bottom)); border-radius: 22px 22px 0 0; background: var(--card); }.close { position: absolute; top: 11px; right: 13px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--bg); color: var(--text); font-size: 24px; }.sheet-title { margin: 4px 38px 11px 0; font-size: 23px; }.detail-group { margin-top: 18px; padding: 13px; border: 1px solid var(--line); border-radius: 13px; }.detail-group h3 { margin: 0 0 9px; font-size: 12px; }.detail-group p { margin: 4px 0; }.detail-row { padding: 6px 0; border-top: 1px solid var(--line); }.detail-row:first-of-type { border-top: 0; }.danger { border-color: color-mix(in srgb, var(--danger) 35%, transparent); }.danger h3 { color: var(--danger); }.created { margin: 15px 3px 0; }
@media (min-width: 640px) { .sheet-card { right: calc(50% - 320px); left: calc(50% - 320px); border-radius: 22px 22px 0 0; } }
