:root{--green:#087f73;--deep:#0b3d39;--ink:#182a29;--muted:#778783;--line:#e3ebe8;--bg:#f4f7f6;--danger:#c84f4f}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}.app-header{position:sticky;z-index:20;top:0;display:flex;align-items:center;justify-content:space-between;height:68px;padding:0 max(24px,calc((100vw - 1440px)/2));color:#fff;background:linear-gradient(105deg,#0a3b37,#09665e);box-shadow:0 4px 20px #09393429}.brand{display:flex;align-items:center;gap:11px}.brand i{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;color:#0a5b53;background:#c6e9e3;font-style:normal;font-weight:800}.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small{margin-top:3px;color:#73a9a2;font-size:7px;letter-spacing:.12em}.user{display:flex;align-items:center;gap:13px;color:#c4d9d6;font-size:10px}.user button{padding:7px 10px;border:1px solid #ffffff29;border-radius:7px;color:#fff;background:transparent;font-size:9px}.content{max-width:1440px;margin:auto;padding:30px 24px 50px}.hero{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.hero p{margin:0 0 6px;color:var(--green);font-size:11px;font-weight:700}.hero h1{margin:0 0 7px;font-size:25px}.hero span{color:#7c8d89;font-size:11px}.hero button,.primary{padding:11px 17px!important;border:0!important;border-radius:9px!important;color:#fff!important;background:var(--green)!important;font-size:11px!important;font-weight:700;box-shadow:0 7px 16px #087f732b}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:15px}.metrics article{padding:17px 19px;border:1px solid #e9efed;border-radius:13px;background:#fff;box-shadow:0 4px 16px #1f423e09}.metrics span,.metrics small{color:#82918e;font-size:9px}.metrics strong{margin:0 7px;color:var(--deep);font-size:24px}.panel{overflow:hidden;border:1px solid #e6edeb;border-radius:15px;background:#fff;box-shadow:0 5px 20px #1f423e0a}.filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line)}.filters label{display:flex;flex-direction:column;gap:5px;color:#71817d;font-size:9px}.filters input,.filters select{width:145px;height:36px;padding:0 9px;border:1px solid #dce6e3;border-radius:8px;color:#425753;background:#fff;outline:none;font-size:10px}.filters button{height:36px;padding:0 16px;border:0;border-radius:8px;color:#fff;background:#315d58;font-size:10px}.filters .light{border:1px solid #dae4e1;color:#61736f;background:#fff}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{padding:12px 15px;color:#7e8e8a;background:#f8faf9;text-align:left;font-size:9px}td{padding:13px 15px;border-top:1px solid #edf1f0;color:#4d625e;font-size:10px}td strong,td small{display:block}td strong{max-width:280px;overflow:hidden;color:#223936;text-overflow:ellipsis}td small{margin-top:4px;color:#92a09d;font-size:8px}.tag{display:inline-block;padding:4px 8px;border-radius:12px;color:#087f73;background:#e5f4f0;font-size:8px}.file-counts{display:flex;gap:4px}.file-counts span{padding:3px 5px;border-radius:6px;background:#eef3f1;font-size:8px}.actions{display:flex;gap:5px}.actions button{padding:5px 8px;border:0;border-radius:6px;color:var(--green);background:#eaf5f2;font-size:8px}.actions .danger{color:#b44c4c;background:#fbeaea}.empty{height:180px;text-align:center;color:#98a5a2}.pager{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-top:1px solid var(--line);color:#82918e;font-size:9px}.pager button{margin-left:6px;padding:7px 11px;border:1px solid #dce5e3;border-radius:7px;color:#526660;background:#fff;font-size:9px}.pager button:disabled{opacity:.4}.modal,.confirm{position:fixed;z-index:50;inset:0;display:none;align-items:center;justify-content:center}.modal.open,.confirm.open{display:flex}.mask{position:absolute;inset:0;background:#0b272380;backdrop-filter:blur(3px)}.dialog{position:relative;width:min(850px,calc(100% - 28px));max-height:calc(100vh - 32px);overflow:auto;border-radius:16px;background:#fff;box-shadow:0 24px 80px #0a26224d}.dialog-head{position:sticky;z-index:2;top:0;display:flex;justify-content:space-between;padding:19px 22px;border-bottom:1px solid var(--line);background:#fff}.dialog-head h2{margin:0 0 5px;font-size:18px}.dialog-head p{margin:0;color:#8b9996;font-size:9px}.dialog-head>button{width:30px;height:30px;border:0;border-radius:50%;color:#7a8b87;background:#eef2f1;font-size:18px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:20px 22px 10px}.form-grid .full{grid-column:1/-1}.form-grid span{display:block;margin-bottom:6px;color:#61736f;font-size:9px}.form-grid input,.form-grid select{width:100%;height:38px;padding:0 10px;border:1px solid #dce5e3;border-radius:8px;outline:none;font-size:10px}.uploads{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px 22px 18px}.uploads label{padding:14px;border:1px dashed #b9ceca;border-radius:10px;background:#f8fbfa}.uploads strong,.uploads span{display:block}.uploads strong{margin-bottom:5px;font-size:10px}.uploads span{min-height:25px;color:#8a9995;font-size:8px}.uploads input{width:100%;margin-top:7px;font-size:8px}.existing{margin:0 22px 18px;padding:14px;border-radius:10px;background:#f6f9f8}.existing h3{margin:0 0 9px;font-size:10px}.attachment{display:flex;align-items:center;gap:8px;margin-top:6px;padding:8px;border:1px solid #e3eae8;border-radius:7px;background:#fff;font-size:9px}.attachment b{padding:3px 5px;border-radius:5px;color:#437768;background:#e8f3f0;font-size:7px}.attachment a{min-width:0;flex:1;overflow:hidden;color:#365e57;text-decoration:none;text-overflow:ellipsis}.attachment span{color:#98a4a1}.attachment button{border:0;color:#b64e4e;background:transparent;font-size:9px}.dialog-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;border-top:1px solid var(--line);background:#fbfcfc}.dialog-actions button{padding:9px 15px;border:1px solid #dce4e2;border-radius:8px;color:#60716d;background:#fff;font-size:10px}.confirm-card{position:relative;width:min(390px,calc(100% - 30px));padding:24px;border-radius:15px;background:#fff;text-align:center}.confirm-card i{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 12px;border-radius:13px;color:#b64e4e;background:#fbe9e9;font-style:normal;font-weight:800}.confirm-card h3{margin:0 0 7px}.confirm-card p{min-height:32px;color:#7e8d89;font-size:10px;line-height:1.7}.confirm-card div{display:flex;justify-content:center;gap:8px}.confirm-card button{padding:8px 14px;border:1px solid #dce4e2;border-radius:8px;background:#fff;font-size:9px}.confirm-card #confirmYes{border-color:var(--danger);color:#fff;background:var(--danger)}.toast{position:fixed;z-index:100;right:28px;bottom:28px;padding:11px 16px;border-radius:9px;color:#fff;background:#173f3b;font-size:10px;opacity:0;transform:translateY(14px);pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:none}.login-body{display:grid;place-items:center;min-height:100vh;padding:25px;background:radial-gradient(circle at 18% 15%,#d9ede8,transparent 34%),#eef4f2}.login-card{display:grid;grid-template-columns:1fr 1fr;width:min(850px,100%);min-height:500px;overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 25px 80px #174b4230}.login-intro{padding:60px;color:#fff;background:linear-gradient(145deg,#0a3b37,#087f73)}.login-intro i{display:grid;place-items:center;width:50px;height:50px;border-radius:14px;color:#075d55;background:#c8e9e3;font-style:normal;font-weight:800}.login-intro p{margin-top:70px;color:#77b3aa;font-size:9px;letter-spacing:.15em}.login-intro h1{margin:10px 0 14px;font-size:32px;line-height:1.45}.login-intro span{color:#b4d8d2;font-size:11px}.login-form{display:flex;flex-direction:column;justify-content:center;padding:55px}.login-form small{color:var(--green);font-weight:700}.login-form h2{margin:7px 0;font-size:25px}.login-form p{margin:0 0 24px;color:#8a9995;font-size:10px}.login-form label:not(.remember){margin-bottom:15px}.login-form label>span{display:block;margin-bottom:7px;color:#62736f;font-size:9px}.login-form input:not([type=checkbox]){width:100%;height:42px;padding:0 12px;border:1px solid #dbe5e2;border-radius:9px;outline:none}.remember{display:flex;align-items:center;gap:6px;margin-bottom:18px}.remember span{margin:0!important}.login-form>button{height:43px;border:0;border-radius:9px;color:#fff;background:var(--green);font-weight:700}.login-form footer{margin-top:30px;color:#a0aaa7;text-align:center;font-size:8px}.login-error{margin-bottom:14px;padding:9px;border-radius:8px;color:#ad4545;background:#fbeaea;font-size:9px}@media(max-width:800px){.metrics{grid-template-columns:repeat(2,1fr)}.uploads{grid-template-columns:1fr}.login-card{grid-template-columns:1fr}.login-intro{display:none}}@media(max-width:600px){.content{padding:22px 12px 40px}.app-header{padding:0 13px}.user span{display:none}.hero{align-items:flex-start;gap:12px}.hero h1{font-size:20px}.hero span{display:none}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.login-form{padding:35px 25px}}
