:root{--bg:#f4f5f7;--surface:#ffffff;--surface-muted:#f7f8fa;--border:#dfe1e6;--border-strong:#c1c7d0;--text:#172b4d;--text-muted:#5e6c84;--text-subtle:#7a869a;--primary:#0052cc;--primary-dark:#0747a6;--primary-tint:#e9f2ff;--danger:#de350b;--danger-tint:#ffebe6;--success:#006644;--success-tint:#e3fcef;--warning:#974f0c;--warning-tint:#fffae6;--internal-tint:#fff7e6;--internal-border:#ffd591;--radius:6px;--shadow:0 1px 2px rgba(9,30,66,0.08),0 0 1px rgba(9,30,66,0.12);--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{color:var(--text);line-height:1.25;margin:0 0 .5rem}h1{font-size:1.5rem}h2{font-size:1.2rem}h3{font-size:1.02rem}.topnav{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.topnav-inner{max-width:1160px;margin:0 auto;padding:0 1.25rem;display:flex;align-items:center;gap:1.25rem;height:52px}.brand{font-weight:700;font-size:1.05rem;color:var(--text);letter-spacing:-0.01em;display:flex;align-items:center;gap:.5rem}.brand:hover{text-decoration:none}.brand .dot{width:10px;height:10px;border-radius:3px;background:var(--primary);display:inline-block}.nav-links{display:flex;gap:.25rem;align-items:center}.nav-links a{color:var(--text-muted);padding:.4rem .7rem;border-radius:var(--radius);font-weight:500}.nav-links a:hover{background:var(--surface-muted);text-decoration:none;color:var(--text)}.nav-links a.active{background:var(--primary-tint);color:var(--primary-dark)}.nav-right{margin-left:auto;display:flex;align-items:center;gap:.75rem}.nav-user{text-align:right;line-height:1.2}.nav-user .who{font-weight:600;font-size:.85rem}.nav-user .role{font-size:.72rem;color:var(--text-subtle)}.container{max-width:1160px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.container-narrow{max-width:760px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.page-head .subtitle{color:var(--text-muted);font-size:.9rem;margin-top:.1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;margin-bottom:1rem}.card h2:first-child,.card h3:first-child{margin-top:0}.card-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);margin-bottom:.75rem;font-weight:700}.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th,table.data td{text-align:left;padding:.65rem .85rem;border-bottom:1px solid var(--border);vertical-align:middle}table.data th{background:var(--surface-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);font-weight:700;white-space:nowrap}table.data tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-muted)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;padding:.12rem .5rem;border-radius:20px;font-size:.72rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;border:1px solid transparent}.badge-muted{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border)}.badge-open{background:var(--primary-tint);color:var(--primary-dark)}.badge-progress{background:#deebff;color:var(--primary-dark)}.badge-staging{background:#eae6ff;color:#5243aa}.badge-qa{background:var(--success-tint);color:var(--success)}.badge-deploy{background:var(--warning-tint);color:var(--warning)}.badge-deployed{background:var(--success-tint);color:var(--success)}.badge-closed{background:#ebecf0;color:var(--text-subtle)}.badge-internal{background:var(--internal-tint);color:var(--warning);border-color:var(--internal-border)}.badge-role{background:#ebecf0;color:var(--text-muted);text-transform:uppercase;font-size:.66rem}.badge-type-bug{background:var(--danger-tint);color:var(--danger)}.badge-type-feature{background:var(--primary-tint);color:var(--primary-dark)}.badge-urg-very_low{background:#ebecf0;color:#5e6c84}.badge-urg-low{background:#e9f2ff;color:#0747a6}.badge-urg-medium{background:#fffae6;color:#974f0c;border-color:#ffe380}.badge-urg-high{background:#ffe9e0;color:#c9432a;border-color:#ffc7b3}.badge-urg-urgent{background:#ffebe6;color:#de350b;border-color:#ff8f73}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:inherit;font-size:.88rem;font-weight:600;padding:.5rem .9rem;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:background .12s,border-color .12s}.btn:hover{background:var(--surface-muted);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-danger{background:var(--surface);border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger-tint)}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn-block{width:100%}.field{margin-bottom:1rem}.field label{display:block;font-weight:600;font-size:.85rem;margin-bottom:.3rem;color:var(--text)}.field .hint{font-size:.78rem;color:var(--text-subtle);margin-top:.25rem}input[type=text],input[type=email],input[type=password],input[type=datetime-local],input[type=file],select,textarea{width:100%;font-family:inherit;font-size:.9rem;padding:.5rem .6rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-tint)}textarea{resize:vertical;min-height:90px}.form-row{display:flex;gap:1rem;flex-wrap:wrap}.form-row>.field{flex:1;min-width:200px}.form-actions{display:flex;gap:.6rem;align-items:center;margin-top:1rem}.inline-form{display:inline}.flashes{margin-bottom:1rem}.flash{padding:.7rem 1rem;border-radius:var(--radius);margin-bottom:.5rem;font-size:.9rem;border:1px solid transparent}.flash-success{background:var(--success-tint);color:var(--success);border-color:#abf5d1}.flash-error{background:var(--danger-tint);color:var(--danger);border-color:#ffbdad}.flash-info{background:var(--primary-tint);color:var(--primary-dark);border-color:#b3d4ff}.timeline{list-style:none;margin:0;padding:0}.event{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;background:var(--surface);overflow:hidden}.event-head{display:flex;align-items:center;gap:.5rem;padding:.55rem .85rem;background:var(--surface-muted);border-bottom:1px solid var(--border);font-size:.85rem;flex-wrap:wrap}.event-head .who{font-weight:700}.event-head .when{color:var(--text-subtle);font-size:.78rem;margin-left:auto}.event-body{padding:.75rem .85rem;white-space:normal}.event-body p{margin:0 0 .5rem}.event.internal{border-color:var(--internal-border)}.event.internal .event-head{background:var(--internal-tint)}.event.system .event-head{background:#f4f5f7;color:var(--text-muted);font-style:italic}.event.system .event-body{color:var(--text-muted)}.event-kind{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);font-weight:700}.attach-list{list-style:none;margin:.5rem 0 0;padding:0}.attach-list li{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.85rem}.attach-list .size{color:var(--text-subtle);font-size:.78rem}.muted{color:var(--text-muted)}.subtle{color:var(--text-subtle)}.small{font-size:.82rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius)}.empty-state .big{font-size:2rem;margin-bottom:.5rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid-side{display:grid;grid-template-columns:1fr 300px;gap:1.25rem;align-items:start}.filters{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem}.filters .field{margin-bottom:0}.filters select,.filters input{min-width:150px}.def-list{display:grid;grid-template-columns:auto 1fr;gap:.35rem .9rem;font-size:.88rem}.def-list dt{color:var(--text-subtle);font-weight:600}.def-list dd{margin:0}.tag-row{display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}hr.sep{border:none;border-top:1px solid var(--border);margin:1rem 0}.checklist{list-style:none;margin:0;padding:0}.checklist li{padding:.6rem;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.5rem;display:flex;gap:.6rem;align-items:flex-start}.checklist input[type=checkbox]{width:auto;margin-top:.2rem}trix-editor.rich-input{min-height:130px;border:1px solid var(--border-strong);border-radius:var(--radius);padding:.5rem .65rem;background:#fff;font-size:.9rem}trix-editor.rich-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-tint)}trix-toolbar{margin-bottom:.35rem}trix-toolbar .trix-button-group--file-tools{display:none}trix-editor img,.event-body img,.rich-body img{max-width:100%;height:auto;border-radius:4px;margin:.25rem 0}.event-body figure.attachment,.rich-body figure.attachment{margin:.35rem 0}.event-body figcaption,.rich-body figcaption{font-size:.75rem;color:var(--text-subtle)}.rich-body:first-child{margin-top:0}.rich-body:last-child{margin-bottom:0}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px rgba(9,30,66,.12);padding:2rem}.auth-card .brand{justify-content:center;font-size:1.3rem;margin-bottom:1.5rem}@media (max-width:820px){.grid-side,.grid-2{grid-template-columns:1fr}.nav-links{display:none}}
.cc-suggest{position:absolute;left:0;right:0;top:100%;z-index:30;background:#fff;border:1px solid var(--border-strong);border-top:none;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow);max-height:200px;overflow-y:auto}.cc-suggest-item{padding:.4rem .6rem;font-size:.85rem;cursor:pointer}.cc-suggest-item:hover{background:var(--primary-tint)}
dialog.modal{padding:0;border:none;border-radius:12px;width:min(460px,94vw);max-height:90vh;overflow:hidden;background:var(--surface);color:var(--text);box-shadow:0 24px 64px rgba(9,30,66,.32)}dialog.modal::backdrop{background:rgba(9,30,66,.5);backdrop-filter:blur(2px)}dialog.modal[open]{animation:modalIn .18s cubic-bezier(.16,1,.3,1)}dialog.modal[open]::backdrop{animation:modalFade .18s ease}@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes modalFade{from{opacity:0}to{opacity:1}}.modal form{display:flex;flex-direction:column;max-height:90vh}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:1.05rem}.modal-x{border:none;background:none;font-size:1.6rem;line-height:1;color:var(--text-subtle);cursor:pointer;padding:0 .3rem;border-radius:6px}.modal-x:hover{background:var(--surface-muted);color:var(--text)}.modal-body{padding:1.25rem;overflow-y:auto}.modal-body .field:last-child{margin-bottom:0}.modal-foot{display:flex;justify-content:flex-end;gap:.6rem;padding:.85rem 1.25rem;border-top:1px solid var(--border);background:var(--surface-muted)}.role-picker{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .75rem;border:1px solid var(--border);border-radius:var(--radius);padding:.65rem .7rem}.role-opt{display:flex;align-items:center;gap:.45rem;font-size:.85rem;font-weight:400;cursor:pointer}.role-opt input{width:auto;margin:0}
