.page-header{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 20px}.deployments-container{position:relative;overflow:hidden}.text-muted{color:#ccc}.loading{text-align:center;padding:60px;color:#6b7280;font-size:15px}.skeleton{background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-status{height:28px;width:70px;margin-top:8px;margin-bottom:8px;border-radius:20px}.skeleton-hash{height:22px;width:80px;margin-bottom:8px}.skeleton-timestamp{height:14px;width:130px;margin-bottom:16px}.deployments-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;overflow:hidden;border:1px solid rgb(0 0 0 / .1);box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.deployments-table th,.deployments-table td{padding:16px 20px;text-align:left;vertical-align:top;border-bottom:1px solid #d1d5db}.deployments-table th{background:#f8f9fa;font-weight:600;color:#4b5563;text-transform:uppercase;font-size:11px;letter-spacing:.8px;border-bottom:2px solid #e5e7eb;position:sticky;top:0}.deployments-table tbody tr{border-bottom:1px solid #f3f4f6}.deployments-table tbody tr:last-child{border-bottom:none}.deployments-table tbody tr:last-child td{border-bottom:none}.project-name{font-weight:600;color:#1f2937;font-size:16px;gap:10px;display:flex}.project-name img{width:24px;height:24px}.project-name span{margin:.25rem 0 0 1rem}.project-name button{margin:.25rem}.status-ok{color:#10b981;font-weight:600;font-size:18px}.status-ok.clickable{cursor:pointer}.status-failed{color:#ef4444;font-weight:600;font-size:18px}.error-message{color:#ef4444;font-size:11px;margin-top:8px;display:block;overflow:auto;max-width:300px}.commit-hash{font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:12px;color:var(--primary);cursor:pointer;padding:4px 10px;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border-radius:6px;transition:all .2s ease;display:inline-block;font-weight:500;text-decoration:none}.commit-hash:hover{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);transform:translateY(-1px);text-decoration:none}.timestamp{color:#6b7280;font-size:11px;margin-top:8px;gap:4px}.expo-download-link{font-size:12px;margin-top:8px;display:flex}.status-cell-with-callouts{display:flex;gap:16px;align-items:flex-start}.status-cell-main{min-width:160px}.status-cell-callouts{min-width:160px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.testflight-callout{padding:10px 12px;border:1px solid #60a5fa;border-radius:8px;background:linear-gradient(135deg,#eff6ff,#dbeafe)}.testflight-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#1d4ed8;margin-bottom:4px}.testflight-version{font-size:12px;font-weight:600;color:#1e40af}.testflight-date{font-size:10px;color:#3b82f6;margin-top:2px}.appstore-callout{padding:10px 12px;border:1px solid #22c55e;border-radius:8px;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.appstore-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#15803d;margin-bottom:4px}.appstore-version{font-size:12px;font-weight:600;color:#166534}.appstore-date{font-size:10px;color:#22c55e;margin-top:2px}.playstore-callout{padding:10px 12px;border:1px solid #22c55e;border-radius:8px;background:linear-gradient(135deg,#f0fdf4,#dcfce7)}.playstore-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#15803d;margin-bottom:4px}.playstore-version{font-size:12px;font-weight:600;color:#166534}.refresh-btn{all:unset;cursor:pointer;color:#9ca3af;font-size:12px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:8px}.refresh-btn:hover{color:#4b5563}.refresh-btn.loading svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.jira-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;margin:2px;text-decoration:none;white-space:nowrap;transition:all .2s ease;box-shadow:0 1px 2px #0000000d;text-align:center}.jira-badge:hover{transform:translateY(-1px);box-shadow:0 1px 3px #0000001a;text-decoration:none}.jira-badge.done,.jira-badge.closed,.jira-badge.resolved{background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#047857}.jira-badge.in-progress,.jira-badge.in-review{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1d4ed8}.jira-badge.to-do,.jira-badge.open,.jira-badge.backlog{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);color:#4b5563}.jira-badge.blocked{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#b91c1c}.jira-badge.loading{background:#f3f4f6;color:#9ca3af}.jira-badges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-start}.jira-link{color:#1976d2}.projects-view{transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease;transform:translate(0)}.projects-view.hidden{transform:translate(-100%);position:absolute;opacity:0;pointer-events:none}.commits-view{transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .3s ease;transform:translate(100%);position:absolute;top:0;left:0;width:100%;opacity:0;pointer-events:none}.commits-view.visible{transform:translate(0);position:relative;opacity:1;pointer-events:auto}.back-link{color:var(--primary);cursor:pointer;font-size:14px;font-weight:500;margin-bottom:16px;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;transition:all .2s ease}.back-link:hover{background:#f9fafb;transform:translate(-4px);text-decoration:none}.load-more-link{color:var(--primary);cursor:pointer;font-size:14px;font-weight:500;text-decoration:none;padding:8px 16px;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;transition:all .2s ease;display:inline-block}.load-more-link:hover{background:#f9fafb;box-shadow:0 1px 3px #0000001a;text-decoration:none}.commits-header{margin-bottom:20px;padding:20px 24px;background:#fff}.commits-header h2{margin:12px 0 0;font-size:22px;font-weight:700;color:#1f2937;display:flex;align-items:center;gap:10px}.commit-list-table{width:100%;border-collapse:separate;border-spacing:0;background:#fff;overflow:hidden;border:1px solid rgb(0 0 0 / .1);box-shadow:0 1px 3px #0000001a;font-size:14px}.commit-list-table th,.commit-list-table td{padding:16px 20px;text-align:left;border-bottom:1px solid #e5e7eb}.commit-list-table th{background:#f8f9fa;font-weight:600;color:#4b5563;text-transform:uppercase;font-size:11px;letter-spacing:.8px}.commit-list-table tbody tr:hover{background:#f9fafb}.commit-list-table tbody tr:last-child td{border-bottom:none}@media (max-width: 1000px){.deployments-table,.deployments-table thead,.deployments-table tbody,.deployments-table th,.deployments-table td,.deployments-table tr,.commit-list-table,.commit-list-table thead,.commit-list-table tbody,.commit-list-table th,.commit-list-table td,.commit-list-table tr{display:block;background:transparent}.deployments-table thead,.commit-list-table thead{display:none}.deployments-table,.commit-list-table{border:none}.deployments-table tbody tr,.commit-list-table tbody tr{margin-bottom:16px;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;background:#fff;padding:16px;border:1px solid rgb(0 0 0 / .1)}.deployments-table tbody tr:hover,.commit-list-table tbody tr:hover{background:#fff}.deployments-table td,.commit-list-table td{border-bottom:none;position:relative;padding:10px 0 10px 45%;min-height:28px;max-width:100%}.deployments-table td:before,.commit-list-table td:before{content:attr(data-label);position:absolute;left:0;width:40%;padding-right:10px;font-weight:600;font-size:11px;text-transform:uppercase;color:#6b7280;letter-spacing:.5px}.deployments-table td:first-child,.commit-list-table td:first-child{padding-left:0;padding-bottom:12px;border-bottom:2px solid #f3f4f6;margin-bottom:12px}.deployments-table td:first-child:before,.commit-list-table td:first-child:before{display:none}.jira-badges{flex-direction:column;align-items:flex-start}.jira-badge{font-size:10px}.status-cell-with-callouts{flex-direction:column;gap:12px}.status-cell-callouts{flex-direction:row;flex-wrap:wrap}.commits-header{padding:16px}.commits-header h2{font-size:18px}}.sidebar{width:220px;min-width:220px;background:#f8f9fa;border-right:1px solid #ddd;padding:20px 0;display:flex;flex-direction:column;gap:4px;align-self:stretch}.sidebar-nav-link{background:transparent;color:#333;border:none;border-left:6px solid transparent;padding:12px 16px;text-align:left;cursor:pointer;font-size:14px;font-weight:400;text-decoration:none}.sidebar-nav-link.active{background:linear-gradient(0deg,var(--primary),var(--primary-light));color:#fff;border-left:6px solid var(--primary-light);font-weight:700}.hamburger-btn{display:none;position:fixed;top:12px;left:12px;z-index:1001;background:var(--primary);color:#fff;border:none;border-radius:50%;width:40px;height:40px;cursor:pointer;font-size:24px;line-height:1;padding:0}.hamburger-btn:hover{background:var(--primary-light)}.sidebar-overlay{display:none}@media (max-width: 999px){.hamburger-btn{display:flex;align-items:center;justify-content:center;transition:left .3s ease,right .3s ease}.sidebar{position:fixed;top:68px;left:0;width:100%;min-width:100%;height:100vh;z-index:1000;transform:translate(-100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.sidebar-overlay.visible{opacity:1;visibility:visible}}:root{--primary-l: .35;--primary-c: .12;--primary-h: 145;--primary: oklch(var(--primary-l) var(--primary-c) var(--primary-h));--primary-light: oklch(calc(var(--primary-l) + .15) var(--primary-c) var(--primary-h));--primary-dark: oklch(calc(var(--primary-l) - .15) var(--primary-c) var(--primary-h));--secondary-l: .35;--secondary-c: .12;--secondary-h: 255;--secondary: oklch(var(--secondary-l) var(--secondary-c) var(--secondary-h));--secondary-light: oklch(calc(var(--secondary-l) + .15) var(--secondary-c) var(--secondary-h));--secondary-dark: oklch(calc(var(--secondary-l) - .15) var(--secondary-c) var(--secondary-h))}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:url(https://upload.wikimedia.org/wikipedia/commons/8/8c/MetLife_Stadium_aerial_view.jpg) no-repeat center center fixed;background-size:cover}.backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffd9;min-height:100vh}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid #ddd;background:linear-gradient(0deg,var(--primary-dark),var(--primary));box-shadow:4px 4px 9px #0003;color:#eee}.app-header h1{margin:0}@media (max-width: 999px){.app-header h1{margin-left:3rem}}.app-body{display:flex;flex:1;overflow:hidden}.main-content{flex:1;padding:24px;overflow:auto}.btn{padding:8px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px}.btn-ghost{background:transparent;color:#fff;border:1px solid gray}.btn-ghost:hover{background:#ffffff1a}.card{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 6px #0000001a}.card+.card{margin-top:16px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid #eee}.table th{background:#f8f9fa}.input{padding:6px 8px;border:1px solid #ddd;border-radius:4px}.input:focus{outline:none;border-color:var(--primary)}
