
:root{--blue:#073b72;--blue2:#0b4e8c;--green:#22c77a;--gray:#939aa2;--line:#dce1e6;--bg:#f4f6f8;--danger:#c83333}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;background:var(--bg);color:#333}a{text-decoration:none;color:var(--blue)}button,input,textarea,select{font:inherit}
.topbar{min-height:62px;background:var(--blue);color:#fff;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:8px 14px;position:sticky;top:0;z-index:20}.topbar a{color:#fff}.mini-logo{font-weight:800;line-height:1}.mini-logo small{display:block;font-size:9px}.system-title{text-align:center;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-actions{display:flex;gap:7px;align-items:center;font-size:12px}
.page{max-width:920px;margin:auto;padding:14px 10px 85px}.wide-page{padding:12px 8px 30px}.toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.search{display:flex;flex:1;min-width:220px}.search input{min-width:0;flex:1;border:1px solid var(--line);padding:11px}.search button{border:0;background:var(--blue);color:#fff;padding:0 15px}
.btn{border:0;padding:10px 14px;display:inline-flex;justify-content:center;align-items:center;cursor:pointer}.btn.primary{background:var(--blue);color:#fff}.btn.secondary{background:#e4edf6;color:var(--blue)}.btn.outline{border:1px solid currentColor;background:transparent}.btn.tiny{padding:6px 8px}.btn.danger{background:var(--danger);color:#fff}.full-width{width:100%}
.project-card{background:#fff;border:1px solid #14518c;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.04)}.card-head,.section-head{width:100%;border:0;background:var(--blue);color:#fff;min-height:42px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.title-main{font-weight:700;flex:1}.title-meta{font-size:12px;opacity:.9;margin:0 10px}.chevron{font-size:20px}.collapse-body{display:none}.collapse-body.open{display:block}.quick-line{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:9px 12px;background:#eef4fa;font-size:12px}
.info-grid{display:grid;grid-template-columns:1fr 1fr}.info-grid>div{padding:8px 11px;border-bottom:1px solid #e8ebee;word-break:break-word}.info-grid .wide{grid-column:1/-1}
.workflow{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:13px 5px}.workflow form{margin:0}.step{width:100%;border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px 1px;cursor:pointer}.step span{font-size:12px;text-align:center}.step i{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--gray);color:#fff;font-style:normal;font-weight:700}.step.done i{background:var(--green)}.step small{font-size:9px;color:#888;text-align:center;min-height:29px;line-height:1.35}.doc-summary{display:flex;flex-wrap:wrap;gap:10px;padding:9px 11px;border-top:1px solid var(--line);font-size:12px}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #ccc;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;min-height:62px;z-index:30}.bottom-nav a{display:grid;place-items:center;color:#333;font-size:12px}.bottom-nav a.active{color:var(--blue);font-weight:700}
.customer-form{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:13px}.customer-form label{display:flex;flex-direction:column;gap:5px;font-size:12px}.customer-form input,.customer-form textarea,.admin-title input,.permission-form input[type=text]{border:1px solid var(--line);padding:10px;width:100%}.customer-form textarea{min-height:72px}.customer-form .full{grid-column:1/-1}.audit-strip{font-size:12px;color:#666;background:#f2f5f7;padding:10px 13px;line-height:1.6;word-break:break-all}
.upload-form{display:flex;gap:8px;padding:12px;flex-wrap:wrap}.upload-form input{flex:1;min-width:190px;border:1px solid var(--line);padding:8px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 12px 12px}.file-card{border:1px solid var(--line);padding:7px;min-width:0}.file-card img{width:100%;height:170px;object-fit:contain;background:#f2f2f2;display:block}.file-icon{height:120px;display:grid;place-items:center;font-size:50px;background:#f2f2f2}.file-info{display:flex;flex-direction:column;gap:4px;margin-top:6px}.file-info a{word-break:break-all;font-size:12px}.file-info small{font-size:10px;color:#777}.danger-link{border:0;background:transparent;color:var(--danger);padding:5px 0;cursor:pointer}
.progress-scroll{overflow:auto;max-height:calc(100vh - 90px);background:#fff}.progress-table{border-collapse:collapse;min-width:1500px;width:100%}.progress-table th,.progress-table td{border:1px solid var(--line);padding:8px;text-align:center;min-width:115px}.progress-table th{background:var(--blue);color:#fff;position:sticky;top:0;z-index:2}.progress-table .sticky-col{position:sticky;left:0;z-index:3;min-width:230px;text-align:left;background:#fff}.progress-table th.sticky-col{background:var(--blue);z-index:4}.progress-table td small{display:block;font-size:10px;margin-top:4px}.done-cell b{color:var(--green);font-size:20px}.pending-cell b{color:var(--gray);font-size:20px}.progress-table .sticky-col small{display:block;color:#777}
.admin-title form{display:flex;gap:8px;padding:12px}.admin-title input{flex:1}.permission-form{padding:13px}.permission-form>label{display:block;margin-bottom:10px}.switch-label{padding:7px;background:#f4f6f8}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}.permission-grid label{border:1px solid var(--line);padding:9px;font-size:12px}
.flash{padding:10px 12px;margin-bottom:10px}.flash.success{background:#e4f8ee;color:#146d49}.flash.error{background:#fde7e7;color:#9d2525}.empty{text-align:center;padding:35px;color:#888;background:#fff;border:1px dashed #bbb}.empty.small{padding:16px;border:0}
.auth-shell{min-height:100vh;background:var(--blue);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px}.auth-card{background:#fff;width:min(600px,100%);padding:34px 24px 50px}.logo-wrap{text-align:center}.brand-cn{font-size:42px;font-weight:900;line-height:.85}.brand-cn span{color:var(--blue)}.brand-en{font-family:Georgia,serif;color:var(--blue);font-size:28px;margin-top:10px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:2px solid var(--blue);margin:25px 0}.auth-tabs a{text-align:center;padding:10px;font-size:20px;color:#777}.auth-tabs a.active{color:var(--blue)}.auth-form{max-width:400px;margin:auto;display:flex;flex-direction:column;gap:13px}.auth-form input{padding:14px;border:1px solid var(--line)}.auth-form button{border:0;background:var(--blue);color:#fff;padding:14px}.copyright{color:#fff;margin-top:22px}
@media(max-width:640px){
 .topbar{grid-template-columns:auto 1fr auto}.mini-logo{font-size:11px}.system-title{font-size:14px}.top-actions span{display:none}
 .toolbar .btn{flex:1}.info-grid{grid-template-columns:1fr}.info-grid .wide{grid-column:auto}
 .workflow{grid-template-columns:repeat(4,1fr)}.customer-form{grid-template-columns:1fr}.customer-form .full{grid-column:auto}
 .gallery{grid-template-columns:1fr 1fr}.file-card img{height:145px}.title-meta{display:none}
 .permission-grid{grid-template-columns:1fr}.admin-title form{flex-direction:column}
}
@media(max-width:390px){.gallery{grid-template-columns:1fr}.workflow{grid-template-columns:repeat(3,1fr)}}
