:root{color-scheme:dark;--bg:#141518;--panel:#1c1d21;--line:#34353d;--text:#e4e4e7;--muted:#a3a5b1;--accent:#aeb8ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.6 -apple-system,"PingFang SC","Microsoft YaHei",sans-serif}header{display:flex;gap:20px;align-items:center;flex-wrap:wrap;padding:16px 28px;background:var(--panel);border-bottom:1px solid var(--line)}header>a{font-size:19px;font-weight:650;color:var(--text);text-decoration:none}header>span{color:var(--muted);font-size:12px}#identity{margin-left:auto;display:flex;gap:12px;align-items:center}main{max-width:1280px;margin:24px auto;padding:0 24px;min-height:70vh}footer{padding:24px;text-align:center;color:var(--muted);font-size:12px}h1{font-size:24px;margin:0 0 8px}h2{font-size:18px;margin:0 0 12px}h3{font-size:15px}p{margin:8px 0}.subtle{color:var(--muted)}.card{padding:22px;background:var(--panel);border:1px solid var(--line);border-radius:10px;margin:16px 0}.grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.7fr);gap:24px}.bar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:16px 0}nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}button,.button{border:1px solid #505260;border-radius:6px;background:#292b34;color:var(--text);padding:9px 15px;cursor:pointer;min-height:40px;font:inherit;text-decoration:none}button:hover,.button:hover{background:#373b4b}button.primary{background:#454f9d;border-color:#7783df}button:disabled{opacity:.5;cursor:wait}a{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}label{display:block;font-weight:500;margin:12px 0 6px}input,textarea,select{display:block;width:100%;background:#131418;border:1px solid #4a4b55;border-radius:6px;color:var(--text);font:inherit;padding:10px;min-height:42px}textarea{min-height:100px;resize:vertical}input[type=checkbox]{display:inline;width:18px;height:18px;min-height:18px;margin:0 10px 0 0;vertical-align:middle}label.check{display:flex;align-items:flex-start;font-weight:400}.draft-state{font-size:12px;color:var(--muted);margin:10px 0}.error{color:#ffb2b2}.success{color:#9fd7b0}#notice{position:sticky;top:0;z-index:3;background:#2c3046;padding:0 24px;overflow-wrap:anywhere}#notice:not(:empty){padding:12px 24px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500}td:first-child{min-width:160px}.badge{display:inline-block;border:1px solid #555970;padding:2px 9px;border-radius:12px;font-size:12px}.timeline{border-left:2px solid #42465d;margin:18px 0;padding-left:16px}.timeline pre,pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 inherit}.warning{border-left:3px solid #d5ad62;padding:8px 14px;background:#343023}.split{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}details{margin:16px 0}summary{cursor:pointer}code{overflow-wrap:anywhere}.empty{padding:32px;text-align:center;color:var(--muted)}@media(max-width:700px){header{padding:14px 16px;gap:8px}header>span{width:100%}#identity{margin-left:0}main{padding:0 14px;margin-top:16px}.grid{grid-template-columns:1fr;gap:0}.card{padding:16px}.bar{gap:8px}h1{font-size:21px}button{max-width:100%}th,td{padding:10px 8px}}

p,h1,h2,h3,strong,td{overflow-wrap:anywhere}main,.card{min-width:0}
.account-toolbar input{flex:1;min-width:140px}.account-toolbar button{white-space:nowrap}.account-editor-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.account-editor-top h2{margin:0}.account-editor-top button{min-height:30px;padding:4px 10px;font-size:12px}.account-choices{border:1px solid var(--line);border-radius:6px;margin:16px 0;padding:8px 12px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px 12px}.account-choices legend{padding:0 5px;font-weight:500}.account-choices label{margin:5px 0;overflow-wrap:anywhere}.account-choices input{flex-shrink:0;margin-top:3px}.account-password-tools,.account-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.account-password-tools button,.account-actions button{min-height:30px;padding:4px 9px;font-size:12px}.account-receipt{min-height:175px}.account-form-status{font-size:12px}.account-editor+.card table{min-width:510px}.account-editor+.card td:first-child{min-width:110px}.account-editor+.card td{font-size:12px}.account-editor+.card p{margin:3px 0}
.user-chip{min-width:0}.user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* Preserve the original project's compact spreadsheet layout. */
[hidden]{display:none!important}html,body{height:100%}body{overflow:hidden;color:#d6d6d9;font-size:14px}.layout{display:flex;height:100%;min-height:0}.sidebar{width:200px;flex-shrink:0;background:#191a1e;border-right:1px solid #2c2d31;display:flex;flex-direction:column}.side-brand{height:49px;display:flex;align-items:center;gap:10px;padding:0 16px;font-size:14px;font-weight:600;border-bottom:1px solid #2c2d31;color:#e4e4e7}.brand-icon{color:#9aa9ff;font-size:22px}.side-title{padding:18px 16px 8px;font-size:12px;color:#7d7e84}.proj-list{flex:1;overflow:auto;padding:0 8px}.proj-item{display:block;width:100%;min-height:36px;margin-bottom:3px;padding:8px 12px;border:none;border-radius:6px;background:transparent;color:#b9bac0;text-align:left;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-item:hover,.side-foot button:hover{background:#22232a}.proj-item.on{background:rgba(79,91,213,.18);color:#b9c3ff}.side-foot{padding:10px 8px;border-top:1px solid #2c2d31}.side-foot button{display:block;width:100%;border:none;background:transparent;text-align:left;min-height:34px;padding:7px 12px;color:#9c9ca1;font-size:13px}.mobile-project{display:none}.workspace{display:flex;flex:1;min-width:0;min-height:0;flex-direction:column}.topbar{height:49px;flex-shrink:0;padding:0 18px;flex-wrap:nowrap;gap:10px;background:#1c1d21;border-bottom:1px solid #2c2d31}.topbar-title{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync{font-size:12px;font-weight:400;color:#7d7e84;margin-left:12px}#identity{flex-shrink:0;gap:8px;font-size:12px}#identity button{font-size:12px;min-height:28px;padding:3px 10px;background:transparent}#identity .avatar{width:25px;height:25px;font-size:11px}.avatar{width:26px;height:26px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:#454f9d;color:#fff;font-size:12px;font-weight:600}.avatar.sm{width:21px;height:21px;font-size:10px}.user-chip{display:flex;align-items:center;gap:6px;white-space:nowrap}.workspace>main{margin:0;padding:0;max-width:none;flex:1;min-height:0;display:flex;flex-direction:column;position:relative}.workspace>main>.card,.workspace>main>div>h1{margin:24px}.workspace>footer{padding:7px 16px;border-top:1px solid #2c2d31;font-size:11px;color:#6f7079;text-align:right;flex-shrink:0}#notice{position:relative;flex-shrink:0;font-size:12px}#notice:not(:empty){padding:8px 18px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 10px;flex-wrap:wrap}.view-tabs,.table-tools{display:flex;gap:7px;align-items:center}.view-tab{background:transparent;border:none;min-height:32px;padding:6px 10px;font-size:13px;color:#8a8a90;border-radius:5px}.view-tab.on{background:#292c3b;color:#bdc5ff}.table-tools{margin-left:auto}.table-tools input,.table-tools select{min-height:32px;height:32px;padding:5px 9px;font-size:12px}.table-tools input{width:195px}.table-tools select{width:128px}.table-tools button{min-height:32px;padding:5px 12px;font-size:12px;white-space:nowrap}.table-tools button.primary{background:#4f5bd5;border-color:#4f5bd5}.tracker-wrap{padding:0 16px 16px;overflow:auto;flex:1;min-height:0}.tracker-grid{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1368px;background:#1c1d21;border:1px solid #303136;font-size:13px}.tracker-grid th,.tracker-grid td{border:1px solid #2c2d31;padding:8px 10px;position:relative;vertical-align:middle;text-align:left;word-break:break-word}.tracker-grid th{position:sticky;top:0;z-index:2;background:#202126;color:#9c9ca1;font-weight:500;font-size:12px;white-space:nowrap;user-select:none;height:37px}.tracker-grid td{height:75px}.tracker-grid td:first-child{min-width:0}.tracker-grid tbody tr:hover td{background:#22232a}.tracker-grid .row-number{color:#7d7e84;text-align:center}.row-title{display:block;text-decoration:none;color:#e4e4e7;line-height:1.5}.row-title:hover,.row-action:hover{text-decoration:underline;color:#c3ccff}.row-id{display:block;color:#70717c;font-size:10px;margin-top:4px;white-space:nowrap}.row-action{font-size:12px;text-decoration:none}.cell-description{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5;white-space:pre-wrap;color:#b9bac0}.tracker-grid time{font-size:12px;color:#9c9ca1;white-space:nowrap}.badge{border:none;border-radius:4px;padding:3px 7px;font-size:11px;background:#30313d;color:#c5c6d0;line-height:1.5;white-space:normal}.status-pending,.status-unassigned,.status-deferred{background:#382847;color:#d6b9ee}.status-in_progress,.status-running,.status-rework,.status-rejected{background:#482b34;color:#f3b0b9}.status-awaiting_review,.status-accepted_pending_release,.status-needs_evidence,.status-needs_info{background:#3d3527;color:#e4cd9d}.status-resolved{background:#273c35;color:#a9d9ba}.status-accepted{background:#2d3451;color:#b7c2ff}.thumbs{display:flex;gap:4px;flex-wrap:wrap}.image-thumb{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;min-height:30px;padding:0;overflow:hidden;border:1px solid #444650;border-radius:4px;background:#25262d;color:#9ca6d9}.image-thumb img{width:100%;height:100%;object-fit:cover}.attachment-cell{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.cell-upload{border:0;background:transparent;min-height:24px;padding:0;color:#969fd1;font-size:11px;white-space:nowrap}.cell-upload:hover{background:transparent;color:#d0d7ff;text-decoration:underline}.file-links{display:flex;flex-direction:column;gap:3px;width:100%}.file-chip{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#b4b9cb;text-decoration:none}.resize-column{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:4}.resize-column:hover,.resize-column:focus{background:rgba(79,91,213,.4)}.tracker-grid tfoot td{height:37px;background:#202126;color:#8a8a90;font-size:12px}.tracker-grid tfoot button{background:transparent;border:0;min-height:24px;font-size:12px;padding:3px 5px;color:#9c9ca1;margin-right:18px}.table-count{color:#b9bac0}.table-hint{float:right;color:#64656f}.table-pager{padding:2px 16px 7px;font-size:11px;color:#6f7079;text-align:center}.table-pager button{min-height:28px;padding:3px 14px;font-size:12px}
dialog{color:var(--text);background:#191a1e;border:1px solid #3a3b41;padding:0;box-shadow:0 16px 60px #0008}dialog::backdrop{background:#0006}.drawer{margin:0 0 0 auto;width:760px;max-width:calc(100vw - 220px);height:100dvh;max-height:100dvh;border-radius:0;border-top:0;border-right:0;border-bottom:0;overflow:auto}.drawer-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#202126;border-bottom:1px solid #34353d;padding:12px 20px}.drawer-top>strong{font-size:13px}.drawer-top button{min-height:30px;padding:4px 10px;font-size:12px;background:transparent}.drawer-content{padding:20px 24px 40px}.drawer-content h1{font-size:20px}.drawer-content .card{padding:18px;margin:16px 0}.drawer-content h2{font-size:15px}.drawer-content .subtle{font-size:12px}.drawer-content .bar{margin:10px 0}.drawer-content .card>form+form{border-top:1px solid #34353d;margin-top:22px;padding-top:10px}.drawer-content form>button[type=submit]{margin-top:10px}.drawer-content code{font-size:11px}.attachment-gallery{display:flex;flex-direction:column;gap:7px}.attachment-item{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;padding:8px 0;border-bottom:1px solid #2c2d31}.attachment-item>a{flex:1;min-width:100px}.attachment-id{display:block;width:100%;color:#777b8d}.attachment-compose{padding:10px 0}.selected-file{display:flex;align-items:center;gap:8px;font-size:12px}.selected-file button{margin-left:auto;min-height:28px;padding:3px 9px;font-size:11px}.upload-dialog{width:540px;max-width:calc(100vw - 28px);max-height:85dvh;border-radius:9px;overflow:auto;padding-bottom:18px}.upload-dialog>p,.upload-dialog>button{margin:14px 20px}.upload-list{padding:0 20px}.upload-item{display:flex;align-items:center;gap:12px;border-bottom:1px solid #34353d;padding:12px 0}.upload-item>div{flex:1;min-width:0;font-size:13px}.upload-item button{font-size:11px;padding:4px 8px;min-height:28px}.upload-preview:empty{display:none}.upload-preview img{width:64px;height:64px;object-fit:contain;border-radius:4px;background:#25262d}.image-dialog{max-width:90vw;max-height:90dvh;overflow:auto;border-radius:8px}.image-dialog>img{display:block;max-width:85vw;max-height:72dvh;object-fit:contain;padding:14px}.image-dialog>a{display:block;margin:0 20px 16px;font-size:12px}.workspace>main>h1,.workspace>main>div:first-child>h1{padding:0 24px}.workspace>main>section.card:has(form input[type=password]){max-width:400px;width:calc(100% - 40px);margin:40px auto}
@media(max-width:700px){.layout{flex-direction:column}.sidebar{width:100%;border-right:0;border-bottom:1px solid #2c2d31;display:flex;flex-direction:row;align-items:center;padding:5px 12px;gap:12px}.side-brand{height:auto;padding:0;border:0;white-space:nowrap;font-size:12px}.brand-icon{font-size:18px}.side-title,.proj-list,.side-foot{display:none}.mobile-project{display:block;margin-left:auto;font-size:12px;min-height:32px;width:170px;padding:4px 8px}.workspace{min-height:0}.topbar{height:46px;padding:0 12px}.topbar-title{font-size:12px}.sync{display:none}#identity{font-size:10px;gap:6px}#identity .avatar{display:none}.table-toolbar{padding:8px 12px;gap:8px}.view-tabs{width:100%}.view-tab{font-size:12px;padding:5px 10px;min-height:28px}.table-tools{margin:0;flex-wrap:wrap;width:100%;gap:6px}.table-tools input{flex:1;width:180px;min-width:150px}.table-tools select{width:118px}.tracker-wrap{padding:0 12px 12px}.tracker-grid{min-width:1368px}.workspace>footer{font-size:10px;padding:5px 12px;text-align:center}.table-hint{display:none}.drawer{width:100vw;max-width:100vw}.drawer-content{padding:16px 14px 30px}.drawer-top{padding:10px 14px}.drawer-content h1{font-size:19px}.drawer-content .card{padding:15px}.upload-item{gap:8px}.upload-preview img{width:42px;height:42px}.upload-dialog .drawer-top{padding:12px 14px}.upload-dialog>p,.upload-dialog>button{margin:12px 14px}.upload-list{padding:0 14px}.table-pager{padding-bottom:4px}}

/* A separate entry screen before the workspace is available. */
body.auth-page{overflow:auto;background:radial-gradient(ellipse at 50% 8%,#262b482e,transparent 62%),#111317}
.auth-page .layout{display:block;min-height:100dvh;height:auto}.auth-page .workspace{min-height:100dvh}
.auth-page .sidebar,.auth-page .topbar,.auth-page .workspace>footer{display:none}
.auth-page #app{display:grid;grid-template-columns:minmax(0,1fr);place-items:center;flex:none;width:100%;min-height:100dvh;margin:0;padding:32px 20px}
.auth-panel{width:100%;max-width:420px;min-width:0;padding:32px 36px;background:linear-gradient(155deg,#1e2028,#191b22);border:1px solid #333743;border-radius:18px;box-shadow:0 24px 80px #0005}
.auth-brand{display:flex;align-items:center;gap:11px;color:#d9dce8;font-size:14px;font-weight:600;letter-spacing:.2px}
.auth-mark{display:grid;place-items:center;width:38px;height:38px;background:#656ee826;border:1px solid #7982e845;border-radius:11px;color:#b5bdff;font-size:25px;line-height:1}
.auth-heading{margin:26px 0 24px}.auth-heading h1{font-size:26px;line-height:1.4;font-weight:650;letter-spacing:.2px;margin:0 0 9px;color:#f0f1f7}.auth-heading p{margin:0;color:#999faf;font-size:13px}
.auth-form{display:grid;gap:18px}.auth-form label{margin:0 0 8px;color:#c7ccda;font-size:13px}.auth-form input{height:46px;padding:11px 13px;background:#12151c;border:1px solid #3a4050;border-radius:9px;font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-form input::placeholder{color:#626b7e}.auth-form input:focus{outline:none;border-color:#8993ef;box-shadow:0 0 0 3px #6c78ec20}.auth-password{position:relative}.auth-password input{padding-right:64px}.auth-password-toggle{position:absolute;right:4px;top:4px;min-height:38px;height:38px;min-width:48px;padding:0 10px;border:none;border-radius:7px;background:transparent;color:#a3adc6;font-size:12px}.auth-password-toggle:hover{background:#242a3a;color:#d0d7ec}
button.auth-submit{width:100%;height:46px;margin-top:5px;border:1px solid #8089ed;border-radius:9px;background:#626dd6;font-weight:600;color:#fff;box-shadow:0 4px 16px #454fa324}button.auth-submit:hover{background:#727de8}.auth-submit:disabled{opacity:.65}
.auth-help{margin-top:24px;padding-top:18px;border-top:1px solid #303440;text-align:center;color:#828b9e;font-size:12px}.auth-help p{margin:0;line-height:1.7}.auth-help button{margin-top:12px;background:transparent;font-size:12px;min-height:34px}
.auth-error{margin:0;padding:10px 12px;border:1px solid #70404c;border-radius:8px;background:#48252c66;color:#f2b6c2;font-size:12px;line-height:1.7}.auth-loading{color:#8f98ad;font-size:13px}
.auth-page #notice:not(:empty){position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(420px,calc(100% - 40px));padding:10px 14px;border:1px solid #495371;border-radius:9px;z-index:10}
@media(max-width:480px){.auth-page #app{padding:24px 16px}.auth-panel{padding:28px 24px;border-radius:15px}.auth-heading{margin-top:23px}.auth-heading h1{font-size:24px}}
