:root{--bg:#f5f7fa;--surface:#fff;--surface-muted:#f8fafc;--border:#e3e8ef;--border-strong:#cdd5df;--text:#1f2937;--text-muted:#64748b;--text-subtle:#94a3b8;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#eff4ff;--danger:#dc2626;--danger-hover:#b91c1c;--danger-soft:#fef2f2;--sidebar-bg:#0f172a;--sidebar-text:#cbd5e1;--sidebar-active:#1e293b;--radius:10px;--radius-sm:6px;--shadow-sm:0 1px 2px #0f172a0d;--shadow:0 1px 3px #0f172a14, 0 1px 2px #0f172a0a;--shadow-lg:0 20px 45px -12px #0f172a4d;--sidebar-width:240px;--topbar-height:60px;color:var(--text);background:var(--bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}body.no-scroll{overflow:hidden}h1,h2,h3,p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--text-muted)}.small{font-size:13px}.mono{color:var(--text-muted);font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px}.nowrap{white-space:nowrap}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.ml-1{margin-left:6px}.btn{border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 14px;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible,.icon-btn:focus-visible,.nav-link:focus-visible,.tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-block{width:100%}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-muted)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-ghost{color:var(--primary);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--primary-soft)}.btn-ghost-danger{color:var(--danger);background:0 0}.btn-ghost-danger:hover:not(:disabled){background:var(--danger-soft)}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-muted);color:var(--text)}input:not([type=radio]):not([type=checkbox]),select,textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:38px;padding:8px 11px;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;min-height:90px}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb26}input:disabled,select:disabled{background:var(--surface-muted);color:var(--text-muted)}.field{flex-direction:column;gap:6px;min-width:0;margin-bottom:16px;display:flex}.field label{font-size:13px;font-weight:500}.field .required{color:var(--danger);margin-left:2px}.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--danger)}.field-error{color:var(--danger);font-size:12.5px}.field-hint{color:var(--text-muted);font-size:12.5px}.form-row{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.segmented{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius-sm);align-self:flex-start;gap:3px;padding:3px;display:inline-flex}.segment{cursor:pointer;color:var(--text-muted);border-radius:4px;padding:6px 16px;font-weight:500!important}.segment input{opacity:0;pointer-events:none;position:absolute}.segment.selected{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.segment:has(input:focus-visible){outline:2px solid var(--primary)}.alert{border-radius:var(--radius-sm);border:1px solid;margin-bottom:14px;padding:10px 12px;font-size:13px}.alert-error{background:var(--danger-soft);color:#991b1b;border-color:#fecaca}.alert-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}.badge-gray{color:#475569;background:#f1f5f9;border-color:#e2e8f0}.badge-blue{color:#1d4ed8;background:#eff6ff;border-color:#dbeafe}.badge-green{color:#047857;background:#ecfdf5;border-color:#d1fae5}.badge-amber{color:#b45309;background:#fffbeb;border-color:#fef3c7}.badge-orange{color:#c2410c;background:#fff7ed;border-color:#ffedd5}.badge-red{color:#b91c1c;background:#fef2f2;border-color:#fee2e2}.badge-purple{color:#6d28d9;background:#f5f3ff;border-color:#ede9fe}.badge-teal{color:#0f766e;background:#f0fdfa;border-color:#ccfbf1}.badge-indigo{color:#4338ca;background:#eef2ff;border-color:#e0e7ff}.badge-row{flex-wrap:wrap;gap:6px;display:flex}.tone-blue{color:#2563eb;background:#eff6ff}.tone-green{color:#059669;background:#ecfdf5}.tone-amber{color:#d97706;background:#fffbeb}.tone-red{color:#dc2626;background:#fef2f2}.tone-purple{color:#7c3aed;background:#f5f3ff}.tone-teal{color:#0d9488;background:#f0fdfa}.tone-indigo{color:#4f46e5;background:#eef2ff}.tone-gray{color:#475569;background:#f1f5f9}.app-shell{min-height:100vh}.sidebar{z-index:40;width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);flex-direction:column;padding:16px 12px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:10px;padding:4px 8px 20px;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:700;display:inline-flex}.brand-mark-lg{border-radius:10px;width:44px;height:44px;font-size:22px}.brand-name{color:#fff;letter-spacing:.2px;font-size:17px;font-weight:700}.nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-link{border-radius:var(--radius-sm);width:100%;color:var(--sidebar-text);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--sidebar-active);color:#fff;text-decoration:none}.nav-link.active{background:var(--primary);color:#fff}.nav-logout{border-top:1px solid #1e293b;border-radius:0;margin-top:8px;padding-top:14px}.sidebar-scrim{display:none}.main{margin-left:var(--sidebar-width);flex-direction:column;min-width:0;min-height:100vh;display:flex}.topbar{z-index:30;height:var(--topbar-height);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);background:#ffffffeb;align-items:center;gap:12px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-spacer{flex:1}.menu-toggle{display:none}.user-chip{align-items:center;gap:10px;min-width:0;display:flex}.avatar{background:var(--primary-soft);width:34px;height:34px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.avatar-sm{width:30px;height:30px;font-size:12px}.user-meta{flex-direction:column;min-width:0;line-height:1.25;display:flex}.user-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.user-role{color:var(--text-muted);font-size:12px}.content{flex:1;width:100%;max-width:1320px;margin:0 auto;padding:24px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-header-text{min-width:0}.page-header h1{letter-spacing:-.2px;overflow-wrap:anywhere;font-size:22px;font-weight:700}.page-subtitle{color:var(--text-muted);margin-top:4px}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.back-link{color:var(--text-muted);align-items:center;gap:4px;margin-bottom:6px;font-size:13px;display:inline-flex}.back-link:hover{color:var(--primary);text-decoration:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0;margin-bottom:20px}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.card-header h2{font-size:15px;font-weight:600}.card-actions{gap:8px;display:flex}.card-body{padding:18px}.card-body.flush{padding:0}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:20px;display:grid}.stat-note{margin:-8px 0 18px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:14px;padding:16px;display:flex}.stat-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-label{color:var(--text-muted);font-size:13px}.stat-value{font-size:24px;font-weight:700;line-height:1.2}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.grid-2>.card{margin-bottom:0}.composition-bar{background:var(--surface-muted);border-radius:999px;gap:2px;height:12px;display:flex;overflow:hidden}.composition-bar .seg{min-width:6px;display:block}.composition-bar .seg.tone-purple{background:#8b5cf6}.composition-bar .seg.tone-teal{background:#14b8a6}.composition-bar .seg.tone-indigo{background:#6366f1}.composition-empty{flex:1}.composition-legend{flex-wrap:wrap;gap:8px 20px;margin:14px 0 0;padding:0;list-style:none;display:flex}.composition-legend li{color:var(--text-muted);align-items:center;gap:6px;display:flex}.composition-legend strong{color:var(--text)}.dot{border-radius:50%;width:9px;height:9px}.dot.tone-purple{background:#8b5cf6}.dot.tone-teal{background:#14b8a6}.dot.tone-indigo{background:#6366f1}.quick-links{flex-direction:column;gap:10px;display:flex}.quick-link{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);align-items:center;gap:12px;padding:12px;display:flex}.quick-link:hover{border-color:var(--primary);background:var(--primary-soft);text-decoration:none}.quick-link>svg{color:var(--primary);flex-shrink:0}.quick-link span{flex-direction:column;display:flex}.quick-link small{color:var(--text-muted)}.link-list{margin:0;padding:0;list-style:none}.link-list li+li{border-top:1px solid var(--border)}.link-list a{color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.link-list a:hover{color:var(--primary);text-decoration:none}.link-list-main{flex-direction:column;min-width:0;display:flex}.link-list-main .cell-strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toolbar{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:10px;padding:14px 18px;display:flex}.toolbar-plain{border:0;margin-bottom:16px;padding:0}.search-input{flex:240px;max-width:360px;position:relative}.search-input svg{color:var(--text-subtle);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input input{padding-left:32px!important}.filter-select{flex:0 180px;min-width:150px;width:auto!important}.tabs{border-bottom:1px solid var(--border);gap:4px;padding:0 18px;display:flex;overflow-x:auto}.tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 10px;font-weight:500}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th{background:var(--surface-muted);border-bottom:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;text-align:left;white-space:nowrap;padding:10px 18px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 18px}.table tbody tr:last-child td{border-bottom:0}.table-hover tbody tr:hover,.table tr.clickable:hover{background:#fafcff}.table tr.clickable{cursor:pointer}.table tr.clickable:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.table .num{text-align:right}.cell-strong{color:var(--text);font-weight:600}.cell-title{min-width:200px;max-width:420px}.cell-desc{min-width:180px;max-width:320px;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.col-actions{white-space:nowrap;width:1%;text-align:right!important}.row-actions{gap:4px;display:inline-flex}.detail-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:20px;display:grid}.side-stack:empty{display:none}.detail-layout:has(.side-stack:empty){grid-template-columns:minmax(0,1fr)}.section-label{text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin:16px 0 8px;font-size:12px;font-weight:600}.section-label .count{background:var(--surface-muted);border:1px solid var(--border);color:var(--text);border-radius:999px;margin-left:4px;padding:0 7px;display:inline-block}.description{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:16px}.detail-list{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px 24px;margin:0;padding-top:16px;display:grid}.detail-item dt{color:var(--text-muted);margin-bottom:3px;font-size:12px}.detail-item dd{overflow-wrap:anywhere;margin:0;font-weight:500}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.team-group .section-label{margin-top:0}.member-list{border:1px solid var(--border);border-radius:var(--radius-sm);margin:0;padding:0;list-style:none}.member{align-items:center;gap:10px;padding:10px 12px;display:flex}.member+.member{border-top:1px solid var(--border)}.member-meta{flex-direction:column;flex:1;min-width:0;display:flex}.member-name{font-weight:600}.member-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.project-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);color:var(--text);flex-direction:column;gap:10px;padding:18px;transition:border-color .15s,box-shadow .15s;display:flex}.project-card:hover{border-color:var(--primary);box-shadow:var(--shadow);text-decoration:none}.project-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.project-card h3{overflow-wrap:anywhere;font-size:15px}.project-card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;display:-webkit-box;overflow:hidden}.project-card-meta{color:var(--text-muted);border-top:1px solid var(--border);flex-wrap:wrap;gap:4px 14px;padding-top:10px;font-size:12.5px;display:flex}.state{text-align:center;color:var(--text-subtle);flex-direction:column;align-items:center;gap:8px;padding:48px 20px;display:flex}.state-title{color:var(--text);font-weight:600}.state-text{color:var(--text-muted);max-width:420px}.state-error>svg{color:var(--danger)}.state .btn{margin-top:6px}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:26px;height:26px;animation:.7s linear infinite spin;display:inline-block}.spinner-sm{border-width:2px;width:15px;height:15px}.btn .spinner-sm{border-color:#fff #fff6 #fff6}.btn-secondary .spinner-sm{border-color:var(--border);border-top-color:var(--primary)}@keyframes spin{to{transform:rotate(360deg)}}.full-page-center{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.content .full-page-center{min-height:60vh}.error-page{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;display:flex}.error-page h1{color:var(--text);font-size:22px}.error-page .btn{margin-top:8px}.modal-backdrop{z-index:100;background:#0f172a80;justify-content:center;align-items:flex-start;padding:7vh 16px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-lg)}.modal-md{max-width:540px}.modal-sm{max-width:420px}.modal-lg{max-width:960px}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-size:16px;font-weight:600}.modal-body{padding:20px}.modal-footer{border-top:1px solid var(--border);background:var(--surface-muted);border-radius:0 0 var(--radius) var(--radius);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.confirm-text{color:var(--text)}.confirm-text p+p{margin-top:10px}.confirm-note{border-radius:var(--radius-sm);color:#92400e;background:#fffbeb;border:1px solid #fde68a;padding:10px 12px;font-size:13px}.toast-stack{z-index:200;flex-direction:column;gap:8px;max-width:calc(100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);width:360px;max-width:100%;box-shadow:var(--shadow-lg);border-left:4px solid;align-items:center;gap:10px;padding:11px 12px 11px 14px;display:flex}.toast span{flex:1}.toast-success{border-left-color:#16a34a}.toast-success>svg{color:#16a34a}.toast-error{border-left-color:var(--danger)}.toast-error>svg{color:var(--danger)}.login-page{background:radial-gradient(circle at 15% 10%, #2563eb14, transparent 45%), radial-gradient(circle at 85% 90%, #0f172a0f, transparent 45%), var(--bg);background:linear-gradient(135deg,#f4f8ff 0%,#fff 45%,#e8f0ff 100%);justify-content:center;align-items:center;min-height:100vh;padding:40px clamp(24px,4vw,64px);display:flex;position:relative;overflow:hidden}.login-page:before,.login-page:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.login-page:before{background:radial-gradient(circle,#2563eb21,#2563eb00 70%);width:520px;height:520px;top:-220px;left:-180px}.login-page:after{background:radial-gradient(circle,#6366f124,#6366f100 70%);width:640px;height:640px;bottom:-300px;right:-240px}.login-layout{z-index:1;grid-template-columns:minmax(0,1fr) clamp(460px,36vw,500px);align-items:center;gap:6%;width:100%;max-width:1240px;display:grid;position:relative}.login-hero{min-width:0}.login-brand{align-items:center;gap:12px;margin-bottom:32px;display:flex}.login-brand .brand-mark{box-shadow:0 8px 18px -6px #2563eb8c}.login-brand h1{color:#0f172a;font-size:24px;line-height:1.2}.login-brand p{color:var(--text-muted);font-size:13px}.login-headline{letter-spacing:-.6px;color:#0f172a;font-size:clamp(30px,3.1vw,42px);font-weight:800;line-height:1.18}.login-headline span{color:var(--primary);display:block}.login-lead{max-width:30em;color:var(--text-muted);margin-top:14px;font-size:17px;line-height:1.55}.login-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:620px;margin:28px 0 0;padding:0;list-style:none;display:grid}.login-features li{background:#ffffffb3;border:1px solid #e3e9f4;border-radius:10px;align-items:center;gap:10px;min-width:0;padding:10px 12px;transition:border-color .15s,background-color .15s,box-shadow .15s;display:flex}.login-features li:hover{background:#fff;border-color:#c9d6ee;box-shadow:0 4px 12px -6px #1e40af2e}.login-features strong{color:#0f172a;font-size:14px;font-weight:600;line-height:1.35;display:block}.login-features p{color:var(--text-muted);font-size:12.5px;line-height:1.4}.login-feature-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.login-feature-icon svg{width:17px;height:17px}.login-card{background:var(--surface);border:1px solid #e2e8f4;border-radius:16px;min-width:0;padding:40px 36px 32px;transition:box-shadow .2s,border-color .2s;box-shadow:0 32px 64px -32px #1e40af52,0 10px 24px -14px #0f172a1a,0 1px 2px #0f172a0a}.login-card:hover,.login-card:focus-within{border-color:#d3def5;box-shadow:0 36px 72px -32px #1e40af66,0 12px 28px -14px #0f172a1f,0 1px 2px #0f172a0a}.login-card .field{gap:7px;margin-bottom:18px}.login-card .field label{color:#334155;font-size:13.5px;font-weight:600}.login-card-head{text-align:center;margin-bottom:28px}.login-card-head h2{letter-spacing:-.4px;color:#0f172a;font-size:28px;font-weight:700;line-height:1.25}.login-card-head p{color:var(--text-muted);margin-top:6px;font-size:15px}.login-alert{align-items:flex-start;gap:8px;display:flex}.login-alert svg{flex-shrink:0;margin-top:2px}.input-icon{position:relative}.input-icon>svg{color:var(--text-subtle);pointer-events:none;transition:color .15s;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.input-icon:focus-within>svg{color:var(--primary)}.login-card .input-icon input{background:#fbfcfe;border-radius:10px;min-height:46px;padding-left:42px;font-size:14.5px}.login-card .input-icon input::placeholder{color:var(--text-subtle)}.login-card .input-icon input:hover{border-color:#a9b6c9}.login-card .input-icon input:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 4px #2563eb24}.login-card .input-icon.has-toggle input{padding-right:50px}.password-toggle{position:absolute;top:50%;right:7px;transform:translateY(-50%)}.login-submit{border-radius:10px;height:46px;margin-top:6px;font-size:15px;font-weight:600;transition:background-color .15s,box-shadow .15s,transform .1s;box-shadow:0 10px 20px -10px #2563ebb3}.login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 24px -10px #2563ebbf}.login-submit:active:not(:disabled){transform:translateY(0)scale(.99);box-shadow:0 6px 12px -8px #2563ebb3}.login-secure{color:var(--text-subtle);justify-content:center;align-items:center;gap:6px;margin-top:18px;font-size:12.5px;display:flex}@media (width<=1024px){.login-layout{grid-template-columns:minmax(0,1fr);gap:28px;max-width:500px}.login-brand{margin-bottom:20px}.login-features{margin-top:20px}}@media (width<=1100px){.detail-layout{grid-template-columns:minmax(0,1fr)}}@media (width<=900px){.sidebar{box-shadow:var(--shadow-lg);transition:transform .2s;transform:translate(-100%)}.menu-open .sidebar{transform:none}.menu-open .sidebar-scrim{z-index:35;background:#0f172a73;display:block;position:fixed;inset:0}.main{margin-left:0}.menu-toggle{display:inline-flex}.grid-2,.team-grid{grid-template-columns:minmax(0,1fr)}}@media (width<=600px){.content{padding:16px}.topbar{padding:0 12px}.user-meta,.topbar-logout{display:none}.page-header h1{font-size:19px}.page-actions,.page-actions .btn{width:100%}.page-actions .btn{flex:1}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{gap:10px;padding:12px}.stat-icon{width:34px;height:34px}.stat-value{font-size:20px}.toolbar{padding:12px}.search-input{flex-basis:100%;max-width:none}.filter-select{flex:140px}.form-row{grid-template-columns:minmax(0,1fr)}.table th,.table td{padding:10px 12px}.modal-backdrop{padding-top:16px}.login-page{padding:20px 16px}.login-card{border-radius:14px;padding:28px 20px 24px}.login-features{display:none}}.readonly-summary{border-radius:var(--radius-sm);background:var(--surface-muted);border:1px solid var(--border);flex-wrap:wrap;gap:8px 28px;margin-bottom:16px;padding:10px 12px;display:flex}.readonly-summary span{flex-direction:column;align-items:flex-start;gap:3px;font-weight:500;display:flex}.readonly-summary small{color:var(--text-muted);font-size:12px;font-weight:400}.fieldset-plain{border:0;min-width:0;margin:0;padding:0}.field-label{font-size:13px;font-weight:500}.main-stack{min-width:0}.count-pill{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;margin-left:4px;padding:0 8px;font-size:12px;font-weight:600;display:inline-block}.attach-count{color:var(--text-muted);vertical-align:middle;align-items:center;gap:2px;margin-left:8px;font-size:12px;font-weight:500;display:inline-flex}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-muted);color:var(--text-muted);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:2px;padding:14px 12px;transition:border-color .15s,background-color .15s;display:flex}.dropzone:hover,.dropzone.dragging{border-color:var(--primary);background:var(--primary-soft)}.dropzone.disabled{opacity:.6;cursor:not-allowed}.dropzone p{color:var(--text);font-size:13px}.dropzone small{font-size:12px}.dropzone-browse{color:var(--primary);cursor:inherit;background:0 0;border:0;padding:0;font-weight:600}.dropzone-browse:hover{text-decoration:underline}.dropzone-browse:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:2px}.dropzone-rejected{color:var(--danger);overflow-wrap:anywhere;margin:0;padding:0;font-size:12.5px;list-style:none}.file-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.file-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:10px;padding:6px 6px 6px 8px;display:flex}.file-item.file-error{background:var(--danger-soft);border-color:#fecaca}.file-thumb{background:var(--surface-muted);width:40px;height:40px;color:var(--text-muted);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.file-thumb img{object-fit:cover;width:100%;height:100%}.file-meta{flex-direction:column;flex:1;min-width:0;display:flex}.file-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.file-status{color:var(--text-muted);overflow-wrap:anywhere;font-size:12px}.file-error{color:var(--danger)}.file-progress{background:var(--border);border-radius:999px;height:4px;margin-top:4px;display:block;overflow:hidden}.file-progress span{background:var(--primary);height:100%;transition:width .15s;display:block}.attachment-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.attachment{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;min-width:0;display:flex;overflow:hidden}.attachment-media{aspect-ratio:4/3;background:var(--surface-muted);border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}button.attachment-media{cursor:zoom-in}button.attachment-media:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.attachment-media img,.attachment-media video{object-fit:cover;width:100%;height:100%;display:block;position:absolute;inset:0}.attachment-media video{object-fit:contain;background:#0f172a}.attachment-footer{border-top:1px solid var(--border);align-items:center;gap:4px;padding:6px 4px 6px 10px;display:flex}.attachment-upload{flex-direction:column;align-items:stretch;gap:6px;margin-top:16px;display:flex}.attachment-upload .btn{align-self:flex-start}.attachment-preview{background:var(--surface-muted);justify-content:center;padding:16px;display:flex}.attachment-preview img{object-fit:contain;max-width:100%;max-height:70vh}.view-toggle{align-self:center;margin-left:auto}.board{background:var(--surface-muted);border-radius:0 0 var(--radius) var(--radius);align-items:flex-start;gap:14px;padding:16px;display:flex;overflow-x:auto}.board-column{border:1px solid var(--border);border-radius:var(--radius);background:#eef2f7;flex-direction:column;flex:1 0 230px;max-width:440px;max-height:max(360px,100vh - 300px);display:flex}.board-column-header{align-items:center;gap:8px;padding:12px 14px 8px;display:flex}.board-column-header h3{font-size:13.5px;font-weight:600}.board-column-header .count-pill{background:var(--surface);margin-left:auto}.board-dot{background:#64748b;border-radius:50%;width:9px;height:9px}.board-dot-Open{background:#2563eb}.board-dot-InProgress{background:#d97706}.board-dot-Resolved{background:#059669}.board-dot-Reopened{background:#dc2626}.board-cards{flex-direction:column;gap:8px;padding:4px 10px 10px;display:flex;overflow-y:auto}.board-dnd{align-items:stretch}.board-dnd .board-column{transition:border-color .15s,background-color .15s,box-shadow .15s}.board-dnd .board-cards{flex:1;min-height:90px}.board-column.drop-target{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px #2563eb24}.board-dnd .bug-card{cursor:grab;transition:border-color .15s,box-shadow .15s,opacity .15s,transform .15s}.board-dnd .bug-card:active{cursor:grabbing}.bug-card.dragging{opacity:.45;transform:scale(.98)}.bug-card.saving{opacity:.6;cursor:progress}.bug-card.saving .spinner-sm{border-color:var(--border);border-top-color:var(--primary)}.board-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);text-align:center;color:var(--text-subtle);padding:18px 0;font-size:13px}.bug-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.bug-card:hover{border-color:var(--primary);box-shadow:var(--shadow);text-decoration:none}.bug-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.bug-card-top,.bug-card-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.bug-card-title{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.bug-card-project{color:var(--text-muted);align-items:center;gap:5px;min-width:0;font-size:12.5px;display:flex}.bug-card-project svg{flex-shrink:0}.bug-card-project span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bug-card-people{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0 0;padding-top:8px;display:grid}.bug-card-people dt{color:var(--text-subtle);font-size:11px}.bug-card-people dd{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12.5px;font-weight:500;overflow:hidden}.bug-card-avatar{vertical-align:text-bottom;width:18px;height:18px;margin-right:5px;font-size:9px}.bug-card-footer{color:var(--text-muted);font-size:12px}.bug-card-footer .attach-count{margin-left:0}@media (width<=600px){.view-toggle{margin-left:0}.board{padding:12px}.board-column{flex-basis:260px}}
