.mfa-grace-banner[data-v-e918fca2]{background:linear-gradient(135deg,#3b82f6,var(--primary,#2100ad));color:#fff;padding:20px 0;position:relative;z-index:100}.mfa-grace-banner__content[data-v-e918fca2]{max-width:1200px;margin:0 auto;padding:0 16px;gap:12px}.mfa-grace-banner__content[data-v-e918fca2],.mfa-grace-banner__icon[data-v-e918fca2]{display:flex;align-items:center;justify-content:center}.mfa-grace-banner__icon[data-v-e918fca2]{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:#fff3}.mfa-grace-banner__text[data-v-e918fca2]{font-size:14px;margin:0}.mfa-grace-banner__cta[data-v-e918fca2]{flex-shrink:0;background:#fff;color:var(--primary-hover,#180f85);border:none;border-radius:9999px;padding:4px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .2s}.mfa-grace-banner__cta[data-v-e918fca2]:hover{background:#eef2ff}.mfa-grace-banner__dismiss[data-v-e918fca2]{flex-shrink:0;background:none;border:none;color:#fff;opacity:.7;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:opacity .2s}.mfa-grace-banner__dismiss[data-v-e918fca2]:hover{opacity:1}.ws-picker[data-v-8b5e7663]{display:flex;flex-direction:column;gap:var(--space-2)}.ws-picker-input[data-v-8b5e7663]{width:100%}.ws-picker-list[data-v-8b5e7663]{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);max-height:16rem;overflow-y:auto}.ws-picker-list li[data-v-8b5e7663]{display:grid;grid-template-columns:1fr auto auto;gap:var(--space-3);align-items:baseline;padding:var(--space-2) var(--space-3);font-size:.84rem;cursor:pointer;border-top:1px solid var(--border)}.ws-picker-list li[data-v-8b5e7663]:first-child{border-top:none}.ws-picker-list li[data-v-8b5e7663]:focus-visible,.ws-picker-list li[data-v-8b5e7663]:hover{background:var(--accent-bg);outline:none}.ws-picker-name[data-v-8b5e7663]{color:var(--fg);font-weight:500}.ws-picker-list code[data-v-8b5e7663],.ws-picker-pkg[data-v-8b5e7663]{font-size:.74rem}.ws-picker-pkg[data-v-8b5e7663]{color:var(--fg-faint);font-variant-numeric:tabular-nums}.ws-picker-empty[data-v-8b5e7663]{padding:var(--space-3);font-size:.8rem;color:var(--fg-muted);text-align:center}.ws-picker-cap[data-v-8b5e7663]{margin:0;padding:var(--space-2) var(--space-3);font-size:.72rem;color:var(--fg-faint);text-align:center}.tray[data-v-7823e9e7]{position:fixed;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000;pointer-events:none}.toast[data-v-7823e9e7]{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border:1px solid var(--border);background:var(--bg);box-shadow:0 1px 2px #27201d0d,0 8px 24px #27201d0f;max-width:28rem;font-size:.82rem;line-height:1.4;pointer-events:auto;border-radius:var(--radius-sm);animation:slide-in-7823e9e7 .18s cubic-bezier(.16,1,.3,1)}.toast.ok[data-v-7823e9e7]{border-color:var(--accent)}.toast.err[data-v-7823e9e7]{border-color:var(--danger)}.toast.undo[data-v-7823e9e7]{border-color:var(--warn)}.kind[data-v-7823e9e7]{flex:0 0 auto;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;padding:.05rem var(--space-1)}.toast.ok .kind[data-v-7823e9e7]{color:var(--accent)}.toast.err .kind[data-v-7823e9e7]{color:var(--danger)}.toast.undo .kind[data-v-7823e9e7]{color:var(--warn)}.msg[data-v-7823e9e7]{flex:1;word-break:break-word;color:var(--fg)}.msg .ref[data-v-7823e9e7]{display:inline-block;margin-left:var(--space-2);color:var(--fg-faint);font-size:.7rem}.action[data-v-7823e9e7]{font-size:.72rem;padding:.1rem var(--space-2);color:var(--warn);border-color:var(--warn)}.action[data-v-7823e9e7]:hover{background:var(--warn-bg)}.close[data-v-7823e9e7]{border:none;background:transparent;color:var(--fg-faint);font-size:.95rem;line-height:1;padding:0 var(--space-1)}.close[data-v-7823e9e7]:hover{color:var(--fg);border:none}@keyframes slide-in-7823e9e7{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sheet-mask[data-v-16f70a80]{position:fixed;inset:0;background:#27201d73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;justify-content:flex-end;z-index:200;animation:fade-16f70a80 .12s ease-out}.sheet[data-v-16f70a80]{width:22rem;max-width:90vw;background:var(--bg);border-left:1px solid var(--border);padding:var(--space-5) var(--space-4);height:100vh;overflow-y:auto;animation:slide-16f70a80 .16s cubic-bezier(.16,1,.3,1)}.sheet-hdr[data-v-16f70a80]{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-4)}.sheet h2[data-v-16f70a80]{margin:0;font-size:.95rem;font-weight:500;letter-spacing:.04em}.sheet h3[data-v-16f70a80]{font-size:.72rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;margin:var(--space-5) 0 var(--space-2)}dl[data-v-16f70a80]{margin:0;display:grid;gap:var(--space-2);grid-template-columns:1fr}dl>div[data-v-16f70a80]{gap:var(--space-3);align-items:baseline}dl>div[data-v-16f70a80],dt[data-v-16f70a80]{display:flex}dt[data-v-16f70a80]{flex:0 0 5rem;gap:var(--space-1)}dd[data-v-16f70a80]{margin:0;color:var(--fg-muted);font-size:.82rem}@keyframes fade-16f70a80{0%{opacity:0}to{opacity:1}}@keyframes slide-16f70a80{0%{transform:translate(8px);opacity:0}to{transform:translate(0);opacity:1}}:root{--bg:oklch(.99 .005 70);--bg-elev:oklch(.97 .008 70);--bg-sunken:oklch(.94 .012 70);--bg-cream:oklch(.92 .018 70);--fg:oklch(.25 .012 50);--fg-muted:oklch(.48 .012 50);--fg-faint:oklch(.63 .01 50);--border:oklch(.88 .012 50);--border-strong:oklch(.78 .012 50);--accent:oklch(.55 .18 295);--accent-bg:oklch(.94 .045 295);--accent-strong:oklch(.45 .21 295);--accent-soft:oklch(.84 .1 295);--primary:#2100ad;--primary-hover:#180f85;--danger:oklch(.52 .2 25);--danger-bg:oklch(.94 .04 25);--warn:oklch(.58 .14 75);--warn-bg:oklch(.94 .04 75);--info:oklch(.52 .14 230);--info-bg:oklch(.94 .04 230);--space-1:.25rem;--space-2:.4rem;--space-3:.6rem;--space-4:1rem;--space-5:1.5rem;--space-6:2.5rem;--radius-input:4px;--radius-sm:8px;--radius-lg:16px;--font-sans:"Inter","InterVariable",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--font-mono:"JetBrains Mono","JetBrains Mono Variable",ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-family:var(--font-sans);color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--fg);margin:0}body{font-family:var(--font-sans);font-size:.92rem;line-height:1.55;font-weight:450}.app{min-height:100vh}.shell{max-width:1100px;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-6)}header{border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:50;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px)}.hdr-inner{max-width:1100px;margin:0 auto;padding:var(--space-3) var(--space-4);display:flex;gap:var(--space-5)}.brand,.hdr-inner{align-items:center}.brand{display:inline-flex;gap:var(--space-2);text-decoration:none;color:var(--fg);font-weight:600;font-size:.95rem;letter-spacing:-.005em;flex:0 0 auto}.brand-dot{width:9px;height:9px;border-radius:50%;background:var(--accent-soft);box-shadow:0 0 0 3px var(--accent-bg)}.brand-name{white-space:nowrap}nav{display:flex;align-items:center;flex:1 1 auto}nav,nav a{gap:var(--space-1)}nav a{color:var(--fg-muted);text-decoration:none;font-size:.86rem;font-weight:500;display:inline-flex;align-items:baseline;padding:.35rem .6rem;border-radius:var(--radius-sm);transition:color .12s ease-out,background .12s ease-out}nav a:hover{color:var(--fg);background:var(--bg-elev)}nav a.router-link-exact-active{color:var(--accent-strong);background:var(--accent-bg)}nav .kbd-hint{display:none}@media(min-width:1024px){nav .kbd-hint{display:inline;font-family:var(--font-mono);font-size:.66rem;color:var(--fg-faint);letter-spacing:.04em;font-weight:500}nav a.router-link-exact-active .kbd-hint{color:var(--accent)}}.user{margin-left:auto;display:flex;gap:var(--space-3);align-items:center;font-size:.84rem}.user .avatar{width:26px;height:26px;border-radius:50%;border:1px solid var(--border)}.user .who{display:flex;flex-direction:column;line-height:1.15}.user .name{color:var(--fg);font-weight:500;font-size:.84rem}.user .email{color:var(--fg-muted);font-family:var(--font-mono);font-size:.72rem}.user{position:relative}.profile-trigger{display:inline-flex;align-items:center;gap:var(--space-3);padding:.25rem var(--space-2);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;color:var(--fg);font:inherit}.profile-trigger:hover{background:var(--bg-elev);border-color:var(--border)}.profile-trigger[aria-expanded=true]{background:var(--bg-elev);border-color:var(--border-strong)}.profile-trigger .caret{color:var(--fg-faint);font-size:.7rem}.avatar-fallback{display:inline-grid;place-items:center;background:var(--accent-bg);color:var(--accent-strong);font-weight:600;font-size:.74rem;letter-spacing:.02em}.profile-menu{position:absolute;right:0;top:calc(100% + 4px);min-width:16rem;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 12px 32px #27201d1f;z-index:60;gap:.1rem}.menu-section,.profile-menu{padding:var(--space-2);display:flex;flex-direction:column}.menu-section{gap:.2rem}.menu-section-hdr{display:flex;align-items:center;gap:var(--space-2);font-size:.74rem;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.2rem}.menu-section-hdr .view-dot{width:7px;height:7px;border-radius:50%}.menu-section-hdr .view-dot.platform{background:var(--accent)}.menu-section-hdr .view-dot.workspace{background:var(--warn)}.menu-section-title{font-weight:500}.menu-section-title .ws-tag{color:var(--accent-strong);font-weight:500;text-transform:none;letter-spacing:0}.menu-note{margin:0;font-size:.74rem;color:var(--fg-muted);line-height:1.45}.menu-note code{font-size:.7rem;background:var(--bg-sunken);padding:0 .2rem;border-radius:2px}.menu-item{background:transparent;border:none;text-align:left;padding:.45rem var(--space-3);font:inherit;font-size:.84rem;color:var(--fg);border-radius:var(--radius-input);cursor:pointer;text-decoration:none}.menu-item:hover{background:var(--accent-bg);color:var(--accent-strong)}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-bg)}.menu-divider{height:1px;background:var(--border);margin:.2rem 0}.menu-picker{padding:var(--space-2);border-top:1px solid var(--border)}.mode-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:.25rem .6rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elev);font:inherit;font-size:.78rem;font-weight:500;cursor:pointer;color:var(--fg);max-width:18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-chip:hover{border-color:var(--border-strong);background:var(--bg-sunken)}.mode-chip.is-platform{background:var(--accent-bg);border-color:var(--accent-soft);color:var(--accent-strong)}.mode-chip.is-platform:hover{background:#e0d8ff;background:oklch(.9 .06 295)}.mode-chip.is-workspace{background:var(--warn-bg);border-color:#e1caaa;color:var(--warn)}.mode-chip .mode-dot{width:7px;height:7px;border-radius:50%}.mode-chip .mode-dot.platform{background:var(--accent)}.mode-chip .mode-dot.workspace{background:var(--warn)}table{width:100%;border-collapse:collapse;font-size:.9rem}td,th{padding:var(--space-3) var(--space-3);text-align:left;border-bottom:1px solid var(--border);vertical-align:top}th{color:var(--fg-muted);font-weight:500;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase}tbody tr{transition:background .12s ease-out}tbody tr:hover{background:var(--bg-elev)}button{background:transparent;color:var(--fg);border:1px solid var(--border);padding:.35rem .7rem;cursor:pointer;font-family:var(--font-sans);font-size:.82rem;font-weight:500;border-radius:var(--radius-sm);transition:border-color .12s ease-out,background .12s ease-out,color .12s ease-out;line-height:1.3}button:hover{border-color:var(--border-strong);background:var(--bg-elev)}button:focus-visible{outline:1.5px solid var(--accent);outline-offset:1px}button:disabled{opacity:.5;cursor:not-allowed}button:disabled:hover{background:transparent;border-color:var(--border)}button.primary{background:var(--bg-cream);color:var(--fg);border-color:var(--bg-cream);font-weight:600}button.primary:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}button.danger{color:var(--danger);border-color:#e7c4c1}button.danger:hover{border-color:var(--danger);background:var(--danger-bg)}button.link{background:transparent;border:none;color:var(--accent);padding:0;font-size:.82rem;font-weight:500;text-decoration:underline;text-underline-offset:.15em}button.link:hover{color:var(--accent-strong)}input,select,textarea{background:var(--bg);color:var(--fg);border:1px solid var(--border);padding:.4rem .6rem;font-family:var(--font-sans);font-size:.88rem;border-radius:var(--radius-input);transition:border-color .12s ease-out,box-shadow .12s ease-out}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}input::-moz-placeholder{color:var(--fg-faint)}input::placeholder{color:var(--fg-faint)}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;padding:0;border:1px solid var(--border-strong);border-radius:3px;background:var(--bg);cursor:pointer;display:inline-grid;place-content:center;vertical-align:middle;box-shadow:none}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";width:8px;height:8px;background:var(--bg);clip-path:polygon(14% 44%,0 60%,40% 100%,100% 22%,84% 8%,39% 70%)}input[type=checkbox]:focus-visible{outline:1.5px solid var(--accent);outline-offset:2px}.badge{display:inline-block;padding:.1rem .5rem;border-radius:var(--radius-sm);font-size:.72rem;line-height:1.3;letter-spacing:.02em;vertical-align:middle;font-family:var(--font-sans);font-weight:500}.badge.allow,.badge.ok{background:var(--accent-bg);color:var(--accent-strong)}.badge.deny,.badge.err{background:var(--danger-bg);color:var(--danger)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.info{background:var(--info-bg);color:var(--info)}.badge.muted{background:var(--bg-sunken);color:var(--fg-muted)}code{color:var(--fg);font-family:var(--font-mono);font-size:.86em}.muted{color:var(--fg-muted)}.faint{color:var(--fg-faint)}.kbd-key{border:1px solid var(--border);padding:0 var(--space-1);border-radius:3px;font-size:.7rem;color:var(--fg-muted)}.kbd-key,pre.code,pre.json{font-family:var(--font-mono);background:var(--bg-sunken)}pre.code,pre.json{color:var(--fg);padding:var(--space-3) var(--space-4);font-size:.78rem;line-height:1.55;overflow-x:auto;margin:0;border-radius:var(--radius-sm);border:0}section h2{font-size:1.35rem;font-weight:500;margin:0 0 var(--space-3);letter-spacing:-.01em;line-height:1.15}section>p.lead{color:var(--fg-muted);margin:0 0 var(--space-5);font-size:.92rem;max-width:68ch;line-height:1.55}section h3{font-size:.78rem;font-weight:600;color:var(--fg-muted);letter-spacing:.06em;text-transform:uppercase;margin:var(--space-5) 0 var(--space-3)}.page-enter-active{transition:opacity .1s ease-out}.page-enter-from{opacity:0}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:calc(var(--space-4)*-1);margin-right:calc(var(--space-4)*-1);padding-left:var(--space-4);padding-right:var(--space-4)}.table-scroll>table{min-width:36rem}@media(max-width:960px){.shell{padding:var(--space-4) var(--space-3) var(--space-5)}.hdr-inner{gap:var(--space-3);padding:var(--space-2) var(--space-3)}nav a{padding:.3rem .5rem;font-size:.82rem}}@media(max-width:640px){body{font-size:.88rem}.hdr-inner{flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.brand-name{font-size:.86rem}nav{order:3;flex:1 0 100%;overflow-x:auto;gap:var(--space-1);padding:var(--space-1) 0;-webkit-overflow-scrolling:touch;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav a{font-size:.82rem;white-space:nowrap}.user{margin-left:auto;gap:var(--space-2)}.user .who{display:none}.profile-menu{min-width:14rem;right:-.4rem}.mode-chip{max-width:11rem;padding:.2rem .4rem;font-size:.72rem}}
