:root{color-scheme:light;--bg:#f7f2ea;--surface:#fffdfa;--surface-muted:#fbf7f0;--line:#e8dfd2;--line-strong:#3a2f26;--text:#241f1a;--muted:#756c62}body,html{margin:0;min-height:100%;background:var(--bg)}body{font-family:Inter,Segoe UI,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}button{font:inherit}.app-shell{min-height:100vh}.hub-page-busy{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(250,248,244,.36);-webkit-backdrop-filter:blur(.6px);backdrop-filter:blur(.6px);cursor:wait}.hub-page-busy-card{display:flex;align-items:center;gap:12px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:rgba(255,253,250,.96);box-shadow:0 16px 38px rgba(58,47,38,.12)}.hub-page-busy-spinner{width:18px;height:18px;border:2px solid #d6d3d1;border-top:2px solid var(--line-strong);border-radius:999px;animation:hub-page-spin .8s linear infinite}.hub-page-busy-text{color:var(--text);font-size:13px;font-weight:600}.hub-page-busy-card-large{width:min(720px,calc(100vw - 32px));display:grid;align-items:stretch;grid-gap:16px;gap:16px;padding:20px}.hub-page-busy-head{display:flex;align-items:center;gap:12px}.hub-page-busy-title{color:var(--text);font-size:16px;font-weight:800}.hub-page-busy-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.hub-page-busy-step{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted);font-size:12px}.hub-page-busy-step span{width:8px;height:8px;flex:0 0 auto;border-radius:999px;background:#d6d3d1}.hub-page-busy-step b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hub-page-busy-step-running{border-color:var(--line-strong);color:var(--text)}.hub-page-busy-step-running span{background:var(--line-strong)}.hub-page-busy-step-completed span{background:#16a34a}.hub-page-busy-step-failed span{background:#dc2626}.hub-page-busy-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.hub-page-busy-detail-grid div{display:grid;grid-gap:4px;gap:4px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.hub-page-busy-bounds,.hub-page-busy-detail-grid span{color:var(--muted);font-size:11px}.hub-page-busy-detail-grid b{color:var(--text);font-size:12px}.hub-page-busy-bounds{padding:8px 10px;word-break:break-all}.hub-page-busy-bounds,.hub-page-busy-details{border:1px solid var(--line);border-radius:8px;background:var(--bg)}.hub-page-busy-details{display:grid;grid-gap:6px;gap:6px;max-height:180px;overflow:auto;padding:8px}.hub-page-busy-details div{display:grid;grid-template-columns:150px minmax(0,1fr);grid-gap:8px;gap:8px;align-items:baseline}.hub-page-busy-details span{color:var(--muted);font-size:11px}.hub-page-busy-details code{min-width:0;overflow-wrap:anywhere;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}@keyframes hub-page-spin{to{transform:rotate(1turn)}}.hub-navbar-shell{padding:0;background:var(--surface)}.hub-brand-card{background:var(--surface);padding:12px 20px 11px;border-bottom:1px solid var(--line)}.hub-brand-title{display:flex;align-items:center;gap:10px;font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:700;line-height:1.2}.hub-brand-icon{font-size:18px}.hub-brand-dot{font-size:16px;transform:translateY(-1px)}.hub-brand-subtitle{margin-top:2px;color:var(--muted);font-size:11px}.hub-navbar{display:flex;gap:22px;align-items:stretch;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--line)}.hub-nav-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;position:relative;display:inline-flex;align-items:center;gap:6px;padding:9px 0 10px;color:var(--muted);cursor:pointer;font-size:13px;font-weight:500;line-height:1;font-family:inherit;text-decoration:none;white-space:nowrap}.hub-nav-item:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:transparent}.hub-nav-item.active{color:var(--text)}.hub-nav-item.active:after{background:var(--line-strong)}.hub-nav-icon{font-size:13px}.hub-share-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:auto;align-self:center;padding:4px 12px;border:1px dashed var(--line-strong);border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .12s,color .12s,border-color .12s}.hub-share-toggle:hover{color:var(--text);border-color:var(--text)}.hub-share-toggle.active{background:rgba(37,99,235,.12);border-style:solid;border-color:rgba(37,99,235,.5);color:#1d4ed8}.page-wrap{width:min(1120px,calc(100% - 32px));margin:24px auto 48px}.page-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:16px;gap:16px}.page-card{grid-column:span 4;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 1px 2px rgba(58,47,38,.04)}.page-card-compact{padding:16px}.page-card-hero{background:var(--surface-muted)}.page-card-hero,.page-card-span-12{grid-column:span 12}.page-card-span-6{grid-column:span 6}.section-label{color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.card-title,.page-title{font-family:Georgia,Times New Roman,serif;font-weight:700;letter-spacing:-.01em}.page-title{margin:10px 0 12px;font-size:clamp(1.75rem,4.2vw,2.65rem);line-height:1.08;max-width:12ch}.page-title-relaxed{max-width:none;font-size:clamp(1.75rem,3.4vw,2.35rem)}.card-title{margin:10px 0 8px;font-size:1.15rem}.page-card-compact .card-title{margin:6px 0;font-size:1rem}.card-copy,.meta-list,.page-copy,.plain-list{color:var(--muted);font-size:.92rem;line-height:1.7}.page-card-compact .card-copy{margin:8px 0 0;font-size:.84rem;line-height:1.5}.summary-hero{display:grid;grid-gap:18px;gap:18px}.summary-hero-copy{max-width:760px}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:12px;gap:12px}.summary-chip{padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.72)}.summary-chip strong{display:block;margin-top:4px;font-size:.9rem;color:var(--text)}.summary-chip-label{display:block;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.plain-list{margin:12px 0 0;padding-left:18px}.plain-list li+li{margin-top:8px}.meta-list{display:grid;grid-gap:14px;gap:14px;margin:12px 0 0}.page-card-compact .meta-list{gap:9px;margin-top:8px;font-size:.84rem;line-height:1.45}.meta-list dt{margin-bottom:4px;color:var(--text);font-size:12px;font-weight:600;text-transform:uppercase}.meta-list dd{margin:0}.status-stack{display:grid;grid-gap:10px;gap:10px;margin:12px 0 14px}.page-card-compact .status-stack{gap:7px;margin:8px 0 10px}.status-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted);color:var(--muted);font-size:13px}.page-card-compact .status-row{padding:8px 10px;font-size:12px}.status-row strong{color:var(--text);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.action-stack{display:grid;grid-gap:10px;gap:10px;margin:12px 0 16px}.page-card-compact .action-stack{gap:8px;margin:8px 0 10px}.action-button{display:block;width:100%;padding:10px 12px;border:1px solid var(--line-strong);border-radius:8px;background:var(--line-strong);color:#fff;cursor:pointer;font-size:.92rem;text-align:left;text-decoration:none}.page-card-compact .action-button{padding:8px 10px;font-size:.84rem}.action-button:disabled{border-color:var(--line);background:#d7d1c8;color:#6f6a64;cursor:not-allowed}.action-button-secondary{background:var(--surface);color:var(--text)}.action-link{border-color:var(--line)}.stack-form{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.split-form-row{display:grid;grid-template-columns:.75fr 1.25fr;grid-gap:10px;gap:10px}.text-input{width:100%;min-height:38px;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font:inherit;font-size:.92rem;transition:border-color .12s,box-shadow .12s}.text-input:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 2px rgba(147,197,253,.2)}.text-input:disabled{background:var(--surface-muted);color:var(--muted);cursor:not-allowed}.text-area-input{min-height:104px;resize:vertical;line-height:1.55}.idea-list,.todo-list{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.idea-item,.todo-item{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted)}.idea-item p{margin:0;color:var(--text);font-size:.92rem;line-height:1.58;overflow-wrap:anywhere}.item-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px;color:var(--muted);font-size:12px}.item-meta span{display:inline-flex;align-items:center;min-height:22px;padding:3px 7px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}.inline-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.mini-button{min-height:28px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:6px;background:var(--line-strong);color:#fff;cursor:pointer;font:inherit;font-size:11px;font-weight:500;transition:opacity .1s,transform .1s}.mini-button:hover{opacity:.85;transform:translateY(-.5px)}.mini-button:active{transform:translateY(0);opacity:1}.mini-button-muted{border-color:var(--line);background:var(--surface);color:var(--muted)}.mini-button-muted:hover{border-color:var(--muted);color:var(--text);opacity:1}.todo-item{background:var(--surface)}.todo-done{opacity:.68}.todo-done strong{text-decoration:line-through}.todo-title-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.todo-title-row strong{font-size:.92rem;line-height:1.45}.todo-status{padding:3px 7px;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.todo-doing .todo-status{border-color:#b7894d;color:#8a5f20}.todo-done .todo-status{color:#4f7b55}.run-log-table{margin-top:12px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface-muted)}.run-log-head,.run-log-row{display:grid;grid-template-columns:1.2fr .58fr .9fr .68fr .58fr 2fr 1.6fr;grid-gap:12px;gap:12px;padding:12px 14px;font-size:13px;align-items:center}.run-log-head{border-bottom:1px solid var(--line);color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.run-log-row{color:var(--text);background:var(--surface)}.run-log-row+.run-log-row{border-top:1px solid var(--line)}.run-status-tag{display:inline-flex;width:-moz-fit-content;width:fit-content;min-width:72px;justify-content:center;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:800;line-height:1;text-transform:uppercase;white-space:nowrap}.run-status-success{background:#dff5e7;color:#287044}.run-status-error{background:#ffe1df;color:#b7352d}.run-status-running{background:#fff1cf;color:#97640f}.run-status-idle{background:#e8edf4;color:#556274}.run-activity-cell{display:grid;grid-gap:6px;gap:6px}.run-activity-item{display:grid;grid-gap:2px;gap:2px}.run-activity-item strong{font-size:13px;font-weight:700}.run-activity-cell em,.run-activity-item small{color:var(--muted);font-size:12px;font-style:normal;line-height:1.35}.weekday-tag{display:inline-flex;min-width:46px;justify-content:center;border-radius:6px;padding:4px 9px;font-size:12px;font-weight:800;line-height:1;white-space:nowrap}.weekday-0{background:#ffe0ec;color:#b91b5c}.weekday-1{background:#d9f7ff;color:#06749a}.weekday-2{background:#ddfbe7;color:#16834a}.weekday-3{background:#fff1b8;color:#9a6a00}.weekday-4{background:#e8ddff;color:#6f36c9}.weekday-5{background:#ffe7cf;color:#b45309}.weekday-6{background:#ffd9d2;color:#c2412f}.weekday-unknown{background:var(--surface-muted);color:var(--muted)}.gs-page{padding:0}.gs-stats{display:flex;gap:0;margin-bottom:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.gs-stat{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 12px;text-align:center}.gs-stat+.gs-stat{border-left:1px solid var(--line)}.gs-stat-activity{flex:2 1;align-items:center}.gs-stat-value{font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.02em;text-align:center}.gs-stat-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;text-align:center}.gs-stat-activities{display:flex;flex-direction:column;gap:1px;margin-top:4px}.gs-stat-act-line{font-size:11px;color:var(--muted);line-height:1.4}.gs-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.gs-toolbar-left{flex:1 1;flex-wrap:wrap}.gs-toolbar-left,.gs-toolbar-right{display:flex;gap:6px}.gs-status-chip{display:inline-flex;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid var(--line);background:var(--surface-muted);color:var(--muted)}.gs-status-ok{background:#dff5e7;color:#287044;border-color:#b8e6c8}.gs-status-warn{background:#fff1cf;color:#97640f;border-color:#f0dfa0}.gs-run-list{display:flex;flex-direction:column;gap:10px}.gs-run-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px 16px;transition:box-shadow .12s}.gs-run-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.06)}.gs-run-card-muted{background:var(--surface-muted);opacity:.75}.gs-run-collapsible{padding:0}.gs-run-head{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}.gs-run-collapsible .gs-run-head{cursor:pointer;list-style:none;padding:13px 16px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gs-run-collapsible .gs-run-head::-webkit-details-marker{display:none}.gs-run-toggle{margin-left:auto;color:var(--text);font-size:11px;font-weight:700}.gs-run-collapsible[open] .gs-run-toggle{font-size:0}.gs-run-collapsible[open] .gs-run-toggle:after{content:"收起";font-size:11px}.gs-run-detail-list{display:grid;grid-gap:0;gap:0;padding:0 16px 12px}.gs-run-detail-item{display:flex;align-items:center;gap:8px;padding:7px 0;border-top:1px solid var(--line);font-size:12px;flex-wrap:wrap}.gs-run-time{font-weight:600;color:var(--text)}.gs-run-meta,.gs-run-msg{color:var(--muted);font-size:12px}.gs-run-msg{margin-top:6px;line-height:1.5}.gs-activity-list{margin-top:8px;display:flex;flex-direction:column;gap:4px;padding-top:8px;border-top:1px solid var(--line)}.gs-activity-item{display:flex;align-items:baseline;gap:8px;font-size:13px}.gs-activity-item strong{font-weight:600}.gs-activity-meta{color:var(--muted);font-size:12px}.gs-empty{text-align:center;padding:32px 16px;color:var(--muted);font-size:13px}.it-page{padding:0}.it-init{text-align:center;padding:32px 16px;color:var(--muted);font-size:13px}.it-init p{margin-bottom:12px}.it-input-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-bottom:16px}.it-input-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:8px}.it-input-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.it-textarea{resize:vertical;min-height:48px}.it-input-foot{display:flex;gap:6px;align-items:center}.it-input-area{width:120px}.it-columns{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.it-section-head{font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px;display:flex;align-items:center;gap:6px}.it-count{font-size:11px;font-weight:700;color:var(--muted);background:var(--surface-muted);border:1px solid var(--line);border-radius:10px;padding:1px 7px}.it-list{display:flex;flex-direction:column;gap:8px}.it-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;align-items:flex-start;gap:10px}.it-card-body{flex:1 1;min-width:0}.it-card-text{margin:0;font-size:13px;line-height:1.55;color:var(--text);overflow-wrap:anywhere}.it-card-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.it-card-title-row strong{font-size:13px}.it-done-text{text-decoration:line-through;opacity:.5}.it-card-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px;font-size:11px;color:var(--muted)}.it-area-tag{padding:1px 7px;background:var(--surface-muted);border:1px solid var(--line);border-radius:10px}.it-card-actions{display:flex;gap:4px;flex-shrink:0}.it-btn-muted{background:var(--surface-muted);color:var(--muted);border-color:var(--line)}.it-btn-muted:hover{color:var(--text)}.it-status{display:inline-flex;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.it-status-open{background:#e8edf4;color:#556274}.it-status-doing{background:#fff1cf;color:#97640f}.it-status-done{background:#dff5e7;color:#287044}.it-card-done{opacity:.6}.it-empty{text-align:center;padding:24px 16px;color:var(--muted);font-size:13px}.fm-page{padding:24px 20px 48px}.fm-stats{display:flex;gap:0;margin-bottom:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface)}.fm-subtabs{display:inline-flex;gap:3px;padding:3px;margin-bottom:16px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.fm-subtab{border:none;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:12px;font-weight:600;padding:7px 12px}.fm-subtab.active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px rgba(0,0,0,.06)}.fm-stat{flex:1 1;display:flex;flex-direction:column;align-items:center;padding:14px 12px}.fm-stat+.fm-stat{border-left:1px solid var(--line)}.fm-stat-highlight{background:#f8fafc}.fm-stat-value{font-family:Georgia,Times New Roman,serif;font-size:18px;font-weight:700;color:var(--text);letter-spacing:-.02em}.fm-stat-label{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.fm-status-tabs{display:flex;gap:0;margin-bottom:14px;border-bottom:1px solid var(--line)}.fm-status-tab{padding:8px 16px 10px;border:none;background:none;color:var(--muted);font:inherit;font-size:13px;font-weight:500;cursor:pointer;position:relative;transition:color .12s}.fm-status-tab:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent;transition:background .12s}.fm-status-tab.active{color:var(--text);font-weight:600}.fm-status-tab.active:after{background:var(--line-strong)}.fm-status-tab:hover{color:var(--text)}.fm-toolbar{gap:8px;margin-bottom:14px}.fm-pills,.fm-toolbar{display:flex;align-items:center;flex-wrap:wrap}.fm-pills{gap:5px;flex:1 1}.fm-pill{padding:3px 10px;border-radius:20px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;font-size:11px;font-weight:500;color:var(--muted);transition:all .12s;white-space:nowrap}.fm-pill:hover{border-color:#aaa;color:var(--text)}.fm-pill.active{background:var(--line-strong);color:#fff;border-color:var(--line-strong)}.fm-pill-sep{width:1px;height:16px;background:var(--line);flex-shrink:0}.fm-btn{padding:6px 13px;border-radius:6px;border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;font-size:12px;color:var(--text);transition:all .12s;display:inline-flex;align-items:center;gap:5px;text-decoration:none}.fm-btn:hover{background:#f5f2ed}.fm-btn-primary{background:var(--line-strong);color:#fff;border-color:var(--line-strong)}.fm-btn-primary:hover{opacity:.85;background:var(--line-strong)}.fm-btn-danger{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.fm-btn-danger:hover{background:#fecaca}.fm-btn-return{background:#fff7ed;color:#9a3412;border-color:#fdba74}.fm-btn-return:hover{background:#ffedd5}.fm-btn-sm{padding:3px 10px;font-size:12px}.fm-muted-inline{color:var(--muted);font-size:12px}.fm-brand-select-row{display:flex;gap:6px;align-items:center}.fm-brand-select-row .fm-input{flex:1 1}.fm-brand-list{padding:12px 16px;max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.fm-brand-empty{color:var(--muted);font-size:13px;text-align:center;padding:16px 0}.fm-brand-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg);border-radius:6px;font-size:13px}.fm-brand-add-row{display:flex;gap:6px;padding:12px 16px;border-top:1px solid var(--border)}.fm-brand-add-row .fm-input{flex:1 1}.fm-palette-details{border:1px solid var(--line);border-radius:8px;background:var(--bg);overflow:hidden}.fm-palette-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;padding:9px 11px;color:var(--muted);cursor:pointer;font-size:10px;font-weight:700;letter-spacing:.06em;list-style:none;text-transform:uppercase;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fm-palette-summary::-webkit-details-marker{display:none}.fm-palette-current{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--text);font-size:11px;font-weight:600;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.fm-palette-toggle{color:var(--text);font-size:10px}.fm-palette-details[open] .fm-palette-summary{border-bottom:1px solid var(--line)}.fm-palette-details[open] .fm-palette-toggle{font-size:0}.fm-palette-details[open] .fm-palette-toggle:after{content:"收起";font-size:10px}.fm-palette{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:4px;gap:4px;padding:8px}.fm-swatch{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:5px;border:1.5px solid transparent;cursor:pointer;font-size:11px;text-align:left;transition:opacity .15s}.fm-swatch:hover{opacity:.85}.fm-swatch-active{outline:2px solid #2563eb;outline-offset:1px}.fm-swatch-hex{font-family:monospace;font-size:10px;opacity:.8}.fm-swatch-name{font-weight:600}.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:10px;gap:10px}.fm-queue-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:14px;gap:14px;align-items:start}.fm-queue-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:14px}.fm-queue-summary-card{display:grid;grid-gap:3px;gap:3px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.fm-queue-summary-card b{color:var(--text);font-family:Georgia,Times New Roman,serif;font-size:18px;line-height:1.1}.fm-queue-summary-card span:last-child{color:var(--muted);font-size:11px;line-height:1.35}.fm-queue-side{display:grid;grid-gap:14px;gap:14px}.fm-card{background:var(--surface);border-radius:10px;padding:13px 14px;border:1px solid var(--line);border-left:8px solid transparent;transition:box-shadow .12s;cursor:pointer;position:relative}.fm-card:hover{box-shadow:0 2px 12px rgba(0,0,0,.09)}.fm-card-static{cursor:default}.fm-card-static:hover{box-shadow:none}.fm-card-empty{opacity:.55}.fm-card-empty:hover{opacity:.75}.fm-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:3px}.fm-card-title{font-size:13px;font-weight:600;line-height:1.35;margin-bottom:4px;display:flex;align-items:flex-start;gap:6px}.fm-tag{font-size:9px;font-weight:700;padding:1px 6px;border-radius:8px;white-space:nowrap;flex-shrink:0}.fm-tag-sealed{background:#d1fae5;color:#065f46}.fm-tag-empty{background:#f3f4f6;color:#6b7280}.fm-tag-returned{background:#ffedd5;color:#9a3412}.fm-tag-plan-planned{background:#dbeafe;color:#1d4ed8}.fm-tag-plan-printing{background:#fef3c7;color:#92400e}.fm-tag-plan-done{background:#dcfce7;color:#166534}.fm-tag-priority-p0{background:#fee2e2;color:#991b1b}.fm-tag-priority-p1{background:#ffedd5;color:#9a3412}.fm-tag-priority-p2{background:#e5e7eb;color:#374151}.fm-tag-ready{background:#dcfce7;color:#166534}.fm-tag-source-manual{background:#ede9fe;color:#6d28d9}.fm-tag-source-wishlist{background:#fce7f3;color:#be185d}.fm-wishlist-image{width:100%;height:150px;object-fit:cover;border-radius:10px;margin-bottom:8px;background:#f3f4f6}.fm-wishlist-card.fm-wishlist-queued{opacity:.78}.fm-wishlist-mine{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-size:10px;font-weight:700;background:#dbeafe;color:#1d4ed8}.fm-confirm-overlay{z-index:600;background:rgba(0,0,0,.38);cursor:default}.fm-confirm-modal{max-width:380px}.fm-confirm-message{margin:4px 0 0;padding:0 4px;font-size:14px;line-height:1.6;color:var(--muted)}.fm-magnet-card{text-align:left;cursor:pointer}.fm-expense-row-magnet{border-top:1px dashed var(--line);margin-top:6px;padding-top:10px}.fm-magnet-spec{font-size:15px;font-weight:700;letter-spacing:.01em}.fm-card-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:6px}.fm-area-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:600;white-space:nowrap}.fm-area-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.fm-brand-text{font-size:11px;color:var(--muted)}.fm-brand-text-returned{padding:2px 7px;border-radius:999px;background:#fff7ed;color:#9a3412;font-weight:800;border:1px solid #fdba74}.fm-next{font-size:11.5px;font-weight:500;padding:6px 9px;background:var(--bg);border-radius:6px;border-left:3px solid #93c5fd;margin-bottom:8px;line-height:1.5;color:var(--text);white-space:pre-wrap}.fm-next-wishlist{border-left-color:#f59e0b}.fm-next-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:2px}.fm-card-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.fm-card-foot span{white-space:nowrap}.fm-card-foot span+span:before{content:"·";margin-right:6px}.fm-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:10px}.fm-plan-card{border-left:1px solid var(--line)}.fm-plan-done{opacity:.72}.fm-plan-link{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;background:#eef2ff;color:#3730a3;font-size:10px;font-weight:700;text-decoration:none}.fm-plan-notes{margin:0 0 8px;color:var(--muted);font-size:12px;line-height:1.45}.fm-printed-grid{align-items:start}.fm-printed-card{gap:8px}.fm-print-carousel,.fm-print-gallery-empty{aspect-ratio:4/3;margin-bottom:10px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}.fm-print-carousel{display:block;overflow:hidden;position:relative}.fm-print-carousel a,.fm-print-carousel img{display:block;width:100%;height:100%}.fm-print-carousel img{object-fit:contain}.fm-print-gallery-empty{display:grid;place-items:center;border:1px dashed var(--line);color:var(--muted);font-size:12px;font-weight:700}.fm-print-gallery-modal{padding:0 20px 12px}.fm-print-gallery-modal .fm-print-carousel,.fm-print-gallery-modal .fm-print-gallery-empty{margin-bottom:0}.fm-carousel-control{position:absolute;top:50%;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:28px;height:34px;border:none;border-radius:6px;background:rgba(17,24,39,.72);color:#fff;cursor:pointer;font-size:22px;font-weight:800;transform:translateY(-50%)}.fm-carousel-prev{left:8px}.fm-carousel-next{right:8px}.fm-carousel-count{position:absolute;right:8px;bottom:8px;display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:24px;padding:0 8px;border-radius:999px;background:rgba(17,24,39,.78);color:#fff;font-size:11px;font-weight:800}.fm-upload-form-modal{margin:0 20px 16px}.fm-upload-dropzone{display:grid;grid-gap:10px;gap:10px}.fm-upload-dropzone-label{display:grid;place-items:center;min-height:126px;padding:18px;border:1px dashed #93c5fd;border-radius:8px;background:#eff6ff;color:#1d4ed8;cursor:pointer;text-align:center;transition:background .12s,border-color .12s,box-shadow .12s}.fm-upload-dropzone-label:hover,.fm-upload-dropzone.dragging .fm-upload-dropzone-label{border-color:#2563eb;background:#dbeafe;box-shadow:inset 0 0 0 1px #bfdbfe}.fm-upload-dropzone input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.fm-upload-dropzone-title{font-size:14px;font-weight:800}.fm-upload-dropzone-meta{margin-top:4px;color:#475569;font-size:12px;font-weight:600}.fm-upload-submit{justify-self:end}.fm-linked-filaments{display:flex;flex-wrap:wrap;gap:6px}.fm-linked-filament{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:10px;background:var(--surface);border:1px solid var(--line);font-size:10px}.fm-linked-filament-opened{border-color:#86efac;background:#f0fdf4;color:#166534;font-weight:700}.fm-queue-actions{display:flex;align-items:center;gap:8px;margin:0 0 7px;color:var(--muted);font-size:11px}.fm-queue-actions form{display:inline-flex}.fm-sort-list{display:grid;grid-gap:8px;gap:8px;padding:16px 20px}.fm-sort-item{display:grid;grid-template-columns:auto 28px minmax(0,1fr) auto auto;align-items:center;grid-gap:8px;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);cursor:-webkit-grab;cursor:grab}.fm-sort-item.dragging{opacity:.55;border-color:#93c5fd;background:#eff6ff}.fm-sort-item:active{cursor:-webkit-grabbing;cursor:grabbing}.fm-sort-handle{color:var(--muted);font-size:13px;line-height:1}.fm-sort-index{color:var(--muted);font-size:11px;font-weight:700;text-align:right}.fm-sort-title{min-width:0;overflow:hidden;color:var(--text);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.fm-visibility-list{display:grid;grid-gap:8px;gap:8px;padding:16px 20px}.fm-visibility-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:10px;gap:10px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);cursor:pointer}.fm-visibility-title{min-width:0;overflow:hidden;color:var(--text);font-size:13px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.fm-radio-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));grid-gap:8px;gap:8px}.fm-radio-option{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);cursor:pointer;font-size:12px;font-weight:600}.fm-radio-option input[type=radio]{width:14px;height:14px;accent-color:var(--line-strong);cursor:pointer}.fm-inline-action{border:none;background:none;color:#2563eb;cursor:pointer;font:inherit;font-size:11px;font-weight:600;padding:0}.fm-inline-action:disabled{color:var(--muted);cursor:not-allowed;opacity:.45}.fm-inline-action-static{color:var(--text);cursor:default}.fm-wishlist-panel{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.fm-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.fm-panel-head h3{margin:0;font-size:13px}.fm-panel-actions{display:inline-flex;align-items:center;gap:8px}.fm-wishlist-list{display:flex;flex-direction:column}.fm-wishlist-item{padding:10px 12px;border-bottom:1px solid var(--line)}.fm-wishlist-item:last-child{border-bottom:none}.fm-wishlist-main{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.fm-wishlist-meta,.fm-wishlist-notes{margin-top:4px;color:var(--muted);font-size:11px;line-height:1.45}.fm-wishlist-actions{display:flex;align-items:center;gap:10px;margin-top:7px}.fm-wishlist-actions form{display:inline-flex}.fm-recommendation-list{display:grid}.fm-recommendation-list .fm-recommendation-card+.fm-recommendation-card{border-top:1px solid var(--line)}.fm-recommendation-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;grid-gap:4px;gap:4px;padding:12px}.fm-recommendation-rank{color:var(--muted);font-size:11px;font-weight:700;line-height:1.6}.fm-recommendation-reason{margin-top:6px;color:var(--text);font-size:12px;line-height:1.45}.fm-opened-plan-links{display:grid;grid-gap:4px;gap:4px;margin-top:7px}.fm-expense-summary{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:16px;gap:16px;align-items:center;margin-bottom:14px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.fm-expense-summary h3{margin:4px 0 6px;font-family:Georgia,Times New Roman,serif;font-size:28px;line-height:1.1}.fm-expense-summary p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.fm-expense-breakdown{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}.fm-expense-breakdown div{display:grid;grid-gap:2px;gap:2px;padding:10px;background:var(--bg)}.fm-expense-breakdown div+div{border-left:1px solid var(--line)}.fm-expense-breakdown span{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.fm-expense-breakdown b{font-size:13px}.fm-expense-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);grid-gap:14px;gap:14px;align-items:start}.fm-expense-panel{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}.fm-expense-list{display:flex;flex-direction:column}.fm-expense-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--line);text-align:left}.fm-expense-row:last-child{border-bottom:none}.fm-expense-row span,.fm-expense-row strong{display:block}.fm-expense-row strong{color:var(--text);font-size:13px;line-height:1.35}.fm-expense-row span{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.4}.fm-expense-row-button{width:100%;border-top:none;border-right:none;border-left:none;background:transparent;cursor:pointer;font:inherit}.fm-expense-row-button:hover{background:var(--bg)}.fm-expense-money{text-align:right;white-space:nowrap}.fm-expense-money b{color:var(--text);font-size:13px}.fm-expense-categories{display:grid;grid-gap:6px;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--bg)}.fm-expense-categories div{display:flex;justify-content:space-between;gap:8px;font-size:12px}.fm-expense-categories span{color:var(--muted)}.gt-page{display:grid;grid-gap:18px;gap:18px}.gt-mode-tabs{display:inline-flex;width:-moz-fit-content;width:fit-content;gap:6px;padding:4px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.gt-mode-tab{min-width:92px;padding:7px 12px;border:none;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font:inherit;font-size:12px;font-weight:700}.gt-mode-tab.active{background:var(--line-strong);color:#fff}.gt-workbench{display:grid;grid-template-columns:270px minmax(420px,1fr) 250px;grid-gap:14px;gap:14px;align-items:stretch;min-height:720px}.gt-sidebar{display:flex;flex-direction:column;gap:12px}.gt-card,.gt-job,.gt-sidebar-left,.gt-sidebar-right{border:1px solid var(--line);border-radius:8px;background:var(--surface)}.gt-sidebar-left,.gt-sidebar-right{padding:14px;align-self:start}.gt-brand h2{margin:4px 0 6px;color:var(--text);font-size:18px;line-height:1.2}.gt-brand p,.gt-note{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.gt-alert{padding:9px 10px;border:1px solid #fecaca;border-radius:8px;background:#fff7f7;color:#b91c1c;font-size:12px;font-weight:700}.gt-group{display:grid;grid-gap:8px;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.gt-card-title,.gt-group-title{color:var(--text);font-size:12px;font-weight:800}.gt-file-meta,.gt-mini-meta{color:var(--muted);font-size:11px;line-height:1.35}.gt-shape-options{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:6px;gap:6px}.gt-shape-option{display:grid;place-items:center;min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted);cursor:pointer;font-size:12px;font-weight:700}.gt-shape-option.active{border-color:var(--line-strong);background:var(--line-strong);color:#fff}.gt-shape-option input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.gt-preview-stage{position:relative;min-height:720px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#e7e5e4}.gt-preview-canvas{display:block;width:100%;height:100%;min-height:720px;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.gt-preview-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.gt-card{display:grid;grid-gap:10px;gap:10px;padding:12px}.gt-slider-row{display:grid;grid-template-columns:64px minmax(0,1fr) 72px;align-items:center;grid-gap:8px;gap:8px;color:var(--muted);font-size:11px}.gt-slider-row input[type=range]{width:100%;accent-color:var(--line-strong)}.gt-slider-number{height:30px;padding:5px 6px;font-size:11px;text-align:right}.gt-generate-button{width:100%;justify-content:center}.gt-stat-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.gt-stat-grid div{display:grid;grid-gap:3px;gap:3px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.gt-stat-grid span{color:var(--muted);font-size:10px}.gt-latest-title,.gt-stat-grid b{color:var(--text);font-size:13px}.gt-section-head{display:flex;align-items:center;justify-content:space-between}.gt-section-head h3{margin:0;font-size:15px}.gt-job-list{display:grid;grid-gap:10px;gap:10px}.gt-job{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;padding:14px}.gt-job-failed{border-color:#fecaca;background:#fff7f7}.gt-job-title{display:flex;align-items:center;gap:8px;min-width:0}.gt-job-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gt-job-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px;color:var(--muted);font-size:12px}.gt-job-error{margin:8px 0 0;color:#b91c1c;font-size:12px;line-height:1.45}.gt-job-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.gt-job-actions-left{justify-content:flex-start}.gt-rename-form{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:8px;gap:8px;margin-top:10px}.gt-glb-modal{max-width:min(1080px,calc(100vw - 32px));overflow:hidden}.gt-glb-modal .fm-modal-head{align-items:flex-start}.gt-glb-modal .gt-note{margin:5px 0 0}.gt-glb-viewer{position:relative;height:min(68vh,680px);min-height:420px;margin:16px 20px 0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#f3f4f6}.gt-glb-viewer canvas{display:block;width:100%;height:100%}.gt-glb-status{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px;pointer-events:none}.fm-modal.gt-progress-modal{width:calc(100vw - 32px);max-width:1400px;display:grid;grid-gap:10px;gap:10px;padding-bottom:4px}.gt-progress-modal .fm-modal-head{align-items:flex-start;padding:12px 16px 0}.gt-progress-modal .fm-modal-head h3{margin:6px 0 2px}.gt-progress-modal .gt-note{margin:0}.gt-progress-modal .fm-modal-foot{padding:8px 16px 12px}.gt-progress-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.gt-progress-pill,.gt-progress-pill-muted{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}.gt-progress-pill-running{background:rgba(37,99,235,.14);color:#1d4ed8}.gt-progress-pill-done{background:rgba(22,163,74,.16);color:#15803d}.gt-progress-pill-error{background:rgba(220,38,38,.16);color:#b91c1c}.gt-progress-pill-cancelled{background:rgba(107,114,128,.18);color:#4b5563}.gt-progress-pill-debug{background:rgba(168,85,247,.18)}.gt-debug-bar,.gt-progress-pill-debug{color:#6b21a8;border:1px dashed rgba(168,85,247,.5)}.gt-debug-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 16px;padding:6px 10px;background:rgba(168,85,247,.05);border-radius:8px;font-size:11px}.gt-debug-bar-label{font-weight:700;letter-spacing:.04em;text-transform:uppercase}.gt-debug-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface);border:1px solid rgba(168,85,247,.45);color:#6b21a8;cursor:pointer}.gt-debug-chip:hover{background:rgba(168,85,247,.08)}.gt-debug-chip.active{background:#a855f7;color:#ffffff;border-color:#a855f7}.gt-debug-button{margin-top:6px;border-style:dashed!important;border-color:rgba(168,85,247,.5)!important;color:#6b21a8;background:rgba(168,85,247,.06)}.gt-debug-button:hover{background:rgba(168,85,247,.12)}.gt-progress-pill-muted{background:var(--surface-muted);color:var(--muted);font-weight:600}.gt-stepper{padding:2px 8px 4px;overflow-x:auto}.gt-stepper-track{display:flex;align-items:stretch;width:100%;min-width:max-content}.gt-stepper-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:70px;flex:1 1 70px;padding:18px 2px 8px;background:transparent;border:none;cursor:pointer;color:var(--text);text-align:center;font:inherit}.gt-stepper-node>*{min-width:0}.gt-stepper-node-quiet,.gt-stepper-node[disabled]{cursor:default}.gt-stepper-node:after,.gt-stepper-node:before{content:"";position:absolute;top:33px;height:2px;width:calc(50% - 28px);background:var(--line);border-radius:999px;transition:background-color .2s ease}.gt-stepper-node:before{left:0}.gt-stepper-node:after{right:0}.gt-stepper-node:first-child:before,.gt-stepper-node:last-child:after{visibility:hidden}.gt-stepper-node[data-incoming=completed]:before,.gt-stepper-node[data-incoming=running]:before{background:#16a34a}.gt-stepper-node[data-incoming=failed]:before{background:#dc2626}.gt-stepper-node[data-incoming=cancelled]:before{background:#9ca3af}.gt-stepper-node[data-outgoing=completed]:after{background:#16a34a}.gt-stepper-node[data-outgoing=running]:after{background:linear-gradient(90deg,#16a34a,#2563eb 60%,var(--line))}.gt-stepper-node[data-outgoing=failed]:after{background:#dc2626}.gt-stepper-node[data-outgoing=cancelled]:after{background:#9ca3af}.gt-stepper-circle{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:var(--surface);border:2px solid var(--line);color:var(--muted);font-size:13px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .15s ease}.gt-stepper-spinner{width:12px;height:12px;border-radius:999px;border:2px solid rgba(255,255,255,.4);border-top-color:#ffffff;animation:gt-stepper-spin .9s linear infinite}.gt-stepper-label{margin-top:4px;font-size:12px;font-weight:600;line-height:1.25;color:var(--text);-webkit-hyphens:auto;hyphens:auto}.gt-stepper-detail,.gt-stepper-label{width:100%;overflow-wrap:anywhere;word-break:break-word;padding:0 2px}.gt-stepper-detail{font-size:11px;line-height:1.2;color:var(--muted)}.gt-stepper-duration{font-size:10px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--muted);margin-top:auto;padding-top:2px}.gt-stepper-node-running .gt-stepper-circle{background:#2563eb;border-color:#2563eb;color:#ffffff;box-shadow:0 0 0 4px rgba(37,99,235,.18);animation:gt-stepper-pulse 1.4s ease-in-out infinite}.gt-stepper-node-running .gt-stepper-label{color:#1d4ed8}.gt-stepper-node-completed .gt-stepper-circle{background:#16a34a;border-color:#16a34a;color:#ffffff}.gt-stepper-node-failed .gt-stepper-circle{background:#dc2626;border-color:#dc2626;color:#ffffff}.gt-stepper-node-failed .gt-stepper-label{color:#b91c1c}.gt-stepper-node-cancelled .gt-stepper-circle{background:var(--surface);border-color:#9ca3af;border-style:dashed;color:#6b7280}.gt-stepper-node-cancelled .gt-stepper-detail,.gt-stepper-node-cancelled .gt-stepper-label{color:#6b7280}.gt-stepper-node:not([disabled]):hover .gt-stepper-circle{transform:scale(1.06)}.gt-stepper-node-selected .gt-stepper-circle{box-shadow:0 0 0 4px rgba(37,99,235,.24)}.gt-stepper-node-selected .gt-stepper-label{text-decoration:underline;text-underline-offset:3px}.gt-stepper-node:focus-visible{outline:none}.gt-stepper-node:focus-visible .gt-stepper-circle{box-shadow:0 0 0 3px rgba(37,99,235,.55)}@keyframes gt-stepper-pulse{0%,to{box-shadow:0 0 0 4px rgba(37,99,235,.18)}50%{box-shadow:0 0 0 7px rgba(37,99,235,.06)}}@keyframes gt-stepper-spin{to{transform:rotate(1turn)}}.gt-progress-log{margin:0 16px;border:1px solid var(--line);border-radius:10px;background:var(--bg);overflow:hidden}.gt-progress-log-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;font-size:12px;font-weight:700;color:var(--text);background:var(--surface-muted);border-bottom:1px solid var(--line)}.gt-progress-log-hint{color:var(--muted);font-weight:500;font-size:11px}.gt-progress-log-filter{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid #2563eb;border-radius:999px;background:rgba(37,99,235,.08);color:#1d4ed8;font-size:11px;font-weight:600;cursor:pointer;transition:background-color .15s ease}.gt-progress-log-filter:hover{background:rgba(37,99,235,.16)}.gt-progress-log-filter span{font-size:14px;line-height:1}.gt-progress-log-list{display:grid;grid-gap:2px;gap:2px;max-height:260px;overflow:auto;padding:8px}.gt-progress-log-empty{padding:16px;text-align:center;color:var(--muted);font-size:12px}.gt-progress-log-item{display:grid;grid-template-columns:64px 110px 1fr;align-items:baseline;grid-gap:8px;gap:8px;padding:6px 8px;border-radius:6px;font-size:12px;line-height:1.45}.gt-progress-log-item code{grid-column:2/span 2;display:block;margin-top:2px;padding:4px 8px;background:var(--surface-muted);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.gt-progress-log-time{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:11px}.gt-progress-log-step{color:var(--text);font-weight:600}.gt-progress-log-message{color:var(--text);overflow-wrap:anywhere}.gt-progress-log-running{background:rgba(37,99,235,.06)}.gt-progress-log-completed{background:rgba(22,163,74,.04)}.gt-progress-log-failed{background:rgba(220,38,38,.08)}.gt-progress-log-failed .gt-progress-log-message,.gt-progress-log-failed .gt-progress-log-step{color:#b91c1c}.gt-progress-error{margin:0 16px;display:grid;grid-gap:4px;gap:4px;padding:8px 12px;border:1px solid rgba(220,38,38,.4);border-radius:8px;background:rgba(220,38,38,.06);color:#991b1b;font-size:12px}.gt-progress-error b{font-weight:700;color:#991b1b}.gt-progress-error-muted{border-color:rgba(107,114,128,.45);background:rgba(107,114,128,.08);color:#374151}.gt-progress-error-muted b{color:#1f2937}.gt-progress-foot{justify-content:flex-end;align-items:center;gap:8px}.gt-progress-foot .gt-note{margin-right:auto;color:var(--muted);font-size:12px}.fm-empty{text-align:center;padding:48px 20px;color:var(--muted);font-size:13px}.fm-empty p{margin:0 0 16px}.fm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.28);z-index:500;display:flex;align-items:center;justify-content:center;padding:20px}.fm-modal{background:var(--surface);border-radius:12px;width:100%;max-width:520px;max-height:calc(100vh - 40px);overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.18)}.fm-modal-wide{max-width:760px}.fm-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 0}.fm-modal-head h3{margin:0;font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:700}.fm-modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:none;font-size:20px;color:var(--muted);cursor:pointer;border-radius:6px;transition:background .1s}.fm-modal-close:hover{background:var(--surface-muted);color:var(--text)}.fm-modal-foot{display:flex;align-items:center;gap:8px;padding:12px 20px 16px}.fm-form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;padding:16px 20px}.fm-field{display:flex;flex-direction:column}.fm-field-full{grid-column:span 2}.fm-filament-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fm-filament-form-grid .fm-field-full{grid-column:span 4}.fm-field-span-3{grid-column:span 3}.fm-field-span-2{grid-column:span 2}.fm-check-field .fm-check-inline{min-height:33px;align-items:center}.fm-label{display:block;margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.fm-input{width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;transition:border-color .12s,box-shadow .12s}.fm-input:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 2px rgba(147,197,253,.2)}.fm-textarea{min-height:76px;resize:vertical}.fm-filament-note-textarea{min-height:58px}.fm-form-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.fm-note-history{margin:0 20px 12px;border:1px solid var(--line);border-radius:8px;background:var(--bg);overflow:hidden}.fm-note-history-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;color:var(--muted);cursor:pointer;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.fm-note-history-head::-webkit-details-marker{display:none}.fm-note-history[open] .fm-note-history-head{border-bottom:1px solid var(--line)}.fm-note-history-meta{display:inline-flex;align-items:center;gap:8px}.fm-note-history-toggle{color:var(--text);font-size:10px}.fm-note-history[open] .fm-note-history-toggle{font-size:0}.fm-note-history[open] .fm-note-history-toggle:after{content:"收起";font-size:10px}.fm-note-groups{display:flex;flex-direction:column}.fm-note-group{display:grid;grid-template-columns:92px minmax(0,1fr);grid-gap:10px;gap:10px;padding:11px}.fm-note-group+.fm-note-group{border-top:1px solid var(--line)}.fm-note-date{color:var(--muted);font-size:11px;font-weight:700;line-height:1.5}.fm-note-list{display:flex;flex-direction:column;gap:8px}.fm-note-entry{display:grid;grid-gap:3px;gap:3px}.fm-note-entry time{color:var(--muted);font-size:10px;font-weight:600}.fm-note-entry p{margin:0;color:var(--text);font-size:12px;line-height:1.55;white-space:pre-wrap}.fm-note-empty{margin:0;padding:12px;color:var(--muted);font-size:12px}.fm-filament-picker{display:grid;grid-gap:6px;gap:6px;max-height:220px;overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.fm-match-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:8px}.fm-filament-option{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:6px;background:var(--surface);font-size:12px;cursor:pointer}.fm-filament-option input{margin:0}.fm-color-row{display:flex;align-items:center;gap:8px}.fm-color-picker{width:34px;height:34px;padding:2px;border:1px solid var(--line);border-radius:5px;cursor:pointer;background:none}.fm-color-swatch-btn{width:34px;height:34px;border-radius:6px;border:2px solid;cursor:pointer;flex-shrink:0}.fm-color-hex-label{font-family:monospace;font-size:12px;color:var(--muted)}.fm-color-panel{display:flex;align-items:center;gap:8px;margin-top:6px;padding:8px;background:var(--bg);border:1px solid var(--line);border-radius:8px}.fm-color-picker-lg{width:42px;height:42px;padding:2px;border:1px solid var(--line);border-radius:5px;cursor:pointer;background:none;flex-shrink:0}.fm-color-text{width:90px;font-family:monospace;font-size:13px}.fm-check-inline{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-size:12px;cursor:pointer;min-height:34px}.fm-check-inline input[type=checkbox]{width:15px;height:15px;accent-color:var(--line-strong);cursor:pointer}@media (max-width:900px){.page-card,.page-card-hero,.page-card-span-12,.page-card-span-6{grid-column:span 12}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.fm-grid{grid-template-columns:1fr 1fr}.fm-expense-layout,.fm-expense-summary{grid-template-columns:1fr}.run-log-head{display:none}.run-log-row{grid-template-columns:1fr;gap:8px;padding:14px}.run-log-row span{display:flex;justify-content:space-between;gap:14px;line-height:1.45}.run-log-row .run-activity-cell{display:grid;justify-content:stretch}.run-log-row span:before{content:attr(data-label);flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.run-log-row span:last-child{display:grid;grid-gap:4px;gap:4px}.run-log-row span:last-child:before{margin-bottom:1px}}@media (max-width:640px){.hub-brand-card{padding-left:12px;padding-right:12px}.hub-navbar{gap:16px;overflow-x:auto;padding:0 12px}.page-wrap{width:calc(100% - 24px);margin-top:16px}.page-grid{gap:12px}.page-card{padding:18px}.hub-page-busy-detail-grid,.hub-page-busy-steps{grid-template-columns:1fr}.page-title{max-width:none}.idea-item,.split-form-row,.summary-strip,.todo-item{grid-template-columns:1fr}.fm-stats{flex-wrap:wrap}.fm-stat{min-width:33%}.fm-grid,.fm-queue-layout,.fm-queue-summary,.gt-workbench{grid-template-columns:1fr}.gt-workbench{min-height:0}.gt-preview-canvas,.gt-preview-stage{min-height:420px}.gt-glb-viewer{height:58vh;min-height:320px;margin-left:12px;margin-right:12px}.fm-expense-breakdown,.fm-expense-row,.gt-job{grid-template-columns:1fr}.fm-expense-money,.gt-job-actions{text-align:left;justify-content:flex-start}.fm-form-grid{grid-template-columns:1fr}.fm-field-full{grid-column:span 1}.fm-filament-form-grid{grid-template-columns:1fr}.fm-field-span-2,.fm-field-span-3,.fm-filament-form-grid .fm-field-full{grid-column:span 1}.fm-toolbar{flex-direction:column;align-items:stretch}.fm-modal{max-width:100%}.fm-note-group{grid-template-columns:1fr;gap:6px}.inline-actions{justify-content:flex-start}}