@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Space+Mono:wght@400;700&display=swap";.toast-container[data-v-889ee885]{position:fixed;bottom:1.5rem;right:1.5rem;z-index:900;display:flex;flex-direction:column;gap:.5rem;max-width:360px}.toast[data-v-889ee885]{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.1rem;border-radius:var(--r-md);font-size:.875rem;font-weight:500;cursor:pointer;box-shadow:var(--sh2);border-left:4px solid transparent}.toast-success[data-v-889ee885]{background:#f0fdf4;border-color:var(--ok);color:#065f46}.toast-error[data-v-889ee885]{background:#fef2f2;border-color:var(--err);color:#991b1b}.toast-warning[data-v-889ee885]{background:#fffbeb;border-color:var(--warn);color:#92400e}.toast-info[data-v-889ee885]{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent-hover)}.toast-icon[data-v-889ee885]{font-size:1rem;flex-shrink:0}.toast-enter-active[data-v-889ee885]{transition:all .25s ease}.toast-leave-active[data-v-889ee885]{transition:all .2s ease}.toast-enter-from[data-v-889ee885],.toast-leave-to[data-v-889ee885]{transform:translate(100%);opacity:0}:root{--ah: 235;--as: 80%;--al: 58%;--accent: hsl(var(--ah), var(--as), var(--al));--accent-hover: hsl(var(--ah), var(--as), 50%);--accent-subtle: hsl(var(--ah), 60%, 96%);--accent-glow: hsl(var(--ah), var(--as), var(--al), .18);--accent-text: hsl(var(--ah), 70%, 40%);--bg: #f5f4f0;--sf: #ffffff;--sf2: #f9f8f5;--sf3: #f0efe9;--bd: rgba(0,0,0,.08);--bds: rgba(0,0,0,.15);--t1: #111110;--t2: #52524e;--t3: #8a8a84;--t4: #b4b4ad;--ok: #16a34a;--ok-bg: #dcfce7;--warn: #b45309;--warn-bg:#fef3c7;--err: #dc2626;--err-bg: #fee2e2;--ff-sans: "DM Sans", system-ui, sans-serif;--ff-mono: "Space Mono", monospace;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-xl: 24px;--r-f: 999px;--sh1: 0 1px 2px rgba(0,0,0,.05), 0 0 0 1px rgba(0,0,0,.04);--sh2: 0 4px 12px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.05);--sh3: 0 16px 40px rgba(0,0,0,.12);--sw: 268px;--hh: 58px;--ease: .18s cubic-bezier(.4,0,.2,1)}[data-accent=indigo]{--ah:235;--as:80%;--al:58%}[data-accent=violet]{--ah:260;--as:75%;--al:58%}[data-accent=cyan]{--ah:192;--as:90%;--al:40%}[data-accent=emerald]{--ah:152;--as:70%;--al:40%}[data-accent=orange]{--ah:24;--as:90%;--al:50%}[data-accent=rose]{--ah:345;--as:80%;--al:55%}[data-accent=amber]{--ah:43;--as:95%;--al:48%}[data-theme=dark]{--accent-subtle: hsl(var(--ah),40%,14%);--accent-text: hsl(var(--ah),80%,72%);--accent-glow: hsl(var(--ah),var(--as),var(--al),.25);--bg:#111110;--sf:#1a1a18;--sf2:#212120;--sf3:#2a2a28;--bd:rgba(255,255,255,.07);--bds:rgba(255,255,255,.14);--t1:#e8e8e2;--t2:#a0a09a;--t3:#62625e;--t4:#3e3e3b;--sh1:0 1px 2px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.04);--sh2:0 4px 12px rgba(0,0,0,.4);--sh3:0 16px 40px rgba(0,0,0,.65)}@media(prefers-color-scheme:dark){[data-theme=system]{--accent-subtle: hsl(var(--ah),40%,14%);--accent-text: hsl(var(--ah),80%,72%);--accent-glow: hsl(var(--ah),var(--as),var(--al),.25);--bg:#111110;--sf:#1a1a18;--sf2:#212120;--sf3:#2a2a28;--bd:rgba(255,255,255,.07);--bds:rgba(255,255,255,.14);--t1:#e8e8e2;--t2:#a0a09a;--t3:#62625e;--t4:#3e3e3b;--sh1:0 1px 2px rgba(0,0,0,.4),0 0 0 1px rgba(255,255,255,.04);--sh2:0 4px 12px rgba(0,0,0,.4);--sh3:0 16px 40px rgba(0,0,0,.65)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:15px;-webkit-text-size-adjust:100%}body{font-family:var(--ff-sans);background:var(--bg);color:var(--t1);line-height:1.6;-webkit-font-smoothing:antialiased;transition:background var(--ease),color var(--ease)}h1{font-size:1.7rem;font-weight:600;line-height:1.2;letter-spacing:-.02em}h2{font-size:1.3rem;font-weight:600;letter-spacing:-.015em}h3{font-size:1.05rem;font-weight:600;letter-spacing:-.01em}h4{font-size:.95rem;font-weight:600}p{color:var(--t2);line-height:1.75}a{color:var(--accent-text);text-decoration:none}a:hover{color:var(--accent)}code,kbd,.mono{font-family:var(--ff-mono);font-size:.82em;letter-spacing:-.02em}.app-shell{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sw);padding-top:var(--hh);min-height:100vh;transition:margin-left var(--ease)}.page-wrap{padding:2rem 2.5rem;max-width:1440px}.card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r-lg);box-shadow:var(--sh1);padding:1.5rem;transition:background var(--ease),border-color var(--ease)}.card-sm{padding:.875rem 1.125rem;border-radius:var(--r-md)}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.125rem;border:1.5px solid transparent;border-radius:var(--r-md);font-family:var(--ff-sans);font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;transition:all var(--ease);outline:none}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);box-shadow:0 0 0 4px var(--accent-glow)}.btn-outline{background:transparent;color:var(--accent-text);border-color:var(--bds)}.btn-outline:hover{background:var(--accent-subtle);border-color:var(--accent)}.btn-ghost{background:transparent;color:var(--t2);border-color:transparent}.btn-ghost:hover{background:var(--sf3);color:var(--t1)}.btn-danger{background:var(--err);color:#fff;border-color:var(--err)}.btn-sm{padding:.35rem .75rem;font-size:.8rem;border-radius:var(--r-sm)}.btn-xs{padding:.2rem .55rem;font-size:.75rem;border-radius:var(--r-sm)}.btn-icon{padding:.45rem;border-radius:var(--r-md)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn.active{background:var(--accent-subtle);color:var(--accent-text)}.form-group{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1.125rem}.form-label{font-size:.8rem;font-weight:500;color:var(--t2);letter-spacing:.01em}.form-input,.form-select,.form-textarea{font-family:var(--ff-sans);font-size:.9rem;padding:.55rem .875rem;background:var(--sf);border:1.5px solid var(--bds);border-radius:var(--r-md);color:var(--t1);width:100%;transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-input::placeholder{color:var(--t4)}.form-textarea{resize:vertical;min-height:90px}.badge{display:inline-flex;align-items:center;padding:.15rem .55rem;border-radius:var(--r-f);font-size:.72rem;font-weight:600;letter-spacing:.02em}.badge-active{background:var(--ok-bg);color:var(--ok)}.badge-obsolete{background:var(--sf3);color:var(--t3)}.badge-warning{background:var(--warn-bg);color:var(--warn)}.badge-info{background:var(--accent-subtle);color:var(--accent-text)}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th{text-align:left;padding:.625rem 1rem;background:var(--sf2);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--t3);border-bottom:1px solid var(--bds)}.table td{padding:.75rem 1rem;border-bottom:1px solid var(--bd);vertical-align:middle}.table tbody tr{transition:background var(--ease)}.table tbody tr:hover{background:var(--sf2)}.search-box{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:.75rem;color:var(--t3);pointer-events:none;font-size:.9rem}.search-box .form-input{padding-left:2.25rem}.breadcrumb{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;font-size:.82rem}.breadcrumb-item{color:var(--t3)}.breadcrumb-item a{color:var(--accent-text);text-decoration:none;transition:color var(--ease)}.breadcrumb-item a:hover{color:var(--accent)}.breadcrumb-sep{color:var(--t4);font-size:.7rem}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--sf3) 25%,var(--sf2) 50%,var(--sf3) 75%);background-size:800px 100%;animation:shimmer 1.6s infinite;border-radius:var(--r-sm)}.pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:2rem}.page-info{font-size:.82rem;color:var(--t3)}.alert{padding:.75rem 1rem;border-radius:var(--r-md);font-size:.875rem}.alert-error{background:var(--err-bg);color:var(--err)}.alert-success{background:var(--ok-bg);color:var(--ok)}.page-enter-active{animation:pageIn .22s cubic-bezier(.4,0,.2,1)}.page-leave-active{animation:pageIn .18s cubic-bezier(.4,0,.2,1) reverse}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){:root{--sw:0px}.main-content{margin-left:0}.page-wrap{padding:1.25rem 1rem}}
