:root{font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;color:#17212a;background:#f4f5f3;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.boot{padding:12vh;text-align:center;color:#637079}.shell{min-height:100vh;display:grid;grid-template-columns:234px 1fr}.side{background:#18252a;color:#e7ece9;padding:28px 16px;display:flex;flex-direction:column;gap:28px}.brand{padding:0 12px;font-size:21px;letter-spacing:.13em;font-weight:650}.brand small{display:block;font-size:10px;letter-spacing:.25em;color:#90a49c;margin-top:8px}.nav{display:grid;gap:5px}.nav button{border:0;background:transparent;color:#b4c5bd;text-align:left;padding:12px 14px;border-radius:9px}.nav button:hover,.nav button.active{background:#34473f;color:#fff}.side-foot{margin-top:auto;padding:10px 12px;color:#aabbb3;font-size:13px}.side-foot button{display:block;color:#e7ece9;background:none;border:0;padding:12px 0}.main{padding:36px min(5vw,70px);max-width:1600px;width:100%;margin:auto}.topline{color:#73807b;font-size:13px;letter-spacing:.09em;margin-bottom:10px}.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.heading h1{font-size:30px;letter-spacing:-.04em;margin:0}.muted{color:#78837e}.btn{border:1px solid #cdd5cf;background:#fff;color:#24362e;border-radius:8px;padding:10px 15px;min-height:40px}.btn:hover{border-color:#879b8e}.btn.primary{background:#315a48;color:#fff;border-color:#315a48}.btn.danger{color:#a04343}.btn:disabled{opacity:.5;cursor:default}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.field{border:1px solid #ccd4ce;background:#fff;border-radius:8px;padding:10px 12px;min-height:40px;outline:none}.field:focus{border-color:#3d7659;box-shadow:0 0 0 3px #3d765920}.toolbar .field.search{width:min(360px,100%)}.panel{background:#fff;border:1px solid #e2e6e0;border-radius:13px;overflow:hidden}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;padding:14px 17px;border-bottom:1px solid #edf0eb;font-size:13px;vertical-align:middle}th{font-size:11px;color:#75817a;letter-spacing:.05em;background:#fafbf9;font-weight:650}tr:last-child td{border-bottom:0}tr:hover td{background:#fafcf9}.name{font-weight:600;color:#1d3027}.sub{font-size:12px;color:#829087;margin-top:5px}.pill{display:inline-block;padding:4px 8px;border-radius:30px;background:#e9f2eb;color:#42644d;font-size:11px}.pill.off{background:#f4efed;color:#9b6257}.empty{padding:60px 25px;text-align:center;color:#748078}.empty strong{display:block;color:#33463c;margin-bottom:8px}.toast{position:fixed;bottom:26px;right:26px;max-width:380px;background:#253b31;color:#fff;padding:14px 18px;border-radius:9px;box-shadow:0 15px 40px #0002;z-index:30}.toast.error{background:#9d3f3f}.login{min-height:100vh;display:grid;grid-template-columns:1fr 460px}.login-art{background:#1a2929;color:#f2f0e7;padding:8vw;display:flex;flex-direction:column;justify-content:space-between}.login-art h1{font-size:clamp(38px,5vw,74px);line-height:1.1;letter-spacing:-.06em;margin:0;max-width:700px}.login-art p{color:#aebeb4;letter-spacing:.08em}.login-box{display:flex;flex-direction:column;justify-content:center;padding:50px}.login-box h2{font-size:31px;margin:0 0 8px}.form{display:grid;gap:14px}.form label{font-size:13px;color:#536257;display:grid;gap:7px}.form .field{width:100%}.form textarea{min-height:90px;resize:vertical}.form .btn{margin-top:8px}.notice{padding:12px 16px;background:#eaf0eb;border-radius:8px;color:#4a6551;font-size:13px}.dialog-back{position:fixed;inset:0;background:#15231ab0;z-index:20;display:grid;place-items:center;padding:20px}.dialog{background:#fff;border-radius:14px;width:min(620px,100%);max-height:90vh;overflow:auto;padding:27px}.dialog h2{margin:0 0 18px;font-size:23px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.checkboxes{max-height:190px;overflow:auto;border:1px solid #e1e5df;border-radius:8px;padding:10px}.checkboxes label{display:block;padding:6px!important}.project-meta{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:20px;color:#687970;font-size:13px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:34px 0 13px}.section-title h2{font-size:19px;margin:0}.text-btn{background:none;border:0;color:#35654a;padding:3px}.text-btn:hover{text-decoration:underline}.truncated{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-col{width:35px}.asset-browser{max-height:65vh;overflow:auto}@media(max-width:800px){.shell{display:block}.side{padding:13px 15px;gap:8px}.brand{font-size:17px}.brand small{display:none}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap}.side-foot{position:absolute;right:12px;top:3px;font-size:0}.side-foot button{font-size:12px}.main{padding:25px 16px}.login{display:block}.login-art{min-height:240px;padding:28px}.login-art h1{font-size:34px}.login-box{padding:35px 26px}.heading h1{font-size:25px}}
