:root{--ink:#17212b;--muted:#6b7785;--line:#e7ebef;--paper:#fff;--bg:#f5f7f8;--accent:#176b5b;--accent2:#e3f2ed;--danger:#bd3b3b;--shadow:0 12px 35px rgba(27,43,52,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif}.topbar{height:68px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1180px)/2));position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:750;text-decoration:none}.brand-mark,.login-logo{display:grid;place-items:center;background:var(--accent);color:white;border-radius:10px;font-family:serif}.brand-mark{width:34px;height:34px}.topbar nav{display:flex;align-items:center;gap:22px}.topbar nav a,.link-button{color:#45515d;text-decoration:none;font:inherit;border:0;background:none;cursor:pointer}.topbar nav form{margin:0}.user-name{color:var(--muted);padding-left:15px;border-left:1px solid var(--line)}.page{max-width:1180px;margin:0 auto;padding:42px 28px 80px}.hero{min-height:250px;background:linear-gradient(120deg,#143f39,#176b5b 58%,#278878);border-radius:22px;color:#fff;padding:45px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow);overflow:hidden;position:relative}.hero:after{content:"文";position:absolute;right:50px;top:-45px;font:260px/1 serif;color:rgba(255,255,255,.055)}h1,h2,h3,p{margin-top:0}.hero h1,.title-row h1,.preview-head h1{font-size:36px;margin:7px 0 10px}.hero p{color:#cce1dc}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;opacity:.75}.search{display:flex;max-width:620px;position:relative;z-index:1}.search input{flex:1;border:0;border-radius:11px 0 0 11px;padding:15px 18px;font-size:15px;outline:0}.search button{border:0;background:#102e2a;color:white;padding:0 24px;border-radius:0 11px 11px 0;cursor:pointer}.section{margin-top:38px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-head h2{margin:0;font-size:21px}.section-head>span,.section-head>a{color:var(--muted);font-size:14px}.department-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.department-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;align-items:center;gap:15px;text-decoration:none;color:var(--ink);transition:.2s}.department-card:hover,.project-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#d7dfdc}.department-icon{width:45px;height:45px;border-radius:13px;background:#e8f3f0;color:var(--accent);display:grid;place-items:center;font-weight:800}.tone-2 .department-icon,.tone-5 .department-icon{background:#eef0fa;color:#4d5fab}.tone-3 .department-icon{background:#fff1e5;color:#bd6b28}.tone-4 .department-icon{background:#f7eaf1;color:#9c4e76}.tone-6 .department-icon{background:#eef0f2;color:#65717b}.department-card h3{font-size:16px;margin:0 0 5px}.department-card p{font-size:13px;color:var(--muted);margin:0}.department-card b{margin-left:auto;color:#9da7af}.document-table,.project-list{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}.document-row,.project-row{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}.document-row:last-child,.project-row:last-child{border-bottom:0}.grow{flex:1;min-width:0}.document-row strong,.document-row small,.project-row strong,.project-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-row small,.project-row small{font-size:12px;color:var(--muted);margin-top:5px}.file-badge,.project-icon{width:42px;height:42px;background:#eef3f2;color:var(--accent);border-radius:10px;display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}.muted{font-size:12px;color:var(--muted)}.button,.primary{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:10px 15px;text-decoration:none;font-weight:650;font-size:13px;cursor:pointer;white-space:nowrap}.primary{background:var(--accent);color:#fff}.ghost{background:#f2f5f5;color:#34443f}.danger{background:#fff0f0;color:var(--danger)}.crumb{display:flex;gap:9px;color:var(--muted);font-size:13px;margin-bottom:28px}.crumb a{color:var(--muted);text-decoration:none}.title-row,.preview-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:32px}.title-row p,.preview-head p{color:var(--muted);margin:0}.project-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.project-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px;text-decoration:none;color:var(--ink);transition:.2s}.project-card-top{display:flex;align-items:center;justify-content:space-between}.tag{display:inline-block;background:#eef2f2;color:#64716e;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750}.project-card h3{margin:20px 0 9px}.project-card p{height:42px;color:var(--muted);font-size:13px;line-height:1.6;overflow:hidden}.project-card footer{display:flex;justify-content:space-between;color:#8b949c;font-size:11px;border-top:1px solid var(--line);padding-top:15px;margin-top:18px}.empty{text-align:center;color:var(--muted);padding:28px}.empty.large{grid-column:1/-1;padding:75px;background:#fff;border:1px dashed #d8dfe2;border-radius:16px}dialog{border:0;border-radius:18px;padding:0;width:min(500px,calc(100vw - 35px));box-shadow:0 30px 80px rgba(0,0,0,.24)}dialog::backdrop{background:rgba(13,24,30,.48);backdrop-filter:blur(3px)}.dialog-form{padding:27px;display:flex;flex-direction:column;gap:17px}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{margin:0}.dialog-head button{font-size:25px;background:none;border:0;cursor:pointer;color:var(--muted)}label{font-size:13px;font-weight:650;color:#46525c}input,textarea,select{display:block;width:100%;margin-top:8px;padding:12px 13px;border:1px solid #dce2e5;border-radius:9px;background:#fff;color:var(--ink);font:inherit;outline:none}input:focus,textarea:focus,select:focus{border-color:#63a397;box-shadow:0 0 0 3px #e5f1ee}.wide{width:100%;padding:13px}.upload-zone{border:1px dashed #b9cac6;border-radius:12px;padding:20px;background:#f7faf9}.upload-zone input{border:0;padding:0}.upload-zone span{display:block;color:var(--muted);font-weight:400;margin-top:10px}.login-page{max-width:none;min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#d9ece7,transparent 35%),#f4f7f6;padding:25px}.login-card{width:min(410px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:42px;box-shadow:var(--shadow)}.login-logo{width:52px;height:52px;font-size:23px;margin-bottom:25px}.login-card h1{margin-bottom:9px}.login-card>p{color:var(--muted);font-size:14px;margin-bottom:28px}.stack-form{display:flex;flex-direction:column;gap:18px}.flash{padding:13px 16px;border-radius:10px;margin-bottom:18px}.flash.success{background:#e6f4ed;color:#206b52}.flash.error{background:#fff0ef;color:#a43b36}.avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#dcebe7;color:var(--accent);font-weight:800}.users-table{max-width:850px}.office-preview{background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);max-width:900px;margin:auto;padding:65px}.office-preview pre{white-space:pre-wrap;font:15px/1.9 "Microsoft YaHei",sans-serif;color:#29333b}.error-card{text-align:center;padding:100px 20px}.error-card>strong{font-size:80px;color:#cdd5d8}.error-card h1{margin:10px 0 30px}@media(max-width:850px){.department-grid,.project-cards{grid-template-columns:1fr 1fr}.hero{padding:30px}.document-row{align-items:flex-start;flex-wrap:wrap}.muted{width:100%;padding-left:56px}.topbar nav>a{display:none}.project-title{align-items:flex-start}.office-preview{padding:30px}}@media(max-width:580px){.page{padding:25px 16px 60px}.department-grid,.project-cards{grid-template-columns:1fr}.hero h1,.title-row h1{font-size:28px}.title-row{align-items:flex-start;gap:22px;flex-direction:column}.title-row .primary{width:100%}.search{flex-direction:column;gap:8px}.search input,.search button{border-radius:9px;padding:13px}.topbar{padding:0 16px}.user-name{display:none}.login-card{padding:30px 24px}.office-preview{padding:20px}.document-row .button{flex:1}.document-row form{flex:1}.document-row form .button{width:100%}}

