:root{--green: #123f35;--green2: #1f6a58;--mint: #dcece6;--text: #17332d;--muted: #6f817b;--line: #e5e8e3;--white: #fff;--shadow: 0 18px 45px rgba(30,65,55,.12)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#edf1ee;color:var(--text);font-size:13px}.login-wrap{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#edf1ee}.login-card{width:420px;background:#fff;border-radius:18px;padding:32px 28px;box-shadow:var(--shadow)}.login-card h2{font-size:20px;margin:0 0 6px;color:var(--green)}.login-card p{font-size:11px;color:var(--muted);margin:0 0 20px}.login-card .field{margin-bottom:16px}.login-card .field label{display:block;font-size:12px;margin-bottom:6px;color:#4c5d57}.login-card .field input{width:100%;border:1px solid #dfe5e1;border-radius:10px;padding:11px 13px;font-size:13px;outline:none}.login-card .field input:focus{border-color:var(--green2)}.login-card button{width:100%;border:0;background:var(--green);color:#fff;padding:12px;border-radius:10px;font-weight:700;font-size:14px;cursor:pointer}.admin-workspace{padding:22px;max-width:1600px;margin:auto}.admin-shell{background:#f6f7f5;border-radius:22px;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-columns:225px 1fr;min-height:800px}.admin-side{background:#163f36;color:#fff;padding:22px 15px}.admin-logo{display:flex;gap:10px;align-items:center;padding:0 8px 25px}.brand-mark{width:42px;height:42px;border-radius:13px;background:#fff;color:var(--green);display:grid;place-items:center;font-weight:800;font-size:18px}.admin-logo b{font-size:14px}.admin-logo small{display:block;font-size:9px;opacity:.55;margin-top:3px}.admin-menu-group{font-size:9px;letter-spacing:1.2px;opacity:.45;padding:12px 12px 7px;text-transform:uppercase}.admin-menu button{width:100%;border:0;background:transparent;color:#ffffffb3;padding:11px 12px;border-radius:10px;text-align:left;margin:2px 0;font-size:13px;cursor:pointer}.admin-menu button.active,.admin-menu button:hover{background:#ffffff1f;color:#fff}.admin-main{min-width:0;display:flex;flex-direction:column}.admin-head{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 22px;flex-shrink:0}.admin-head h2{font-size:18px}.admin-user{display:flex;gap:10px;align-items:center;font-size:12px}.admin-user .avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#f0d8b2,#b98763);display:grid;place-items:center;font-size:14px;color:#fff}.admin-content{padding:22px;flex:1;overflow-y:auto}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi{background:#fff;border-radius:14px;padding:17px}.kpi span{font-size:11px;color:var(--muted)}.kpi b{display:block;font-size:25px;margin:9px 0}.kpi small{font-size:10px;color:#4c9b78}.admin-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.panel{background:#fff;border-radius:15px;padding:17px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.panel-head h3{font-size:14px}.panel-head button{border:0;background:#edf4f0;color:var(--green);padding:7px 10px;border-radius:8px;font-size:10px;cursor:pointer}.chart{height:220px;display:flex;align-items:flex-end;gap:10px;padding:20px 5px 5px;border-bottom:1px solid #e3e8e5;background:repeating-linear-gradient(to top,#fff 0,#fff 43px,#edf0ee 44px)}.chart i{flex:1;background:linear-gradient(#4f9580,#b9d7cd);border-radius:7px 7px 0 0;position:relative;font-style:normal}.chart i:after{content:attr(data-label);position:absolute;bottom:-23px;left:50%;transform:translate(-50%);font-size:9px;color:#7e8b87;white-space:nowrap}.rank-item{display:flex;align-items:center;gap:9px;padding:10px 0;border-bottom:1px solid #eef1ef}.rank-item:last-child{border:0}.rank-item img{width:36px;height:36px;border-radius:10px;object-fit:cover}.rank-item div{flex:1}.rank-item b{font-size:11px;display:block}.rank-item span{display:block;font-size:9px;color:var(--muted)}.rank-item em{font-style:normal;font-size:11px;font-weight:700}.table-toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:13px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters input,.filters select{border:1px solid #dfe5e1;border-radius:9px;padding:9px 11px;background:#fff;font-size:11px;outline:none}.data-table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}.data-table th,.data-table td{text-align:left;padding:12px 13px;border-bottom:1px solid #edf0ee;font-size:11px}.data-table th{background:#f7f9f7;color:#6f7e79;font-weight:600}.status-tag{display:inline-block;padding:5px 8px;border-radius:12px;background:#e7f4ed;color:#39745e;font-size:9px}.status-tag.warn{background:#fbf0df;color:#a8732c}.status-tag.red{background:#fae7e7;color:#ad4f4f}.text-btn{border:0;background:transparent;color:#28735d;font-size:10px;cursor:pointer}.text-btn:hover{text-decoration:underline}.config-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.config-card{background:#fff;border-radius:14px;padding:16px}.config-card .icon{width:40px;height:40px;border-radius:12px;background:#eaf3ef;display:grid;place-items:center;font-size:19px}.config-card h3{font-size:13px;margin:11px 0 6px}.config-card p{font-size:10px;color:var(--muted);line-height:1.6}.config-card button{border:0;background:#edf4f0;color:var(--green);padding:8px 11px;border-radius:8px;font-size:10px;cursor:pointer}.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-form .field{margin-bottom:12px}.admin-form .field label{display:block;font-size:12px;margin-bottom:6px;color:#4c5d57}.admin-form .field input,.admin-form .field select,.admin-form .field textarea{width:100%;border:1px solid #dfe5e1;border-radius:9px;padding:9px 11px;background:#fff;font-size:12px;outline:none}.admin-form .field textarea{min-height:90px;resize:vertical}.switch{width:38px;height:22px;background:#dce3df;border-radius:20px;position:relative;display:inline-block;cursor:pointer}.switch:after{content:"";width:18px;height:18px;background:#fff;border-radius:50%;position:absolute;top:2px;left:18px;box-shadow:0 1px 5px #00000026}.switch.off:after{left:2px}.switch.off{background:#cfd6d2}.btn-primary-admin{border:0;background:var(--green);color:#fff;padding:9px 16px;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;box-shadow:0 8px 18px #123f352e}.btn-primary-admin:hover{background:var(--green2)}.input{width:100%;border:1px solid #dfe5e1;border-radius:9px;padding:9px 11px;font-size:12px;outline:none;background:#fff;margin-top:4px;margin-bottom:10px;display:block}select.input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M6 8L1 3h10z' fill='%236f817b'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}textarea.input{min-height:80px;resize:vertical}label{font-size:12px;color:#4c5d57}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c1c1773;display:flex;align-items:center;justify-content:center;z-index:999}.modal-card{width:440px;max-width:92vw;background:#fff;border-radius:18px;padding:22px;box-shadow:0 25px 70px #0003}.modal-card h3{font-size:16px;margin:0 0 10px}.modal-card p{font-size:12px;color:var(--muted);line-height:1.7}.modal-actions{text-align:right;margin-top:18px}.modal-actions button{border:0;border-radius:9px;padding:9px 14px;margin-left:7px;cursor:pointer;font-size:12px}.modal-actions .ok{background:var(--green);color:#fff}.modal-actions .cancel{background:#edf0ee;color:#52645e}
