.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
box-shadow:var(--shadow)}.card.pad{padding:18px}.section-title{display:flex;align-items:center;
justify-content:space-between;gap:10px;margin-bottom:12px}.section-title h2{margin:0;
font-size:22px;line-height:1.2;letter-spacing:-.02em}.section-title h3{margin:0;
font-size:16px;line-height:1.4;font-weight:800}.section-title p{margin:2px 0 0;color:var(--muted);
font-size:13px;line-height:1.5}.muted{color:var(--muted)}
.btn{border:1px solid var(--line);background:#fff;color:var(--text);border-radius:12px;
height:38px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;
gap:8px;font-weight:700;transition:.15s;white-space:nowrap}.btn:hover{border-color:#bfd2da;
background:var(--panel-soft)}.btn.primary{background:var(--primary);border-color:var(--primary);
color:#fff}.btn.primary:hover{background:var(--primary-strong);border-color:var(--primary-strong)}
.btn.ghost{background:#fff;color:var(--primary)}.btn.danger{background:#fff5f3;color:var(--bad);
border-color:#f4c7c0}.btn.small{height:32px;padding:0 10px;border-radius:10px;font-size:13px}
.btn.full{width:100%}
.field{display:grid;gap:7px;margin-bottom:12px}.field label{font-weight:800;color:var(--text);
font-size:13px}.field small{color:var(--muted);font-size:13px}.input,.select,input,select,textarea{
width:100%;border:1px solid var(--line);background:#fff;border-radius:12px;height:38px;
padding:0 12px;min-width:0;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{
border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}textarea{height:92px;
min-height:92px;padding:10px;resize:vertical;line-height:1.5}.select-row{display:grid;
grid-template-columns:1fr 1fr;gap:10px}
.mode-tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;overflow:visible}
.mode-tab{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:34px;
padding:0 12px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;
gap:6px;font-size:13px;font-weight:800}.mode-tab.active{border-color:var(--primary);
background:var(--primary-soft);color:var(--primary-strong)}.mode-more{min-width:auto}
.more-panel{display:grid;gap:10px}.more-panel .mode-tab{width:100%;justify-content:flex-start}
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;
font-size:12px;line-height:1;font-weight:800;border:1px solid transparent;white-space:nowrap}
.badge.ok{background:#e7f6eb;color:var(--good);border-color:#c2e9cd}.badge.warn{
background:#fff6df;color:var(--warn);border-color:#f1d08a}.badge.info{background:#e1f5f9;
color:#0f6d82;border-color:#bdeaf2}.badge.muted{background:#eff4f6;color:var(--muted);
border-color:#dce8ed}.badge.bad{background:#fff0ee;color:var(--bad);border-color:#f4c7c0}
.badge-row{display:flex;gap:8px;flex-wrap:wrap}
.prompt-box{background:#fff;color:var(--text);border:1px solid var(--line);border-radius:var(--radius);
padding:17px;min-height:500px;white-space:pre-wrap;overflow:auto;font-size:14px;
line-height:1.62}.result-empty{min-height:500px;display:flex;align-items:center;
justify-content:center;text-align:center;background:var(--panel-soft);border:1px dashed var(--line);
border-radius:var(--radius);padding:24px}.result-empty strong{display:block;font-size:16px;
margin-bottom:6px}.result-empty span{color:var(--muted)}.result-panel{display:grid;
gap:12px}.result-head{display:flex;align-items:flex-start;justify-content:space-between;
gap:12px}.result-mode{display:grid;gap:6px}.self-check{border:1px solid var(--line);
background:var(--panel-soft);border-radius:14px;padding:12px}.copy-gate-message{
font-size:13px;color:var(--muted);margin-top:8px}.result-actions{display:flex;gap:8px;
flex-wrap:wrap}.recent-collapsed{border-top:1px solid var(--line);padding-top:12px;
opacity:.90}.recent-strip{display:grid;gap:8px}.recent-item{display:flex;align-items:center;
justify-content:space-between;gap:10px;border:1px solid var(--line);background:#fff;
border-radius:12px;padding:10px}.recent-item strong{font-size:13px}.source-note,.freeze-note{
font-size:13px;color:var(--muted);line-height:1.5}
.empty-state,.error-state,.status-card{border:1px dashed var(--line);border-radius:var(--radius);
padding:22px;background:var(--panel-soft);text-align:left}.empty-state h3,.error-state h3,.status-card h3{
margin:0 0 6px;font-size:16px}.empty-state p,.error-state p,.status-card p{margin:0 0 14px;
color:var(--muted)}.mini-list{display:grid;gap:10px}.record-card,.template-card,.site-card{
border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff;display:grid;
gap:10px;box-shadow:0 8px 24px rgba(15,35,45,.05)}.tabs{display:flex;gap:8px;overflow:auto;
padding-bottom:8px}.tab{white-space:nowrap;border:1px solid var(--line);background:#fff;
border-radius:999px;padding:8px 12px;font-weight:800;color:var(--muted)}.tab.active{
background:var(--primary);color:white;border-color:var(--primary)}.more-menu{position:relative;
display:inline-flex}.skeleton{background:linear-gradient(90deg,#e4eef2,#f9fcfd,#e4eef2);
background-size:220% 100%;animation:shimmer 1s infinite;border-radius:12px;min-height:18px}
@keyframes shimmer{to{background-position:-220% 0}}
@media (max-width:900px){.select-row{grid-template-columns:1fr}.result-actions .btn.primary{
width:100%}.prompt-box,.result-empty{min-height:320px}.recent-collapsed .recent-strip{
display:none}.sticky-generate{position:sticky;bottom:12px;z-index:5;box-shadow:0 10px 24px rgba(15,35,45,.18)}
.mode-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}.mode-tab{flex:0 0 auto}
.recent-collapsed::after{content:'最近记录入口';display:inline-flex;color:var(--primary);
font-weight:800;margin-top:4px}}

/* CO10 more-menu formalization */
.more-menu{position:relative;display:inline-flex;justify-content:flex-end}.empty-state,.error-state,.status-card{
border:1px dashed var(--line);border-radius:var(--radius);padding:22px;background:var(--panel-soft);
text-align:left}.empty-state h3,.error-state h3,.status-card h3{margin:0 0 6px;font-size:16px}
.empty-state p,.error-state p,.status-card p{margin:0 0 14px;color:var(--muted)}
@media (max-width:1023px){.more-cell }


/* CO11 FormalOps UX/UI Upgrade: workbench ratio, output mode visibility, central action panel */
.workbench-grid,.grid-two{grid-template-columns:minmax(620px,.58fr) minmax(480px,.42fr)}
.quick-brief{min-width:0}.result-panel{min-width:0}.quick-brief textarea{min-height:104px}
.mode-tabs{display:flex;gap:8px;flex-wrap:wrap;overflow:visible;align-items:center}
.mode-tab{min-height:34px;max-width:none;flex:0 0 auto}.mode-tab strong{display:inline-block;
line-height:1;white-space:nowrap}.mode-more{padding-left:14px;padding-right:14px}
.prompt-box,.result-empty{min-height:520px}.result-panel .prompt-box{font-size:14px}.self-check,.recent-collapsed{margin-top:0}
.action-panel-mask{position:fixed;inset:0;background:rgba(6,20,28,.10);z-index:64;display:none}.action-panel-mask.is-open{display:block}
.action-panel{position:fixed;left:50%;top:92px;transform:translateX(-50%) translateY(-6px);
width:min(440px,calc(100vw - 32px));z-index:65;background:#fff;border:1px solid var(--line);
border-radius:18px;box-shadow:0 28px 82px rgba(15,35,45,.22);padding:12px;display:none}
.action-panel.is-open{display:block;animation:panelIn .14s ease forwards}@keyframes panelIn{to{transform:translateX(-50%) translateY(0)}}
.action-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:8px 8px 10px;border-bottom:1px solid var(--line)}
.action-panel-title{display:grid;gap:3px}.action-panel-title strong{font-weight:950;
color:var(--text)}.action-panel-title span{font-size:12px;color:var(--muted);line-height:1.4}
.action-panel-close{width:32px;height:32px;border:1px solid var(--line);border-radius:10px;
background:#fff;color:var(--muted);font-size:18px;line-height:1}.action-panel-body{
display:grid;gap:6px;padding:10px 4px 4px}.action-panel-body button,.action-panel-body a{
width:100%;min-height:40px;border:0;background:#fff;color:var(--text);border-radius:12px;
padding:0 12px;display:flex;align-items:center;justify-content:space-between;text-align:left;
font-weight:820}.action-panel-body button::after,.action-panel-body a::after{content:'›';
color:var(--quiet);font-size:18px}.action-panel-body button:hover,.action-panel-body a:hover,.action-panel-body button:focus-visible,.action-panel-body a:focus-visible{
background:var(--panel-soft);outline:none}.action-panel-body .danger-item{color:var(--bad)}
.action-panel-body .danger-item:hover{background:#fff0ee}.action-panel-context{display:block;
max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table-more-slot .more-menu{display:flex;justify-content:center}.table-more-slot .more-menu .table-more-trigger{width:50px!important;min-width:50px!important;height:34px!important;padding:0!important}
.site-table .col-tone{width:130px}.site-table .col-template-count{width:86px}.site-table .col-health{width:130px}
@media (max-width:1320px){.workbench-grid,.grid-two{grid-template-columns:1fr}.quick-brief{position:static!important}.prompt-box,.result-empty{min-height:360px}}
@media (max-width:991px){.mode-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
.mode-tab{flex:0 0 auto}.action-panel{top:auto;left:12px;right:12px;bottom:12px;
transform:none;width:auto;border-radius:20px}.action-panel.is-open{animation:none}
.action-panel-mask{background:rgba(6,20,28,.30)}.ops-filter{grid-template-columns:1fr}
.ops-filter>.btn.primary{grid-column:1/-1;width:100%}.ops-filter .search{grid-column:1/-1}
.ops-filter select{display:none!important}.ops-filter .btn.ghost.small{justify-self:stretch}
}
@media (min-width:1200px){.table-wrap{overflow:visible!important}.ops-table{min-width:0!important}.ops-filter>.btn.primary{order:-20}.ops-filter .search{flex:1 1 280px}.ops-filter select{flex:0 0 148px}}

/* V4.2.103 feedback polish: site operations are optimistic and visible. */
.sync-hint{margin:10px 0 12px;border:1px solid #cfe7e3;background:#f0fbf9;color:#0b5f59;border-radius:14px;padding:10px 12px;font-weight:800;line-height:1.5}
.sync-hint.is-syncing{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.sync-hint.is-ok{background:#ecfdf5;border-color:#bbf7d0;color:#047857}
.sync-hint.is-warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}
.btn[data-busy="true"]{opacity:.72;pointer-events:none;position:relative}
.btn[data-busy="true"]::after{content:"";width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;display:inline-block;margin-left:8px;animation:spin .7s linear infinite}
@media(max-width:760px){.sync-hint{font-size:13px;margin:8px 0 10px}}
