.el-message{--el-message-min-width:380px;--el-message-bg-color:#edf2fc;--el-message-padding:15px 15px 15px 20px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);min-width:var(--el-message-min-width);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width-base);border-style:var(--el-border-style-base);border-color:var(--el-border-color-lighter);position:fixed;left:50%;top:20px;transform:translateX(-50%);transition:opacity .3s,transform .4s,top .4s;background-color:var(--el-message-bg-color);transition:opacity var(--el-transition-duration),transform .4s,top .4s;padding:var(--el-message-padding);display:flex;align-items:center}.el-message.is-center{justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:var(--el-message-info-text-color)}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8;--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color)}.el-message--info{background-color:#f4f4f5;border-color:#e9e9eb;--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color)}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8;--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color)}.el-message--error{background-color:#fef0f0;border-color:#fde2e2;--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color)}.el-message__icon{margin-right:10px}.el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message__closeBtn{position:absolute;top:50%;right:15px;transform:translateY(-50%);cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size,16px)}.el-message__closeBtn:focus{outline-width:0}.el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message .el-message-icon--success{--el-message-text-color:var(--el-color-success);color:var(--el-message-text-color)}.el-message .el-message-icon--info{--el-message-text-color:var(--el-color-info);color:var(--el-message-text-color)}.el-message .el-message-icon--warning{--el-message-text-color:var(--el-color-warning);color:var(--el-message-text-color)}.el-message .el-message-icon--error{--el-message-text-color:var(--el-color-error);color:var(--el-message-text-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0;transform:translate(-50%,-100%)}.log-dialog .el-dialog__body,.log-dialog .el-dialog__footer,.log-dialog .el-dialog__header{padding:0!important}.log-header{justify-content:space-between;gap:20px;padding:16px 20px;background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);border-radius:8px 8px 0 0}.log-header,.log-header-left{display:flex;align-items:center}.log-header-left{gap:14px}.log-header-icon{width:42px;height:42px;border-radius:10px;background:rgba(64,158,255,.2);border:1px solid rgba(64,158,255,.3);display:flex;align-items:center;justify-content:center;color:#60a5fa;font-size:18px;flex-shrink:0}.log-header-title{font-size:16px;font-weight:700;color:#fff}.log-header-sub{font-size:11px;color:hsla(0,0%,100%,.5);margin-top:2px}.log-search-wrap{flex:1;max-width:320px}.log-search .el-input__wrapper{background:hsla(0,0%,100%,.08)!important;border-color:hsla(0,0%,100%,.15)!important;box-shadow:none!important}.log-search .el-input__inner{color:#fff!important}.log-search .el-input__inner::-moz-placeholder{color:hsla(0,0%,100%,.4)!important}.log-search .el-input__inner::placeholder{color:hsla(0,0%,100%,.4)!important}.log-search-icon{color:hsla(0,0%,100%,.4)}.log-footer{padding:12px 20px;background:var(--el-fill-color-light,#f5f7fa);border-top:1px solid var(--el-border-color-lighter,#ebeef5)}.log-count,.log-footer{display:flex;align-items:center}.log-count{font-size:12px;color:var(--el-text-color-secondary,#909399);gap:6px}.log-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:calc(100vh - 300px);gap:16px}.log-loading-spinner{font-size:32px;color:var(--el-color-primary,#409eff)}.log-loading-text{font-size:14px;color:var(--el-text-color-secondary,#909399)}.log-table-wrap{height:calc(100vh - 260px);display:flex;flex-direction:column;overflow:hidden}.log-table-head{display:flex;align-items:center;padding:0 16px;background:linear-gradient(135deg,#1a1a2e,#16213e);min-height:44px;flex-shrink:0}.log-table-head .log-col{color:hsla(0,0%,100%,.7);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;cursor:pointer;display:flex;align-items:center;gap:6px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.log-table-head .log-col:hover{color:#fff}.sort-icon{font-size:10px;color:hsla(0,0%,100%,.3)}.sort-icon.active{color:#60a5fa}.log-rows{flex:1;overflow-y:auto;overflow-x:hidden}.log-rows::-webkit-scrollbar{width:5px}.log-rows::-webkit-scrollbar-track{background:transparent}.log-rows::-webkit-scrollbar-thumb{background:rgba(0,0,0,.15);border-radius:5px}.log-row{display:flex;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--el-border-color-lighter,#ebeef5);transition:background .15s}.log-row:hover{background:var(--el-color-primary-light-9,#ecf5ff)!important}.log-row-alt{background:var(--el-fill-color-lighter,#fafafa)}.log-col{padding:2px 8px;font-size:12px;color:var(--el-text-color-regular,#606266);display:flex;align-items:center;gap:6px;flex-wrap:wrap;align-content:flex-start}.log-col-date{width:100px;flex-direction:column;align-items:flex-start;gap:3px}.log-col-user{width:130px}.log-col-ip{width:140px}.log-col-device{width:130px}.log-col-log{flex:1;flex-wrap:wrap;align-items:flex-start}.log-date-badge{font-size:11px;font-weight:600;color:var(--el-text-color-primary,#303133)}.log-date-badge,.log-time-small{display:flex;align-items:center;gap:4px}.log-time-small{font-size:10px;color:var(--el-text-color-secondary,#909399)}.log-user-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--el-color-primary),#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.log-user-name{font-size:12px;font-weight:600;color:var(--el-text-color-primary,#303133);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90px}.log-ip-link{color:var(--el-color-primary,#409eff);text-decoration:none;font-size:11px;display:flex;align-items:center;gap:5px}.log-ip-link:hover{text-decoration:underline}.log-link-icon{font-size:9px;opacity:.6}.log-device-chip{background:var(--el-fill-color-light,#f5f7fa);border-radius:6px;padding:3px 8px;font-size:10px;gap:5px;border:1px solid var(--el-border-color-lighter,#ebeef5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}.log-device-chip,.log-empty{color:var(--el-text-color-secondary,#909399);display:flex;align-items:center}.log-empty{flex-direction:column;justify-content:center;height:200px;gap:12px;font-size:14px}.log-empty i{font-size:36px;opacity:.3}.log-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600}.log-tag-success{background:#f0f9eb;color:#67c23a;border:1px solid #c2e7b0}.log-tag-danger{background:#fef0f0;color:#f56c6c;border:1px solid #fbc4c4}.log-tag-warning{background:#fdf6ec;color:#e6a23c;border:1px solid #f5dab1}.log-diff-row{display:inline-flex;align-items:center;gap:6px;padding:2px 6px;border-radius:4px;background:var(--el-fill-color-light,#f5f7fa);border:1px solid var(--el-border-color-lighter,#ebeef5);font-size:10px;margin:2px}.log-diff-key{font-weight:700;color:var(--el-text-color-primary,#303133)}.log-diff-old{color:#f56c6c;text-decoration:line-through}.log-diff-new,.log-diff-old{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.log-diff-new{color:#67c23a}.el-select.el-select--large{width:100%}