:root{color-scheme:light;--kf-ink: #17261e;--kf-ink-soft: #405147;--kf-muted: #7a877f;--kf-muted-light: #9aa49d;--kf-canvas: #f2f1ea;--kf-canvas-deep: #e8e7dd;--kf-paper: #ffffff;--kf-paper-soft: #f8f8f3;--kf-line: #e4e6dd;--kf-line-strong: #d5d9cf;--kf-forest: #10251b;--kf-forest-soft: #17352a;--kf-forest-line: rgba(208, 241, 219, .13);--kf-primary: #157a57;--kf-primary-dark: #0e6044;--kf-mint: #b7efd0;--kf-mint-bright: #d8f7e3;--kf-lime: #d8f47a;--kf-amber: #b47a24;--kf-amber-soft: #fbf2df;--kf-red: #b15048;--kf-red-soft: #fbeeec;--kf-blue: #426f9e;--kf-radius-sm: 10px;--kf-radius-md: 14px;--kf-radius-lg: 22px;--kf-radius-xl: 30px;--kf-font-sans: "Avenir Next", "Inter", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--kf-font-mono: "SFMono-Regular", "Cascadia Code", "Roboto Mono", Consolas, monospace;--kf-shadow-sm: 0 2px 8px -4px rgba(20, 43, 31, .14);--kf-shadow-card: 0 24px 60px -36px rgba(18, 43, 31, .32), 0 2px 6px -4px rgba(18, 43, 31, .08);--kf-shadow-float: 0 28px 80px -30px rgba(13, 37, 25, .45);--el-font-family: var(--kf-font-sans);--el-color-primary: #157a57;--el-color-primary-light-3: #51a487;--el-color-primary-light-5: #83bda8;--el-color-primary-light-7: #b3d8ca;--el-color-primary-light-8: #cce4db;--el-color-primary-light-9: #e8f3ee;--el-color-primary-dark-2: #106045;--el-color-success: #21835e;--el-color-warning: #c1872f;--el-color-danger: #b15048;--el-color-info: #76857c;--el-text-color-primary: var(--kf-ink);--el-text-color-regular: var(--kf-ink-soft);--el-text-color-secondary: var(--kf-muted);--el-text-color-placeholder: #a6afa8;--el-border-color: var(--kf-line);--el-border-color-light: var(--kf-line);--el-border-color-lighter: #eceee8;--el-fill-color-blank: var(--kf-paper);--el-fill-color-light: #f6f7f2;--el-fill-color-lighter: #fafaf6;--el-bg-color: var(--kf-paper);--el-bg-color-overlay: var(--kf-paper);--el-border-radius-base: 10px;--el-font-size-base: 14px}*{box-sizing:border-box}html{min-height:100%;background:var(--kf-canvas);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:320px;min-height:100vh;margin:0;background:var(--kf-canvas);color:var(--kf-ink);font-family:var(--kf-font-sans);font-size:14px;line-height:1.55}#app{min-height:100vh}button,input,textarea,select{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4{margin:0}::selection{background:var(--kf-mint);color:var(--kf-forest)}:focus-visible{outline:2px solid var(--kf-primary);outline-offset:3px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:#c4cbc2;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#a7b1a7;background-clip:content-box}.route-fade-enter-active,.route-fade-leave-active{transition:opacity .2s ease,transform .2s ease}.route-fade-enter-from{opacity:0;transform:translateY(6px)}.route-fade-leave-to{opacity:0}.mono{font-family:var(--kf-font-mono);letter-spacing:.015em}.text-muted{color:var(--kf-muted)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px}.page-head__copy{min-width:0}.eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:10px;color:var(--kf-primary);font-size:12px;font-weight:800;letter-spacing:.16em;line-height:1.3;text-transform:uppercase}.eyebrow:before{width:5px;height:5px;border-radius:999px;background:currentColor;content:""}.page-title{color:var(--kf-ink);font-size:clamp(30px,3.2vw,44px);font-weight:700;letter-spacing:-.045em;line-height:1.08}.page-subtitle{max-width:620px;margin-top:10px;color:var(--kf-muted);font-size:14px;line-height:1.7}.page-head__actions{display:flex;flex-shrink:0;align-items:center;gap:10px}.surface{border:1px solid var(--kf-line);border-radius:var(--kf-radius-lg);background:var(--kf-paper);box-shadow:var(--kf-shadow-sm)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-head__title{display:flex;align-items:center;gap:10px;color:var(--kf-ink);font-size:15px;font-weight:700;letter-spacing:-.01em}.section-head__hint{color:var(--kf-muted);font-size:12px}.soft-link{display:inline-flex;align-items:center;gap:4px;color:var(--kf-primary);font-size:12px;font-weight:700;transition:color .18s ease}.soft-link:hover{color:var(--kf-primary-dark)}.status-pill{display:inline-flex;align-items:center;gap:7px;min-height:25px;padding:3px 9px 3px 8px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:700;line-height:1.4;white-space:nowrap}.status-pill:before{width:5px;height:5px;flex:0 0 auto;border-radius:999px;background:currentColor;content:""}.status-pill.active{border-color:#157a5724;background:#ecf7f1;color:var(--kf-primary)}.status-pill.expired{border-color:#b47a2424;background:var(--kf-amber-soft);color:var(--kf-amber)}.status-pill.disabled{border-color:#b1504821;background:var(--kf-red-soft);color:var(--kf-red)}.status-pill.not-found{border-color:var(--kf-line);background:var(--kf-paper-soft);color:var(--kf-muted)}.role-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;background:#f0f2eb;color:var(--kf-ink-soft);font-size:12px;font-weight:650;white-space:nowrap}.role-pill.admin{background:var(--kf-forest);color:var(--kf-mint-bright)}.avatar{display:inline-flex;width:36px;height:36px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid rgba(20,40,28,.06);border-radius:11px;color:var(--kf-forest);font-size:12px;font-weight:800;letter-spacing:-.02em;line-height:1}.avatar.tone-0{background:#dcefe4}.avatar.tone-1{background:#ecefd6}.avatar.tone-2{background:#e8e5f3}.avatar.tone-3{background:#f2e4d8}.avatar.tone-4{background:#dce9f0}.avatar.tone-5{background:#f0e0e1}.avatar.lg{width:44px;height:44px;border-radius:13px;font-size:14px}.avatar.sm{width:27px;height:27px;border-radius:8px;font-size:12px}.user-identity{display:flex;min-width:0;align-items:center;gap:10px}.user-identity__text{min-width:0}.user-identity__name{overflow:hidden;color:var(--kf-ink);font-size:13px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.user-identity__meta{display:flex;align-items:center;gap:6px;margin-top:2px;color:var(--kf-muted);font-size:12px}.code-mono{color:var(--kf-ink);font-family:var(--kf-font-mono);font-size:12px;font-weight:600;letter-spacing:.035em;white-space:nowrap}.copy-button{display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;padding:0;border:0;border-radius:7px;background:transparent;color:var(--kf-muted);cursor:pointer;transition:background .16s ease,color .16s ease}.copy-button:hover{background:#eff3ec;color:var(--kf-primary)}.icon-button{display:inline-flex;width:32px;height:32px;align-items:center;justify-content:center;padding:0;border:1px solid var(--kf-line);border-radius:9px;background:var(--kf-paper);color:var(--kf-muted);cursor:pointer;transition:all .16s ease}.icon-button:hover{border-color:var(--kf-line-strong);color:var(--kf-ink)}.icon-button.danger:hover{border-color:#b1504840;background:var(--kf-red-soft);color:var(--kf-red)}.scope-pill{display:inline-flex;min-height:30px;align-items:center;gap:7px;padding:4px 10px;border:1px solid var(--kf-line);border-radius:999px;background:#ffffffa6;color:var(--kf-ink-soft);font-size:12px;font-weight:650;white-space:nowrap}.scope-pill .el-icon{color:var(--kf-primary);font-size:12px}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px}.toolbar__grow{flex:1 1 auto}.search-input{width:260px}.table-shell{overflow:hidden;border:1px solid var(--kf-line);border-radius:var(--kf-radius-lg);background:var(--kf-paper);box-shadow:var(--kf-shadow-sm)}.table-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-top:1px solid var(--kf-line);color:var(--kf-muted);font-size:12px}.empty-block{display:flex;min-height:320px;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.empty-block__icon{display:grid;width:58px;height:58px;margin-bottom:18px;place-items:center;border:1px solid var(--kf-line);border-radius:18px;background:var(--kf-paper-soft);color:var(--kf-primary);font-size:24px}.empty-block__title{color:var(--kf-ink);font-size:15px;font-weight:700}.empty-block__text{max-width:330px;margin:7px 0 20px;color:var(--kf-muted);font-size:12px;line-height:1.7}.skeleton{position:relative;overflow:hidden;border-radius:8px;background:#eef0e8}.skeleton:after{position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);content:"";transform:translate(-100%);animation:skeleton-shimmer 1.4s infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}.spinner{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.form-tip{margin-top:7px;color:var(--kf-muted);font-size:12px;line-height:1.6}.form-error{margin:0 0 16px}.mobile-only{display:none!important}.desktop-only{display:initial}.el-button{min-height:40px;padding:8px 16px;border-radius:11px;font-weight:650;letter-spacing:.005em;transition:all .18s ease}.el-button--large{min-height:46px;padding:10px 20px;border-radius:13px;font-size:14px}.el-button--small{min-height:32px;padding:5px 12px;border-radius:8px;font-size:12px}.el-button--primary{box-shadow:0 10px 24px -16px #106045a6}.el-button--primary:hover{transform:translateY(-1px);box-shadow:0 14px 30px -16px #106045b3}.el-button.is-plain{background:var(--kf-paper)}.el-button.is-text{box-shadow:none}.el-button .el-icon{font-size:15px}.el-input__wrapper,.el-select__wrapper{min-height:42px;padding:3px 12px;border-radius:12px;background:var(--kf-paper);box-shadow:0 0 0 1px var(--kf-line) inset;transition:box-shadow .18s ease,background .18s ease}.el-input__wrapper:hover,.el-select__wrapper:hover{box-shadow:0 0 0 1px var(--kf-line-strong) inset}.el-input__wrapper.is-focus,.el-select__wrapper.is-focused{box-shadow:0 0 0 1.5px var(--kf-primary) inset,0 0 0 3px #157a5714!important}.el-input__inner{color:var(--kf-ink);font-size:13px}.el-input__prefix,.el-input__suffix{color:var(--kf-muted)}.el-textarea__inner{border-radius:12px;padding:10px 12px;color:var(--kf-ink);box-shadow:0 0 0 1px var(--kf-line) inset;font-size:13px;line-height:1.7;transition:box-shadow .18s ease}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--kf-line-strong) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1.5px var(--kf-primary) inset,0 0 0 3px #157a5714}.el-form-item{margin-bottom:20px}.el-form-item__label{padding-bottom:7px!important;color:var(--kf-ink-soft);font-size:12px;font-weight:700;line-height:1.4}.el-form-item__error{padding-top:5px;font-size:12px}.el-select-dropdown,.el-dropdown__popper,.el-popper{border:1px solid var(--kf-line)!important;border-radius:13px!important;box-shadow:var(--kf-shadow-card)!important}.el-select-dropdown__item{height:36px;margin:2px 6px;border-radius:8px;color:var(--kf-ink-soft);font-size:13px;line-height:36px}.el-select-dropdown__item.is-selected{background:#ecf5f0;color:var(--kf-primary);font-weight:700}.el-select-dropdown__item.is-hovering{background:#f4f6f1}.el-popper__arrow{display:none!important}.el-dropdown-menu{padding:5px}.el-dropdown-menu__item{border-radius:7px;color:var(--kf-ink-soft);font-size:12px}.el-dropdown-menu__item:hover{background:#f3f5f0;color:var(--kf-ink)}.el-table{--el-table-border-color: transparent;--el-table-header-bg-color: transparent;--el-table-row-hover-bg-color: #f8f8f3;--el-table-bg-color: transparent;--el-table-tr-bg-color: transparent;--el-table-expanded-cell-bg-color: transparent;background:transparent;color:var(--kf-ink);font-size:13px}.el-table:before,.el-table:after,.el-table__inner-wrapper:before{display:none}.el-table th.el-table__cell{height:40px;padding:0;border-bottom:1px solid var(--kf-line);background:#fafaf6;color:var(--kf-muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.el-table th.el-table__cell .cell{padding:0 18px}.el-table td.el-table__cell{height:64px;padding:0;border-bottom:1px solid #eff0ea;background:transparent}.el-table td.el-table__cell .cell{padding:0 18px}.el-table tr:last-child td.el-table__cell{border-bottom:0}.el-table__body tr{transition:background .15s ease}.el-table .cell{line-height:1.45}.el-table__empty-block{min-height:220px}.el-table__empty-text{color:var(--kf-muted);font-size:12px}.el-pagination{--el-pagination-button-bg-color: transparent;--el-pagination-hover-color: var(--kf-primary);gap:4px}.el-pagination button,.el-pager li{min-width:28px;height:28px;border-radius:7px;color:var(--kf-muted);font-size:12px;line-height:28px}.el-pager li.is-active{background:var(--kf-forest);color:#fff}.el-dialog{overflow:hidden;padding:0;border:1px solid rgba(255,255,255,.5);border-radius:22px;background:var(--kf-paper);box-shadow:var(--kf-shadow-float)}.key-dialog{display:flex;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);flex-direction:column}.key-dialog .el-dialog__header,.key-dialog .el-dialog__footer{flex:0 0 auto}.key-dialog .el-dialog__body{min-height:0;overflow-y:auto;overscroll-behavior:contain}.el-dialog__header{margin:0;padding:25px 26px 0}.el-dialog__headerbtn{top:19px;right:19px;width:32px;height:32px;border-radius:8px;transition:background .15s ease}.el-dialog__headerbtn:hover{background:#f1f3ed}.el-dialog__headerbtn .el-dialog__close{color:var(--kf-muted);font-size:16px}.el-dialog__title{color:var(--kf-ink);font-size:19px;font-weight:700;letter-spacing:-.025em}.el-dialog__body{padding:22px 26px 6px;color:var(--kf-ink)}.el-dialog__footer{padding:16px 26px 24px}.el-overlay{position:fixed;inset:0;overflow:hidden;background-color:#08160f73;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.el-overlay-dialog{overflow:hidden}body.el-popup-parent--hidden{overflow:hidden!important}.el-message-box{overflow:hidden;padding:24px;border:1px solid var(--kf-line);border-radius:18px;box-shadow:var(--kf-shadow-float)}.el-message-box__title{color:var(--kf-ink);font-size:17px;font-weight:700}.el-message-box__message{color:var(--kf-muted);font-size:13px;line-height:1.7}.el-message-box__btns{padding-top:12px}.el-message{min-width:0;padding:10px 15px;border:1px solid var(--kf-line);border-radius:11px;background:#fffffff5;box-shadow:var(--kf-shadow-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.el-message__content{color:var(--kf-ink-soft);font-size:12.5px;font-weight:500}.el-switch.is-checked .el-switch__core{border-color:var(--kf-primary);background:var(--kf-primary)}.el-switch__core{min-width:36px;height:20px}.el-switch__core .el-switch__action{width:16px;height:16px}.el-alert{border-radius:11px}.el-alert__title{font-size:12px;line-height:1.6}.el-alert--error.is-light{border:1px solid rgba(177,80,72,.14);background:var(--kf-red-soft)}.el-alert--info.is-light{border:1px solid var(--kf-line);background:#f7f8f3}.el-tooltip__popper{border:0!important;background:var(--kf-forest)!important;color:#f3f7f2!important;font-size:12px}.el-loading-mask{border-radius:inherit;background:#ffffffb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.el-loading-spinner .path{stroke:var(--kf-primary)}.key-dialog .el-dialog__header{padding-bottom:0}.dialog-subtitle{margin-top:-3px;padding-right:28px;color:var(--kf-muted);font-size:12px;line-height:1.65}.dialog-section-label{display:block;margin-bottom:8px;color:var(--kf-ink-soft);font-size:12px;font-weight:700}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:9px}.dialog-footer__hint{margin-right:auto;color:var(--kf-muted);font-size:12px}.el-message-box__status{font-size:22px!important}@media(max-width:900px){.page-head{align-items:flex-start;flex-direction:column;gap:18px}.page-head__actions{width:100%}.page-head__actions .el-button{flex:1}.search-input{width:100%}.toolbar__grow{flex-basis:100%}}@media(max-width:767px){.desktop-only{display:none!important}.mobile-only{display:initial!important}.page-title{font-size:32px}.page-subtitle{font-size:13px}.page-head{margin-bottom:20px}.el-dialog{width:calc(100vw - 24px)!important;max-width:560px;margin:5vh auto!important;border-radius:18px}.el-dialog__header{padding:21px 20px 0}.el-dialog__body{padding:18px 20px 4px}.el-dialog__footer{padding:14px 20px 20px}.el-table th.el-table__cell .cell,.el-table td.el-table__cell .cell{padding:0 12px}.table-foot{align-items:flex-start;flex-direction:column;padding:12px 14px}.empty-block{min-height:260px;padding:36px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
