#workflow-board{min-height:60vh;padding:1rem 4vw 7rem}
#workflow-board[hidden]{display:none}
.workflow-service-status{border-left:3px solid var(--amber);color:var(--ink-soft);font-size:.78rem;line-height:1.7;margin-bottom:1rem;padding:.65rem .9rem}
.workflow-service-status:empty{display:none}
.workflow-toolbar{align-items:center;border-bottom:1px solid rgba(201,194,182,.55);display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.6rem;padding-bottom:1rem}
.workflow-filters{display:flex;flex-wrap:wrap;gap:.3rem}
.workflow-filter-groups{display:flex;flex-direction:column;gap:.45rem}
.workflow-filters button,.workflow-icon-button{background:transparent;border:1px solid transparent;border-radius:var(--radius-xs);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:.78rem;padding:.55rem .8rem}
.workflow-filters button.active{background:var(--cream-deep);border-color:var(--beige);color:var(--maple)}
.workflow-command{background:var(--maple);border:1px solid var(--maple);border-radius:var(--radius-xs);color:#fff;cursor:pointer;font:inherit;font-size:.78rem;padding:.62rem 1rem}
.workflow-command.secondary{background:#fff;border-color:var(--beige);color:var(--ink)}
.workflow-command.danger{background:#fff;border-color:var(--danger);color:var(--danger)}
.workflow-command.danger:hover,.workflow-command.danger:focus-visible{background:var(--danger);color:#fff}
.workflow-command:disabled{cursor:not-allowed;opacity:.45}
.workflow-editor{background:#fff;border:1px solid rgba(201,194,182,.7);border-radius:var(--radius-sm);margin-bottom:2rem;padding:1.4rem}
.workflow-editor[hidden]{display:none}
.workflow-fields{display:grid;gap:1rem;grid-template-columns:1fr 1fr}
.workflow-field{display:block;color:var(--ink-soft);font-size:.72rem}
.workflow-field.full{grid-column:1/-1}
.workflow-field span,.workflow-field>label{display:block;margin-bottom:.4rem}
.workflow-field input,.workflow-field textarea,.workflow-field select,.workflow-preview input,.workflow-preview select,.workflow-assignee{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-xs);color:var(--ink);font:inherit;font-size:16px;padding:.62rem .7rem;width:100%}
.workflow-field textarea{line-height:1.7;min-height:7rem;resize:vertical}
.workflow-paste-head{align-items:center;display:flex;gap:.6rem;justify-content:space-between;margin-bottom:.4rem}
.workflow-paste-head>span{margin-bottom:0}
.workflow-import-actions{align-items:center;display:flex;gap:.4rem}
.workflow-preview{border-top:1px dashed var(--beige);margin-top:1rem;padding-top:1rem}
.workflow-preview-empty{color:var(--beige);font-size:.78rem}
.workflow-preview-row{align-items:center;display:grid;gap:.55rem;grid-template-columns:minmax(7rem,1.5fr) minmax(5rem,.7fr) minmax(7rem,.9fr) minmax(5rem,.7fr);padding:.45rem 0}
.workflow-preview-name{font-family:var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:.5rem;min-width:0}
.workflow-editor-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}
.workflow-card-actions{align-items:center;border-bottom:1px dashed rgba(201,194,182,.45);display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0;padding-bottom:.9rem}
.workflow-requests{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(28rem,100%),1fr))}
.workflow-empty{color:var(--ink-soft);grid-column:1/-1;padding:2rem 0}
/* 排行榜：三个榜首（无边框，编辑风第一名样式）+ 入口跳转到 leaderboard.html */
.workflow-toolbar-actions{display:flex;gap:.5rem}
.workflow-champions{display:grid;gap:1.1rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1.3rem}
.workflow-champions[hidden]{display:none}
.wlc-card{align-items:center;background:none;border:0;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;font:inherit;
  gap:.2rem;justify-content:center;padding:.45rem .25rem;text-align:center;transition:opacity .25s,transform .25s}
.wlc-card:hover{opacity:.7;transform:translateY(-2px)}
.wlc-title{color:var(--ink-soft);font-size:.62rem;font-weight:600;letter-spacing:.26em}
.wlc-main{align-items:center;display:flex;gap:.45rem;justify-content:center;min-width:0}
.wlc-tag{color:var(--maple);font-size:.6rem;letter-spacing:.12em;border:1px solid rgba(168,80,47,.35);border-radius:var(--radius-pill);padding:.06rem .5rem;white-space:nowrap}
.wlc-crown{height:1.1rem;width:1.1rem;flex:none}
.wlc-name{font-family:'Playfair Display','Noto Serif SC','Songti SC',serif;font-size:1rem;letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  background:linear-gradient(90deg,var(--danger),var(--warning),var(--gold),var(--success),var(--info),var(--danger));background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;animation:lbNameFlow 5s linear infinite}
.wlc-value{color:var(--maple);font-family:var(--latin);font-size:1rem;font-weight:700;white-space:nowrap}
.lb-crown{flex:none;height:.9rem;width:.9rem}
@keyframes lbNameFlow{0%{background-position:0% 50%}100%{background-position:-200% 50%}}
@media(max-width:760px){.workflow-champions{grid-template-columns:1fr}}
/* 改动记录弹窗（管理员/后勤可见，最近操作倒序） */
.audit-mask{align-items:center;background:rgba(31,30,29,.5);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:110}
.audit-mask[hidden]{display:none}
.audit-dialog{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-sm);box-shadow:0 28px 70px rgba(31,30,29,.35);display:flex;flex-direction:column;max-height:min(72dvh,44rem);width:min(46rem,100%)}
.audit-dialog header{align-items:center;border-bottom:1px solid rgba(201,194,182,.4);display:flex;justify-content:space-between;padding:.9rem 1.2rem}
.audit-dialog h3{font-family:var(--serif);font-size:1.05rem;letter-spacing:.1em;margin:0}
.audit-close{background:none;border:0;color:var(--beige);cursor:pointer;font-size:1.3rem;line-height:1;padding:.3rem;transition:color .25s}
.audit-close:hover{color:var(--maple)}
.audit-body{flex:1;overflow-y:auto;padding:.6rem 1.2rem}
.audit-loading,.audit-empty{color:var(--ink-soft);font-size:.8rem;letter-spacing:.08em;padding:1.4rem 0;text-align:center}
.audit-row{align-items:flex-start;border-bottom:1px dashed rgba(201,194,182,.35);display:flex;gap:.8rem;padding:.65rem 0}
.audit-row:last-child{border-bottom:none}
.audit-time{color:var(--beige);flex:none;font-family:var(--latin);font-size:.72rem;letter-spacing:.04em;padding-top:.2rem;white-space:nowrap}
.audit-main{min-width:0}
.audit-actor{color:var(--maple);font-size:.78rem;font-weight:600;letter-spacing:.06em}
.audit-action{color:var(--ink-soft);font-size:.7rem;letter-spacing:.16em;margin-left:.5rem}
.audit-detail{font-size:.8rem;line-height:1.7;margin-top:.2rem;word-break:break-all}
.audit-title-ref{color:var(--beige);font-size:.7rem;margin-top:.15rem}
.audit-dialog footer{align-items:center;border-top:1px solid rgba(201,194,182,.4);display:flex;gap:1rem;justify-content:space-between;padding:.8rem 1.2rem}
.audit-hint{color:var(--beige);font-size:.68rem;line-height:1.6}
.audit-dialog footer .workflow-command{min-height:44px}
@media(max-width:720px){
  .audit-mask{align-items:flex-end;padding:0}
  .audit-dialog{border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;max-height:88dvh;width:100%}
  .audit-row{flex-direction:column;gap:.25rem}
  .audit-dialog footer{flex-direction:column;align-items:stretch}
}
.audit-more,.workflow-items-more,.workflow-preview-more{background:rgba(201,194,182,.12);border:1px dashed rgba(201,194,182,.5);border-radius:var(--radius-xs);color:var(--ink-soft);cursor:pointer;display:block;font-size:.75rem;letter-spacing:.12em;margin:.6rem auto 0;padding:.45rem 1.1rem;transition:background .25s,border-color .25s,color .25s;width:max-content}
.audit-more:hover,.workflow-items-more:hover,.workflow-preview-more:hover{background:rgba(201,194,182,.22);border-color:var(--beige);color:var(--ink)}
.workflow-item-end{min-width:0}
.workflow-preview-more{margin:1.6rem 0 0}
.lg-items-more-row td{padding:0;text-align:center}
.lg-items-more-row .workflow-items-more{border-radius:0;display:block;margin:0;width:100%}
.workflow-card{background:#fff;border:1px solid rgba(201,194,182,.55);border-radius:var(--radius-sm);box-shadow:0 18px 36px -26px rgba(31,30,29,.25);min-width:0;padding:1.25rem;transition:box-shadow .35s cubic-bezier(.22,1,.36,1),transform .35s cubic-bezier(.22,1,.36,1)}
.workflow-card:hover{box-shadow:0 30px 50px -26px rgba(31,30,29,.32);transform:translateY(-2px)}
.workflow-cats{margin-top:.25rem}
.workflow-cat + .workflow-cat .workflow-cat-head{border-top:1px solid rgba(201,194,182,.35)}
.workflow-cat-head-row{align-items:center;display:flex;gap:.4rem}
.workflow-cat-head-row .workflow-cat-head{flex:1;min-width:0}
.workflow-cat-claim{background:transparent;border:1px dashed var(--beige);border-radius:var(--radius-pill);color:var(--ink-soft);cursor:pointer;flex:none;font:inherit;font-size:.66rem;padding:.22rem .6rem;touch-action:manipulation;white-space:nowrap}
.workflow-cat-claim:hover,.workflow-cat-claim:focus-visible{border-color:var(--maple);color:var(--maple)}
.workflow-cat-head{align-items:center;background:transparent;border:0;border-radius:var(--radius-xs);color:var(--ink);cursor:pointer;display:flex;font:inherit;gap:.6rem;padding:.6rem .35rem;text-align:left;touch-action:manipulation;width:100%}
.workflow-cat-head:hover .workflow-cat-name{color:var(--maple)}
.workflow-cat-name{font-family:var(--serif);font-size:.86rem;font-weight:600;letter-spacing:.14em;transition:color .3s}
.workflow-cat-count{background:var(--cream-deep);border-radius:var(--radius-pill);color:var(--maple);font-family:var(--latin);font-size:.7rem;letter-spacing:.06em;padding:.18rem .62rem}
.workflow-cat-caret{color:var(--beige);font-size:.72rem;margin-left:auto;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.workflow-cat.collapsed .workflow-cat-caret{transform:rotate(-90deg)}
.workflow-cat.collapsed .workflow-items{display:none}
.workflow-card-head{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}
.workflow-card-tools{align-items:center;display:flex;flex:none;gap:.45rem}
.workflow-card h3{font-family:var(--serif);font-size:1.15rem;letter-spacing:0;margin:0}
.workflow-status{border:1px solid var(--beige);border-radius:var(--radius-pill);color:var(--ink-soft);flex:none;font-size:.68rem;padding:.28rem .55rem}
.workflow-status.in_progress{border-color:var(--amber);color:var(--warning)}
.workflow-status.done,.workflow-status.completed{background:var(--maple);border-color:var(--maple);color:#fff}
.workflow-category{border:1px solid var(--beige);border-radius:var(--radius-pill);color:var(--ink-soft);flex:none;font-size:.68rem;padding:.28rem .55rem}
.workflow-category.redstone{background:var(--cream-deep);border-color:var(--maple);color:var(--maple)}
.workflow-category.building{background:var(--cream-deep);border-color:var(--gold);color:var(--gold-lo)}
button.workflow-category{cursor:pointer}
button.workflow-category:hover{border-color:var(--ink-soft);color:var(--ink)}
.workflow-important{border:1px dashed var(--gold);border-radius:var(--radius-pill);color:var(--gold-lo);flex:none;font-size:.68rem;padding:.28rem .55rem;white-space:nowrap}
.workflow-important.on{background:linear-gradient(135deg,var(--warning-soft),var(--gold-soft));border-color:var(--gold);border-style:solid;color:var(--warning)}
button.workflow-important{cursor:pointer}
button.workflow-important:hover{border-color:var(--gold);color:var(--warning)}
.workflow-collapse{align-items:center;background:transparent;border:1px solid var(--beige);border-radius:var(--radius-xs);color:var(--ink);cursor:pointer;display:flex;font:inherit;font-size:1rem;height:1.8rem;justify-content:center;line-height:1;padding:0;width:1.8rem}
.workflow-collapse:hover{border-color:var(--maple);color:var(--maple)}
.workflow-card.collapsed .workflow-card-details{display:none}
.workflow-meta{color:var(--ink-soft);font-size:.72rem;line-height:1.7;margin:.65rem 0 .8rem}
.workflow-meta-tags{display:flex;flex-wrap:wrap;gap:.45rem}
.workflow-meta-tag{align-items:center;border:1px solid rgba(201,194,182,.7);border-radius:var(--radius-pill);display:inline-flex;gap:.38rem;max-width:100%;padding:.2rem .62rem}
.workflow-meta-tag b,.workflow-request-note b{color:var(--maple);font-size:.64rem;font-weight:600;white-space:nowrap}
.workflow-request-note{align-items:flex-start;border-top:1px dashed rgba(201,194,182,.45);display:flex;gap:.55rem;margin-top:.65rem;padding-top:.55rem}
.workflow-request-note span{min-width:0;overflow-wrap:anywhere}
.workflow-progress{margin:.75rem 0 1rem}
.workflow-progress-label{align-items:center;color:var(--maple);display:flex;font-family:var(--latin);font-size:.78rem;justify-content:space-between;margin-bottom:.35rem}
.workflow-progress-label strong{font-size:.72rem;font-weight:500}
.workflow-progress-track{background:var(--cream-deep);border-radius:var(--radius-pill);height:5px;overflow:hidden;width:100%}
.workflow-progress-track i{background:linear-gradient(90deg,var(--amber),var(--maple));border-radius:inherit;display:block;height:100%;transition:width .35s cubic-bezier(.22,1,.36,1)}
.workflow-items{list-style:none;margin:0;padding:0}
.workflow-items li{align-items:center;border-top:1px dashed rgba(201,194,182,.45);display:grid;gap:.6rem;grid-template-columns:1.5rem minmax(0,1fr) auto auto;padding:.65rem 0}
.workflow-item-name{font-family:var(--serif);display:flex;align-items:center;gap:.5rem;min-width:0}
.workflow-items li.done .workflow-item-name{text-decoration:line-through;color:var(--beige)}
.workflow-items li.done .workflow-quantity,.workflow-items li.done .workflow-note{opacity:.45}
.workflow-item-check{align-items:center;cursor:pointer;display:flex;height:1.35rem;justify-content:center;touch-action:manipulation;width:1.35rem}
.workflow-item-check input{height:1px;opacity:0;position:absolute;width:1px}
.workflow-item-check span,.workflow-item-readonly{background:#fff;border:1.5px solid var(--beige);border-radius:var(--radius-xs);display:block;height:1.1rem;position:relative;width:1.1rem}
.workflow-item-check input:checked+span{background:var(--maple);border-color:var(--maple)}
.workflow-item-check input:checked+span::after{color:#fff;content:'✓';font-size:.68rem;inset:-.08rem 0 0;position:absolute;text-align:center}
.workflow-item-check input:focus-visible+span{outline:2px solid var(--amber);outline-offset:2px}
.workflow-item-readonly{border-color:transparent}
.workflow-quantity{background:transparent;border:0;border-bottom:1px dotted var(--maple);color:var(--maple);cursor:pointer;font:inherit;font-size:.78rem;padding:.15rem;touch-action:manipulation}
.workflow-note{color:var(--ink-soft);font-size:.7rem;grid-column:2/-1}
.workflow-item-delete{align-items:center;background:transparent;border:0;border-radius:var(--radius-xs);color:var(--beige);cursor:pointer;display:flex;font:inherit;font-size:1.1rem;height:1.7rem;justify-content:center;width:1.7rem}
.workflow-item-delete:hover,.workflow-item-delete:focus-visible{background:var(--cream-deep);color:var(--maple)}
.workflow-item-end{align-items:center;display:flex;gap:.4rem;justify-self:end;min-width:0}
.workflow-collector-chip{background:transparent;border:1px dashed var(--beige);border-radius:var(--radius-pill);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:.7rem;max-width:6.5rem;overflow:hidden;padding:.18rem .55rem;text-overflow:ellipsis;touch-action:manipulation;white-space:nowrap}
.workflow-collector-chip:hover,.workflow-collector-chip:focus-visible{border-color:var(--maple);color:var(--maple)}
.workflow-collector-chip.claimed{border-color:var(--beige);border-style:solid;color:var(--ink)}
.workflow-collector-chip.mine{background:var(--cream-deep);border-color:var(--maple);color:var(--maple)}
.workflow-collector-text{color:var(--ink-soft);font-size:.7rem;max-width:6.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.workflow-assignee{border:0!important;font-size:.78rem;min-width:0;padding:.48rem .55rem!important;padding-right:2.2rem!important;width:100%}
.workflow-assignee-field{align-items:center;color:var(--ink-soft);display:flex;font-size:.68rem;gap:.5rem;min-width:min(13rem,100%);white-space:nowrap}
.workflow-assignee-icon{color:var(--maple);flex:none;height:1.05rem;width:1.05rem}
.workflow-assignee-field .workflow-member-picker{flex:1 1 13rem;min-width:0}
.workflow-member-picker{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-xs);max-width:100%;position:relative;width:13rem}
.workflow-field .workflow-member-picker{width:100%}
.workflow-member-toggle{align-items:center;background:transparent;border:0;border-left:1px solid rgba(201,194,182,.55);color:var(--ink-soft);cursor:pointer;display:flex;font:inherit;height:100%;justify-content:center;position:absolute;right:0;top:0;width:2rem}
.workflow-member-toggle:hover,.workflow-member-toggle:focus-visible{background:var(--cream-deep);color:var(--maple)}
.workflow-member-menu{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-xs);box-shadow:0 14px 30px -18px rgba(31,30,29,.55);left:0;max-height:13rem;overflow-y:auto;padding:.3rem;position:absolute;right:0;top:calc(100% + .3rem);z-index:30}
.workflow-member-menu[hidden]{display:none}
.workflow-member-menu button{background:transparent;border:0;border-radius:var(--radius-xs);color:var(--ink);cursor:pointer;display:block;font:inherit;font-size:.78rem;padding:.5rem .55rem;text-align:left;width:100%}
.workflow-member-menu button:hover,.workflow-member-menu button:focus-visible{background:var(--cream-deep);color:var(--maple)}
.workflow-member-empty{color:var(--ink-soft);display:block;font-size:.72rem;padding:.5rem .55rem}
.workflow-dialog-open{overflow:hidden}
.workflow-quantity-mask{align-items:center;background:rgba(31,30,29,.5);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:100}
.workflow-quantity-mask[hidden]{display:none}
.workflow-quantity-dialog{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-sm);box-shadow:0 28px 70px rgba(31,30,29,.35);max-height:calc(100dvh - 2rem);overflow-y:auto;padding:1.2rem;width:min(28rem,100%)}
.workflow-quantity-dialog header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}
.workflow-quantity-eyebrow{color:var(--maple);font-size:.65rem}
.workflow-quantity-dialog h3{font-family:var(--serif);font-size:1.1rem;letter-spacing:0;margin:.2rem 0 0}
.workflow-quantity-close{align-items:center;background:transparent;border:1px solid var(--beige);border-radius:var(--radius-xs);color:var(--ink);cursor:pointer;display:flex;flex:none;font:inherit;font-size:1.2rem;height:44px;justify-content:center;width:44px}
.workflow-quantity-details{display:grid;gap:.45rem;grid-template-columns:repeat(3,minmax(0,1fr));margin:1rem 0}
.workflow-quantity-details span{background:var(--cream-deep);border-radius:var(--radius-xs);color:var(--ink-soft);font-size:.75rem;padding:.7rem .5rem;text-align:center}
.workflow-quantity-form{display:grid;gap:.75rem;grid-template-columns:1fr 1fr 1fr}
.workflow-quantity-form[hidden]{display:none}
.workflow-quantity-form label{color:var(--ink-soft);font-size:.7rem}
.workflow-quantity-form label span{display:block;margin-bottom:.35rem}
.workflow-quantity-form input,.workflow-quantity-form select{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-xs);color:var(--ink);font:inherit;font-size:16px;min-height:44px;padding:.55rem;width:100%}
.workflow-quantity-error{color:var(--maple);font-size:.72rem;min-height:1.3rem;padding-top:.55rem}
.workflow-quantity-actions{display:flex;gap:.6rem;justify-content:flex-end}
.workflow-quantity-actions .workflow-command{min-height:44px}
.workflow-confirm-mask{align-items:center;background:rgba(31,30,29,.5);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:100}
.workflow-confirm-mask[hidden]{display:none}
.workflow-confirm-dialog{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-sm);box-shadow:0 28px 70px rgba(31,30,29,.35);padding:1.2rem;width:min(24rem,100%)}
.workflow-confirm-dialog h3{font-family:var(--serif);font-size:1.1rem;letter-spacing:0;margin:0}
.workflow-confirm-message{color:var(--ink-soft);font-size:.8rem;line-height:1.7;margin:.7rem 0 0;overflow-wrap:anywhere}
.workflow-confirm-input{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-xs);color:var(--ink);font:inherit;font-size:16px;margin-top:.8rem;padding:.62rem .7rem;width:100%}
.workflow-confirm-input[hidden]{display:none}
.workflow-confirm-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:1.1rem}
.workflow-confirm-actions .workflow-command{min-height:44px}
.workflow-confirm-actions .workflow-command.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.workflow-command:active,.workflow-collapse:active,.workflow-quantity:active,.workflow-item-delete:active,.workflow-collector-chip:active,.workflow-member-toggle:active,.workflow-member-menu button:active,.workflow-quantity-close:active{transform:scale(.97)}
.workflow-inline-editor{background:var(--cream-deep);border-left:3px solid var(--amber);display:grid;gap:.75rem;grid-template-columns:1fr 1fr;margin-top:1rem;padding:1rem}
.workflow-inline-editor label{color:var(--ink-soft);font-size:.7rem;min-width:0}
.workflow-inline-editor label span{display:block;margin-bottom:.35rem}
.workflow-inline-editor input,.workflow-inline-editor textarea,.workflow-add-preview input,.workflow-add-preview select{background:#fff;border:1px solid var(--beige);border-radius:var(--radius-xs);color:var(--ink);font:inherit;font-size:16px;padding:.58rem .65rem;width:100%}
.workflow-inline-editor label.full,.workflow-add-preview,.workflow-inline-actions{grid-column:1/-1}
.workflow-inline-editor textarea{line-height:1.6;min-height:5rem;resize:vertical;width:100%}
.workflow-inline-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}
.workflow-add-preview{border-top:1px dashed var(--beige);padding-top:.5rem}
#mat-board.legacy-readonly .mat-new-btn,#mat-board.legacy-readonly .mat-actions,#mat-board.legacy-readonly .mat-addrow,#mat-board.legacy-readonly .mat-check{display:none!important}
.mat-title-row{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}
.mat-collapse{align-items:center;background:transparent;border:1px solid var(--beige);border-radius:var(--radius-xs);color:var(--ink);cursor:pointer;display:flex;flex:none;font:inherit;font-size:1rem;height:1.8rem;justify-content:center;line-height:1;padding:0;width:1.8rem}
.mat-collapse:hover{border-color:var(--maple);color:var(--maple)}
.mat-card.legacy-collapsed .mat-items,.mat-card.legacy-collapsed .mat-addrow{display:none}
@media(max-width:720px){
  #workflow-board{max-width:100vw;overflow-x:hidden;padding:0 5vw 5rem;width:100%}
  .workflow-toolbar{align-items:stretch;flex-direction:column}
  .workflow-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .workflow-filters button{min-width:0;padding:.55rem .3rem;white-space:nowrap}
  .workflow-requests{grid-template-columns:minmax(0,1fr);width:100%}
  .workflow-card,.workflow-card-head,.workflow-card-details{max-width:100%;min-width:0}
  .workflow-fields{grid-template-columns:1fr}
  .workflow-field.full{grid-column:auto}
  .workflow-preview-row{grid-template-columns:1fr 5.5rem}
  .workflow-preview-row select{grid-column:auto}
  .workflow-inline-editor{grid-template-columns:1fr}
  .workflow-inline-editor label.full,.workflow-add-preview,.workflow-inline-actions{grid-column:auto}
  .workflow-items li{grid-template-columns:1.35rem minmax(0,1fr) auto auto}
  .workflow-note{grid-column:2/-1}
  .workflow-assignee-field,.workflow-member-picker{max-width:100%;width:100%}
  .workflow-assignee-field .workflow-member-picker{flex:1 1 auto;width:auto}
  .workflow-item-check{height:44px;margin:-.65rem 0;width:44px}
  .workflow-cat-head{min-height:44px}
  .workflow-cat-claim,.lg-cat-claim{align-items:center;display:inline-flex;min-height:44px;padding:.3rem .7rem}
  .workflow-item-check span,.workflow-item-readonly{height:1.35rem;width:1.35rem}
  .workflow-quantity{min-height:44px;padding:.45rem .3rem}
  .workflow-item-delete{height:44px;width:44px}
  .workflow-collector-chip{align-items:center;display:inline-flex;min-height:44px;padding:.3rem .65rem}
  .workflow-assignee,.workflow-member-toggle,.workflow-member-menu button{min-height:44px}
  .workflow-member-toggle{width:44px}
  .workflow-assignee{padding-right:3rem!important}
  .workflow-member-menu{max-height:min(18rem,45dvh)}
  .workflow-quantity-mask{align-items:flex-end;padding:0}
  .workflow-quantity-dialog{border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;max-height:88dvh;padding:1rem 5vw calc(1rem + env(safe-area-inset-bottom));width:100%}
  .workflow-quantity-details{grid-template-columns:1fr}
  .workflow-quantity-form{grid-template-columns:1fr 1fr}
  .workflow-quantity-form label:first-child{grid-column:1/-1}
  .workflow-quantity-actions{display:grid;grid-template-columns:1fr 1fr}
  .workflow-confirm-mask{align-items:flex-end;padding:0}
  .workflow-confirm-dialog{border-bottom:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:1rem 5vw calc(1rem + env(safe-area-inset-bottom));width:100%}
  .workflow-confirm-actions{display:grid;grid-template-columns:1fr 1fr}
}
.workflow-toast-region{align-items:center;bottom:calc(1.25rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.5rem;left:0;pointer-events:none;position:fixed;right:0;z-index:130}
.workflow-toast{background:var(--ink);border-radius:var(--radius-xs);color:var(--cream);font-size:.78rem;max-width:min(24rem,90vw);opacity:0;padding:.75rem 1rem;transform:translateY(.5rem);transition:opacity .25s ease,transform .25s ease}
.workflow-toast.show{opacity:1;transform:translateY(0)}
.workflow-toast.danger{background:var(--maple)}
@media(prefers-reduced-motion:reduce){
  .workflow-command,.workflow-collapse,.workflow-quantity,.workflow-item-delete,.workflow-collector-chip,.workflow-member-toggle,.workflow-member-menu button,.workflow-quantity-close,.workflow-toast,.workflow-card,.workflow-cat-caret,.workflow-cat-name,.workflow-view-switch,.lg-collector-btn,.lg-qty-tip,.workflow-cat-claim,.lg-cat-claim{transition:none!important}
}
/* 大型清单模式：独立表格画布 */
.workflow-field.workflow-large-toggle{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.55rem;padding-top:.25rem}
.workflow-field.workflow-large-toggle input{accent-color:var(--maple);flex:none;height:1.15rem;margin:0;padding:0;width:1.15rem}
.workflow-field.workflow-large-toggle em{color:var(--ink-soft);flex-basis:100%;font-size:.7rem;font-style:normal;line-height:1.6;margin-top:-.1rem}
.workflow-card.large{grid-column:1/-1}
.workflow-view-switch{align-items:center;background:transparent;border:1px solid var(--beige);border-radius:var(--radius-pill);color:var(--ink-soft);cursor:pointer;display:inline-flex;flex:none;font:inherit;font-size:.68rem;height:1.75rem;padding:.28rem .6rem}
.workflow-view-switch:hover{border-color:var(--maple);color:var(--maple)}
.lg-table-wrap{border:1px solid rgba(201,194,182,.55);border-radius:var(--radius-xs);margin-top:.25rem;max-height:60vh;overflow:auto}
.lg-mine-stat{border-bottom:1px solid rgba(201,194,182,.55);color:var(--ink-soft);font-size:.72rem;padding:.55rem .7rem}
.lg-mine-stat strong{color:var(--maple);font-family:var(--latin)}
.lg-table{border-collapse:separate;border-spacing:0;font-size:.82rem;min-width:44rem;width:100%}
.lg-table th{background:var(--cream-deep);color:var(--ink-soft);font-size:.68rem;font-weight:600;letter-spacing:.06em;padding:.6rem .7rem;position:sticky;text-align:left;top:0;white-space:nowrap;z-index:5}
.lg-table th.lg-check{left:0;width:2.6rem;z-index:7}
.lg-table th.lg-name{left:2.6rem;z-index:7}
.lg-table td{border-top:1px dashed rgba(201,194,182,.45);padding:.55rem .7rem;vertical-align:middle}
.lg-table tbody tr.done .lg-name{color:var(--beige);text-decoration:line-through}
.lg-table td.lg-check{background:#fff;left:0;position:sticky;text-align:center;width:2.6rem;z-index:3}
.lg-table td.lg-name{background:#fff;font-family:var(--serif);left:2.6rem;min-width:10rem;position:sticky;z-index:3}
.lg-table td.lg-qty{white-space:nowrap}
.lg-qty-wrap{display:inline-block;position:relative}
.lg-qty-value{color:var(--ink)}
.lg-qty-tip{background:var(--ink);border-radius:var(--radius-xs);bottom:calc(100% + .4rem);color:var(--cream);font-size:.68rem;left:50%;opacity:0;padding:.35rem .55rem;pointer-events:none;position:absolute;transform:translate(-50%,.3rem);transition:opacity .2s ease,transform .2s ease;white-space:nowrap;z-index:20}
.lg-qty-wrap:hover .lg-qty-tip,.lg-qty-wrap:focus-within .lg-qty-tip{opacity:1;transform:translate(-50%,0)}
.lg-table td.lg-note{color:var(--ink-soft);font-size:.72rem;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lg-collector-btn{background:transparent;border:1px dashed var(--beige);border-radius:var(--radius-xs);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:.72rem;max-width:8rem;overflow:hidden;padding:.3rem .55rem;text-overflow:ellipsis;white-space:nowrap}
.lg-collector-btn:hover{border-color:var(--maple);color:var(--maple)}
.lg-collector-btn.claimed{border-style:solid;border-color:var(--beige);color:var(--ink)}
.lg-collector-btn.mine{background:var(--cream-deep);border-color:var(--maple);color:var(--maple)}
.lg-collector-text{color:var(--ink-soft);font-size:.72rem}
.lg-table td.lg-del{text-align:center;width:2.6rem}
.lg-table .lg-empty{color:var(--beige);padding:1.2rem!important;text-align:center}
.lg-table .lg-cat-row td{background:var(--cream-deep);border-top:1px solid rgba(201,194,182,.55);padding:.3rem .5rem}
.lg-table .lg-cat-toggle{align-items:center;background:transparent;border:0;color:var(--ink);cursor:pointer;display:flex;font:inherit;gap:.6rem;padding:.2rem;text-align:left;touch-action:manipulation;width:100%}
.lg-cat-toggle:hover .workflow-cat-name{color:var(--maple)}
.lg-cat-head-row{align-items:center;display:flex;gap:.4rem}
.lg-cat-head-row .lg-cat-toggle{flex:1;min-width:0}
.lg-cat-claim{background:transparent;border:1px dashed var(--beige);border-radius:var(--radius-pill);color:var(--ink-soft);cursor:pointer;flex:none;font:inherit;font-size:.66rem;padding:.22rem .6rem;touch-action:manipulation;white-space:nowrap}
.lg-cat-claim:hover,.lg-cat-claim:focus-visible{border-color:var(--maple);color:var(--maple)}
.lg-cat-group.collapsed .workflow-cat-caret{transform:rotate(-90deg)}
.lg-cat-group.collapsed tr:not(.lg-cat-row){display:none}
.lg-table .lg-name-wrap{display:flex;align-items:center;gap:.5rem;min-width:0}
