:root{--bg:#0b0d10;--panel:#12151a;--panel-border:#1e2430;--text:#e8eaed;--muted:#8b93a7;--green:#22c55e;--green-btn:#16a34a;--orange:#f59e0b;--red:#ef4444;--tab:#161a22;--tab-active:#1c2230;--radius:10px;--font:"Segoe UI",system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font)}a{color:inherit;text-decoration:none}button{font:inherit}.page{max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.header h1{margin:0;font-size:1.65rem;font-weight:700;letter-spacing:-.02em}.header .sub{margin:.35rem 0 0;color:var(--muted);font-size:.92rem}.header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.updated{color:var(--muted);font-size:.9rem}.btn-refresh{background:var(--green-btn);color:#fff;border:none;border-radius:8px;padding:.5rem .95rem;font-weight:600;cursor:pointer}.btn-refresh:hover{filter:brightness(1.08)}.btn-refresh:disabled{opacity:.55;cursor:not-allowed;filter:none}.sync-action{display:flex;align-items:center;gap:.6rem}.sync-action-msg{font-size:.85rem;max-width:22rem}.sync-action-msg.ok{color:var(--green)}.sync-action-msg.bad{color:var(--red)}.tabs{display:flex;gap:.4rem;margin-bottom:1.25rem;flex-wrap:wrap}.tab{background:var(--tab);border:1px solid transparent;color:var(--muted);border-radius:8px;padding:.45rem .85rem;font-size:.9rem;font-weight:600}.tab.active{background:var(--tab-active);color:var(--text);border-color:var(--panel-border)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:.75rem;gap:.75rem;margin-bottom:1.25rem}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:.9rem 1rem;min-height:96px}.card .label{color:var(--muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.card .value{margin-top:.55rem;font-size:1.75rem;font-weight:700;line-height:1.1}.card .hint{margin-top:.35rem;color:var(--muted);font-size:.8rem}.value.warn{color:var(--orange)}.value.bad{color:var(--red)}.value.ok{color:var(--green)}.alerts{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.5rem}.alert{font-size:.92rem}.alert.warn{color:var(--orange)}.alert.bad{color:var(--red)}.section-title{margin:0 0 .75rem;font-size:1rem;font-weight:650}.table-wrap{overflow-x:auto;border:1px solid var(--panel-border);border-radius:var(--radius);background:var(--panel)}table{width:100%;border-collapse:collapse;font-size:.88rem}td,th{text-align:left;padding:.65rem .75rem;border-bottom:1px solid var(--panel-border);white-space:nowrap}th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase}.badge.ok{background:rgba(34,197,94,.15);color:var(--green)}.badge.partial{background:rgba(245,158,11,.15);color:var(--orange)}.badge.failed{background:rgba(239,68,68,.15);color:var(--red)}.empty{color:var(--muted);padding:1.5rem}.unauth{max-width:480px;margin:4rem auto;padding:1.5rem;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius)}.unauth h1{margin:0 0 .5rem;font-size:1.25rem}.unauth p{margin:0;color:var(--muted);line-height:1.5}.table-hint{margin:-.35rem 0 .75rem;color:var(--muted);font-size:.88rem}.row-link{cursor:pointer}.row-link:hover td{background:rgba(255,255,255,.03)}.row-muted td{opacity:.65}.log-meta{margin-bottom:1rem;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);font-size:.9rem}.log-meta code{font-size:.82rem;word-break:break-all}.log-meta-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.55rem;color:var(--muted);align-items:center}.logs-table .log-message{white-space:normal;min-width:280px}.log-detail{margin:.45rem 0 0;padding:.55rem .65rem;background:#0a0c10;border-radius:6px;color:#fca5a5;font-size:.75rem;overflow-x:auto;max-width:640px;white-space:pre-wrap;word-break:break-word}.cycle-link,.sl-trailing-btn{color:#93c5fd;text-decoration:underline;text-underline-offset:2px}.sl-trailing-btn{background:none;border:none;padding:0;font:inherit;font-weight:650;cursor:pointer}.sl-trailing-btn:hover{color:#bfdbfe}.modal-backdrop{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(0,0,0,.55)}.modal-panel{width:min(420px,100%);max-height:min(85vh,720px);overflow:auto;background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1rem 1.1rem 1.15rem;box-shadow:0 12px 40px rgba(0,0,0,.45)}.modal-panel-wide{width:min(640px,100%)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.modal-header h3{margin:0;font-size:1.05rem;font-weight:700}.modal-close{background:transparent;border:none;color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer;padding:.1rem .35rem}.modal-close:hover{color:var(--text)}.modal-sub{margin:.35rem 0 .9rem;color:var(--muted);font-size:.85rem}.trail-detail-list{display:flex;flex-direction:column;gap:.55rem}.trail-detail-row{display:flex;justify-content:space-between;gap:1rem;font-size:.9rem}.trail-detail-label{color:var(--muted)}.trail-detail-value{font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.autoshift-ladder{display:flex;flex-direction:column;gap:.4rem;padding-top:.15rem}.autoshift-ladder-title{margin:0;color:var(--muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.autoshift-ladder-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.autoshift-tp{display:grid;grid-template-columns:auto 1fr auto;grid-gap:.5rem;gap:.5rem;align-items:baseline;font-size:.9rem}.autoshift-tp-label{font-weight:650;min-width:2.4rem}.autoshift-tp-meta{color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.autoshift-tp-status{font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.02em}.autoshift-tp-status-hit{color:#3d9a5f}.autoshift-tp-status-next{color:#c48a2a}.autoshift-tp-status-pending{color:var(--muted)}