:root{--bg-1: #f6f2ea;--bg-2: #fdf8ee;--ink: #17252a;--accent: #f97316;--accent-2: #0ea5a3;--line: #e6dcca;--card: #fffdf7}*{box-sizing:border-box}body{margin:0;font-family:Manrope,sans-serif;background:radial-gradient(circle at 10% 0%,#ffe5c2 0%,transparent 40%),radial-gradient(circle at 90% 100%,#d5f6f5 0%,transparent 45%),linear-gradient(180deg,var(--bg-2),var(--bg-1));color:var(--ink);min-height:100vh}.page{width:min(1200px,92%);margin:32px auto 60px}.hero{display:grid;gap:12px;margin-bottom:24px;animation:liftIn .5s ease both}.hero h1{margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.03em}.hero p{margin:0;font-size:1rem;color:#30444a}.actions{display:flex;gap:12px;flex-wrap:wrap}.filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.filters>label,.date-field label{display:block;font-size:.82rem;font-weight:700;color:#42595f;margin-bottom:6px}.filters select,.date-field input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:#fff;color:var(--ink)}.filters select{min-width:180px}.date-field{display:grid}.sync-progress{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fffaf0}.sync-progress-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:.92rem}.sync-progress-track{width:100%;height:10px;border-radius:999px;background:#f2e7d3;overflow:hidden}.sync-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),#fb923c);transition:width .3s ease}.sync-progress p{margin:8px 0 0;font-size:.88rem;color:#42595f}.checkpoint-table-wrap{max-height:55vh;overflow:auto;border:1px solid var(--line);border-radius:10px}.checkpoint-table{width:100%;border-collapse:collapse}.checkpoint-table thead{background:#fff8ec}.checkpoint-table th,.checkpoint-table td{padding:10px 12px;border-bottom:1px solid var(--line);font-size:.88rem}.activity-table-wrap{max-height:60vh;overflow:auto;border:1px solid var(--line);border-radius:10px}.activity-table{width:100%;border-collapse:collapse}.activity-table thead{background:#fff8ec}.activity-table th,.activity-table td{padding:10px 12px;border-bottom:1px solid var(--line);font-size:.88rem;vertical-align:top}.metric-link{all:unset;color:#0f766e;text-decoration:underline;font-weight:700;cursor:pointer}.metric-link:hover{color:#0b5f58}.pr-title-link{color:#0f766e;text-decoration:underline;font-weight:600}.pr-title-link:hover{color:#0b5f58}button{border:none;border-radius:10px;padding:10px 16px;font-weight:700;background:var(--accent);color:#fff;cursor:pointer;transition:transform .18s ease,filter .18s ease}button:hover{transform:translateY(-1px);filter:brightness(1.05)}button.ghost{background:var(--accent-2)}.table-wrap{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 20px 30px #17252a14;animation:liftIn .65s ease both}table{width:100%;border-collapse:collapse}thead{background:#fff2dc}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:.95rem;vertical-align:top}th .sort-btn{all:unset;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:700}th .sort-btn span{color:#486168;font-size:.85rem}.tooltip-icon{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;background:#111;color:#fff;font-size:.72rem;font-weight:800;line-height:1}.tooltip-text{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translate(-50%);background:#111;color:#fff;font-size:.78rem;font-weight:600;padding:6px 8px;border-radius:6px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none;z-index:2}.tooltip-text:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:#111111 transparent transparent transparent}.tooltip-icon:hover .tooltip-text,.tooltip-icon:focus-within .tooltip-text{opacity:1;visibility:visible}.parent-row{cursor:pointer}.parent-row:hover{background:#fffbf2}.child-row td{background:#fffcf6}.pr-row{cursor:pointer}.pr-row:hover{background:#fff8ee}.pr-comment-row td{background:#fffaf2}.comment-list-inline{margin-top:0}.detail-table h3{margin-top:4px;margin-bottom:12px}.detail-loading,.detail-empty{text-align:center;color:#5a6b70;font-weight:600}.detail-loading{display:flex;align-items:center;justify-content:center;gap:8px}.tiny-spinner{width:12px;height:12px;border-radius:999px;border:2px solid #c7d4d7;border-top-color:#2f7f86;animation:tinySpin .7s linear infinite}.empty{text-align:center;color:#657579}.error{color:#b42318;font-weight:700}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e1b1f73;display:grid;place-items:center;padding:18px;z-index:1000}.comment-modal{width:min(760px,96vw);max-height:85vh;overflow:auto;background:#fffdf7;border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 40px #141d2238;padding:16px}.pr-details-modal{width:min(1280px,98vw)}.pr-details-table-wrap{max-height:68vh;overflow:auto;border:1px solid var(--line);border-radius:10px}.pr-details-table{width:100%;border-collapse:collapse}.pr-details-table thead{background:#fff8ec}.pr-details-table th,.pr-details-table td{padding:10px 12px;border-bottom:1px solid var(--line);font-size:.88rem;vertical-align:top;white-space:nowrap}.pr-details-table th:first-child,.pr-details-table td:first-child{white-space:normal;word-break:break-word;min-width:360px}.comment-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.comment-modal-head h3{margin:0;font-size:1.05rem}.comment-modal-note{margin:8px 0;color:#4b6066;font-weight:600;display:inline-flex;align-items:center;gap:8px}.comment-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}.comment-list li{background:#fff8ec;border:1px solid #f0dfc2;border-radius:10px;padding:10px 12px}.comment-list li p{margin:0;white-space:pre-wrap}.comment-list .comment-meta{font-size:.84rem;color:#5d7076;font-weight:700;margin-bottom:6px}@keyframes liftIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes tinySpin{to{transform:rotate(360deg)}}@media (max-width: 900px){.filters{align-items:stretch}.filters select,.date-field input{width:100%}.table-wrap{overflow-x:auto}th,td{white-space:nowrap}}
