:root{--bg:#f7f8fa;--paper:#fff;--ink:#172a3a;--muted:#697887;--line:#e7ebef;--accent:#173b52;--soft:#edf4f7;--warm:#f7f2e8;--warn:#986d36}
body{font-size:14px;line-height:1.7;letter-spacing:.1px;-webkit-font-smoothing:antialiased}
.sidebar{width:236px;background:linear-gradient(165deg,#112738,#182f40);border:0;padding:36px 20px 22px;color:#fff}
.brand{color:#fff;letter-spacing:4px;font-family:"Songti SC","STSong",serif;font-size:27px;padding:0 14px;position:relative;line-height:1.6}
.brand .brand-mark{display:block;width:36px;height:36px;font-size:22px;letter-spacing:0;color:#d5b77d;border:1px solid #bba4748c;text-align:center;line-height:34px;margin:0 0 16px}
.brand>span:last-child{font:9px/1.8 system-ui;letter-spacing:3px;color:#b7c3cd;margin-top:7px}.nav-label{margin:40px 14px 14px;font-size:10px;letter-spacing:2px;color:#8fa4b6}
nav{overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#486172 transparent}nav button{color:#b9c8d4;border:0;border-radius:7px;padding:11px 14px;margin:3px 0;font-size:13px;display:flex;align-items:center;gap:13px;transition:background .15s,color .15s}nav button:hover{background:#ffffff0b;color:#fff;filter:none}nav button.active{background:#ffffff10;color:#f4e7c9;border:1px solid #cdb98726;padding:10px 13px}nav button>span{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;opacity:1;font-size:16px}nav svg{width:17px;height:17px;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.workspace{margin-left:236px}header{height:76px;padding:0 44px;background:#fff;border-color:var(--line);font-size:12px;color:#7b8995}.header-right{gap:14px}.header-right button{font-size:12px;padding:6px 12px}.header-right #general-feedback{color:var(--accent);border-color:var(--line)}.account-avatar{width:27px;height:27px;border-radius:50%;background:#e9f0f4;position:relative;margin-left:6px}.account-avatar:after{content:'';position:absolute;inset:7px;border:1px solid #688093;border-radius:50%}
.project-bar{padding:34px 44px 26px;align-items:center;gap:24px}.eyebrow{font-size:9px;letter-spacing:2.5px;color:#8797a4}h1{font-size:28px;letter-spacing:1px;font-weight:550;margin-top:8px}h2{font-size:20px;font-weight:550;color:var(--ink)}h3{font-weight:550}.project-select{font-size:11px;letter-spacing:.5px;color:#7b8995}.project-select select{background:#fff;min-width:260px;max-width:380px;padding:10px 15px;border-radius:6px;margin-top:8px;box-shadow:0 2px 4px #172a3a03}
.main-grid{display:block;padding:0 44px 48px;max-width:1800px;margin:0 auto}.panel{padding:30px;border:1px solid #e8edf1;border-radius:10px;margin-bottom:24px;box-shadow:0 3px 16px #173b5203}.home-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:4px 0 20px}.home-heading h2{font-family:"Songti SC","STSong",serif;font-size:24px;font-weight:600;margin:7px 0 0;letter-spacing:1px}.project-version{font-size:11px;color:#7d8a96;padding:5px 12px;background:#fff;border:1px solid var(--line);border-radius:20px}
.hero{border-radius:11px;margin:0 0 24px;background:#e9eef2;min-height:0;box-shadow:0 12px 32px #1834470b}.hero img{width:100%;height:clamp(390px,35vw,610px);object-fit:cover;object-position:center 52%}.hero-caption{background:linear-gradient(0deg,#0b1d2cdb,transparent);padding:60px 34px 28px;display:block}.hero-caption>span{font-size:11px;letter-spacing:1px;color:#dce5ec}.hero-caption h2{font-family:"Songti SC","STSong",serif;color:white;font-size:26px;margin:7px 0 0;letter-spacing:2px;font-weight:450}.hero-action{position:absolute;right:30px;bottom:30px;background:#fffffff0;color:#173b52;border:0;font-size:12px;border-radius:5px;padding:11px 18px}.hero-action span{margin-left:18px}
.home-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:28px}.action-tile{background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:22px 20px;display:flex;align-items:center;text-align:left;gap:15px;white-space:normal;box-shadow:0 3px 15px #173b5203;transition:transform .15s,border-color .15s}.action-tile:hover{filter:none;transform:translateY(-2px);border-color:#b9c9d3}.tile-number{font-family:Georgia,serif;color:#b7a074;font-size:24px;font-weight:400}.tile-copy{display:flex;flex-direction:column;gap:5px;min-width:0}.tile-copy strong{font-size:14px;font-weight:550}.tile-copy small{font-size:11px;color:#788894}.tile-arrow{margin-left:auto;font-size:17px;color:#7a8a96}.recent-feedback .toolbar{margin-bottom:2px}.recent-feedback .source-row{padding:17px 0}
button{border-radius:6px;padding:10px 17px;font-weight:500;box-shadow:none;transition:background .15s,box-shadow .15s}button:hover{filter:brightness(1.08)}button:focus-visible,a:focus-visible{outline:3px solid #bb9e65;outline-offset:3px}.quiet,.outline{color:#36556a;border-color:#dde5eb;background:#fff}.quiet:hover,.outline:hover{background:#f2f6f8;filter:none}.small{font-weight:450}.muted{color:#71818e;font-size:12px}.tag{border-radius:4px;padding:3px 9px;background:#eef4f7;color:#48687d;font-size:10px}.tag.warn{background:#faf4e9;color:#8d6f3a}.note{border:0;border-left:2px solid #d2bc91;background:#faf8f3;color:#786c55;border-radius:0 5px 5px 0;padding:12px 16px}.toolbar{gap:16px;margin-bottom:22px}.toolbar h2{margin-bottom:0}
.cards{gap:22px}.project-card{border-radius:10px;padding:30px;min-height:200px;border:1px solid var(--line);box-shadow:0 4px 16px #173b5204}.project-card h3{font-size:19px;line-height:1.5;margin:18px 0 12px}.project-card .outline{margin-top:20px}.source-row,.task-row{border-color:#edf0f3}.source-row .muted{overflow-wrap:anywhere}.task-row{padding:24px 0}.task-row h3{font-size:16px;line-height:1.7;margin:12px 0 7px}.task-row>p{max-width:880px;color:#536676}.task-meta{font-size:11px;color:#7c8c98}.task-row .actions{gap:10px}.history{color:#6e7f8d;line-height:1.9}
input,select,textarea{border-color:#dfe6ec;border-radius:6px;color:#263e50;padding:11px 13px;background:#fff}input:focus,textarea:focus,select:focus{outline:2px solid #aec3d2;outline-offset:1px;border-color:#8fa9bd}textarea{min-height:104px;line-height:1.8}.field{color:#506779!important;font-size:12px!important}.form-grid{gap:5px 25px}.upload{background:#fbfcfd;border:1px dashed #cedae3;border-radius:8px;padding:26px}.upload input{padding:7px}.empty{background:#fbfcfd;border:1px dashed #cedae3;border-radius:8px;color:#7e8e9b;padding:46px}.tabs button{border-radius:5px;color:#648095}.tabs button.active{background:#173b52;color:white}
.image-card{border-radius:9px;overflow:hidden;border-color:var(--line);box-shadow:0 4px 20px #173b5204}.image-card img{background:#f3f6f8;height:260px}.image-card .info{padding:22px}.gallery{gap:24px}.gallery .image-card:first-child img{height:auto;max-height:none;object-fit:contain}.compare{gap:22px}.compare>div{min-width:0}.compare figure{background:#f7f9fa;padding:9px;border-radius:7px}.compare img{border-radius:4px}.compare figcaption{padding:10px 2px 2px}.case,.knowledge-rule{border-color:var(--line);border-radius:7px}.knowledge-rule{padding:22px 12px}.case{background:#fff;padding:26px}.compact-table{table-layout:fixed}.compact-table td,.compact-table th{overflow-wrap:anywhere;padding:16px 12px;border-color:#eaf0f4}.compact-table th{background:#f8fafb;color:#708390;font-size:11px}.inline-link{border-color:#c7d6df}.room-row{padding:20px 0;border-color:var(--line)}details{border-color:#e3ebf0;border-radius:6px;padding:16px}summary{color:#5f7789}pre{font:11px/1.7 ui-monospace,monospace;overflow-wrap:anywhere;word-break:break-word}
dialog{border:1px solid #dde5eb;border-radius:12px;padding:30px;box-shadow:0 28px 100px #061a2d33}dialog::backdrop{background:#0b1d2b80;backdrop-filter:blur(3px)}.dialog-top{background:#fff;padding:16px 22px;border-bottom:1px solid var(--line)}#image-dialog{border-radius:10px}.image-scroll{background:#eff3f6}.error{background:#fff0ed;color:#a34436;border-radius:6px}.login{background:#f4f7f9}.login-box{border-radius:12px;background:#fff;border:1px solid #e0e8ee;box-shadow:0 20px 80px #173b5210}.login-box h1{font-family:"Songti SC",serif;font-size:32px}#toast{background:#15374d;border-radius:7px;box-shadow:0 8px 30px #0e2a4230}
@media(min-width:1650px){.sidebar{width:250px;padding:40px 24px}.workspace{margin-left:250px}.project-bar,header{padding-left:54px;padding-right:54px}.main-grid{padding-left:54px;padding-right:54px}.hero img{height:560px}.action-tile{padding:25px}.hero-caption h2{font-size:30px}}
@media(max-width:1350px){.sidebar{width:210px;padding-left:15px;padding-right:15px}.workspace{margin-left:210px}.project-bar,header{padding-left:32px;padding-right:32px}.main-grid{padding-left:32px;padding-right:32px}.home-actions{gap:12px}.action-tile{padding:20px 14px;gap:10px}.tile-copy small{font-size:10px}.hero img{height:430px}.hero-caption h2{font-size:24px}}
@media(max-width:1050px){.home-actions{grid-template-columns:1fr 1fr}.hero-action{position:static;margin-top:15px}.project-bar{align-items:flex-start}.hero-caption{padding-left:25px}.hero img{height:420px}.gallery,.cards{grid-template-columns:1fr}}
@media(max-width:850px){.sidebar{position:static;width:auto;padding:20px}.brand .brand-mark,.nav-label{display:none}.brand{font-size:24px}.brand>span:last-child{margin-top:2px}nav{display:flex;margin-top:18px;overflow:auto}nav button{width:auto;white-space:nowrap;padding:8px 10px}nav button.active{padding:7px 9px}.workspace{margin-left:0}.main-grid{padding:0 20px 30px}.project-bar,header{padding:22px 20px}.header-right{gap:8px}.project-select select{min-width:160px}.home-heading h2{font-size:21px}.hero img{height:360px}.hero-caption h2{font-size:22px}.panel{padding:22px}.home-actions{grid-template-columns:1fr 1fr}.tile-number{font-size:21px}.tile-copy small{display:none}.project-bar h1{font-size:23px}.gallery .image-card:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.file-toolbar{display:flex;align-items:center;gap:18px;margin:4px 0 26px}.file-tabs{display:flex;gap:6px;flex:1}.file-tabs button{border:0;color:#7c8c98;padding:9px 15px}.file-tabs .selected{background:#e7eef3;color:#173b52}.file-search input{width:220px;margin:0;background:#fff}.file-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.file-card{min-width:0;border:1px solid #e3e9ee;background:#fff;border-radius:12px;transition:box-shadow .18s,border-color .18s}.file-card:hover{border-color:#c2d1dc;box-shadow:0 8px 24px #193a500a}.file-cover{display:flex;position:relative;aspect-ratio:4/3;align-items:center;justify-content:center;background:#edf1f4;overflow:hidden;border-radius:11px 11px 0 0}.file-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s}.file-cover:hover img{transform:scale(1.025)}.file-open{position:absolute;bottom:14px;right:14px;background:#fffef5ed;color:#234258;padding:5px 10px;border-radius:5px;font-size:11px;opacity:0;transition:opacity .15s}.file-cover:hover .file-open,.file-cover:focus .file-open{opacity:1}.file-caption{display:flex;align-items:center;gap:8px;padding:17px 18px}.file-caption>div{min-width:0;flex:1}.file-caption h3{font-size:13px;margin:0 0 5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#294253}.file-caption p{font-size:11px;color:#83939e;margin:0}.file-caption p span{margin:0 5px}.file-sheet{width:78px;height:100px;border:1px solid #d9e1e7;background:#fff;border-radius:5px;padding:18px 13px;box-shadow:0 5px 12px #1d394b07;transform:rotate(-4deg)}.file-sheet>span{display:block;font-size:14px;font-weight:600;color:#9b7864;margin-bottom:14px;letter-spacing:1px}.file-sheet i{display:block;height:3px;background:#e4eaf0;margin:6px 0}.file-sheet i:last-child{width:60%}.file-cover.cad{background:#eaf0f3}.cad .file-sheet>span{color:#527b91}.file-menu{position:relative;margin:0;border:0;padding:0;flex-shrink:0}.file-menu summary{list-style:none;cursor:pointer;font-size:23px;line-height:30px;padding:0 5px;color:#6b8394;border-radius:5px}.file-menu summary::-webkit-details-marker{display:none}.file-menu[open] summary,.file-menu summary:hover{background:#edf2f6}.file-menu>div{position:absolute;right:0;top:36px;z-index:10;width:140px;padding:7px;background:#fff;border:1px solid #e1e8ed;border-radius:8px;box-shadow:0 8px 28px #12344d1a}.file-menu a,.file-menu button{display:block;padding:9px 12px;width:100%;text-align:left;border:0;font-size:12px;color:#345266;background:transparent}.file-menu a:hover,.file-menu button:hover{background:#f1f5f8;text-decoration:none}.file-toolbar+#file-upload-panel{margin-bottom:24px}@media(max-width:1650px){.file-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1100px){.file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.file-toolbar{flex-wrap:wrap}.file-tabs{flex-basis:100%}.file-search{flex:1}.file-search input{width:100%}}@media(max-width:600px){.file-grid{grid-template-columns:1fr}}
.portfolio-intro{display:flex;justify-content:space-between;align-items:center;padding:6px 0 30px}.portfolio-intro h2{font-size:30px;letter-spacing:1px;margin:10px 0}.portfolio-intro p{color:#71818e;font-size:13px}.portfolio-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:28px}.portfolio-stat{background:#fff;border:1px solid #e5ebf0;border-radius:12px;padding:23px 26px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s}.portfolio-stat:hover{text-decoration:none;border-color:#9eb5c6}.portfolio-stat>span{font-size:12px;color:#6f8190}.portfolio-stat strong{font-size:34px;font-weight:500;line-height:1.3;color:#18394e}.portfolio-stat small{font-size:12px;font-weight:400;color:#8b9aa5;margin-left:12px}.portfolio-projects .toolbar h2{margin-bottom:4px}.portfolio-table{width:100%}.portfolio-row{display:grid;grid-template-columns:minmax(160px,1.5fr) 110px minmax(250px,1.5fr) 48px 90px 100px;gap:18px;align-items:center;border-top:1px solid #edf1f4;padding:25px 0}.portfolio-row h3{margin:0 0 7px;font-size:15px}.portfolio-row time{font-size:11px;color:#7a8c98}.portfolio-table-head{font-size:11px;color:#82919c;border-top:0;padding:10px 0 16px}.stage-pill{display:inline-block;background:#edf3f7;color:#284f69;border-radius:5px;padding:5px 10px;font-size:12px}.portfolio-row small{display:block;margin-top:8px}.milestone-strip{display:flex;flex-wrap:wrap;gap:6px}.milestone-strip span{border:1px solid #e6ebef;border-radius:4px;padding:4px 7px;color:#99a5ae;font-size:10px}.milestone-strip .recorded{background:#edf4f4;border-color:#d4e5e4;color:#39716d}.pending-count{color:#214c68;font-size:18px}.portfolio-bottom{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.portfolio-task,.portfolio-event{width:100%;background:transparent;color:#294759;border:0;border-top:1px solid #edf1f4;border-radius:0;padding:20px 0;display:flex;text-align:left;gap:13px;align-items:center;white-space:normal}.portfolio-task>span:nth-child(2),.portfolio-event>span:nth-child(2){flex:1;min-width:0}.portfolio-task strong,.portfolio-event strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;font-weight:500;line-height:1.8}.portfolio-task small,.portfolio-event small{display:block;font-size:11px;color:#82919c;margin-top:4px}.portfolio-event strong{margin-top:6px}.task-dot{width:6px;height:6px;border-radius:50%;background:#8098a8}.task-dot.urgent{background:#b98a64}.task-status,.event-date{font-size:11px;color:#82919c;flex-shrink:0}.portfolio-empty{padding:34px 0;color:#8a99a3;font-size:13px}.portfolio-task:hover,.portfolio-event:hover{filter:none;color:#116486;background:#fafcfd}.portfolio-bottom .panel{min-width:0}
@media(max-width:1500px){.portfolio-row{grid-template-columns:minmax(150px,1.4fr) 100px minmax(160px,1fr) 34px 80px 90px;gap:12px}.milestone-strip{gap:4px}.milestone-strip span{padding:3px 5px}.portfolio-row h3{font-size:13px}}@media(max-width:1150px){.portfolio-table{overflow-x:auto}.portfolio-row{min-width:850px}.portfolio-bottom{grid-template-columns:1fr}.portfolio-stats{gap:10px}.portfolio-stat{padding:20px 16px}}@media(max-width:700px){.portfolio-stats{grid-template-columns:repeat(2,1fr)}.portfolio-intro{gap:16px;align-items:flex-start}.portfolio-intro h2{font-size:23px}}
.source-disclosure{padding:12px 0;border:0;border-top:1px solid #edf1f5;border-radius:0;margin:14px 0 18px;color:#637c8f;font-size:12px}.source-disclosure p{color:#71818e}.source-disclosure summary{font-size:11px;color:#71818e}.recent-feedback .source-row>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;line-height:1.9}.image-card .toolbar{margin-bottom:12px}.image-card .actions{align-items:center;gap:18px}
