:root{--canvas: #0d1117;--canvas-subtle: #010409;--surface: #161b22;--surface-2: #1c2128;--border: #30363d;--border-muted: #21262d;--text: #e6edf3;--text-secondary: #9198a1;--text-link: #4493f8;--accent: #3fb950;--accent-emphasis: #238636;--accent-muted: rgba(63, 185, 80, .15);--brand: #d4b36a;--danger: #f85149;--danger-muted: rgba(248, 81, 73, .15);--attention: #d29922;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--display: "Source Serif 4", Georgia, "Times New Roman", serif;--header-h: 56px;--radius: 6px;--shadow: 0 8px 24px rgba(1, 4, 9, .5)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--canvas);-webkit-font-smoothing:antialiased}::selection{background:#4493f859}a{color:var(--text-link);text-decoration:none}a:hover{text-decoration:underline}.app-shell{position:relative;isolation:isolate;min-height:100%;display:flex;flex-direction:column;overflow-x:clip}.brand-watermark{position:fixed;left:clamp(-14rem,-16vw,-4rem);top:clamp(-6rem,-8vh,-2rem);bottom:auto;z-index:0;width:clamp(28rem,52vw,48rem);height:clamp(36rem,92vh,58rem);pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.34;mix-blend-mode:screen;transform:rotate(-6deg);mask-image:linear-gradient(90deg,#000 0%,#000 48%,transparent 96%),linear-gradient(180deg,transparent 0%,#000 12%,#000 78%,transparent 100%);mask-composite:intersect;-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 48%,transparent 96%),linear-gradient(180deg,transparent 0%,#000 12%,#000 78%,transparent 100%);-webkit-mask-composite:source-in}.brand-watermark img{width:100%;height:100%;object-fit:contain;object-position:left top;display:block;filter:saturate(1.15) contrast(1.08) brightness(1.05)}.topbar{position:sticky;top:0;z-index:40;height:var(--header-h);display:flex;align-items:center;gap:1rem;padding:0 1rem;background:var(--canvas-subtle);border-bottom:1px solid var(--border)}.topbar-brand{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--display);font-size:1.2rem;font-weight:600;color:var(--text);text-decoration:none;white-space:nowrap;letter-spacing:-.02em}.topbar-brand:hover{text-decoration:none;color:var(--text)}.topbar-brand span{color:var(--brand)}.topbar-mark{width:1.35rem;height:1.35rem;object-fit:contain;flex-shrink:0}.topbar-nav{display:flex;align-items:center;gap:.15rem;flex:1;min-width:0;overflow-x:auto}.topbar-nav a{color:var(--text);padding:.4rem .65rem;border-radius:var(--radius);font-weight:550;font-size:.9rem;text-decoration:none;white-space:nowrap}.topbar-nav a:hover{background:var(--surface);text-decoration:none}.topbar-nav a.active{background:var(--surface);box-shadow:inset 0 -2px 0 var(--accent)}.topbar-right{display:flex;align-items:center;gap:.65rem;margin-left:auto}.topbar-right .select{width:auto;min-width:9rem;max-width:14rem;padding:.35rem .55rem;font-size:.85rem}.avatar{width:1.75rem;height:1.75rem;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#238636,#1f6feb);border:1px solid var(--border)}.main{position:relative;z-index:1;flex:1;width:100%;max-width:1280px;margin:0 auto;padding:1.25rem 1.5rem 3rem}.page-header{margin-bottom:1rem}.page-title{margin:0 0 .25rem;font-size:1.5rem;font-weight:600;letter-spacing:-.02em}.page-sub{margin:0;color:var(--text-secondary);font-size:.9rem}.muted{color:var(--text-secondary)}.repo-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.repo-title{display:flex;align-items:baseline;gap:.35rem;flex-wrap:wrap;font-size:1.25rem;font-weight:400;margin:0}.repo-title a{color:var(--text-link);font-weight:400}.repo-title .slash{color:var(--text-secondary);margin:0 .1rem}.repo-title strong{font-weight:600;color:var(--text)}.repo-meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.repo-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin:0 0 1rem;overflow-x:auto}.repo-tabs a{position:relative;display:inline-flex;align-items:center;gap:.4rem;padding:.7rem 1rem;color:var(--text-secondary);font-weight:550;font-size:.9rem;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.repo-tabs a:hover{color:var(--text);text-decoration:none;border-bottom-color:var(--border)}.repo-tabs a.active{color:var(--text);border-bottom-color:#f78166}.box{background:var(--canvas);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.box-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:.65rem 1rem;background:var(--surface);border-bottom:1px solid var(--border);font-size:.85rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.panel h3{margin:0 0 .5rem;font-size:1rem;font-weight:600}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.55rem 1rem;border-bottom:1px solid var(--border-muted);vertical-align:middle}.table th{background:var(--surface);color:var(--text-secondary);font-size:.75rem;font-weight:600}.table tbody tr:hover{background:#b1bac40f}.table tbody tr:last-child td{border-bottom:none}.row-actions{display:flex;flex-wrap:wrap;gap:.65rem}.file-row-name{display:inline-flex;align-items:center;gap:.55rem;color:var(--text);font-weight:500;text-decoration:none}.file-row-name:hover{color:var(--text-link);text-decoration:none}.file-icon{width:1rem;height:1rem;opacity:.85;flex-shrink:0}.file-icon.dir{color:#54aeff}.file-icon.file{color:var(--text-secondary)}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.95rem;margin-bottom:.75rem}.breadcrumb a{color:var(--text-link);font-weight:600}.breadcrumb .sep{color:var(--text-secondary)}.breadcrumb .current{color:var(--text);font-weight:600}.branch-select{display:inline-flex;align-items:center;gap:.4rem}.branch-select .select{width:auto;min-width:10rem}.code-view{font-family:var(--mono);font-size:12px;line-height:20px;overflow:auto;max-height:min(70vh,900px);background:var(--canvas);margin:0}.code-line{display:grid;grid-template-columns:3.5rem 1fr;min-width:max-content}.code-line:hover{background:#6e76811a}.code-ln{-webkit-user-select:none;user-select:none;text-align:right;padding:0 .75rem;color:var(--text-secondary);border-right:1px solid var(--border-muted)}.code-tx{white-space:pre;padding:0 1rem;color:var(--text)}.blame-grid{display:grid;grid-template-columns:3.2rem 5.5rem 7rem 1fr;gap:.5rem;font-family:var(--mono);font-size:12px;line-height:1.45;padding:.35rem .75rem}.blame-grid:hover{background:#6e768114}.diff{font-family:var(--mono);font-size:12px;white-space:pre-wrap;line-height:1.4}.diff .add{background:#2ea04326}.diff .del{background:#f8514926}.code,textarea.code{font-family:var(--mono);font-size:12px;white-space:pre-wrap;background:var(--canvas);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;overflow:auto;max-height:60vh;width:100%;color:var(--text)}textarea.code{min-height:20rem;resize:vertical}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:var(--radius);padding:.35rem .75rem;font:inherit;font-size:.85rem;font-weight:550;cursor:pointer;text-decoration:none;line-height:1.35}.btn:hover:not(:disabled){background:#292e36;border-color:#8b949e;text-decoration:none}.btn.primary{background:var(--accent-emphasis);border-color:#f0f6fc1a;color:#fff}.btn.primary:hover:not(:disabled){background:#2ea043;border-color:#f0f6fc1a}.btn.danger{color:#ff7b72;border-color:#f8514966;background:var(--danger-muted)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn.ghost:hover:not(:disabled){color:var(--text);background:var(--surface);border-color:var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.select,textarea{width:100%;background:var(--canvas-subtle);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:.45rem .65rem;font:inherit}.input:focus,.select:focus,textarea:focus{outline:none;border-color:#1f6feb;box-shadow:0 0 0 3px #1f6feb4d}.form-row{display:grid;gap:.35rem;margin-bottom:.75rem}.form-row label{font-size:.8rem;font-weight:600;color:var(--text)}.form-grid{display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.check-row{display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem;color:var(--text-secondary);font-size:.9rem}.check-row input{accent-color:var(--accent)}.tag{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:550;border:1px solid transparent;border-radius:2em;padding:0 .5rem;line-height:1.5;background:#6e768133;color:var(--text-secondary)}.tag.open,.tag.ok{background:var(--accent-muted);color:var(--accent)}.tag.accent{background:#d2992226;color:var(--attention)}.tag.danger{background:var(--danger-muted);color:var(--danger)}.stat-grid{display:grid;gap:1rem;grid-template-columns:repeat(4,1fr)}.stat-card{display:block;padding:1rem;color:inherit;text-decoration:none;transition:border-color .12s ease}.stat-card:hover{border-color:#8b949e;text-decoration:none}.stat-card .label{display:block;color:var(--text-secondary);font-size:.75rem;font-weight:600;margin-bottom:.35rem}.stat-card .value{font-size:1.75rem;font-weight:600;letter-spacing:-.03em;margin-bottom:.5rem}.stat-card .cta{color:var(--text-link);font-size:.85rem}.toolbar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.split-panels{display:grid;grid-template-columns:minmax(200px,260px) 1fr;gap:1rem;align-items:start}.file-list{list-style:none;padding:0;margin:.5rem 0;display:grid;gap:.25rem}.file-list .btn{width:100%;justify-content:flex-start;font-family:var(--mono);font-size:.75rem}.error{color:#ff7b72;margin:.5rem 0;padding:.65rem .85rem;border-radius:var(--radius);background:var(--danger-muted);border:1px solid rgba(248,81,73,.4)}.ok-msg{color:var(--accent);margin:.5rem 0 .85rem}.login-wrap{position:relative;isolation:isolate;min-height:100%;display:grid;place-items:center;padding:2rem;overflow:clip;background:radial-gradient(800px 400px at 50% -10%,rgba(31,111,235,.15),transparent 60%),var(--canvas)}.login-wrap .brand-watermark{opacity:.4;left:clamp(-12rem,-22vw,-4rem);top:clamp(-8rem,-12vh,-2rem);bottom:auto;height:clamp(34rem,95vh,56rem);width:clamp(26rem,58vw,44rem)}.login-card{position:relative;z-index:1;width:min(380px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow)}.login-card .brand{display:flex;align-items:center;gap:.55rem;font-family:var(--display);font-size:1.75rem;font-weight:600;margin-bottom:.35rem;letter-spacing:-.02em}.login-card .brand span{color:var(--brand)}.brand-mark-inline{width:2rem;height:2rem;object-fit:contain;flex-shrink:0}.login-card .lede{color:var(--text-secondary);margin:0 0 1.25rem;font-size:.9rem}.repo-list-item{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-bottom:1px solid var(--border-muted)}.repo-list-item:last-child{border-bottom:none}.repo-list-item h3{margin:0 0 .25rem;font-size:1.05rem;font-weight:600}.repo-list-item h3 a{color:var(--text-link)}.repo-latest-commit{margin:.15rem 0 .45rem;font-size:.85rem;display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline;min-width:0}.repo-latest-msg{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:36rem}.repo-latest-when{white-space:nowrap}.file-tree-table .file-commit-msg{max-width:28rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:980px){.stat-grid{grid-template-columns:1fr 1fr}.split-panels{grid-template-columns:1fr}.brand-watermark{opacity:.22;width:clamp(22rem,58vw,34rem);height:clamp(28rem,80vh,42rem);left:clamp(-10rem,-18vw,-3rem);top:-3rem}}@media(max-width:720px){.main{padding:1rem}.topbar-nav{display:none}.brand-watermark{opacity:.16;left:-8rem;top:-2rem;width:20rem;height:26rem}.form-grid,.stat-grid{grid-template-columns:1fr}}
