[data-theme=light]{--bg:#fff;--surface:#f6f6f6;--surface-2:#efefef;--surface-3:#fafafa;--line:#e4e4e4;--line-strong:#d0d0d0;--text:#111;--text-soft:#2a2a2a;--text-muted:#555;--text-dim:#888;--accent:#111;--accent-contrast:#fff;--bar-track:#e8e8e8;--bar-fill:#111;--pill-remote-bg:#fff;--pill-remote-fg:#555;--pill-remote-border:#d0d0d0;--pill-onsite-bg:#111;--pill-onsite-fg:#fff;--shadow:0 1px 2px #0000000a}[data-theme=dark]{--bg:#111;--surface:#1d1d1d;--surface-2:#202020;--surface-3:#161616;--line:#2a2a2a;--line-strong:#3a3a3a;--text:#fff;--text-soft:#e8e8e8;--text-muted:#bababa;--text-dim:#777;--accent:#fff;--accent-contrast:#111;--bar-track:#2a2a2a;--bar-fill:#fff;--pill-remote-bg:transparent;--pill-remote-fg:#bababa;--pill-remote-border:#3a3a3a;--pill-onsite-bg:#fff;--pill-onsite-fg:#111;--shadow:0 1px 2px #0000004d}[data-style=colored][data-theme=light]{--accent:#2563eb;--accent-contrast:#fff;--bar-fill:#2563eb;--bar-track:#dbeafe;--pill-onsite-bg:#2563eb;--pill-onsite-fg:#fff;--pill-remote-bg:#eff6ff;--pill-remote-fg:#2563eb;--pill-remote-border:#93c5fd;--surface:#f8fafc;--surface-2:#f1f5f9;--line:#e2e8f0;--line-strong:#cbd5e1}[data-style=colored][data-theme=dark]{--accent:#3b82f6;--accent-contrast:#fff;--bar-fill:#3b82f6;--bar-track:#1e3a5f;--pill-onsite-bg:#3b82f6;--pill-onsite-fg:#fff;--pill-remote-bg:#1e293b;--pill-remote-fg:#93c5fd;--pill-remote-border:#1e3a5f;--surface:#1a1f2e;--surface-2:#1e2536;--line:#2a3548;--line-strong:#3a4a63}:root{--font-primary:"Open Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-secondary:"Noto Sans", system-ui, sans-serif;font-family:var(--font-primary);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{font-size:15px;line-height:1.55}a{color:inherit}button{font-family:inherit}.app{background:var(--bg);min-height:100vh;color:var(--text);transition:background .2s,color .2s}.top-controls{z-index:100;align-items:center;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.top-control-btn{background:var(--surface);border:1px solid var(--line-strong);color:var(--text-soft);cursor:pointer;letter-spacing:.05em;border-radius:8px;justify-content:center;align-items:center;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:700;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.top-control-btn:hover{background:var(--surface-2);border-color:var(--accent);color:var(--text)}.top-control-btn svg{display:block}.dropzone-wrap{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px;display:flex}.dropzone{background:var(--surface);border:1.5px dashed var(--line-strong);text-align:center;cursor:pointer;border-radius:20px;flex-direction:column;align-items:center;gap:14px;width:min(560px,100%);padding:48px 40px;transition:border-color .2s,background .2s,transform .2s;display:flex}.dropzone:hover{border-color:var(--accent)}.dropzone.is-over{border-color:var(--accent);transform:translateY(-2px)}.dropzone h1{letter-spacing:-.01em;margin:4px 0 0;font-size:26px;font-weight:700}.dropzone-sub{color:var(--text-muted);max-width:400px;margin:0;font-size:14px;line-height:1.5}.dropzone-cta{margin-top:10px}.cta-btn{background:var(--accent);color:var(--accent-contrast);letter-spacing:.01em;border-radius:10px;padding:11px 22px;font-size:14px;font-weight:600;display:inline-block}.dropzone-hint{color:var(--text-dim);margin:8px 0 0;font-size:12px}.dropzone-example{color:var(--text-muted);border-bottom:1px dotted var(--line-strong);margin-top:6px;padding-bottom:1px;font-size:12px;text-decoration:none;transition:color .15s,border-color .15s}.dropzone-example:hover{color:var(--accent);border-bottom-color:var(--accent)}.error{color:#ff8a8a;background:#2a1414;border:1px solid #5a2222;border-radius:10px;max-width:560px;padding:10px 16px;font-size:13px}.config-overlay{z-index:50;background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);justify-content:center;align-items:flex-start;padding:24px;display:flex;position:fixed;inset:0;overflow-y:auto}.config-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:18px;flex-direction:column;gap:18px;width:min(520px,100%);margin:auto;padding:32px 32px 24px;display:flex;box-shadow:0 8px 32px #0003}.config-card h2{text-align:center;letter-spacing:-.01em;margin:0;font-size:20px;font-weight:700}.config-sub{color:var(--text-muted);text-align:center;margin:0;font-size:13px;line-height:1.5}.config-field{flex-direction:column;gap:6px;display:flex}.config-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:12px;font-weight:700}.config-input{background:var(--bg);border:1px solid var(--line-strong);color:var(--text);border-radius:9px;outline:none;padding:11px 14px;font-family:inherit;font-size:14px;transition:border-color .15s}.config-input:focus{border-color:var(--accent)}.config-hint{color:var(--text-dim);font-size:11.5px}.config-radio-group{flex-direction:column;gap:8px;display:flex}.config-radio{border:1px solid var(--line-strong);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.config-radio:hover{background:var(--surface-2)}.config-radio.is-active{border-color:var(--accent);background:var(--surface-2)}.config-radio input[type=radio]{accent-color:var(--accent);margin-top:3px}.config-radio-text{flex-direction:column;gap:2px;display:flex}.config-radio-text strong{color:var(--text);font-size:13.5px}.config-radio-text small{color:var(--text-dim);font-size:11.5px}.config-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.column-mapping-grid{flex-direction:column;gap:8px;margin-top:4px;display:flex}.column-mapping-row{align-items:center;gap:12px;display:flex}.column-mapping-label{color:var(--text-soft);flex:0 0 100px;font-size:12px;font-weight:600}.column-mapping-select{background:var(--bg);border:1px solid var(--line-strong);color:var(--text);cursor:pointer;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-family:inherit;font-size:13px;transition:border-color .15s}.column-mapping-select:focus{border-color:var(--accent)}.column-mapping-select option{background:var(--surface);color:var(--text)}.preview-table-wrap{border:1px solid var(--line);border-radius:10px;margin-top:4px;overflow-x:auto}.preview-table{border-collapse:collapse;table-layout:auto;width:100%;font-size:11.5px}.preview-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border-bottom:1px solid var(--line-strong);white-space:nowrap;background:var(--surface);padding:8px 10px;font-size:10px;font-weight:700}.preview-table tbody td{border-bottom:1px solid var(--line);vertical-align:top;color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;max-width:200px;padding:8px 10px;overflow:hidden}.preview-table tbody tr:last-child td{border-bottom:none}@media (width<=720px){.config-overlay{padding:12px}.config-card{border-radius:14px;gap:14px;padding:20px 16px 16px}.config-card h2{font-size:18px}.config-sub{font-size:12px}.column-mapping-row{flex-direction:column;align-items:stretch;gap:4px}.column-mapping-label{flex:none;font-size:11px}.column-mapping-select{width:100%}.preview-table tbody td{max-width:120px;font-size:10.5px}.preview-table thead th{padding:6px 8px;font-size:9px}.config-actions{flex-direction:column-reverse;gap:8px}.config-actions button{text-align:center;width:100%}}@media (width<=480px){.config-card{padding:16px 12px 14px}.config-radio{padding:10px 12px}.config-radio-text strong{font-size:12.5px}.config-radio-text small{font-size:11px}.preview-table{font-size:10px}.preview-table tbody td{max-width:90px;padding:6px}}.toolbar{z-index:10;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex;position:sticky;top:0}.toolbar-left{min-width:0}.toolbar-ref{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:40vw;font-size:13px;font-weight:600;display:inline-block;overflow:hidden}.toolbar-right{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.theme-toggle,.style-toggle{border:1px solid var(--line-strong);border-radius:9px;display:inline-flex;overflow:hidden}.theme-toggle button,.style-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s}.theme-toggle button.is-active,.style-toggle button.is-active{background:var(--accent);color:var(--accent-contrast)}.theme-toggle button:not(.is-active):hover,.style-toggle button:not(.is-active):hover{background:var(--surface-2);color:var(--text)}.btn-ghost,.btn-primary{cursor:pointer;border:none;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.btn-ghost{color:var(--text-soft);border:1px solid var(--line-strong);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover{filter:brightness(.92)}.report{justify-content:center;padding:32px 16px 64px;display:flex}.doc{background:var(--bg);width:100%;max-width:820px;color:var(--text)}.doc-header{justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;display:flex}.doc-header-left{flex:none;align-items:flex-start;min-width:0;display:flex}.doc-header-center{flex:auto;justify-content:center;align-items:center;display:flex}.doc-logo{object-fit:contain;width:auto;max-width:200px;height:auto;max-height:56px}.doc-ref-block{flex-direction:column;display:flex}.doc-ref-label{text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);font-size:10px;font-weight:700}.doc-ref-number{color:var(--text);letter-spacing:-.01em;word-break:break-all;margin-top:3px;font-size:18px;font-weight:700}.doc-ref-line{background:var(--accent);width:100%;min-width:120px;height:2px;margin-top:6px}.doc-header-right{text-align:right;flex:none}.doc-title{letter-spacing:-.01em;color:var(--text);font-size:18px;font-weight:700}.doc-period-headline{color:var(--accent);margin-top:3px;font-size:15px;font-weight:700}.doc-meta{flex-direction:column;gap:3px;margin-top:10px;display:flex}.doc-meta-row{justify-content:flex-end;gap:10px;font-size:12.5px;display:flex}.doc-meta-k{color:var(--text-dim)}.doc-meta-v{color:var(--text-soft);font-weight:600}.doc-rule{background:var(--accent);border-radius:2px;height:3px;margin-bottom:22px}.totals-band{border:1px solid var(--line-strong);break-inside:avoid;border-radius:14px;align-items:stretch;gap:0;margin-bottom:30px;display:flex;overflow:hidden}.totals-band-main{background:var(--accent);color:var(--accent-contrast);flex-direction:column;flex:0 0 38%;justify-content:center;padding:18px 22px;display:flex}.totals-band-label{text-transform:uppercase;letter-spacing:.12em;opacity:.8;font-size:11px}.totals-band-value{letter-spacing:-.01em;margin-top:4px;font-size:26px;font-weight:700;line-height:1.1}.totals-band-split{flex:1;display:flex}.totals-split-item{border-left:1px solid var(--line-strong);background:var(--surface);flex-direction:column;flex:1;gap:6px;padding:16px 18px;display:flex}.totals-split-dur{font-variant-numeric:tabular-nums;color:var(--text);font-size:16px;font-weight:700}.doc-section{margin-bottom:28px}.section-title{text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);border-bottom:1px solid var(--line);margin:0 0 14px;padding-bottom:8px;font-size:12px;font-weight:700}.task-totals-list{flex-direction:column;gap:10px;display:flex}.task-total-row{grid-template-columns:190px 1fr 100px;align-items:center;gap:14px;font-size:13px;display:grid}.task-total-name{color:var(--text-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.task-total-bar{background:var(--bar-track);border-radius:999px;height:7px;overflow:hidden}.task-total-bar-fill{background:var(--bar-fill);border-radius:999px;height:100%}.task-total-time{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.doc-section{flex-direction:column;display:flex}.day-block{break-inside:avoid;margin-bottom:14px}.day-block:last-child{margin-bottom:0}.day-head{margin-bottom:5px}.day-date{color:var(--text-soft);text-transform:capitalize;font-size:12.5px;font-weight:600}.entries-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:12.5px}.entries-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);border-bottom:1px solid var(--line-strong);padding:6px 10px;font-size:10px;font-weight:700}.entries-table tbody td{border-bottom:1px solid var(--line);vertical-align:top;color:var(--text);padding:9px 10px;line-height:1.45}.entries-table tbody tr:last-child td{border-bottom:none}.col-time{white-space:nowrap;width:88px;color:var(--text-muted);font-variant-numeric:tabular-nums}.col-task{white-space:nowrap;text-overflow:ellipsis;width:110px;color:var(--text-soft);font-size:11.5px;font-weight:600;overflow:hidden}.col-desc{word-wrap:break-word;overflow-wrap:break-word}.col-tag{white-space:nowrap;width:76px}.col-dur{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:72px;color:var(--text);font-weight:700}.tag-pill{letter-spacing:.02em;border:1px solid var(--pill-remote-border);background:var(--pill-remote-bg);color:var(--pill-remote-fg);border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:600;display:inline-block}.tag-onsite{background:var(--pill-onsite-bg);color:var(--pill-onsite-fg);border-color:var(--pill-onsite-bg)}[data-style=simple]{--bg:#fff;--surface:#fff;--surface-2:#fff;--line:#ccc;--line-strong:#999;--text:#000;--text-soft:#1a1a1a;--text-muted:#444;--text-dim:#666;--accent:#000;--accent-contrast:#fff;--bar-track:#fff;--bar-fill:#000;--pill-remote-bg:#fff;--pill-remote-fg:#000;--pill-remote-border:#ccc;--pill-onsite-bg:#000;--pill-onsite-fg:#fff;--shadow:none}[data-style=simple] .totals-band{border:1px solid #000;border-left:none;border-right:none;border-radius:0;flex-direction:column}[data-style=simple] .totals-band-main{color:#000;background:#fff;border-radius:0;padding:12px 0 10px}[data-style=simple] .totals-band-value{font-size:22px}[data-style=simple] .totals-band-split{border-top:1px solid #ccc}[data-style=simple] .totals-split-item{background:#fff;border-left:none;padding:10px 0}[data-style=simple] .totals-split-item+.totals-split-item{border-left:none}[data-style=simple] .totals-split-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:11px;font-weight:700}[data-style=simple] .task-total-row{border-bottom:1px solid var(--line);grid-template-columns:1fr 100px;padding:5px 0}[data-style=simple] .task-total-name{font-weight:600}[data-style=simple] .entries-table thead th{border-bottom:1px solid #000}[data-style=simple] .entries-table tbody td{border-bottom:1px solid var(--line)}[data-style=simple] .tag-text{color:var(--text-muted);font-size:11.5px}[data-style=simple] .doc-rule{display:none}[data-style=simple] .doc-ref-line{background:#000}[data-style=simple] .doc-period-headline{color:#000}[data-style=simple] .section-title{border-bottom:1px solid #000}[data-style=simple] .day-date{text-transform:none;border-bottom:1px solid var(--line);padding-bottom:3px;font-size:13px;font-weight:700;display:block}.doc-closing{margin-top:20px}.signature-block{justify-content:flex-end;padding-top:16px;display:flex}.signature-area{text-align:center;width:260px}.signature-img{object-fit:contain;width:auto;max-width:240px;height:auto;max-height:90px;margin:0 auto;display:block}.signature-placeholder{height:70px;color:var(--text-dim);border:1px dashed var(--line-strong);border-radius:8px;justify-content:center;align-items:center;margin-bottom:8px;font-size:12px;display:flex}.signature-line{border-top:1px solid var(--line-strong);margin-top:8px}.doc-footer{border-top:1px solid var(--line);text-align:center;color:var(--text-dim);letter-spacing:.01em;margin-top:18px;padding-top:10px;font-size:11px}.doc-footer-link,.doc-footer-link:visited{color:var(--text-muted);border-bottom:1px dotted var(--line-strong);text-decoration:none}.doc-footer-link:hover{color:var(--text);border-bottom-color:var(--text-muted)}.app-footer{text-align:center;color:var(--text-dim);border-top:1px solid var(--line);margin-top:28px;padding:16px 20px;font-size:12px}.app-footer-link,.app-footer-link:visited{color:var(--text-muted);border-bottom:1px dotted var(--line-strong);text-decoration:none}.app-footer-link:hover{color:var(--text);border-bottom-color:var(--text-muted)}@media (width<=720px){.totals-band{flex-direction:column}.totals-band-main{flex:none}.totals-split-item{border-left:none;border-top:1px solid var(--line-strong)}.task-total-row{grid-template-columns:120px 1fr 80px}[data-style=full] .col-tag,.col-task{display:none}.doc-header{flex-direction:column;gap:14px}.doc-header-center{justify-content:flex-start}.doc-header-right{text-align:left}.doc-meta-row{justify-content:flex-start}.toolbar{flex-direction:column;align-items:stretch;gap:8px;padding:10px 14px}.toolbar-left{text-align:center}.toolbar-ref{max-width:100%}.toolbar-right{justify-content:center;gap:6px}.btn-ghost,.btn-primary{padding:8px 12px;font-size:12px}.report{padding:16px 10px 48px}.doc{max-width:100%}}@media (width<=480px){.toolbar-right{flex-direction:column;align-items:stretch;gap:6px}.toolbar-right>button,.toolbar-right>.doc-toggle,.toolbar-right>.theme-toggle,.toolbar-right>.style-toggle{text-align:center;width:100%}.doc-toggle,.theme-toggle,.style-toggle{display:flex}.doc-toggle button,.theme-toggle button,.style-toggle button{flex:1}.eng-summary-band{flex-direction:column}.eng-summary-band-main{flex:none}.eng-summary-band-split{flex-direction:column}.eng-summary-split-item{border-left:none;border-top:1px solid var(--line-strong)}.eng-commits-table{font-size:10px}.eng-col-hash{width:52px}.eng-col-hash code{font-size:8px}.eng-col-files,.eng-col-ins,.eng-col-del{width:38px;font-size:9px}.eng-day-stats{flex-direction:column;gap:4px}}@media print{@page{size:A4;margin:14mm 12mm}html,body,.app{background:var(--bg)!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}body{-webkit-font-smoothing:antialiased;text-rendering:geometricprecision;font-size:11pt;line-height:1.4}.no-print{display:none!important}.report{padding:0;display:block}.doc{max-width:none;margin:0}.toolbar{display:none!important}.totals-band,.day-block{break-inside:avoid}.doc-section{break-inside:auto}.section-title{break-after:avoid}.col-desc{word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}.col-task{text-overflow:ellipsis;overflow:hidden}.doc-closing{break-inside:avoid;margin-top:20px}.doc-title{font-size:14pt}.doc-period-headline{font-size:12pt}.doc-meta-row{font-size:9.5pt}.doc-ref-number{font-size:13pt}.totals-band-label{font-size:8.5pt}.totals-band-value{font-size:19pt}.totals-split-dur{font-size:12pt}.section-title{font-size:9pt}.task-total-row{font-size:10pt}.entries-table{font-size:9.5pt}.entries-table thead th{font-size:8pt}.col-task{font-size:9pt}.day-date{font-size:10pt}.tag-pill,.doc-footer{font-size:8pt}.doc-logo{max-height:14mm}.signature-img{max-height:22mm}[data-theme=dark]{--bg:#fff;--surface:#fff;--surface-2:#f6f6f6;--line:#e4e4e4;--line-strong:#d0d0d0;--text:#000;--text-soft:#1a1a1a;--text-muted:#444;--text-dim:#666;--accent:#000;--accent-contrast:#fff;--bar-track:#e8e8e8;--bar-fill:#000;--pill-remote-bg:#fff;--pill-remote-fg:#000;--pill-remote-border:#ccc;--pill-onsite-bg:#000;--pill-onsite-fg:#fff}.config-card,.dropzone{box-shadow:none!important}}.eng-comment{background:var(--surface-2);border-left:3px solid var(--accent);break-inside:avoid;border-radius:0 8px 8px 0;margin-bottom:24px;padding:14px 18px}.eng-comment p{color:var(--text-muted);margin:0;font-size:12px;font-style:italic;line-height:1.6}.eng-summary-band{border:1px solid var(--line-strong);break-inside:avoid;border-radius:14px;align-items:stretch;gap:0;margin-bottom:28px;display:flex;overflow:hidden}.eng-summary-band-main{background:var(--accent);color:var(--accent-contrast);flex-direction:column;flex:0 0 32%;justify-content:center;padding:18px 22px;display:flex}.eng-summary-band-label{text-transform:uppercase;letter-spacing:.12em;opacity:.8;font-size:11px}.eng-summary-band-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:26px;font-weight:700;line-height:1.1}.eng-summary-band-split{flex:1;display:flex}.eng-summary-split-item{border-left:1px solid var(--line-strong);background:var(--surface);flex-direction:column;flex:1;gap:6px;padding:16px 18px;display:flex}.eng-summary-split-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-size:11px;font-weight:700}.eng-summary-split-dur{font-variant-numeric:tabular-nums;color:var(--text);font-size:16px;font-weight:700}.eng-heatmap-section{break-inside:avoid}.eng-heatmap{flex-direction:column;gap:8px;display:flex}.eng-heatmap-weekdays{grid-template-columns:repeat(7,1fr);gap:4px;max-width:280px;display:grid}.eng-heatmap-weekday{text-transform:uppercase;color:var(--text-dim);text-align:center;font-size:9px;font-weight:600}.eng-heatmap-grid{grid-template-columns:repeat(7,1fr);gap:4px;max-width:280px;display:grid}.eng-heat-cell{aspect-ratio:1;width:100%;color:var(--text-dim);border-radius:4px;justify-content:center;align-items:center;font-size:8px;font-weight:600;display:flex;position:relative}.eng-heat-cell-empty{border:1px dashed var(--line);background:0 0}.eng-heat-cell-l0{background:var(--surface-2);border:1px solid var(--line)}.eng-heat-cell-l1{background:color-mix(in srgb, var(--accent) 25%, var(--surface-2));border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line));color:var(--text-soft)}.eng-heat-cell-l2{background:color-mix(in srgb, var(--accent) 50%, var(--surface-2));border:1px solid color-mix(in srgb, var(--accent) 50%, var(--line));color:var(--accent-contrast)}.eng-heat-cell-l3{background:color-mix(in srgb, var(--accent) 75%, var(--surface-2));border:1px solid color-mix(in srgb, var(--accent) 75%, var(--line));color:var(--accent-contrast)}.eng-heat-cell-l4{background:var(--accent);border:1px solid var(--accent);color:var(--accent-contrast)}.eng-heat-cell-num{font-size:8px}.eng-heat-cell-sm{aspect-ratio:1;border-radius:3px;width:14px;height:14px}.eng-heatmap-legend{color:var(--text-dim);align-items:center;gap:4px;font-size:10px;display:flex}.eng-heatmap-legend-label{margin:0 2px}.eng-empty-state{text-align:center;background:var(--surface);border:1px solid var(--line-strong);break-inside:avoid;border-radius:12px;margin-bottom:28px;padding:28px 20px}.eng-empty-text{color:var(--text);margin:0 0 6px;font-size:14px;font-weight:600}.eng-empty-sub{color:var(--text-muted);margin:0;font-size:12px;line-height:1.5}.eng-milestones-section{break-after:avoid}.eng-milestone-list{counter-reset:milestone;margin:0;padding:0;list-style:none}.eng-milestone-row{break-inside:avoid;gap:18px;padding:0 0 24px;display:flex;position:relative}.eng-milestone-row:last-child{padding-bottom:0}.eng-milestone-row:not(:last-child):after{content:"";background:var(--line-strong);width:2px;position:absolute;top:34px;bottom:0;left:17px}.eng-milestone-index{background:var(--accent);width:36px;height:36px;color:var(--accent-contrast);font-variant-numeric:tabular-nums;z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:800;display:flex}.eng-milestone-body{flex-direction:column;flex:1;gap:4px;min-width:0;padding-top:4px;display:flex}.eng-milestone-row-header{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.eng-milestone-row-title{color:var(--text);letter-spacing:-.01em;font-size:15px;font-weight:800}.eng-milestone-row-status{display:none}.eng-milestone-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.eng-milestone-badge-on{color:#fff;background:#22c55e}[data-style=full] .eng-milestone-badge-on,[data-style=simple] .eng-milestone-badge-on{background:var(--text-soft);color:var(--bg)}.eng-milestone-badge-off{background:var(--surface);color:var(--text-dim);border:1.5px solid var(--line-strong)}.eng-milestone-row-statusline{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:10px;font-weight:700}.eng-milestone-row-meta{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:11px;font-weight:600}.eng-milestone-row-objective{color:var(--text-soft);font-size:12px;font-style:italic;line-height:1.4}.eng-milestone-row-summary{color:var(--text-muted);font-size:12px;line-height:1.55}.eng-next-goals{border:1px solid var(--line-strong);background:var(--surface);break-inside:avoid;border-radius:10px;margin-bottom:24px;padding:14px 18px}.eng-next-goals-title{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);margin:0 0 6px;font-size:10px;font-weight:700}.eng-next-goals-text{color:var(--text-muted);margin:0;font-size:12px;line-height:1.55}.eng-day-block{break-inside:avoid;margin-bottom:20px}.eng-day-block:last-child{margin-bottom:0}.eng-day-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px;padding-bottom:5px;display:flex}.eng-day-date{color:var(--text-soft);text-transform:capitalize;font-size:12.5px;font-weight:600}.eng-day-title{color:var(--text);font-size:13px;font-weight:700}.eng-day-tags{flex-wrap:wrap;gap:4px;display:flex}.eng-day-tag{color:var(--accent);background:var(--surface);border:1px solid var(--line-strong);border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.eng-day-narrative{color:var(--text-muted);margin:0 0 10px;font-size:12px;line-height:1.55}.eng-commits-table{border-collapse:collapse;table-layout:fixed;width:100%;margin-bottom:6px;font-size:11px}.eng-commits-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border-bottom:1px solid var(--line-strong);padding:5px 8px;font-size:9px;font-weight:700}.eng-commits-table tbody td{border-bottom:1px solid var(--line);vertical-align:top;color:var(--text);padding:6px 8px;line-height:1.4}.eng-commits-table tbody tr:last-child td{border-bottom:none}.eng-col-hash{white-space:nowrap;width:70px}.eng-col-hash code{color:var(--text-muted);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:10px}.eng-commit-link{color:inherit;border-bottom:1px dotted var(--text-muted);text-decoration:none;transition:color .15s,border-color .15s}.eng-commit-link:hover,.eng-commit-link:focus-visible{color:var(--accent,#2563eb);border-bottom-color:var(--accent,#2563eb);outline:none}.eng-commit-link code{color:inherit}.eng-col-subject{word-wrap:break-word;overflow-wrap:break-word}.eng-col-files,.eng-col-ins,.eng-col-del{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:56px;font-size:10px}.eng-col-ins,.eng-col-del{color:var(--text-muted);font-weight:400}.eng-diff-sign{margin-right:2px;font-size:14px;font-weight:800}.eng-col-ins .eng-diff-sign{color:#16a34a}.eng-col-del .eng-diff-sign{color:#dc2626}[data-style=full] .eng-col-ins .eng-diff-sign{color:var(--text-soft)}[data-style=full] .eng-col-del .eng-diff-sign{color:var(--text-muted)}[data-style=simple] .eng-col-ins .eng-diff-sign{color:var(--text-soft)}[data-style=simple] .eng-col-del .eng-diff-sign{color:var(--text-muted)}.eng-repo-group{border-left:3px solid var(--repo-color,var(--accent));background:color-mix(in srgb, var(--repo-color,var(--accent)) 4%, transparent);border-radius:0 6px 6px 0;margin-bottom:12px;overflow:hidden}.eng-repo-group:last-of-type{margin-bottom:8px}.eng-repo-group-header{background:color-mix(in srgb, var(--repo-color,var(--accent)) 8%, var(--surface));align-items:center;gap:6px;padding:5px 10px;display:flex}.eng-repo-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.eng-repo-group-name{color:var(--text-soft);letter-spacing:-.01em;font-size:11px;font-weight:700}.eng-repo-group-count{color:var(--text-dim);background:var(--surface-2);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:10px;padding:1px 7px;font-size:9px;font-weight:700}.eng-repo-group .eng-commits-table{border-radius:0;margin-bottom:0}.eng-repo-breakdown-section{break-inside:avoid;margin-bottom:28px}.eng-repo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.eng-repo-card{border:1px solid var(--line-strong);background:var(--surface);border-top:3px solid var(--repo-color,var(--accent));break-inside:avoid;border-radius:10px;padding:12px 14px}.eng-repo-card-header{align-items:center;gap:6px;margin-bottom:10px;display:flex}.eng-repo-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.eng-repo-card-stats{grid-template-columns:1fr 1fr;gap:8px 12px;display:grid}.eng-repo-stat{flex-direction:column;gap:1px;display:flex}.eng-repo-stat-value{font-variant-numeric:tabular-nums;color:var(--text);font-size:14px;font-weight:700}.eng-repo-stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:8px;font-weight:700}.eng-repo-diff{font-size:12px;font-weight:600}.eng-diff-ins{color:#16a34a}.eng-diff-del{color:#dc2626}[data-style=full] .eng-diff-ins,[data-style=simple] .eng-diff-ins{color:var(--text-soft)}[data-style=full] .eng-diff-del,[data-style=simple] .eng-diff-del{color:var(--text-muted)}.eng-day-stats{color:var(--text-dim);border-bottom:1px dotted var(--line);flex-wrap:wrap;gap:16px;margin-bottom:8px;padding:4px 0 8px;font-size:10px;display:flex}.eng-day-stat strong{color:var(--text-soft);font-variant-numeric:tabular-nums}.eng-day-no-activity{color:var(--text-dim);padding:8px 0;font-size:11px;font-style:italic}.time-report .eng-day-head .eng-day-title{color:var(--text-soft);margin-left:auto;font-size:11px;font-weight:600}.time-entries-table{border-collapse:collapse;width:100%;margin:8px 0 4px;font-size:11px}.time-entries-table thead th{text-align:left;border-bottom:1px solid var(--line);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;background:var(--surface);padding:6px 8px;font-size:9px;font-weight:600}.time-entries-table tbody td{border-bottom:1px solid var(--line);vertical-align:top;color:var(--text);padding:6px 8px;line-height:1.4}.time-entries-table tbody tr:last-child td{border-bottom:none}.time-col-time{white-space:nowrap;font-variant-numeric:tabular-nums;width:90px;color:var(--text-muted)}.time-col-task{word-wrap:break-word;overflow-wrap:break-word;width:auto}.time-col-status{white-space:nowrap;width:90px}.time-col-dur{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:70px}.doc-toggle{border:1px solid var(--line-strong);border-radius:9px;display:inline-flex;overflow:hidden}.doc-toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px 14px;font-size:12.5px;font-weight:600;transition:background .15s,color .15s}.doc-toggle button.is-active{background:var(--accent);color:var(--accent-contrast)}.doc-toggle button:not(.is-active):hover{background:var(--surface-2);color:var(--text)}.doc-toggle button:disabled{opacity:.4;cursor:not-allowed}.warning{color:#f59e0b;background:color-mix(in srgb, #f59e0b 10%, var(--bg));border:1px solid #f59e0b4d;border-radius:10px;max-width:820px;padding:10px 16px;font-size:13px}@media (width<=720px){.eng-summary-band{flex-direction:column}.eng-summary-band-main{flex:none}.eng-summary-band-split{flex-direction:column}.eng-summary-split-item{border-left:none;border-top:1px solid var(--line-strong)}.eng-commits-table{table-layout:auto}.eng-col-subject{word-break:break-word}.eng-repo-grid{grid-template-columns:1fr}}@media print{.eng-comment{border-radius:0 5pt 5pt 0;margin-bottom:16pt;padding:10pt 14pt}.eng-comment p{font-size:9pt;line-height:1.5}.eng-summary-band{border-radius:8pt}.eng-summary-band-main{padding:12pt 14pt}.eng-summary-band-value{font-size:18pt}.eng-summary-band-label{font-size:8pt}.eng-summary-split-item{padding:10pt 12pt}.eng-summary-split-dur{font-size:12pt}.eng-summary-split-label{font-size:8pt}.eng-heatmap-grid,.eng-heatmap-weekdays{max-width:200pt}.eng-heat-cell{border-radius:2pt}.eng-milestone-index{width:24pt;height:24pt;font-size:11pt}.eng-milestone-row{padding-bottom:16pt}.eng-milestone-row:not(:last-child):after{top:26pt;left:12pt}.eng-milestone-row-title{font-size:11pt}.eng-milestone-row-objective,.eng-milestone-row-summary{font-size:9pt}.eng-commits-table{font-size:8pt}.eng-commits-table thead th,.eng-col-hash code{font-size:7pt}.eng-day-narrative{font-size:9pt}.eng-day-stats{font-size:8pt}.eng-repo-group{border-radius:0 4pt 4pt 0;margin-bottom:8pt}.eng-repo-group-header{padding:4pt 8pt}.eng-repo-group-name{font-size:9pt}.eng-repo-group-count{padding:1pt 5pt;font-size:7pt}.eng-repo-grid{grid-template-columns:repeat(auto-fill,minmax(120pt,1fr));gap:6pt}.eng-repo-card{border-radius:6pt;padding:8pt 10pt}.eng-repo-name{font-size:9pt}.eng-repo-stat-value{font-size:11pt}.eng-repo-stat-label{font-size:6pt}.eng-next-goals{border-radius:6pt;margin-bottom:16pt;padding:10pt 12pt}.eng-next-goals-title{font-size:8pt}.eng-next-goals-text{font-size:9pt}.eng-report[data-theme=dark]{--bg:#fff;--surface:#fff;--surface-2:#f6f6f6;--line:#e4e4e4;--line-strong:#d0d0d0;--text:#000;--text-soft:#1a1a1a;--text-muted:#444;--text-dim:#666;--accent:#000;--accent-contrast:#fff}}[data-style=colored] .eng-summary-band{border-color:var(--accent);box-shadow:0 2px 8px color-mix(in srgb, var(--accent) 15%, transparent)}[data-style=colored] .eng-summary-band-main{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 70%, #000))}[data-style=colored] .eng-summary-split-item{background:color-mix(in srgb, var(--accent) 4%, var(--surface))}[data-style=colored] .eng-summary-split-item+.eng-summary-split-item{border-left-color:color-mix(in srgb, var(--accent) 20%, var(--line-strong))}[data-style=colored] .eng-summary-split-dur{color:var(--accent)}[data-style=colored] .section-title{border-bottom:2px solid var(--accent);padding-bottom:4px}[data-style=colored] .eng-repo-card{box-shadow:0 2px 8px color-mix(in srgb, var(--repo-color) 12%, transparent);background:color-mix(in srgb, var(--repo-color) 3%, var(--surface))}[data-style=colored] .eng-repo-card-header{border-bottom:1px solid color-mix(in srgb, var(--repo-color) 15%, var(--line))}[data-style=colored] .eng-repo-name{color:var(--repo-color)}[data-style=colored] .eng-repo-group{background:color-mix(in srgb, var(--repo-color) 5%, transparent)}[data-style=colored] .eng-repo-group-header{background:color-mix(in srgb, var(--repo-color) 10%, var(--surface))}[data-style=colored] .eng-repo-group-name{color:var(--repo-color);font-weight:700}[data-style=colored] .eng-col-ins .eng-diff-sign{color:#16a34a}[data-style=colored] .eng-col-del .eng-diff-sign{color:#dc2626}[data-style=colored] .eng-diff-ins{color:#16a34a}[data-style=colored] .eng-diff-del{color:#dc2626}[data-style=colored] .eng-milestone-badge-on{color:#fff;background:#22c55e}[data-style=colored] .eng-day-date:before{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}[data-style=colored] .eng-day-tag{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line))}[data-style=colored] .doc-rule{background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 30%, var(--line)));height:3px}[data-style=colored] .eng-milestone-status{background:color-mix(in srgb, var(--accent) 10%, var(--surface));color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 20%, var(--line))}[data-style=colored] .eng-commits-table a{color:var(--accent)}[data-style=colored] .eng-commits-table a:hover{text-decoration:underline}[data-style=colored] .totals-band-main{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 70%, #000))}[data-style=colored] .task-total-bar{background:var(--accent)}[data-style=colored] .tag-pill{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 25%, var(--line))}[data-style=colored] .section-title{color:var(--accent)}
