:root{--blue:#3278ed;--ink:#243247;--muted:#758398;--line:#e3e9f2;--bg:#f5f7fb;--soft:#edf4ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.6 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;color:var(--ink)}button,input,select{font:inherit}button,summary{cursor:pointer}button{background:white;color:#51617a;border:1px solid #d8e1ee;border-radius:7px;padding:8px 14px;white-space:nowrap}button:hover{background:#f4f8ff;border-color:#9cbcf4}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--blue);color:white;border-color:var(--blue)}button.link{border:0;background:transparent;color:var(--blue);padding:3px 0}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}aside{width:220px;background:white;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:28px 16px;display:flex;flex-direction:column;z-index:5}.logo{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:650;padding:0 10px 24px}.logo em{font-size:20px;background:var(--blue);color:white;font-style:normal;width:32px;height:32px;text-align:center;border-radius:8px}.navgroup{font-size:11px;color:#9aa6b8;padding:18px 12px 7px;letter-spacing:1px}nav button{border:0;width:100%;text-align:left;padding:11px 14px;margin:2px 0;background:transparent}nav button.active{background:var(--soft);color:var(--blue);font-weight:600}.sidefoot{margin-top:auto;padding:18px 10px 0;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.sidefoot a{color:var(--blue)}main{margin-left:220px}header.top{height:78px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:16px}.project{font-size:15px;font-weight:600}.crumb{font-size:12px;color:var(--muted)}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.platforms{background:#f1f4f9;border-radius:9px;padding:4px;display:flex;gap:3px}.platforms button{border:0;background:transparent;padding:7px 20px}.platforms button.active{color:var(--blue);background:white;box-shadow:0 1px 4px #2432470a;font-weight:600}.content{max-width:1580px;margin:auto;padding:26px 34px 40px}h1{font-size:23px;margin:0;font-weight:650;letter-spacing:-.5px}h2{font-size:16px;margin:0}h3{font-size:14px;margin:0}p{margin:6px 0}small,.muted{color:var(--muted);font-size:12px}.pagehead{margin-bottom:22px}.pill{display:inline-block;border-radius:5px;padding:3px 8px;font-size:11px;background:var(--soft);color:var(--blue);font-weight:500}.pill.gray{background:#f0f3f7;color:#758398}.pill.orange{background:#fff4e6;color:#ad7328}.pill.red{background:#fff0f0;color:#c96161}.pill.green{background:#edf5f1;color:#528b71}.panel{background:white;border:1px solid var(--line);border-radius:11px;margin-bottom:18px;padding:22px}.goalheader{margin-bottom:22px}.metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px}.metric:not(:last-child){border-right:1px solid var(--line);padding-right:20px}.metric .value{font-size:28px;font-weight:650;font-variant-numeric:tabular-nums;margin:7px 0 3px;line-height:1.2}.metric .track{height:5px;background:#edf1f7;border-radius:5px;margin:14px 0 8px;overflow:hidden}.track i{display:block;background:var(--blue);height:100%;border-radius:5px}.subgoals{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}summary{color:#61718a;font-size:12px}.subgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px}.subcard{padding:16px;border:1px solid var(--line);border-radius:7px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:18px 0}.stat{background:white;border:1px solid var(--line);border-radius:9px;padding:16px 20px}.stat b{font-size:24px;margin-right:10px;display:inline-block}.filter{display:flex;gap:12px;align-items:center;margin:18px 0}.filter input{flex:1;min-width:140px}.filter select{min-width:140px}input,select{border:1px solid #d7e1ef;border-radius:7px;padding:10px 12px;background:white;color:#44546c;min-width:0}input[type=checkbox]{accent-color:var(--blue);width:16px;height:16px;vertical-align:middle}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;min-width:820px}th{text-align:left;background:#f7f9fc;color:#7b889c;font-weight:500;padding:12px 14px;border-bottom:1px solid var(--line)}td{padding:17px 14px;border-bottom:1px solid #eaf0f6;vertical-align:top;line-height:1.8}td strong{font-size:13px}td small{display:block}tbody tr:hover{background:#fbfcff}.notice{background:#f7faff;border:1px solid #dfebfd;border-radius:8px;padding:13px 17px;margin-bottom:18px;color:#5d7396;font-size:12px}.notice.warn{background:#fffcf5;border-color:#f1e6d0;color:#94703b}.twocol{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px}.steps{display:flex;gap:20px;margin:4px 0 22px}.steps span{flex:1;font-size:12px;color:#91a0b5;border-bottom:3px solid #e7edf6;padding-bottom:10px}.steps span.active{color:var(--blue);border-color:var(--blue)}.ruleblock{border-bottom:1px solid var(--line);padding:16px 0}.ruleblock:last-child{border:0}.minigrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.minigrid div{background:#f7f9fc;border-radius:6px;padding:12px}.minigrid b{display:block;margin-top:4px}.empty{padding:32px;text-align:center;color:#7b889c}.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.flow>div{border:1px solid var(--line);border-radius:8px;padding:18px}.flow em{font-style:normal;color:var(--blue);display:block;font-size:12px;margin-bottom:8px}.matrix td:first-child{width:23%;font-weight:600}.checkboxline{display:flex;gap:8px;align-items:center;margin:12px 0}.tagline{font-size:11px;color:#91a0b5;margin-top:6px}.sectiontitle{margin:20px 0 12px}dialog{border:0;border-radius:12px;padding:0;width:min(1260px,calc(100vw - 48px));max-width:calc(100vw - 48px);max-height:calc(100dvh - 48px);color:var(--ink);box-shadow:0 12px 60px #1d355426}dialog::backdrop{background:#1d2d4655}.dialoghead{position:sticky;top:0;background:white;border-bottom:1px solid var(--line);padding:18px 24px;z-index:3}.dialogbody{padding:24px;max-height:calc(100dvh - 210px);overflow:auto}.dialogfoot{background:white;border-top:1px solid var(--line);padding:16px 24px;display:flex;gap:12px;align-items:center;justify-content:space-between}.actionsbox{background:#f8faff;border:1px solid var(--line);border-radius:9px;padding:16px}.action{border-bottom:1px solid var(--line);padding:15px 0}.action:first-child{padding-top:0}.action select,.action input{width:100%;margin-top:8px}.actionrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actionrow input{width:100%}#toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#243247;color:white;padding:10px 22px;border-radius:8px;display:none;z-index:20}.choice{padding:18px;border:1px solid var(--line);border-radius:8px;margin:12px 0}.choice ul{color:#758398;font-size:12px;padding-left:20px}.keyrow{display:grid;grid-template-columns:1fr 1fr;gap:16px}.source{border-left:3px solid #d8e5fb;padding:8px 12px;font-size:12px;color:#7b889c;margin:12px 0}.spacer{height:8px}@media(min-width:1600px){.content{padding-top:32px}.panel{padding:26px}.pagehead{margin-bottom:26px}}@media(max-width:1100px){aside{width:176px;padding:20px 10px}.logo{font-size:15px;gap:6px;padding-left:4px}main{margin-left:176px}.content{padding:24px}.metrics{gap:12px}.metric .value{font-size:23px}header.top{padding:0 24px}.twocol{grid-template-columns:1fr}.flow{grid-template-columns:1fr 1fr}}@media(max-width:720px){aside{position:static;width:auto;padding:12px;border-right:0;border-bottom:1px solid var(--line)}.logo{padding:0 0 8px}.navgroup,.sidefoot{display:none}nav{display:flex;overflow:auto}nav button{width:auto;white-space:nowrap;margin:0;padding:7px 12px}.content{padding:18px 14px}main{margin:0}header.top{height:auto;min-height:100px;padding:12px 14px;flex-wrap:wrap}.platforms{width:100%;justify-content:space-between}.platforms button{flex:1;padding:7px 10px}.metrics{grid-template-columns:1fr 1fr;gap:18px}.metric:not(:last-child){border:0;padding:0}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:12px}.filter{flex-wrap:wrap}.filter>*{flex:1}.panel{padding:18px 14px}.subgrid,.keyrow,.flow{grid-template-columns:1fr}.pagehead{align-items:flex-start}.dialogbody{padding:16px}.dialoghead,.dialogfoot{padding:14px 16px}.dialogfoot{flex-wrap:wrap}dialog{max-width:calc(100vw - 20px);width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.dialogbody{max-height:calc(100dvh - 235px)}}
aside nav{overflow:auto;min-height:0;flex:1}aside{padding-top:20px;padding-bottom:16px}aside .logo{padding-bottom:10px}aside nav button{padding:8px 14px;margin:1px 0}.navgroup{padding-top:12px}.sidefoot{font-size:11px;padding-top:12px}.view-tabs{margin-bottom:16px}.legacy-frame{width:100%;height:calc(100dvh - 275px);min-height:660px;border:1px solid var(--line);border-radius:9px;background:var(--bg)}dialog .legacy-frame{height:70dvh;min-height:450px}.daily-metrics{margin-top:16px}.daily-metrics .value{font-size:23px}.time-panel{background:#f8faff;padding:18px}.time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.time-grid label{display:flex;flex-direction:column;gap:5px;color:#65748b;font-size:12px}.time-grid input,.time-grid select{width:100%}.time-panel #plan-material{display:block;min-width:260px;margin-top:7px}.time-panel .notice{margin-top:12px;margin-bottom:10px}.dialogbody:has(.time-panel){max-height:calc(100dvh - 200px)}@media(max-width:1000px){.time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){aside nav{flex:none}aside .sidefoot{display:none}aside .logo{padding-bottom:8px}aside nav button{padding:7px 12px}.legacy-frame{min-height:720px}.time-grid{grid-template-columns:1fr 1fr}.daily-metrics .value{font-size:21px}.view-tabs{gap:7px}.view-tabs button{font-size:12px}}
.context-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.context-controls label{font-size:12px;color:#758398;display:grid;gap:3px}.context-controls select{min-width:100px;padding:7px 24px 7px 8px;font-size:13px}.top{gap:14px;flex-wrap:wrap}aside nav{overflow-y:auto;max-height:calc(100vh - 190px)}.spec-note{border-left:3px solid #80a8f5;padding:8px 12px;background:#f2f6ff;font-size:12px;line-height:1.7;margin:12px 0}.formgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.formgrid label{display:grid;gap:6px;font-size:13px}.formgrid input,.formgrid select,.formgrid textarea{width:100%}.compact{font-size:12px}.inline-error{color:#b44747;margin:10px 0;white-space:pre-line}details.logic{margin:12px 0;color:#687891;font-size:12px}details.logic summary{cursor:pointer;color:#416fc6}
