:root{--bg:#f7f8f9;--surface:#fff;--surface-sunken:#f1f2f4;--surface-hover:#f1f2f4;--border:#dcdfe4;--border-strong:#8590a2;--text:#172b4d;--text-subtle:#44546f;--text-subtlest:#626f86;--primary:#0c66e4;--primary-hover:#05c;--primary-text:#fff;--selected:#e9f2ff;--selected-text:#0c66e4;--hover:#091e420f;--pressed:#091e4224;--danger:#c9372c;--danger-bg:#ffeceb;--success:#216e4e;--success-bg:#dcfff1;--warning-bg:#fff7d6;--focus:#388bff;--shadow-card:0 1px 1px #091e4240, 0 0 1px #091e424f;--shadow-overlay:0 8px 12px #091e4226, 0 0 1px #091e424f;--radius:4px;--radius-lg:8px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#1d2125;--surface:#22272b;--surface-sunken:#161a1d;--surface-hover:#2c333a;--border:#38414a;--border-strong:#738496;--text:#dee4ea;--text-subtle:#b6c2cf;--text-subtlest:#9fadbc;--primary:#579dff;--primary-hover:#85b8ff;--primary-text:#1d2125;--selected:#1c2b41;--selected-text:#579dff;--hover:#a6c5e214;--pressed:#a6c5e229;--danger:#f87168;--danger-bg:#42221f;--success:#7ee2b8;--success-bg:#1c3329;--warning-bg:#332e1b;--shadow-card:0 1px 1px #03040480, 0 0 1px #03040480;--shadow-overlay:0 8px 12px #0304045c, 0 0 1px #bcd6f01f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:14px/1.43 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0;font-weight:600}h1{font-size:24px;line-height:28px}h2{font-size:20px;line-height:24px}h3{font-size:16px;line-height:20px}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.btn{border-radius:var(--radius);background:var(--hover);height:32px;color:var(--text-subtle);cursor:pointer;white-space:nowrap;border:0;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-weight:500;display:inline-flex}.btn:hover{background:var(--pressed)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.92);background:var(--danger)}.btn-subtle{background:0 0}.btn-subtle:hover{background:var(--hover)}.btn-block{width:100%;height:40px}.btn-icon{width:32px;padding:0}.btn-sm{height:28px;padding:0 8px;font-size:13px}.link-btn{color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.link-btn:hover{text-decoration:underline}.link-btn:disabled{color:var(--text-subtlest);cursor:default;text-decoration:none}.input,.select,.textarea{border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);outline:none;width:100%;min-height:36px;padding:6px 8px;transition:border-color .1s,background .1s}.input:hover,.select:hover,.textarea:hover{background:var(--surface-hover)}.input:focus,.select:focus,.textarea:focus{border-color:var(--focus);background:var(--surface)}.textarea{resize:vertical;min-height:96px;line-height:1.5}.field{flex-direction:column;gap:4px;margin-bottom:14px;display:flex}.field>label{color:var(--text-subtle);font-size:12px;font-weight:600}.field .hint{color:var(--text-subtlest);font-size:12px}.row{gap:12px;display:flex}.row>*{flex:1;min-width:0}.muted{color:var(--text-subtlest)}.error-box{background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);margin-bottom:14px;padding:8px 12px;font-size:13px}.success-box{background:var(--success-bg);color:var(--success);border-radius:var(--radius);margin-bottom:14px;padding:8px 12px;font-size:13px}.auth-wrap{background:linear-gradient(160deg, var(--bg) 0%, var(--selected) 100%);justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.auth-card{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-overlay);padding:32px 36px}.auth-logo{justify-content:center;align-items:center;gap:8px;margin-bottom:20px;font-size:20px;font-weight:700;display:flex}.auth-card h2{text-align:center;color:var(--text-subtle);margin-bottom:20px;font-size:16px}.auth-foot{text-align:center;flex-direction:column;gap:6px;margin-top:18px;font-size:13px;display:flex}.otp-inputs{justify-content:center;gap:8px;margin:8px 0 18px;display:flex}.otp-inputs input{text-align:center;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);outline:none;width:44px;height:52px;font-size:22px;font-weight:600}.otp-inputs input:focus{border-color:var(--focus)}.otp-note{text-align:center;color:var(--text-subtle);margin-bottom:8px;font-size:13px}.shell{flex-direction:column;height:100%;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:12px;height:56px;padding:0 16px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.topnav{gap:4px;margin-left:12px;display:flex}.topnav a{border-radius:var(--radius);color:var(--text-subtle);padding:6px 10px;font-weight:500}.topnav a:hover{background:var(--hover);text-decoration:none}.topnav a.active{color:var(--selected-text);background:var(--selected)}.spacer{flex:1}.main{flex:1;min-height:0;overflow:auto}.page{max-width:1100px;margin:0 auto;padding:24px 32px}.menu-wrap{position:relative}.menu{z-index:50;background:var(--surface);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow-overlay);padding:6px 0;position:absolute;top:calc(100% + 4px);right:0}.menu.left{left:0;right:auto}.menu-header{border-bottom:1px solid var(--border);margin-bottom:4px;padding:8px 16px}.menu button{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:8px 16px;display:block}.menu button:hover{background:var(--hover)}.menu button.danger{color:var(--danger)}.avatar{color:#fff;-webkit-user-select:none;user-select:none;box-shadow:0 0 0 2px var(--surface);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.avatar.unassigned{background:var(--surface-sunken);color:var(--text-subtlest);box-shadow:inset 0 0 0 1px var(--border)}.avatar-stack{display:flex}.avatar-stack>button{cursor:pointer;background:0 0;border:0;border-radius:50%;margin-left:-4px;padding:0}.avatar-stack>button:first-child{margin-left:0}.avatar-stack>button.on .avatar{box-shadow:0 0 0 2px var(--primary)}.icon{vertical-align:middle;flex:none;display:inline-block}.lozenge{text-transform:uppercase;background:var(--surface-sunken);color:var(--text-subtle);border-radius:3px;padding:0 4px;font-size:11px;font-weight:700;line-height:16px;display:inline-block}.lozenge.blue{background:var(--selected);color:var(--selected-text)}.lozenge.green{background:var(--success-bg);color:var(--success)}.page-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-card);overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:10px 14px}.table th{color:var(--text-subtle);background:var(--surface-sunken);font-size:12px;font-weight:600}.table tr:last-child td{border-bottom:0}.table tbody tr{cursor:pointer}.table tbody tr:hover td{background:var(--hover)}.proj-name{align-items:center;gap:10px;font-weight:500;display:flex}.proj-icon{color:#fff;border-radius:4px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:inline-flex}.empty{text-align:center;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:56px 16px}.empty p{color:var(--text-subtle);margin:8px 0 18px}.board-page{flex-direction:column;height:100%;display:flex}.board-head{flex:none;padding:20px 32px 12px}.crumbs{color:var(--text-subtle);margin-bottom:6px;font-size:13px}.crumbs a{color:var(--text-subtle)}.board-title{align-items:center;gap:12px;margin-bottom:16px;display:flex}.board-tools{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.search{width:220px;position:relative}.search .input{height:32px;min-height:32px;padding-left:30px}.search svg{color:var(--text-subtlest);position:absolute;top:9px;left:9px}.toggle-btn.on{background:var(--selected);color:var(--selected-text)}.board{flex:1;align-items:flex-start;gap:8px;min-height:0;padding:4px 32px 24px;display:flex;overflow-x:auto}.column{background:var(--surface-sunken);border-radius:6px;flex-direction:column;flex:none;width:272px;max-height:100%;display:flex}.column.drop-target{background:var(--selected)}.col-head{min-height:42px;color:var(--text-subtle);text-transform:uppercase;align-items:center;gap:6px;padding:10px 8px 6px 12px;font-size:12px;font-weight:600;display:flex}.col-head .count{color:var(--text-subtlest);font-weight:400}.col-head .col-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.col-head .btn-icon{opacity:0;width:28px;height:28px;margin-left:auto}.column:hover .col-head .btn-icon,.col-head .btn-icon:focus{opacity:1}.col-head input{text-transform:none;height:30px;min-height:30px;font-weight:500}.col-body{flex-direction:column;gap:4px;min-height:60px;padding:2px 6px 6px;display:flex;overflow-y:auto}.col-foot{padding:0 6px 6px}.col-foot .btn{justify-content:flex-start;width:100%}.quick-add{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:6px}.quick-add textarea{resize:none;background:0 0;border:0;outline:none;width:100%;min-height:40px}.quick-add .actions{justify-content:flex-end;gap:6px;display:flex}.add-col{flex:none;width:272px}.add-col .btn{background:var(--surface-sunken);justify-content:flex-start;width:100%;height:42px}.add-col .box{background:var(--surface-sunken);border-radius:6px;padding:8px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 10px 8px;transition:background .1s}.card:hover{background:var(--surface-hover)}.card.dragging{opacity:.4}.card-title{word-break:break-word;margin-bottom:10px}.card-foot{color:var(--text-subtle);align-items:center;gap:6px;font-size:12px;display:flex}.card-key{font-weight:500}.card-meta{color:var(--text-subtlest);align-items:center;gap:2px;display:inline-flex}.card-foot .avatar{margin-left:auto}.due{border:1px solid var(--border);border-radius:3px;align-items:center;gap:3px;padding:0 4px;font-size:11px;display:inline-flex}.due.overdue{color:var(--danger);border-color:var(--danger)}.drop-line{background:var(--primary);border-radius:2px;height:2px;margin:-1px 0}.overlay{z-index:100;background:#091e428a;justify-content:center;align-items:flex-start;padding:60px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);width:100%;max-width:560px;position:relative}.modal.wide{max-width:1000px}.modal-head{align-items:center;gap:8px;padding:20px 24px 8px;display:flex}.modal-head h2{flex:1}.modal-body{padding:8px 24px 16px}.modal-foot{justify-content:flex-end;gap:8px;padding:12px 24px 20px;display:flex}.td{grid-template-columns:minmax(0,1fr) 300px;gap:32px;padding:4px 24px 24px;display:grid}.td-top{align-items:center;gap:8px;padding:16px 16px 4px 24px;display:flex}.td-top .key{color:var(--text-subtle);font-size:13px}.td-title{border-radius:var(--radius);cursor:text;word-break:break-word;margin:0 -6px 16px;padding:4px 6px;font-size:22px;font-weight:600;line-height:1.3}.td-title:hover{background:var(--hover)}.td-title-input{margin-bottom:16px;font-size:22px;font-weight:600}.td-section{margin-bottom:24px}.td-section>h3{align-items:center;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.desc{white-space:pre-wrap;word-break:break-word;border-radius:var(--radius);cursor:text;min-height:40px;margin:0 -6px;padding:6px}.desc:hover{background:var(--hover)}.desc.placeholder{color:var(--text-subtlest)}.side-box{border:1px solid var(--border);border-radius:var(--radius)}.side-box h4{border-bottom:1px solid var(--border);margin:0;padding:10px 14px;font-size:14px}.side-row{grid-template-columns:96px minmax(0,1fr);align-items:center;gap:8px;padding:6px 14px;display:grid}.side-row>label{color:var(--text-subtle);font-size:13px;font-weight:600}.side-row .select,.side-row .input{border-width:1px;height:32px;min-height:32px;padding:2px 6px}.side-row .person{align-items:center;gap:8px;min-width:0;display:flex}.status-select{background:var(--selected);color:var(--selected-text);border-color:#0000;font-weight:600}.status-select.done{background:var(--success-bg);color:var(--success)}.timestamps{color:var(--text-subtlest);gap:2px;margin-top:10px;font-size:12px;display:grid}.tabs{gap:4px;margin-bottom:12px;display:flex}.tabs button{background:var(--hover);border-radius:var(--radius);cursor:pointer;color:var(--text-subtle);border:0;padding:4px 10px;font-weight:500}.tabs button.on{background:var(--selected);color:var(--selected-text)}.comment{gap:10px;margin-bottom:16px;display:flex}.comment .who{margin-right:8px;font-weight:600}.comment .when{color:var(--text-subtlest);font-size:12px}.comment .body{white-space:pre-wrap;word-break:break-word;margin:4px 0}.comment .acts{gap:10px;font-size:12px;display:flex}.comment .acts button{color:var(--text-subtle);cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.comment .acts button:hover{text-decoration:underline}.composer{gap:10px;margin-bottom:18px;display:flex}.composer>div{flex:1}.composer .textarea{min-height:40px}.history{gap:10px;margin-bottom:12px;font-size:13px;display:flex}.history .chg{color:var(--text-subtle);margin-top:2px}.history s{color:var(--text-subtlest)}.attachments{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.att{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.att .thumb{background:var(--surface-sunken);height:84px;color:var(--text-subtlest);justify-content:center;align-items:center;display:flex}.att .thumb img{object-fit:cover;width:100%;height:100%}.att .meta{padding:6px 8px;font-size:12px}.att .meta .name{text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:500;display:block;overflow:hidden}.att .meta .acts{gap:8px;margin-top:2px;display:flex}.att .meta .acts button{color:var(--danger);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--text-subtlest);margin-bottom:8px;padding:10px;font-size:13px}.dropzone.over{border-color:var(--primary);background:var(--selected)}.member-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.member-row:last-child{border-bottom:0}.member-row .who{flex:1;min-width:0}.member-row .who div:last-child{color:var(--text-subtlest);text-overflow:ellipsis;font-size:12px;overflow:hidden}.member-row .select{border-width:1px;width:110px;height:30px;min-height:30px;padding:2px 6px}.danger-zone{border:1px solid var(--danger);border-radius:var(--radius);margin-top:8px;padding:14px}.danger-zone h4{color:var(--danger);margin:0 0 6px}.turnstile{min-height:65px}.turnstile iframe{max-width:100%}.center{height:100%;color:var(--text-subtle);justify-content:center;align-items:center;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toasts{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;left:20px}.toast{background:var(--surface);box-shadow:var(--shadow-overlay);border-radius:var(--radius);border-left:4px solid var(--primary);min-width:260px;max-width:380px;padding:12px 16px;font-size:13px}.toast.error{border-left-color:var(--danger)}.toast.success{border-left-color:#22a06b}@media (width<=860px){.td{grid-template-columns:1fr}.page,.board-head,.board{padding-left:16px;padding-right:16px}.topnav,.table .hide-sm{display:none}.auth-card{padding:24px 20px}.otp-inputs input{width:38px;height:46px}}:root{--series-1:#2a78d6;--hm-0:#eceef1;--hm-1:#b7d3f6;--hm-2:#6da7ec;--hm-3:#2a78d6;--hm-4:#184f95;--good-bg:#dcfff1;--good-text:#216e4e;--warn-bg:#fff7d6;--warn-text:#7f5f01;--serious-bg:#fff3eb;--serious-text:#a54800;--critical-bg:#ffeceb;--critical-text:#ae2e24;--info-bg:#e9f2ff;--info-text:#05c}@media (prefers-color-scheme:dark){:root{--series-1:#3987e5;--hm-0:#2c333a;--hm-1:#184f95;--hm-2:#256abf;--hm-3:#3987e5;--hm-4:#86b6ef;--good-bg:#1c3329;--good-text:#7ee2b8;--warn-bg:#332e1b;--warn-text:#f5cd47;--serious-bg:#38291e;--serious-text:#fea362;--critical-bg:#42221f;--critical-text:#fd9891;--info-bg:#1c2b41;--info-text:#85b8ff}}.brand-text{white-space:nowrap}.page.narrow{max-width:760px}.section{margin:28px 0}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section-head h2{font-size:18px}.two-col{grid-template-columns:1fr 1fr;gap:24px;display:grid}.two-col>.section{min-width:0;margin:0}.panel{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:20px 0;padding:18px 20px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.empty.small{padding:20px 16px}.empty.small p{margin:0}.hint-line{color:var(--text-subtlest);margin:10px 0 0;font-size:12px}.mono,code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}code{background:var(--surface-sunken);border-radius:3px;padding:1px 5px}.ok-text{color:var(--good-text)}.warn-text{color:var(--serious-text);font-weight:500}.danger-text{color:var(--critical-text)}.table tbody tr.no-click{cursor:default}.table .num{text-align:right;font-variant-numeric:tabular-nums}.plain-list{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0;padding:0;list-style:none}.plain-list>li{border-bottom:1px solid var(--border);padding:10px 14px}.plain-list>li:last-child{border-bottom:0}.idle-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.copy-row{gap:8px;display:flex}.copy-row .input{flex:1;min-width:0}.steps{gap:4px;margin:8px 0 0;padding-left:20px;display:grid}.page>.crumbs,.narrow>.crumbs{margin-bottom:10px}.badge{white-space:nowrap;background:var(--surface-sunken);color:var(--text-subtle);border-radius:10px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;line-height:18px;display:inline-flex}.badge.good{background:var(--good-bg);color:var(--good-text)}.badge.warn{background:var(--warn-bg);color:var(--warn-text)}.badge.serious{background:var(--serious-bg);color:var(--serious-text)}.badge.critical{background:var(--critical-bg);color:var(--critical-text)}.badge.info{background:var(--info-bg);color:var(--info-text)}.leu{color:var(--serious-text);white-space:nowrap;font-size:12px;font-weight:700}.user-link{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:inline-flex}.user-link a{color:var(--text);font-weight:500}.banned-name{opacity:.75;text-decoration:line-through}.hero{border-radius:var(--radius-lg);background:linear-gradient(135deg, var(--selected) 0%, var(--surface) 100%);box-shadow:var(--shadow-card);margin-bottom:20px;padding:28px}.hero h1{margin-bottom:10px;font-size:28px;line-height:1.2}.hero p{max-width:720px;color:var(--text-subtle);margin:0 0 16px;font-size:15px}.stats-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0;display:grid}.stat{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);min-width:0;padding:14px 16px}.stat-value{font-variant-numeric:tabular-nums;font-size:26px;font-weight:700;line-height:1.1}.stat-label{color:var(--text-subtle);margin-top:2px;font-size:13px}.stat-hint{color:var(--text-subtlest);margin-top:6px;font-size:12px}.today-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:8px;padding:20px;display:grid}.today-main{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.today-big{font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;line-height:1}.warn-box{background:var(--serious-bg);color:var(--serious-text);border-radius:var(--radius);padding:8px 12px;font-size:13px;font-weight:500}.ban-box,.lock-box{border-radius:var(--radius);margin:12px 0;padding:12px 16px;font-weight:600}.ban-box{background:var(--critical-bg);color:var(--critical-text)}.lock-box{background:var(--serious-bg);color:var(--serious-text)}.leaderboard .rank{text-align:center;font-size:16px}.leaderboard td{padding-top:8px;padding-bottom:8px}.chart{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0;padding:22px 16px 10px}.chart-plot{position:relative}.chart-plot svg{display:block;overflow:visible}.chart .bar{fill:var(--series-1)}.chart-base{stroke:var(--border-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.chart-grid{stroke:var(--border);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.chart-max{color:var(--text-subtlest);font-size:11px;position:absolute;top:-2px;left:0;transform:translateY(-100%)}.chart-axis{color:var(--text-subtlest);justify-content:space-between;margin-top:6px;font-size:11px;display:flex}.chart-tip{pointer-events:none;white-space:nowrap;z-index:5;background:var(--text);color:var(--surface);border-radius:var(--radius);padding:4px 8px;font-size:12px;font-weight:500;position:absolute;transform:translate(-50%,-100%)}.heatmap-scroll{padding-top:4px;overflow-x:auto}.hm-0{fill:var(--hm-0);background:var(--hm-0)}.hm-1{fill:var(--hm-1);background:var(--hm-1)}.hm-2{fill:var(--hm-2);background:var(--hm-2)}.hm-3{fill:var(--hm-3);background:var(--hm-3)}.hm-4{fill:var(--hm-4);background:var(--hm-4)}.heatmap-legend{color:var(--text-subtlest);justify-content:flex-end;align-items:center;gap:4px;margin-top:8px;font-size:11px;display:flex}.hm-swatch{border-radius:2px;width:11px;height:11px;display:inline-block}.spark{width:100%;height:28px;margin:8px 0;display:block}.spark .bar{fill:var(--series-1)}.spark .bar-empty{fill:var(--border)}.progress{background:var(--surface-sunken);height:6px;box-shadow:inset 0 0 0 1px var(--border);border-radius:3px;overflow:hidden}.progress>div{background:var(--series-1);border-radius:3px;height:100%}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.proj-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);color:var(--text);flex-direction:column;padding:16px;transition:box-shadow .15s,transform .15s;display:flex}.proj-card:hover{box-shadow:var(--shadow-overlay);text-decoration:none;transform:translateY(-1px)}.proj-card-head{align-items:center;gap:8px;display:flex}.proj-card-head h3{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.proj-tagline{color:var(--text-subtle);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:38px;margin:6px 0 0;font-size:13px;display:-webkit-box;overflow:hidden}.proj-card-stats{color:var(--text-subtle);justify-content:space-between;gap:8px;font-size:12px;display:flex}.proj-card-progress{grid-template-columns:1fr auto;align-items:center;gap:8px;margin-top:8px;font-size:12px;display:grid}.proj-card-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;display:flex}.avatar-row{display:inline-flex}.avatar-row .avatar+.avatar{margin-left:-6px}.proj-hero{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.proj-hero h1{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.proj-hero-tag{color:var(--text-subtle);margin:6px 0 0;font-size:16px}.proj-hero-meta{flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px;font-size:13px;display:flex}.proj-hero-actions{flex-wrap:wrap;gap:8px;display:flex}.proj-desc{white-space:pre-wrap;color:var(--text-subtle);max-width:760px}.commit-list{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0;padding:0;list-style:none}.commit-list li{border-bottom:1px solid var(--border);gap:12px;padding:9px 14px;font-size:13px;display:flex}.commit-list li:last-child{border-bottom:0}.commit-list .sha{color:var(--text-subtlest);flex:none}.commit-msg{word-break:break-word;min-width:0}.cm-list{gap:10px;display:grid}.cm-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border-left:4px solid var(--series-1);padding:14px 16px}.cm-card.passed{border-left-color:var(--good-text)}.cm-card.failed{border-left-color:var(--critical-text)}.cm-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.cm-title{color:var(--text);margin-top:6px;font-size:15px;font-weight:700;display:block}.cm-rule{color:var(--text-subtle);margin-top:2px;font-size:13px}.cm-progress{margin-top:8px;font-size:13px}.cm-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}.cm-hero{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border-top:5px solid var(--series-1);padding:24px}.cm-hero.passed{border-top-color:var(--good-text)}.cm-hero.failed{border-top-color:var(--critical-text)}.cm-hero h1{margin:6px 0 10px}.cm-hero-status{color:var(--text-subtle);font-weight:600}.cm-hero-oath{margin:0 0 12px;font-size:15px}.cm-hero-penalty{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.day-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px;display:grid}.day-cell{border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1px var(--border);padding:6px 8px;font-size:12px}.day-cell-date{color:var(--text-subtlest);display:block}.day-cell-n{font-weight:700}.day-cell.met{background:var(--good-bg);color:var(--good-text);box-shadow:none}.day-cell.missed{background:var(--critical-bg);color:var(--critical-text);box-shadow:none}.day-cell.pending{box-shadow:inset 0 0 0 2px var(--series-1)}.day-cell.future{opacity:.55}.choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.choice-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.choice{border-radius:var(--radius);cursor:pointer;border:2px solid var(--border);background:var(--surface);flex-direction:column;gap:4px;padding:10px 12px;font-size:13px;display:flex;position:relative}.field>.choice-grid label,.choice{color:var(--text);font-weight:400}.choice input{opacity:0;pointer-events:none;position:absolute}.choice span{color:var(--text-subtle);font-size:12px}.choice:hover{background:var(--surface-hover)}.choice.on{border-color:var(--primary);background:var(--selected)}.choice.penalty-ban.on{border-color:var(--critical-text);background:var(--critical-bg)}.choice:focus-within{outline:2px solid var(--focus);outline-offset:1px}.oath{background:var(--surface-sunken);border-radius:var(--radius);margin:6px 0 16px;padding:12px 14px;line-height:1.55}.profile-head{flex-wrap:wrap;align-items:center;gap:18px;margin-bottom:8px;display:flex}.profile-head>div:nth-child(2){flex:1}.profile-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;font-size:13px;display:flex}.mobile-nav{display:none}.main>.page{padding-bottom:96px}.today-title{grid-column:1/-1;margin-bottom:-6px;font-size:18px;line-height:22px}.sub-line{color:var(--text-subtlest);margin-top:2px;font-size:12px}.show-xs{display:none}.link-btn.tap{margin:-6px -4px;padding:6px 4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.day-cell.met .day-cell-date,.day-cell.missed .day-cell-date{color:inherit}@media (width<=860px){.two-col{grid-template-columns:1fr;gap:0}.two-col>.section{margin:28px 0 0}.stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.today-card{grid-template-columns:1fr}.choice-grid,.choice-grid.four{grid-template-columns:1fr 1fr}.mobile-nav{background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none;flex:none;gap:4px;padding:6px 12px;display:flex;overflow-x:auto}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav a{text-align:center;border-radius:var(--radius);min-height:36px;color:var(--text-subtle);white-space:nowrap;flex:1 0 auto;padding:8px 10px;font-weight:500}.mobile-nav a:hover{background:var(--hover);text-decoration:none}.mobile-nav a.active{color:var(--selected-text);background:var(--selected)}.hero{padding:20px}.hero h1{font-size:22px}}@media (width<=520px){.brand-text,.hide-xs{display:none}.choice-grid,.choice-grid.four{grid-template-columns:1fr}.copy-row{flex-wrap:wrap}.today-main{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.today-big{font-size:26px}.today-main .muted{font-size:12px;line-height:1.3}.show-xs{display:block}}.proj-hero-main{flex:320px;min-width:0}.table-wrap{border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow-x:auto}.table-wrap>.table{box-shadow:none}
