* { box-sizing: border-box; }
body.workspace-page { margin: 0; background: #eef0ed; color: #17232c; font-family: "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", sans-serif; font-size: 13px; }
body.workspace-page::before { content: ""; position: fixed; inset: 0; z-index: -1; background-image: linear-gradient(rgba(23,59,94,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(23,59,94,.025) 1px,transparent 1px); background-size: 100% 30px,30px 100%; }
button,input,select,textarea { font: inherit; }
button,a { -webkit-tap-highlight-color: transparent; }
.ops-header { position: sticky; top: 0; z-index: 50; display: grid; grid-template-columns: 260px 1fr auto; align-items: center; min-height: 76px; padding: 0 28px; border-bottom: 1px solid #bbc1bd; background: rgba(255,254,250,.96); backdrop-filter: blur(12px); }
.brand { display: flex; flex-direction: column; color: #102b45; text-decoration: none; }
.brand b { font-family: "Source Han Serif SC","Songti SC",serif; font-size: 19px; letter-spacing: .1em; }
.brand small,.section-heading span,.rail-label { color: #a94335; font-family: Consolas,monospace; font-size: 8px; font-weight: 700; letter-spacing: .14em; }
.header-context { display: flex; gap: 14px; padding-left: 26px; border-left: 1px solid #d9ddd9; color: #818a90; font-size: 11px; }
.header-context strong { color: #173b5e; }
.ops-header nav { display: flex; gap: 22px; }
.ops-header nav a { padding-bottom: 3px; border-bottom: 1px solid #173b5e; color: #173b5e; text-decoration: none; font-size: 11px; font-weight: 650; }
.ops-shell { display: grid; grid-template-columns: 250px minmax(0,1fr); min-height: calc(100vh - 76px); }
.ops-rail { position: sticky; top: 76px; height: calc(100vh - 76px); padding: 25px 14px; border-right: 1px solid rgba(255,255,255,.1); background: #102b45; color: #fff; }
.rail-label { padding: 0 12px 14px; color: #829aaf; }
.rail-tab { display: grid; grid-template-columns: 30px 1fr; width: 100%; padding: 13px 10px; border: 0; border-left: 2px solid transparent; background: transparent; color: #bcc8d1; cursor: pointer; text-align: left; }
.rail-tab:hover { background: rgba(255,255,255,.045); color: #fff; }
.rail-tab.active { border-left-color: #d27a69; background: rgba(255,255,255,.075); color: #fff; }
.rail-tab i { color: #6f8aa0; font-family: Consolas,monospace; font-size: 9px; font-style: normal; }
.rail-tab span { font-weight: 650; }
.rail-tab small { display: block; margin-top: 2px; color: #718ba1; font-family: Consolas,monospace; font-size: 7px; letter-spacing: .1em; }
.workspace-picker { position: absolute; right: 18px; bottom: 24px; left: 18px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14); }
.workspace-picker label { display: block; margin-bottom: 6px; color: #829aaf; font-size: 9px; }
.workspace-picker select,.workspace-picker button { width: 100%; height: 36px; border: 1px solid rgba(255,255,255,.2); border-radius: 0; background: #173b5e; color: #fff; }
.workspace-picker button { margin-top: 7px; background: transparent; cursor: pointer; }
.ops-main { min-width: 0; padding: 34px clamp(22px,4vw,58px) 70px; }
.ops-panel { display: none; animation: panel-in .18s ease-out; }
.ops-panel.active { display: block; }
@keyframes panel-in { from { opacity: 0; transform: translateY(4px); } }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid #cdd2ce; }
.section-heading h1 { margin: 4px 0 5px; color: #14202b; font-family: "Source Han Serif SC","Songti SC",serif; font-size: clamp(25px,3vw,37px); letter-spacing: .04em; }
.section-heading p { max-width: 680px; margin: 0; color: #59646d; font-size: 12px; }
button { min-height: 35px; padding: 7px 12px; border: 1px solid #b9c0bd; border-radius: 1px; background: #fffefa; color: #173b5e; cursor: pointer; font-weight: 650; }
button:hover { border-color: #173b5e; }
.primary-action { border-color: #173b5e; background: #173b5e; color: #fff; }
.primary-action:hover { background: #0d2a45; color: #fff; }
.plan-layout { display: grid; grid-template-columns: minmax(200px,270px) minmax(0,1fr); align-items: start; gap: 18px; }
.plan-list,.rule-editor,.data-panel { border: 1px solid #d4d9d5; border-top: 3px solid #173b5e; background: #fffefa; box-shadow: 0 8px 28px rgba(13,42,69,.06); }
.plan-list { position: sticky; top: 98px; max-height: calc(100vh - 125px); overflow: auto; }
.plan-row { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 68px; padding: 12px 14px; border: 0; border-bottom: 1px solid #e1e4e1; border-left: 3px solid transparent; background: transparent; text-align: left; }
.plan-row.active { border-left-color: #a94335; background: #f3f5f4; }
.plan-row span { min-width: 0; }
.plan-row b,.plan-row small { display: block; }
.plan-row b { overflow: hidden; color: #14202b; text-overflow: ellipsis; white-space: nowrap; }
.plan-row small { margin-top: 3px; color: #818a90; font-size: 9px; }
.plan-row i { padding: 2px 5px; border: 1px solid #d9ddd9; color: #59646d; font-family: Consolas,monospace; font-size: 8px; font-style: normal; }
.plan-row i.active { border-color: #9db8aa; color: #2f6b52; }
.rule-editor { padding: 22px; }
.editor-head { display: flex; justify-content: space-between; margin: -22px -22px 20px; padding: 10px 15px; border-bottom: 1px solid #d9ddd9; background: #f1f3f1; color: #818a90; font-family: Consolas,monospace; font-size: 9px; letter-spacing: .08em; }
.editor-head strong { color: #2f6b52; }
label { display: flex; flex-direction: column; gap: 5px; color: #59646d; font-size: 10px; font-weight: 650; letter-spacing: .03em; }
input,select,textarea { width: 100%; min-height: 39px; padding: 8px 10px; border: 1px solid #b9c0bd; border-radius: 0; background: #fff; color: #1b2731; outline: none; }
textarea { resize: vertical; }
input:focus,select:focus,textarea:focus { border-color: #173b5e; box-shadow: inset 0 -2px 0 #173b5e; }
.field-grid { display: grid; gap: 13px; }
.field-grid.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.field-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.region-picker-field { display: flex; grid-column: 1/-1; flex-direction: column; gap: 6px; }
.region-picker-field .field-label { color: #59646d; font-size: 10px; font-weight: 650; letter-spacing: .03em; }
.region-picker { display: grid; grid-template-columns: repeat(3,minmax(120px,1fr)) auto; gap: 6px; }
.region-picker select:disabled { background: #f0f2ef; color: #929997; cursor: not-allowed; }
.region-tags { display: flex; min-height: 27px; flex-wrap: wrap; gap: 6px; align-items: center; }
.region-chip { display: inline-flex; align-items: center; gap: 5px; min-height: 25px; padding: 3px 5px 3px 9px; border: 1px solid #b8c9d7; background: #eef3f6; color: #173b5e; font-size: 10px; }
.region-chip button { min-height: 19px; padding: 0 4px; border: 0; background: transparent; color: #6e808c; font-size: 14px; line-height: 1; }
.region-empty { color: #818a90; font-size: 10px; }
.rule-editor > label { margin: 13px 0; }
fieldset { margin: 18px 0; padding: 17px; border: 1px solid #d9ddd9; }
legend { padding: 0 8px; color: #14202b; font-family: "Source Han Serif SC","Songti SC",serif; font-size: 14px; font-weight: 700; }
legend small { margin-left: 7px; color: #2f6b52; font-family: Consolas,monospace; font-size: 8px; }
.danger-zone { border-left: 3px solid #a94335; background: #fdf9f7; }
.danger-zone legend small { color: #a94335; }
.check-field { flex-direction: row; align-items: center; align-self: end; min-height: 39px; }
.check-field input { width: 15px; min-height: 15px; accent-color: #173b5e; }
.editor-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.editor-actions .check-field:first-child { margin-left: 0; }
.preview-box { margin-top: 15px; padding: 14px; border-left: 3px solid #2f6b52; background: #edf5f1; color: #59646d; }
.preview-box strong { color: #2f6b52; font-family: "DIN Alternate",Consolas,monospace; font-size: 25px; }
.flash { position: sticky; top: 88px; z-index: 40; margin: -15px 0 17px; padding: 10px 13px; border-left: 3px solid #2f6b52; background: #edf5f1; box-shadow: 0 4px 18px rgba(13,42,69,.12); color: #2f6b52; }
.flash.error { border-color: #a94335; background: #f7ebe8; color: #a94335; }
.pending-project { display: flex; align-items: center; gap: 15px; margin-bottom: 14px; padding: 12px 15px; border-left: 3px solid #a94335; background: #fffefa; }
.pending-project span { color: #818a90; }
.kanban { display: grid; grid-template-columns: repeat(6,minmax(175px,1fr)); gap: 10px; overflow-x: auto; padding-bottom: 12px; }
.kanban-column { min-height: 440px; border: 1px solid #d5dad6; background: rgba(255,254,250,.6); }
.kanban-column > header { display: flex; justify-content: space-between; padding: 11px 12px; border-top: 3px solid #173b5e; border-bottom: 1px solid #d9ddd9; background: #fffefa; }
.kanban-column > header b { font-family: "Source Han Serif SC","Songti SC",serif; }
.kanban-column > header span { color: #a94335; font-family: Consolas,monospace; }
.kanban-column > div { padding: 8px; }
.opportunity-card { margin-bottom: 8px; padding: 11px; border: 1px solid #d9ddd9; border-left: 3px solid #8da0af; background: #fff; cursor: pointer; }
.opportunity-card.priority-high,.opportunity-card.priority-critical { border-left-color: #a94335; }
.opportunity-card small,.opportunity-card strong,.opportunity-card p { display: block; }
.opportunity-card small { color: #818a90; font-family: Consolas,monospace; font-size: 8px; text-transform: uppercase; }
.opportunity-card strong { margin: 7px 0; color: #14202b; font-size: 12px; line-height: 1.55; }
.opportunity-card p { margin: 0 0 8px; color: #59646d; font-size: 9px; }
.opportunity-card select { min-height: 29px; padding-block: 3px; font-size: 9px; }
.column-empty,.empty-state,.loading-line { padding: 24px 13px; color: #818a90; font-size: 11px; text-align: center; }
.split-panels { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-bottom: 18px; }
.data-panel { padding: 18px; }
.data-panel h2 { margin: -18px -18px 16px; padding: 12px 17px; border-bottom: 1px solid #d9ddd9; color: #14202b; font-family: "Source Han Serif SC","Songti SC",serif; font-size: 15px; }
.data-panel > label,.data-panel > .field-grid,.data-panel > p { margin-bottom: 12px; }
.data-panel > p { color: #59646d; font-size: 11px; }
.data-panel hr { margin: 18px 0; border: 0; border-top: 1px solid #d9ddd9; }
.table-list > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 51px; padding: 9px 3px; border-bottom: 1px solid #e1e4e1; }
.table-list span,.table-list b,.table-list small { display: block; }
.table-list b { color: #14202b; font-size: 11px; }
.table-list small { color: #818a90; font-size: 9px; }
.table-list i { color: #59646d; font-size: 9px; font-style: normal; }
.activity-list > div { display: grid; grid-template-columns: 128px 1fr auto; gap: 9px; padding: 9px 3px; border-bottom: 1px solid #e1e4e1; font-size: 10px; }
.activity-list time { color: #818a90; font-family: Consolas,monospace; }
.activity-list span { color: #818a90; }
.secret-output { margin-top: 12px; padding: 11px; border-left: 3px solid #a94335; background: #f7ebe8; }
.secret-output b,.secret-output code { display: block; }
.secret-output code { overflow-wrap: anywhere; margin-top: 6px; font-size: 10px; }
dialog { width: min(620px,calc(100vw - 24px)); padding: 0; border: 1px solid #b9c0bd; border-top: 3px solid #173b5e; background: #fffefa; box-shadow: 0 20px 80px rgba(6,22,35,.28); }
dialog::backdrop { background: rgba(6,22,35,.52); }
.dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 13px 16px; border-bottom: 1px solid #d9ddd9; }
.dialog-head button { min-height: 29px; border: 0; }
#dialogBody { padding: 17px; }
.dialog-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: #d9ddd9; }
.dialog-facts span { padding: 12px; background: #f3f4f1; color: #818a90; font-size: 9px; }
.dialog-facts b { display: block; margin-top: 4px; color: #14202b; font-size: 11px; }
.comments { margin: 16px 0; }
.dialog-ai { margin: 14px 0; padding: 11px; border-left: 3px solid #173b5e; background: #eef2f4; }
.dialog-ai pre { overflow: auto; max-height: 260px; white-space: pre-wrap; color: #1b2731; font-family: inherit; font-size: 10px; line-height: 1.75; }
.comments p { padding: 9px; border-bottom: 1px solid #d9ddd9; color: #59646d; }
.comments small { display: block; color: #818a90; font-size: 8px; }
#dialogBody textarea { margin-bottom: 8px; }
.auth-wall { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; background: radial-gradient(circle at 78% 18%,rgba(210,122,105,.17),transparent 31%),#102b45; color: #fff; }
.auth-card { width: min(480px,100%); padding: 38px; border: 1px solid rgba(255,255,255,.25); border-top: 3px solid #d27a69; background: rgba(9,34,55,.72); box-shadow: 0 26px 90px rgba(3,16,27,.35); }
.auth-wall span { color: #d99a8d; font-family: Consolas,monospace; font-size: 9px; letter-spacing: .13em; }
.auth-wall h1 { margin: 8px 0 9px; font-family: "Source Han Serif SC","Songti SC",serif; font-size: 34px; }
.auth-wall p { margin: 0 0 23px; color: #b7c4ce; font-size: 11px; line-height: 1.8; }
.workspace-login { display: grid; gap: 13px; }
.workspace-login label span { display: block; margin-bottom: 6px; color: #9fb1c0; }
.workspace-login input { width: 100%; height: 44px; padding: 0 12px; border: 1px solid rgba(255,255,255,.24); background: rgba(255,255,255,.07); color: #fff; outline: none; }
.workspace-login input:focus { border-color: #d27a69; box-shadow: 0 0 0 3px rgba(210,122,105,.12); }
.auth-wall-submit { min-height: 44px; border: 1px solid #d27a69; background: #a94335; color: #fff; font-weight: 600; cursor: pointer; }
.auth-wall-submit:hover { background: #bd5544; }
.auth-wall-submit:disabled { cursor: wait; opacity: .65; }
.auth-wall-error { min-height: 18px; color: #f3b6aa; font-size: 10px; }
.auth-wall .auth-wall-register { display: inline-block; margin-top: 18px; padding-bottom: 3px; border-bottom: 1px solid #8299aa; color: #b7c4ce; font-size: 10px; text-decoration: none; }
.auth-wall .auth-wall-register:hover { border-color: #fff; color: #fff; }
.mobile-workspace-tools { display:none; gap:6px; align-items:center; }
.mobile-workspace-tools select { min-width:130px; }
.pipeline-filters { display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin:0 0 16px; padding:12px; border:1px solid var(--line); background:rgba(255,255,255,.55); }
.pipeline-filters select,.pipeline-filters input,.pipeline-filters button { min-height:34px; }
.member-actions,.row-actions { display:flex; flex-wrap:wrap; gap:5px; justify-content:flex-end; }
.member-actions button,.row-actions button { min-height:30px; padding:4px 8px; }
.opportunity-editor { display:grid; gap:12px; margin:14px 0; padding:14px; border:1px solid var(--line); }
.opportunity-editor .field-grid { margin:0; }
.tag-choices { display:flex; flex-wrap:wrap; gap:8px; }
.tag-choice { display:flex; flex-direction:row; align-items:center; gap:4px; padding:5px 8px; border:1px solid #d9ddd9; background:#fff; }
.tag-choice input { width:14px; min-height:14px; }
.danger-action,.danger-link { color:#91392d; border-color:#d9aaa2; background:#fff8f6; }
.muted,.empty-inline { color:#818a90; font-size:10px; }
.comments article { padding:10px 0; border-bottom:1px solid #d9ddd9; }
.comments article header { display:flex; align-items:center; gap:8px; }
.comments article header small { margin-right:auto; }
.comments article p { margin:5px 0 0; padding:0; border:0; white-space:pre-wrap; }
.comment-actions { display:flex; gap:5px; }
.comment-actions button { min-height:27px; padding:3px 7px; }
.analysis-rendered { max-height:310px; overflow:auto; color:#1b2731; font-size:10px; line-height:1.75; }
.analysis-rendered h2,.analysis-rendered h3 { margin:12px 0 6px; }
.analysis-rendered p,.analysis-rendered ul { margin:6px 0; }
.analysis-citation { display:inline-block; padding:0 4px; border:1px solid #b8c9d7; background:#fff; color:#173b5e; }
@media (max-width:1050px) { .ops-shell { grid-template-columns: 78px minmax(0,1fr); } .ops-rail { padding-inline: 9px; } .rail-label,.rail-tab span,.workspace-picker { display:none; } .mobile-workspace-tools { display:flex; } .rail-tab { grid-template-columns:1fr; text-align:center; } .plan-layout { grid-template-columns:220px minmax(0,1fr); } .kanban { grid-template-columns:repeat(6,190px); } }
@media (max-width:760px) { .ops-header { grid-template-columns:1fr auto; min-height:66px; padding:0 13px; } .header-context { display:none; } .mobile-workspace-tools { grid-column:1/-1; width:100%; padding-bottom:8px; } .mobile-workspace-tools select { flex:1; } .ops-header nav { display:none; } .ops-shell { display:block; } .ops-rail { position:sticky; top:104px; z-index:30; display:flex; width:100%; height:auto; padding:5px; overflow-x:auto; } .rail-tab { flex:1 0 58px; } .ops-main { padding:20px 10px 50px; } .section-heading { align-items:flex-start; flex-direction:column; } .plan-layout,.split-panels { grid-template-columns:1fr; } .plan-list { position:static; max-height:220px; } .field-grid.two,.field-grid.three { grid-template-columns:1fr; } .region-picker { grid-template-columns:1fr; } .rule-editor { padding:15px; } .editor-head { margin:-15px -15px 16px; } .editor-actions { justify-content:flex-start; } .dialog-facts { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { * { animation:none!important; transition:none!important; } }
