:root{--blue: #007AFF;--blue-strong: #0062CC;--blue-soft: rgba(0, 122, 255, .1);--green: #34C759;--orange: #FF9500;--red: #FF3B30;--indigo: #5856D6;--purple: #7C3AED;--bg: #F5F5F7;--surface: #FFFFFF;--surface-2: #FAFAFC;--sidebar: #FFFFFF;--label: #1D1D1F;--label-2: rgba(0, 0, 0, .55);--label-3: rgba(0, 0, 0, .34);--sep: rgba(0, 0, 0, .08);--sep-strong: rgba(0, 0, 0, .14);--fill: rgba(0, 0, 0, .035);--fill-2: rgba(0, 0, 0, .06);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-card: 0 1px 1px rgba(0, 0, 0, .02), 0 8px 24px rgba(17, 24, 39, .04);--shadow-pop: 0 2px 8px rgba(0, 0, 0, .06), 0 16px 40px rgba(17, 24, 39, .14);--radius: 14px;--radius-sm: 9px;--st-pending-bg: #FFF4E5;--st-pending-fg: #A65B00;--st-accepted-bg: #EAF3FF;--st-accepted-fg: #0860B8;--st-doing-bg: #EFEEFF;--st-doing-fg: #4642B8;--st-done-bg: #E9F8EE;--st-done-fg: #177239;--st-cancelled-bg: #F1F1F4;--st-cancelled-fg: #616167;--st-invalid-bg: #FDECEA;--st-invalid-fg: #B33127;--st-closed-bg: #EBEBEF;--st-closed-fg: #4C4C52;--ease: cubic-bezier(.25, .1, .25, 1)}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;background:var(--bg);color:var(--label);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Helvetica Neue,Microsoft YaHei,sans-serif;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;zoom:1.12}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:0;padding:0;cursor:pointer}input,select,textarea{outline:none}svg{display:block}[hidden]{display:none!important}::selection{background:#007aff2e}:focus-visible{outline:none;box-shadow:0 0 0 3px #007aff4d}.sprite{position:absolute;width:0;height:0;overflow:hidden}.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.mono{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:11.5px;letter-spacing:-.01em}.muted{color:var(--label-2)}.dim{color:var(--label-3)}.nowrap{white-space:nowrap}.btn{height:34px;padding:0 14px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:550;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease),transform .1s var(--ease),opacity .15s}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.38;cursor:not-allowed;transform:none}.btn .icon{width:16px;height:16px}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 1px 2px #005ac82e}.btn-primary:hover{background:var(--blue-strong)}.btn-secondary{background:var(--surface);border:1px solid var(--sep-strong);color:var(--label)}.btn-secondary:hover{background:var(--fill)}.btn-ghost{color:var(--label-2)}.btn-ghost:hover{background:var(--fill);color:var(--label)}.btn-danger{background:transparent;color:var(--red);border:1px solid rgba(255,59,48,.26)}.btn-danger:hover{background:#ff3b3014}.btn-danger-solid{background:var(--red);color:#fff}.btn-sm{height:28px;padding:0 10px;font-size:12px;border-radius:7px}.btn-sm .icon{width:14px;height:14px}.icon-btn{width:34px;height:34px;border-radius:8px;display:inline-grid;place-items:center;color:var(--label-2);position:relative;transition:background .15s var(--ease),color .15s var(--ease)}.icon-btn:hover{background:var(--fill);color:var(--label)}.input,.select,.textarea{height:34px;width:100%;padding:0 11px;border-radius:8px;border:1px solid var(--sep-strong);background:var(--surface);color:var(--label);font-size:13px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease),background .15s}.input::placeholder,.textarea::placeholder{color:var(--label-3)}.input:hover,.select:hover{border-color:#00000038}.input:focus,.select:focus,.textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #007aff2e}.textarea{height:auto;min-height:88px;padding:9px 11px;resize:vertical;line-height:1.55}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2386868B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.input[type=date]{padding-right:8px}.checkbox{width:15px;height:15px;accent-color:var(--blue);cursor:pointer;flex:none}.checkline{display:inline-flex;align-items:center;gap:7px;color:var(--label-2);font-size:12px;cursor:pointer}.checkline input{width:14px;height:14px;accent-color:var(--blue)}.card{background:var(--surface);border:1px solid var(--sep);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px 0}.card-title{font-size:14px;font-weight:600;letter-spacing:-.01em}.card-sub{font-size:11.5px;color:var(--label-3);margin-top:2px}.card-body{padding:15px 18px 18px}.status{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap;letter-spacing:.01em}.status i{width:5px;height:5px;border-radius:50%;background:currentColor;flex:none}.status-pending{background:var(--st-pending-bg);color:var(--st-pending-fg)}.status-accepted{background:var(--st-accepted-bg);color:var(--st-accepted-fg)}.status-doing{background:var(--st-doing-bg);color:var(--st-doing-fg)}.status-done{background:var(--st-done-bg);color:var(--st-done-fg)}.status-cancelled{background:var(--st-cancelled-bg);color:var(--st-cancelled-fg)}.status-invalid{background:var(--st-invalid-bg);color:var(--st-invalid-fg)}.status-closed{background:var(--st-closed-bg);color:var(--st-closed-fg)}.role-badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;font-size:11px;font-weight:600;white-space:nowrap}.role-reporter{background:var(--st-accepted-bg);color:var(--st-accepted-fg)}.role-engineer{background:var(--st-done-bg);color:var(--st-done-fg)}.role-service{background:var(--st-pending-bg);color:var(--st-pending-fg)}.role-owner{background:#7c3aed1f;color:#7c3aed}.mini-avatar{width:24px;height:24px;border-radius:50%;background:var(--avatar, var(--blue));color:#fff;display:inline-grid;place-items:center;font-size:10px;font-weight:650;flex:none;letter-spacing:0}.avatar-stack{display:inline-flex;align-items:center;gap:7px;min-width:0}.avatar-stack span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.segmented{display:inline-flex;gap:2px;padding:3px;background:var(--fill);border-radius:9px}.segmented button{height:28px;padding:0 12px;border-radius:7px;color:var(--label-2);font-size:12px;font-weight:500;white-space:nowrap;transition:background .15s var(--ease),color .15s var(--ease),box-shadow .15s}.segmented button:hover{color:var(--label)}.segmented button.active{background:var(--surface);color:var(--label);font-weight:600;box-shadow:0 1px 2px #00000014,0 0 0 .5px #0000000a}.segmented.seg-lg button{height:32px;padding:0 16px;font-size:13px}.segmented .count{display:inline-grid;place-items:center;min-width:18px;height:17px;padding:0 5px;margin-left:5px;border-radius:5px;background:var(--fill-2);color:var(--label-3);font-size:10.5px;font-variant-numeric:tabular-nums}.segmented button.active .count{background:var(--blue-soft);color:var(--blue)}.link-btn{color:var(--blue);font-size:12px;font-weight:550;padding:2px 0;border-radius:4px;white-space:nowrap}.link-btn:hover{text-decoration:underline;text-underline-offset:3px}.link-btn.danger{color:var(--red)}.link-btn.muted{color:var(--label-3)}.login-view{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(440px,.94fr);background:var(--bg);position:relative}.login-side{position:relative;overflow:hidden;padding:42px 54px 30px;display:flex;flex-direction:column;justify-content:space-between;gap:34px;background:radial-gradient(1100px 520px at 8% -10%,rgba(0,122,255,.12),transparent 62%),radial-gradient(800px 420px at 100% 105%,rgba(90,200,250,.13),transparent 60%),var(--surface);border-right:1px solid var(--sep)}.login-side:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,var(--sep) 1px,transparent 1px),linear-gradient(to bottom,var(--sep) 1px,transparent 1px);background-size:68px 68px;-webkit-mask-image:radial-gradient(720px 520px at 30% 42%,#000 0%,transparent 78%);mask-image:radial-gradient(720px 520px at 30% 42%,#000 0%,transparent 78%);opacity:.55;pointer-events:none}.login-side>*{position:relative;z-index:1}.login-brand{display:flex;align-items:center;gap:11px}.brand-mark{width:37px;height:37px;border-radius:10px;background:linear-gradient(150deg,#007aff,#5ac8fa);color:#fff;display:grid;place-items:center;box-shadow:0 4px 12px #007aff42;flex:none}.brand-mark .icon{width:20px;height:20px;stroke-width:1.8}.login-brand strong{display:block;font-size:14.5px;font-weight:650;letter-spacing:-.01em}.login-brand small{display:block;font-size:11px;color:var(--label-3);margin-top:1px}.login-hero{max-width:520px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--blue);margin-bottom:16px}.login-hero h1{font-size:clamp(36px,3.4vw,50px);line-height:1.12;letter-spacing:-.045em;font-weight:680}.login-hero h1 span{color:var(--blue)}.login-lede{margin-top:18px;font-size:14px;line-height:1.7;color:var(--label-2);max-width:36em}.login-showcase{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;max-width:610px}.show-card{background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid var(--sep);border-radius:13px;box-shadow:var(--shadow-card);padding:15px 16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.show-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.show-head .mono{color:var(--label-3)}.show-card>strong{display:block;font-size:13.5px;font-weight:600;letter-spacing:-.01em}.show-meta{display:flex;align-items:center;gap:7px;margin-top:12px;font-size:11.5px;color:var(--label-2)}.show-time{margin-left:auto;color:var(--label-3);font-variant-numeric:tabular-nums}.show-card-small{display:flex;flex-direction:column}.show-label{font-size:11px;color:var(--label-3)}.show-card-small strong{font-size:30px;letter-spacing:-.03em;margin-top:2px;font-variant-numeric:tabular-nums}.show-card-small strong small{font-size:12px;font-weight:500;color:var(--label-3);letter-spacing:0}.show-bars{display:flex;align-items:flex-end;gap:4px;height:34px;margin-top:auto;padding-top:12px}.show-bars i{flex:1;min-height:4px;border-radius:2px;background:var(--blue);opacity:.22}.show-bars i:nth-child(5),.show-bars i:nth-child(6),.show-bars i:nth-child(7){opacity:.5}.show-bars i:last-child{opacity:.9}.login-side-foot{display:flex;justify-content:space-between;gap:12px;font-size:10.5px;color:var(--label-3);letter-spacing:.01em}.login-main{display:grid;place-items:center;padding:56px 48px 40px;background:radial-gradient(600px 300px at 100% 0%,rgba(0,122,255,.05),transparent 60%),var(--bg)}.login-panel{width:100%;max-width:372px}.login-brand-mobile{display:none;margin-bottom:30px}.login-panel h2{font-size:25px;letter-spacing:-.03em;font-weight:650}.login-sub{margin-top:7px;font-size:13px;color:var(--label-2)}.login-form{margin-top:28px}.form-field{display:block;margin-bottom:16px}.form-field>span:first-child{display:block;font-size:11.5px;font-weight:550;color:var(--label-2);margin-bottom:6px}.login-panel .input{height:42px;border-radius:9px;font-size:14px;padding:0 13px}.pw-wrap{position:relative;display:block}.pw-wrap .input{padding-right:44px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:7px;display:grid;place-items:center;color:var(--label-3)}.pw-toggle:hover{color:var(--label-2);background:var(--fill)}.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:2px}.login-help{font-size:11px;color:var(--label-3)}.form-error{margin-top:12px;padding:8px 10px;border-radius:7px;background:#ff3b3017;color:var(--red);font-size:12px}.login-submit{width:100%;height:42px;margin-top:18px;font-size:14px;border-radius:9px}.demo-box{margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px dashed var(--sep-strong);border-radius:10px;background:var(--fill)}.demo-box strong{display:block;font-size:11px;font-weight:600;color:var(--label-2)}.demo-box span{display:block;margin-top:2px;font-size:11.5px;color:var(--label-3)}.login-note{margin-top:26px;font-size:10.5px;line-height:1.6;color:var(--label-3);text-align:center}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:18px 14px 14px;display:flex;flex-direction:column;background:var(--sidebar);border-right:1px solid var(--sep);overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:0 8px 16px}.brand-mark{width:34px;height:34px;border-radius:9px}.brand-mark .icon{width:18px;height:18px}.brand-copy strong{display:block;font-size:14px;font-weight:650;letter-spacing:-.01em}.brand-copy small{display:block;font-size:10.5px;color:var(--label-3);margin-top:0}.project-switcher{display:flex;align-items:center;gap:9px;width:100%;padding:9px 10px;border-radius:10px;background:var(--fill);text-align:left;transition:background .15s var(--ease)}.project-switcher:hover{background:var(--fill-2)}.project-wrap{position:relative}.project-avatar{width:28px;height:28px;border-radius:7px;background:color-mix(in srgb,var(--proj, var(--blue)) 11%,var(--surface));border:1px solid color-mix(in srgb,var(--proj, var(--blue)) 18%,var(--sep));color:var(--proj, var(--blue));font-size:12px;font-weight:650;display:grid;place-items:center;flex:none}.project-copy{min-width:0;flex:1}.project-copy strong{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-copy small{display:block;font-size:10px;color:var(--label-3)}.project-chev{width:14px;height:14px;color:var(--label-3)}.pop-wrap .project-pop{position:fixed;top:128px;left:14px;right:auto;width:268px}.proj-item{width:100%;display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:8px;text-align:left;transition:background .12s var(--ease)}.proj-item:hover{background:var(--fill)}.proj-item.active{background:var(--blue-soft)}.proj-item .project-avatar{width:26px;height:26px;font-size:11.5px}.proj-copy{min-width:0;flex:1}.proj-copy strong{display:block;font-size:12px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-copy small{display:block;margin-top:1px;font-size:10px;color:var(--label-3)}.proj-check{width:16px;height:16px;color:var(--blue);flex:none}.proj-divider{height:1px;background:var(--sep);margin:5px 4px}.proj-manage{width:100%}.proj-manage-chev{margin-left:auto;width:13px;height:13px;color:var(--label-3);display:inline-flex}.pop-empty{padding:16px 12px;font-size:11.5px;color:var(--label-3);text-align:center}.nav{display:flex;flex-direction:column;gap:2px;margin-top:4px}.nav-label{padding:16px 10px 5px;font-size:10.5px;font-weight:550;letter-spacing:.04em;color:var(--label-3)}.nav-item{height:36px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:8px;color:var(--label-2);font-size:13px;font-weight:500;text-align:left;transition:background .15s var(--ease),color .15s var(--ease)}.nav-item .icon{width:18px;height:18px;color:var(--label-3);transition:color .15s}.nav-item:hover{background:var(--fill);color:var(--label)}.nav-item:hover .icon{color:var(--label-2)}.nav-item.active{background:var(--blue-soft);color:var(--blue);font-weight:600}.nav-item.active .icon{color:var(--blue)}.nav-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ff950026;color:#a65b00;font-size:10px;font-weight:650;display:inline-grid;place-items:center;font-variant-numeric:tabular-nums}.nav-item.active .nav-badge{background:var(--surface);color:var(--blue)}.sidebar-foot{margin-top:auto;padding-top:18px;display:flex;flex-direction:column;gap:2px}.side-link{height:32px;display:flex;align-items:center;gap:9px;padding:0 10px;border-radius:7px;color:var(--label-3);font-size:11.5px;text-align:left;transition:background .15s var(--ease),color .15s var(--ease)}.side-link:hover{background:var(--fill);color:var(--label-2)}.side-link .icon{width:15px;height:15px}.side-version{padding:12px 10px 0;font-size:10px;color:var(--label-3)}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;height:58px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--sep)}.crumbs{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--label-3);white-space:nowrap}.crumbs i{font-style:normal;color:var(--label-3);opacity:.7}.crumbs strong{color:var(--label-2);font-weight:550}.topbar-actions{display:flex;align-items:center;gap:8px}.global-search{width:270px;height:32px;display:flex;align-items:center;gap:7px;padding:0 8px 0 10px;border-radius:8px;border:1px solid transparent;background:var(--fill);color:var(--label-3);transition:background .15s var(--ease),border-color .15s var(--ease)}.global-search:focus-within{background:var(--surface);border-color:var(--blue);box-shadow:0 0 0 3px #007aff24}.global-search .icon{width:15px;height:15px}.global-search input{width:100%;border:0;background:transparent;color:var(--label);font-size:12px}.global-search input::placeholder{color:var(--label-3)}.global-search kbd{font-family:inherit;font-size:9.5px;color:var(--label-3);border:1px solid var(--sep-strong);border-radius:4px;padding:1px 4px;line-height:1.25;flex:none}.dot-badge{position:absolute;top:4px;right:4px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:var(--red);color:#fff;font-size:8.5px;font-weight:700;display:grid;place-items:center;border:1.5px solid var(--bg);font-variant-numeric:tabular-nums}.account-chip{display:flex;align-items:center;gap:8px;height:36px;padding:0 7px;border-radius:9px;transition:background .15s var(--ease)}.account-chip:hover{background:var(--fill)}.account-copy{text-align:left;line-height:1.15}.account-copy strong{display:block;font-size:12px;font-weight:600}.account-copy small{display:block;font-size:9.5px;color:var(--label-3);margin-top:1px}.account-chev{width:13px;height:13px;color:var(--label-3)}.pop-wrap{position:relative}.popover{position:absolute;top:calc(100% + 8px);right:0;z-index:60;width:304px;padding:6px;border-radius:12px;background:var(--surface);border:1px solid var(--sep);box-shadow:var(--shadow-pop);animation:pop-in .16s var(--ease)}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:none}}.popover-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px 7px;border-bottom:1px solid var(--sep);margin-bottom:4px}.popover-head strong{font-size:12.5px;font-weight:600}.popover-head span{font-size:10.5px;color:var(--label-3)}.popover-item{width:100%;display:flex;align-items:flex-start;gap:10px;padding:9px 10px;border-radius:8px;text-align:left;transition:background .12s var(--ease)}.popover-item:hover{background:var(--fill)}.popover-item strong{display:block;font-size:12px;font-weight:550;line-height:1.4}.popover-item small{display:block;font-size:10.5px;color:var(--label-3);margin-top:2px;line-height:1.4}.pop-icon{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;flex:none;margin-top:1px}.pop-icon .icon{width:14px;height:14px}.tone-pending{background:var(--st-pending-bg);color:var(--st-pending-fg)}.tone-accepted{background:var(--st-accepted-bg);color:var(--st-accepted-fg)}.tone-invalid{background:var(--st-invalid-bg);color:var(--st-invalid-fg)}.popover-item.compact{align-items:center;padding:8px 10px;color:var(--label-2);font-size:12px}.popover-item.compact .icon{width:16px;height:16px}.popover-item.compact.danger{color:var(--red)}.account-pop{width:232px}.account-pop-head{display:flex;align-items:center;gap:9px;padding:10px 10px 11px;border-bottom:1px solid var(--sep);margin-bottom:4px}.account-pop-head strong{display:block;font-size:12.5px;font-weight:600}.account-pop-head small{display:block;font-size:10px;color:var(--label-3);margin-top:1px}.page{width:100%;max-width:1420px;margin:0 auto;padding:26px 32px 52px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.page-title{font-size:24px;line-height:1.2;font-weight:650;letter-spacing:-.025em}.page-sub{margin-top:6px;font-size:12.5px;color:var(--label-2)}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.section-gap{margin-top:16px}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.metric{padding:14px 16px 13px;position:relative;overflow:hidden}.metric-label{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--label-2)}.metric-label .icon{width:13px;height:13px;color:var(--label-3)}.metric-value{margin-top:6px;font-size:27px;line-height:1.15;font-weight:650;letter-spacing:-.035em;font-variant-numeric:tabular-nums}.metric-value small{font-size:12px;font-weight:500;color:var(--label-3);letter-spacing:0;margin-left:2px}.metric-sub{margin-top:4px;font-size:10.5px;color:var(--label-3)}.metric-sub.warn{color:var(--red)}.metric.rate .metric-value{color:var(--blue)}.filters{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:13px 16px;margin-bottom:12px}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>span{font-size:10.5px;font-weight:550;color:var(--label-3)}.field.search{flex:1 1 230px;max-width:320px}.field select,.field .input{height:33px;font-size:12.5px}.filters .spacer{flex:1 1 0}.filters .reset{height:33px}.batch-bar{display:flex;align-items:center;gap:12px;padding:9px 14px;margin-bottom:10px;border-radius:10px;background:var(--blue-soft);border:1px solid rgba(0,122,255,.18);color:var(--blue);font-size:12px}.batch-bar strong{font-weight:650}.batch-bar .batch-actions{margin-left:auto;display:flex;gap:8px}.batch-bar .btn-secondary{background:transparent;border-color:#007aff47;color:var(--blue)}.table-card{overflow:hidden}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;min-width:920px}.data-table th{padding:10px 14px;text-align:left;font-size:10.5px;font-weight:550;letter-spacing:.02em;color:var(--label-3);background:var(--surface-2);border-bottom:1px solid var(--sep);white-space:nowrap}.data-table td{padding:11px 14px;border-bottom:1px solid var(--sep);vertical-align:middle;font-size:12.5px}.data-table tbody tr{cursor:pointer;transition:background .12s var(--ease)}.data-table tbody tr:hover{background:var(--fill)}.data-table tbody tr.selected{background:#007aff0e}.data-table tbody tr:last-child td{border-bottom:0}.data-table .col-check{width:38px;padding-right:0}.data-table .col-actions{text-align:right;white-space:nowrap}.data-table th.col-actions{text-align:right}.ticket-cell{display:flex;flex-direction:column;gap:2px;min-width:180px}.ticket-cell strong{font-weight:550;font-size:12.5px;line-height:1.4}.ticket-cell span{font-size:10.5px;color:var(--label-3)}.cell-sub{display:block;font-size:10.5px;color:var(--label-3);margin-top:2px}.no-cell{color:var(--label-3);white-space:nowrap}.no-cell span{display:block;margin-top:2px;font-size:10px;color:var(--label-3)}.ops{display:inline-flex;align-items:center;gap:12px;justify-content:flex-end}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-top:1px solid var(--sep);font-size:11.5px;color:var(--label-3)}.pager{display:flex;align-items:center;gap:3px}.pager button{min-width:28px;height:28px;padding:0 8px;border-radius:7px;color:var(--label-2);font-size:12px;font-variant-numeric:tabular-nums}.pager button:hover:not(:disabled){background:var(--fill);color:var(--label)}.pager button.active{background:var(--blue);color:#fff;font-weight:600}.pager button:disabled{opacity:.32;cursor:not-allowed}.pager .page-info{margin-right:8px}.empty{padding:54px 20px;display:flex;flex-direction:column;align-items:center;text-align:center}.empty .empty-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:var(--fill);color:var(--label-3);margin-bottom:13px}.empty .empty-icon .icon{width:21px;height:21px}.empty strong{font-size:13px;font-weight:600;color:var(--label-2)}.empty p{margin-top:4px;font-size:11.5px;color:var(--label-3);max-width:30em}.detail-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.back-btn{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--label-2);border:1px solid var(--sep);background:var(--surface);flex:none;margin-top:2px}.back-btn:hover{background:var(--fill)}.detail-heading{min-width:0;flex:1}.detail-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-title-row h1{font-size:21px;font-weight:650;letter-spacing:-.025em;line-height:1.3}.detail-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:11.5px;color:var(--label-3)}.detail-meta .mono{color:var(--label-2)}.detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;padding-top:2px}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 318px;gap:16px;align-items:start}.stack{display:flex;flex-direction:column;gap:16px}.detail-desc{font-size:13px;line-height:1.7;color:var(--label-2)}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:15px}.photo{position:relative;aspect-ratio:4 / 3;border-radius:9px;overflow:hidden;display:grid;place-items:center;color:var(--label-3);background:linear-gradient(135deg,#007aff1a,#5ac8fa05),repeating-linear-gradient(90deg,transparent 0 26px,var(--fill) 26px 27px),repeating-linear-gradient(0deg,transparent 0 26px,var(--fill) 26px 27px),var(--surface-2);border:1px solid var(--sep)}.photo .icon{width:20px;height:20px;opacity:.55}.photo span{position:absolute;left:7px;bottom:6px;font-size:9.5px;color:var(--label-3);background:color-mix(in srgb,var(--surface) 78%,transparent);padding:1px 5px;border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--sep)}.kv{min-width:0}.kv span{display:block;font-size:10.5px;color:var(--label-3);margin-bottom:3px}.kv strong{display:block;font-size:12.5px;font-weight:550;color:var(--label);overflow-wrap:anywhere}.kv strong.mono{font-weight:500;font-size:11.5px}.timeline{list-style:none;margin:2px 0 0;padding:0}.timeline li{position:relative;padding:0 0 19px 25px}.timeline li:last-child{padding-bottom:0}.timeline li:before{content:"";position:absolute;left:4px;top:15px;bottom:-1px;width:1px;background:var(--sep)}.timeline li:last-child:before{display:none}.timeline .t-dot{position:absolute;left:0;top:5px;width:9px;height:9px;border-radius:50%;background:var(--label-3);box-shadow:0 0 0 3px var(--surface)}.timeline .t-dot.create{background:var(--blue)}.timeline .t-dot.assign{background:var(--orange)}.timeline .t-dot.accept{background:var(--indigo)}.timeline .t-dot.start{background:var(--blue)}.timeline .t-dot.finish{background:var(--green)}.timeline .t-dot.cancel{background:var(--label-3)}.timeline .t-dot.close{background:var(--label-2)}.timeline .t-dot.void{background:var(--red)}.timeline .t-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.timeline .t-head strong{font-size:12.5px;font-weight:600}.timeline .t-head time{font-size:10.5px;color:var(--label-3);font-variant-numeric:tabular-nums;white-space:nowrap}.timeline .t-by{margin-top:2px;font-size:11px;color:var(--label-3)}.timeline .t-note{margin-top:5px;font-size:11.5px;line-height:1.55;color:var(--label-2)}.timeline .t-note.reason{padding:7px 9px;border-radius:7px;background:var(--fill);color:var(--label-2)}.side-card{padding:16px 17px}.side-title{font-size:12px;font-weight:600;color:var(--label-2);margin-bottom:12px}.assignee-card{display:flex;align-items:center;gap:10px}.avatar-lg{width:38px;height:38px;border-radius:50%;background:var(--avatar, var(--blue));color:#fff;display:grid;place-items:center;font-size:14px;font-weight:600;flex:none}.assignee-card strong{display:block;font-size:13px;font-weight:600}.assignee-card small{display:block;font-size:10.5px;color:var(--label-3);margin-top:2px}.side-rows{margin-top:14px;padding-top:12px;border-top:1px solid var(--sep);display:flex;flex-direction:column;gap:9px}.side-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11.5px}.side-row span{color:var(--label-3)}.side-row strong{font-weight:550;color:var(--label-2);text-align:right}.side-row strong.mono{font-size:11px}.side-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--sep);display:flex;gap:14px}.unassigned{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:9px;background:var(--st-pending-bg);color:var(--st-pending-fg)}.unassigned .icon{width:18px;height:18px}.unassigned strong{display:block;font-size:12px;font-weight:600}.unassigned small{display:block;font-size:10px;opacity:.8;margin-top:1px}.flow-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.flow-list li{display:flex;align-items:center;gap:9px;min-height:30px;font-size:11.5px;color:var(--label-3);position:relative}.flow-list .flow-dot{width:15px;height:15px;border-radius:50%;border:1.5px solid var(--sep-strong);display:grid;place-items:center;flex:none;color:transparent}.flow-list .flow-dot .icon{width:9px;height:9px;stroke-width:2.6}.flow-list li.past{color:var(--label-2)}.flow-list li.past .flow-dot{background:var(--green);border-color:var(--green);color:#fff}.flow-list li.current{color:var(--blue);font-weight:600}.flow-list li.current .flow-dot{border-color:var(--blue);background:var(--blue);color:#fff}.flow-list li.current.pending .flow-dot{background:var(--orange);border-color:var(--orange)}.flow-list li.current.accepted .flow-dot{background:var(--indigo);border-color:var(--indigo)}.flow-list li.current.doing .flow-dot{background:var(--blue);border-color:var(--blue)}.flow-list li.current.done .flow-dot{background:var(--green);border-color:var(--green)}.flow-list li.current.cancelled .flow-dot,.flow-list li.current.closed .flow-dot{background:var(--label-3);border-color:var(--label-3)}.flow-list li.current.invalid .flow-dot{background:var(--red);border-color:var(--red)}.flow-list li time{margin-left:auto;font-size:10px;color:var(--label-3);font-weight:400;font-variant-numeric:tabular-nums}.flow-sep{height:1px;background:var(--sep);margin:9px 0}.tabs-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.tab-panel{margin-top:0}.inline-filters{display:flex;align-items:center;gap:8px}.inline-filters .input{width:220px;height:32px}.inline-filters .select{width:130px;height:32px}.inline-filters .select.filter-project{width:152px}.filters .select.project-filter{width:160px}.code-cell{display:inline-flex;align-items:center;gap:7px}.code-cell .mono{font-size:12px;font-weight:600;letter-spacing:.06em}.copy-btn{width:24px;height:24px;border-radius:6px;display:inline-grid;place-items:center;color:var(--label-3)}.copy-btn:hover{background:var(--fill);color:var(--label-2)}.copy-btn .icon{width:13px;height:13px}.note-strip{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:9px;background:var(--blue-soft);color:var(--label-2);font-size:11.5px;line-height:1.55;margin-bottom:12px}.note-strip .icon{width:15px;height:15px;color:var(--blue);margin-top:1px}.note-strip strong{color:var(--blue);font-weight:600}.user-cell{display:flex;align-items:center;gap:9px;min-width:170px}.user-cell strong{display:block;font-size:12.5px;font-weight:550}.user-cell small{display:block;font-size:10px;color:var(--label-3);margin-top:1px}.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--label-2)}.status-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}.status-dot.disabled{color:var(--label-3)}.status-dot.disabled:before{background:var(--label-3)}.status-dot.warn:before{background:var(--orange)}.projects-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{position:relative;display:flex;flex-direction:column;padding:16px 17px 0;overflow:hidden}.project-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--proj, var(--blue));opacity:.85}.project-card.current{border-color:color-mix(in srgb,var(--proj, var(--blue)) 32%,var(--sep))}.project-card-head{display:flex;align-items:flex-start;gap:10px}.project-avatar-lg{width:38px;height:38px;border-radius:10px;font-size:15px}.project-card-title{min-width:0;flex:1}.project-card-title strong{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;letter-spacing:-.01em}.project-card-title .mono{display:block;margin-top:2px;font-size:10px;color:var(--label-3)}.project-current-tag{flex:none;padding:1px 5px;border-radius:5px;background:var(--blue-soft);color:var(--blue);font-size:9.5px;font-weight:600}.project-state{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:10.5px;color:var(--green)}.project-state:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.project-state.off{color:var(--label-3)}.project-addr-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-top:9px}.project-addr-row .project-addr{margin-top:0}.project-wxwork{flex:none;margin-top:1px;font-size:10.5px}.project-addr{margin-top:9px;font-size:11.5px;color:var(--label-2);line-height:1.5}.project-mini-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:13px;padding:11px 12px;border-radius:9px;background:var(--fill)}.project-mini-stats span{display:block;font-size:10px;color:var(--label-3)}.project-mini-stats strong{display:block;margin-top:2px;font-size:17px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.project-mini-stats strong.warn{color:var(--orange)}.project-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:13px;padding:11px 0 13px;border-top:1px solid var(--sep)}.project-people{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:10.5px;color:var(--label-3)}.project-people span{white-space:nowrap}.project-card-foot .ops{gap:10px}.scope-pill{display:inline-flex;align-items:center;padding:2px 7px;border-radius:5px;background:var(--blue-soft);color:var(--blue);font-size:10.5px;font-weight:550;white-space:nowrap}.project-tag{display:inline-flex;align-items:center;gap:5px;margin:1px 4px 1px 0;padding:2px 6px;border-radius:5px;background:var(--fill);color:var(--label-2);font-size:10.5px;white-space:nowrap}.project-tag i{width:5px;height:5px;border-radius:50%;background:var(--proj, var(--blue))}.self-tag{display:inline-block;margin-left:4px;padding:0 4px;border-radius:4px;background:var(--fill);color:var(--label-3);font-size:9px;font-weight:500;vertical-align:1px}.dict-empty{padding:16px 0;font-size:11.5px;color:var(--label-3);text-align:center}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}.dict-list{display:flex;flex-direction:column}.dict-row{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--sep)}.dict-row:last-child{border-bottom:0}.dict-row.is-off .dict-name{color:var(--label-3)}.dict-row.is-off .drag-handle{opacity:.5}.drag-handle{color:var(--label-3);cursor:grab;padding:2px}.drag-handle .icon{width:14px;height:14px}.dict-row .dict-name{flex:1;min-width:0;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dict-row .dict-tag{font-size:9.5px;color:var(--label-3)}.switch{position:relative;width:36px;height:21px;border-radius:11px;background:var(--fill-2);transition:background .18s var(--ease);flex:none}.switch:after{content:"";position:absolute;top:2px;left:2px;width:17px;height:17px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0000002e;transition:transform .18s var(--ease)}.switch[aria-checked=true]{background:var(--green)}.switch[aria-checked=true]:after{transform:translate(15px)}.dict-del{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;color:var(--label-3);opacity:0;transition:opacity .12s,background .12s,color .12s}.dict-row:hover .dict-del{opacity:1}.dict-del:hover{background:#ff3b3014;color:var(--red)}.dict-del .icon{width:14px;height:14px}.dict-add{display:flex;gap:8px;margin-top:12px}.dict-add .input{height:32px;font-size:12px}.dict-add .btn{height:32px;flex:none}.settings-side{display:flex;flex-direction:column;gap:16px}.setting-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:4px 0}.setting-row strong{display:block;font-size:12.5px;font-weight:550}.setting-row p{margin-top:3px;font-size:11px;color:var(--label-3);line-height:1.55}.number-field{display:flex;align-items:center;gap:7px;flex:none}.number-field .input{width:76px;height:32px;text-align:center;font-variant-numeric:tabular-nums}.number-field span{font-size:11.5px;color:var(--label-3)}.settings-actions{margin-top:16px;padding-top:14px;border-top:1px solid var(--sep);display:flex;justify-content:flex-end}.project-line{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;background:var(--fill)}.project-line .project-avatar{background:var(--surface)}.project-line strong{display:block;font-size:12.5px;font-weight:550}.project-line small{display:block;font-size:10.5px;color:var(--label-3);margin-top:1px}.project-line .role-badge{margin-left:auto}.stats-hero{display:grid;grid-template-columns:minmax(0,1.45fr) repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.completion-card{display:flex;align-items:center;gap:20px;padding:18px}.ring-wrap{flex:none;position:relative;width:92px;height:92px}.ring{--pct: 0;width:92px;height:92px;border-radius:50%;background:conic-gradient(var(--blue) calc(var(--pct) * 1%),var(--fill) 0);display:grid;place-items:center;transition:background .4s var(--ease)}.ring:after{content:"";position:absolute;top:9px;right:9px;bottom:9px;left:9px;border-radius:50%;background:var(--surface)}.ring-label{position:relative;z-index:1;text-align:center}.ring-label strong{display:block;font-size:23px;line-height:1;font-weight:650;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.ring-label span{display:block;margin-top:3px;font-size:9.5px;color:var(--label-3)}.completion-copy .metric-label{margin-bottom:6px}.completion-copy h3{font-size:17px;font-weight:650;letter-spacing:-.02em}.formula{margin-top:7px;font-size:10.5px;line-height:1.55;color:var(--label-3);padding:7px 9px;border-radius:7px;background:var(--fill)}.formula strong{color:var(--label-2);font-weight:550}.stats-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stats-metric{padding:15px 16px}.stats-metric .metric-value{font-size:24px}.stats-metric .metric-sub{font-size:10.5px}.chart-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:16px;margin-top:16px}.chart-card{padding-bottom:12px}.chart-legend{display:flex;align-items:center;gap:14px;font-size:10.5px;color:var(--label-3)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-item i{width:7px;height:7px;border-radius:2px;background:var(--blue)}.legend-item.done i{background:var(--green)}.chart-wrap{padding:12px 14px 4px}.chart-wrap svg{width:100%;height:auto;display:block;overflow:visible}.chart-note{padding:4px 18px 6px;font-size:10px;color:var(--label-3)}.category-list{display:flex;flex-direction:column;gap:12px;padding:16px 18px 18px}.cat-row .cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:11.5px}.cat-row .cat-head span{color:var(--label-2)}.cat-row .cat-head strong{font-size:11px;font-weight:550;color:var(--label-3);font-variant-numeric:tabular-nums}.cat-track{height:6px;border-radius:3px;background:var(--fill);margin-top:6px;overflow:hidden}.cat-fill{height:100%;border-radius:3px;background:var(--blue);opacity:.82}.terminal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.terminal-card{padding:15px 16px}.terminal-card .metric-label i{width:6px;height:6px;border-radius:50%;background:var(--label-3)}.terminal-card.cancelled .metric-value,.terminal-card.closed .metric-value{color:var(--label-2)}.terminal-card.invalid .metric-value{color:var(--red)}.terminal-card p{margin-top:4px;font-size:10.5px;line-height:1.5;color:var(--label-3)}.stats-footnote{margin-top:14px;font-size:10.5px;color:var(--label-3);line-height:1.6;display:flex;gap:8px;align-items:flex-start}.stats-footnote .icon{width:14px;height:14px;margin-top:1px}.modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:24px}.modal-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .16s var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{position:relative;width:min(480px,100%);max-height:min(760px,calc(100vh - 48px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--sep);border-radius:15px;box-shadow:0 24px 80px #00000047;animation:modal-in .2s var(--ease);overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.modal.wide{width:min(560px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 18px 0}.modal-head h2{font-size:15px;font-weight:650;letter-spacing:-.01em}.modal-body{padding:14px 18px 6px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px 16px;border-top:1px solid var(--sep);margin-top:10px;background:var(--surface)}.modal-desc{font-size:12px;color:var(--label-2);line-height:1.65}.modal-desc strong{color:var(--label);font-weight:600}.modal-section{margin-top:16px}.modal-section>label,.modal-label{display:block;font-size:11px;font-weight:550;color:var(--label-3);margin-bottom:6px}.modal-ticket{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:9px;background:var(--fill);margin-top:12px}.modal-ticket .icon{width:17px;height:17px;color:var(--label-3);flex:none}.modal-ticket strong{display:block;font-size:12px;font-weight:550}.modal-ticket small{display:block;font-size:10px;color:var(--label-3);margin-top:1px}.radio-list{display:flex;flex-direction:column;gap:6px;margin-top:12px}.radio-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;border:1px solid var(--sep);cursor:pointer;transition:border-color .12s,background .12s}.radio-row:hover{background:var(--fill)}.radio-row:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}.radio-row input{accent-color:var(--blue);width:15px;height:15px}.radio-row .mini-avatar{width:28px;height:28px;font-size:11px}.radio-row strong{display:block;font-size:12px;font-weight:550}.radio-row small{display:block;font-size:10px;color:var(--label-3);margin-top:1px}.radio-row .radio-meta{margin-left:auto;font-size:10.5px;color:var(--label-3)}.form-hint{margin-top:5px;font-size:10.5px;color:var(--label-3);line-height:1.5}.form-error-inline{margin-top:6px;font-size:11px;color:var(--red)}.modal-input-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.qr-panel{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start;margin-top:14px}.qr-preview{position:relative;padding:12px 12px 11px;border:1px solid var(--sep);border-radius:12px;background:#fff;text-align:center}.qr-preview svg{display:block;width:100%;height:auto;border-radius:5px}.qr-preview strong{display:block;margin-top:9px;font-size:12px;font-weight:600;color:#1d1d1f}.qr-preview small{display:block;margin-top:2px;font-size:9.5px;color:#00000073}.qr-side{min-width:0}.qr-meta{display:flex;flex-direction:column;gap:9px;padding:12px 13px;border-radius:10px;background:var(--fill)}.qr-meta div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px}.qr-meta span{color:var(--label-3);flex:none}.qr-meta strong{font-weight:550;text-align:right;overflow-wrap:anywhere}.qr-meta strong.warn{color:var(--orange)}.qr-actions{display:flex;gap:8px;margin-top:12px}.qr-actions .btn{flex:1;justify-content:center;white-space:nowrap}.qr-hint{display:flex;gap:8px;margin-top:14px;padding:10px 12px;border-radius:9px;background:var(--blue-soft);color:var(--label-2);font-size:10.5px;line-height:1.6}.qr-hint .icon{width:14px;height:14px;margin-top:1px;flex:none;color:var(--blue)}.qr-hint strong{color:var(--label);font-weight:600}.poster-preview{display:flex;justify-content:center;height:380px;padding:10px 0 0;overflow:hidden;border-radius:12px;background:var(--fill)}.poster-preview iframe{width:297mm;height:210mm;flex:none;border:0;background:#fff;box-shadow:0 0 0 1px #00000014,0 12px 30px #00000014;transform:scale(.44);transform-origin:top center}.toast-root{position:fixed;right:26px;bottom:26px;z-index:200;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;max-width:380px;padding:10px 14px;border-radius:10px;background:#1d1d1feb;color:#fff;font-size:12px;box-shadow:0 10px 30px #00000038;animation:toast-in .2s var(--ease);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast .icon{width:15px;height:15px;color:#6be38c}.toast.leaving{animation:toast-out .18s var(--ease) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(4px) scale(.99)}}@keyframes spin{to{transform:rotate(360deg)}}.spin-icon{width:16px;height:16px;margin-right:6px;vertical-align:-3px;animation:spin .8s linear infinite}@media (max-width: 1240px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid .metric:nth-child(4),.metric-grid .metric:nth-child(5){grid-column:span 1}.stats-hero{grid-template-columns:repeat(3,minmax(0,1fr))}.completion-card{grid-column:span 3}.projects-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-grid{grid-template-columns:1fr}.settings-side{display:grid;grid-template-columns:1fr 1fr}}@media (max-width: 1100px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.page{padding:22px 24px 44px}.topbar{padding:0 24px}.global-search{width:210px}.detail-grid{grid-template-columns:1fr}.detail-grid .stack:last-child{display:grid;grid-template-columns:1fr 1fr;align-items:start}.chart-grid{grid-template-columns:1fr}.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-metrics .stats-metric:last-child{grid-column:span 2}}@media (max-width: 920px){.login-view{grid-template-columns:1fr}.login-side{display:none}.login-brand-mobile{display:flex}.login-main{padding:68px 28px 48px}.app-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{padding:16px 10px 12px;align-items:stretch}.brand{justify-content:center;padding:0 0 14px}.brand-copy,.project-copy,.project-chev,.nav-label,.nav-item span,.nav-badge,.side-link span,.side-version{display:none}.project-switcher{justify-content:center;padding:8px}.project-avatar{width:30px;height:30px}.pop-wrap .project-pop{position:fixed;left:82px;top:62px}.projects-grid{grid-template-columns:1fr}.nav-item{justify-content:center;padding:0}.sidebar-foot{align-items:center}.side-link{justify-content:center;width:36px;padding:0}.global-search{display:none}.page-head{align-items:flex-start}.page-title{font-size:22px}.detail-grid .stack:last-child{grid-template-columns:1fr}}@media (max-width: 760px){.page{padding:18px 16px 40px}.topbar{padding:0 16px;height:54px}.page-head{flex-direction:column;align-items:stretch}.page-actions{justify-content:flex-start}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-hero{grid-template-columns:1fr}.completion-card{grid-column:auto}.terminal-grid{grid-template-columns:1fr}.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-side{grid-template-columns:1fr}.account-copy,.account-chev{display:none}.tabs-row{align-items:stretch}.segmented{width:100%}.segmented button{flex:1;padding:0 8px}.modal{max-height:calc(100vh - 24px)}.modal-input-row,.qr-panel{grid-template-columns:1fr}.qr-preview{width:208px;margin:0 auto}.poster-preview{height:228px}.poster-preview iframe{transform:scale(.24)}.batch-bar{flex-wrap:wrap}.batch-bar .batch-actions{width:100%;justify-content:flex-end}.page-actions .btn{flex:1}}#qr-print-root{display:none}@media print{@page{size:A4 landscape;margin:0}body.printing-qr{background:#fff!important}body.printing-qr>*:not(#qr-print-root){display:none!important}body.printing-qr #qr-print-root{display:block!important}body.printing-qr .qr-poster{width:297mm;height:210mm;box-sizing:border-box;padding:12mm 15mm 10mm;display:grid;grid-template-columns:120mm minmax(0,1fr);grid-template-rows:auto 1fr auto;column-gap:14mm;overflow:hidden;color:#1b2a26;background:#fff;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Microsoft YaHei,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}body.printing-qr .qr-poster-head{grid-column:1 / -1;grid-row:1;display:flex;align-items:center;justify-content:space-between}body.printing-qr .qr-poster-logo{display:block;width:60mm;height:auto}body.printing-qr .qr-poster-tag{padding:1.6mm 3.2mm;border:.3mm solid #19b98a;border-radius:999px;color:#0f9f78;font-size:8pt;font-weight:600;letter-spacing:.12em;white-space:nowrap}body.printing-qr .qr-poster-title{grid-column:1;grid-row:2;align-self:start;margin-top:6mm}body.printing-qr .qr-poster-eyebrow{margin:0 0 1.5mm;color:#10a57c;font-size:10pt;font-weight:650;letter-spacing:.3em}body.printing-qr .qr-poster h1{margin:0;color:#15221e;font-size:30pt;font-weight:700;line-height:1.2;letter-spacing:.02em}body.printing-qr .qr-poster-sub{margin:2mm 0 0;color:#5d6d67;font-size:11pt;letter-spacing:.04em}body.printing-qr .qr-poster-title:after{content:"";display:block;width:20mm;height:1.2mm;margin-top:5mm;border-radius:1mm;background:#21c795}body.printing-qr .qr-poster-main{display:contents}body.printing-qr .qr-poster-qr{grid-column:1;grid-row:2;align-self:end;justify-self:start;padding:4.5mm;border:.4mm solid #d3eee3;border-radius:4mm;background:#fff}body.printing-qr .qr-poster-qr svg{display:block;width:96mm;height:96mm}body.printing-qr .qr-poster-steps{grid-column:2;grid-row:2;align-self:end;justify-self:stretch;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-width:0;height:118mm;margin:0;padding:3mm 0;list-style:none}body.printing-qr .qr-poster-steps:before{content:"";position:absolute;left:5.25mm;top:13mm;bottom:13mm;border-left:.3mm dashed #c9eadf}body.printing-qr .qr-poster-steps li{position:relative;z-index:1;display:flex;align-items:flex-start;gap:4.5mm}body.printing-qr .qr-poster-steps li>span{flex:none;width:10.5mm;height:10.5mm;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e8f8f2;color:#0f9f78;font-size:9pt;font-weight:700}body.printing-qr .qr-poster-steps strong{display:block;color:#1b2a26;font-size:13pt;font-weight:600;line-height:1.35}body.printing-qr .qr-poster-steps small{display:block;margin-top:1.4mm;color:#7b8a85;font-size:10pt;line-height:1.45}body.printing-qr .qr-poster-foot{grid-column:1 / -1;grid-row:3;display:flex;align-items:center;justify-content:space-between;margin-top:5mm;padding-top:3.5mm;border-top:.3mm solid #dceae4;color:#6d7d77;font-size:9pt;letter-spacing:.02em}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
