*{margin:0;padding:0;box-sizing:border-box}body{font-family:Microsoft YaHei,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:100vh}#app{min-height:100vh}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-box{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:40px;border-radius:20px;border:1px solid rgba(255,255,255,.2);min-width:350px;text-align:center}.login-box h2{color:#fff;font-size:24px;margin-bottom:30px}.login-box input{width:100%;padding:15px 20px;margin:10px 0;font-size:16px;border:2px solid rgba(255,255,255,.3);border-radius:10px;background:#ffffff1a;color:#fff;outline:none;transition:border-color .3s}.login-box input:focus{border-color:#4a90d9}.login-box input::placeholder{color:#ffffff80}.login-btn{width:100%;padding:15px;margin-top:20px;font-size:16px;font-weight:700;color:#fff;background:linear-gradient(135deg,#4a90d9,#357abd);border:none;border-radius:10px;cursor:pointer;transition:transform .2s,box-shadow .2s}.login-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px #4a90d966}.login-error{color:#ff6b6b;margin-top:15px;font-size:14px}.dashboard-container{min-height:100vh;padding:20px}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:20px 30px;background:#ffffff1a;border-radius:15px;margin-bottom:30px}.dashboard-header h1{color:#fff;font-size:24px}.logout-btn{padding:10px 20px;font-size:14px;color:#fff;background:#ff6b6b80;border:none;border-radius:8px;cursor:pointer;transition:background .3s}.logout-btn:hover{background:#ff6b6bb3}.requests-container{max-width:800px;margin:0 auto}.section-title{color:#fff;font-size:18px;margin-bottom:20px;display:flex;align-items:center;gap:10px}.request-card{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:15px;padding:25px;margin-bottom:20px;border:1px solid rgba(255,255,255,.2);animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.request-card.pending{border-left:4px solid #ffd93d}.request-card.approved{border-left:4px solid #4ecdc4}.request-card.denied{border-left:4px solid #ff6b6b}.request-info{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px}.request-device{color:#fff;font-size:18px;font-weight:700}.request-time{color:#fff9;font-size:14px}.request-id{color:#ffffff80;font-size:12px;font-family:monospace}.request-status{display:inline-block;padding:5px 15px;border-radius:20px;font-size:12px;font-weight:700}.status-pending{background:#ffd93d33;color:#ffd93d}.status-approved{background:#4ecdc433;color:#4ecdc4}.status-denied{background:#ff6b6b33;color:#ff6b6b}.request-actions{display:flex;gap:10px;margin-top:15px}.approve-btn{padding:10px 25px;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,#4ecdc4,#44a3a0);border:none;border-radius:8px;cursor:pointer;transition:transform .2s}.approve-btn:hover{transform:translateY(-2px)}.deny-btn{padding:10px 25px;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(135deg,#ff6b6b,#ee5a5a);border:none;border-radius:8px;cursor:pointer;transition:transform .2s}.deny-btn:hover{transform:translateY(-2px)}.empty-state{text-align:center;padding:60px 20px;color:#ffffff80}.empty-state svg{width:80px;height:80px;margin-bottom:20px;opacity:.3}.empty-state h3{font-size:18px;margin-bottom:10px}.empty-state p{font-size:14px}.connection-status{display:flex;align-items:center;gap:10px;padding:10px 20px;border-radius:20px;margin-bottom:20px}.connection-status.connected{background:#4ecdc433}.connection-status.disconnected{background:#ff6b6b33}.status-dot{width:10px;height:10px;border-radius:50%;animation:pulse 2s infinite}.status-dot.connected{background:#4ecdc4}.status-dot.disconnected{background:#ff6b6b}.status-text{color:#fff;font-size:14px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.dashboard-container[data-v-ed0674c7]{max-width:800px;margin:0 auto;padding:20px}.dashboard-header[data-v-ed0674c7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:20px;background:#ffffff0d;border-radius:12px}.dashboard-header h1[data-v-ed0674c7]{color:#fff;font-size:24px;margin:0}.logout-btn[data-v-ed0674c7]{padding:10px 20px;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px}.logout-btn[data-v-ed0674c7]:hover{background:#dc2626}.requests-container[data-v-ed0674c7]{display:flex;flex-direction:column;gap:12px}.connection-status[data-v-ed0674c7]{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:8px;background:#ffffff0d}.connection-status.connected[data-v-ed0674c7]{background:#22c55e26;color:#22c55e}.connection-status.disconnected[data-v-ed0674c7]{background:#eab30826;color:#eab308}.status-dot[data-v-ed0674c7]{width:10px;height:10px;border-radius:50%;background:currentColor}.section-title[data-v-ed0674c7]{display:flex;align-items:center;gap:10px;padding:20px 0 10px;font-size:18px;font-weight:600;color:#fff}.refresh-btn[data-v-ed0674c7]{margin-left:auto;padding:8px 16px;background:#ffffff1a;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.refresh-btn[data-v-ed0674c7]:hover{background:#fff3}.refresh-btn[data-v-ed0674c7]:disabled{opacity:.5;cursor:not-allowed}.request-card[data-v-ed0674c7]{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:20px;display:flex;justify-content:space-between;align-items:center;gap:20px;transition:all .2s}.request-card[data-v-ed0674c7]:hover{background:#ffffff14}.request-card.pending[data-v-ed0674c7]{border-left:4px solid #eab308}.request-card.approved[data-v-ed0674c7]{border-left:4px solid #22c55e;opacity:.85}.request-card.denied[data-v-ed0674c7]{border-left:4px solid #ef4444;opacity:.85}.request-info[data-v-ed0674c7]{flex:1}.request-device[data-v-ed0674c7]{font-size:16px;font-weight:600;color:#fff;margin-bottom:4px}.request-id[data-v-ed0674c7]{font-size:12px;color:#94a3b8;font-family:monospace}.request-time[data-v-ed0674c7]{font-size:13px;color:#94a3b8}.request-status[data-v-ed0674c7]{font-size:14px;font-weight:600;padding:6px 12px;border-radius:6px}.status-pending[data-v-ed0674c7]{background:#eab30833;color:#eab308}.status-approved[data-v-ed0674c7]{background:#22c55e33;color:#22c55e}.status-denied[data-v-ed0674c7]{background:#ef444433;color:#ef4444}.request-actions[data-v-ed0674c7]{display:flex;gap:8px}.approve-btn[data-v-ed0674c7],.deny-btn[data-v-ed0674c7]{padding:10px 16px;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;white-space:nowrap}.approve-btn[data-v-ed0674c7]{background:#22c55e;color:#fff}.approve-btn[data-v-ed0674c7]:hover{background:#16a34a}.deny-btn[data-v-ed0674c7]{background:#ef4444;color:#fff}.deny-btn[data-v-ed0674c7]:hover{background:#dc2626}.empty-state[data-v-ed0674c7]{text-align:center;padding:60px 20px;color:#94a3b8}.empty-state svg[data-v-ed0674c7]{width:80px;height:80px;margin-bottom:20px}.empty-state h3[data-v-ed0674c7]{color:#fff;font-size:20px;margin-bottom:10px}
