.filter-dict{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.filter-bar{display:flex;flex-direction:column;gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3);border:1px solid hsl(var(--border));border-radius:var(--radius-card);background:hsl(var(--card))}.filter-bar-sticky{position:sticky;top:0;z-index:var(--z-sticky)}@supports (backdrop-filter: blur(8px)) or (-webkit-backdrop-filter: blur(8px)){.filter-bar-sticky{background:hsl(var(--card) / .9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}}.filter-bar-row{display:flex;align-items:flex-end;gap:var(--space-3);min-width:0}.filter-grid{display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1fr);align-items:start;gap:var(--space-3);min-width:0}.filter-grid>*{min-width:0}.filter-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--space-2);padding-bottom:2px}.filter-summary{display:flex;align-items:center;gap:var(--space-2);min-width:0;padding-top:var(--space-2);border-top:1px solid hsl(var(--border))}.filter-field{display:flex;flex-direction:column;gap:6px;min-width:0}.filter-field-label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:16px}.filter-field-label{display:block;min-width:0;overflow:hidden;color:hsl(var(--muted-foreground));font-size:var(--font-size-caption);font-weight:500;line-height:16px;text-overflow:ellipsis;white-space:nowrap}.filter-field-hint{flex:0 0 auto;color:hsl(var(--muted-foreground));font-size:var(--font-size-micro)}.filter-input,.filter-select{width:100%;min-width:0;height:var(--control-height-default);padding:0 var(--space-3);border:1px solid hsl(var(--input));border-radius:var(--radius-base);background:hsl(var(--card));color:hsl(var(--foreground));font-family:inherit;font-size:var(--font-size-body);line-height:var(--line-height-tight);transition:border-color var(--duration-micro) var(--ease-standard),box-shadow var(--duration-micro) var(--ease-standard)}.filter-input::placeholder{color:hsl(var(--muted-foreground))}.filter-input:hover:not(:disabled),.filter-select:hover:not(:disabled){border-color:hsl(var(--muted-foreground) / .5)}.filter-input:focus,.filter-select:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .22)}.filter-input:disabled,.filter-select:disabled{background:hsl(var(--muted));color:hsl(var(--muted-foreground));cursor:not-allowed}.filter-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:32px;cursor:pointer}.filter-select:disabled{cursor:not-allowed}.filter-select-wrap{position:relative;min-width:0}.filter-select-chevron{position:absolute;top:50%;right:var(--space-3);width:16px;height:16px;color:hsl(var(--muted-foreground));pointer-events:none;transform:translateY(-50%)}.filter-search{position:relative;min-width:0}.filter-search-icon{position:absolute;top:50%;left:var(--space-3);width:16px;height:16px;color:hsl(var(--muted-foreground));pointer-events:none;transform:translateY(-50%)}.filter-search-input{padding-left:36px;padding-right:30px}.filter-search-input::-webkit-search-cancel-button,.filter-search-input::-webkit-search-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.filter-search-clear{position:absolute;top:50%;right:6px;display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:var(--radius-pill);background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;transform:translateY(-50%);transition:background-color var(--duration-micro) var(--ease-standard),color var(--duration-micro) var(--ease-standard)}.filter-search-clear:hover{background:hsl(var(--foreground) / .08);color:hsl(var(--foreground))}.filter-chip-group{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid hsl(var(--border));border-radius:var(--radius-pill);background:hsl(var(--background));color:hsl(var(--muted-foreground));font-family:inherit;font-size:var(--font-size-caption);font-weight:500;line-height:var(--line-height-tight);white-space:nowrap;cursor:pointer;transition:background-color var(--duration-micro) var(--ease-standard),border-color var(--duration-micro) var(--ease-standard),color var(--duration-micro) var(--ease-standard)}.filter-chip:hover:not([aria-pressed=true]):not(:disabled){border-color:hsl(var(--primary) / .5);color:hsl(var(--foreground))}.filter-chip[aria-pressed=true]{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.filter-chip:disabled{opacity:.55;cursor:not-allowed}.filter-chip-sm{gap:6px;padding:6px var(--space-3);font-size:var(--font-size-body)}.filter-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.filter-chip-item{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:2px 4px 2px var(--space-2);border:1px solid hsl(var(--border-primary-subtle));border-radius:var(--radius-pill);background:hsl(var(--surface-primary-soft));color:hsl(var(--foreground));font-size:var(--font-size-caption);line-height:var(--line-height-tight)}.filter-chip-item-label{color:hsl(var(--muted-foreground));white-space:nowrap}.filter-chip-item-value{overflow:hidden;max-width:18ch;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.filter-chip-remove{display:grid;flex:0 0 auto;place-items:center;width:16px;height:16px;padding:0;border:0;border-radius:var(--radius-pill);background:transparent;color:hsl(var(--muted-foreground));cursor:pointer;transition:background-color var(--duration-micro) var(--ease-standard),color var(--duration-micro) var(--ease-standard)}.filter-chip-remove:hover{background:hsl(var(--foreground) / .1);color:hsl(var(--foreground))}.filter-clear-all{padding:2px 0;border:0;background:none;color:hsl(var(--primary));font-family:inherit;font-size:var(--font-size-caption);cursor:pointer}.filter-clear-all:hover{text-decoration:underline}.filter-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);height:var(--button-height-small);padding:0 var(--space-3);border:1px solid hsl(var(--border));border-radius:var(--radius-button);background:hsl(var(--background));color:hsl(var(--foreground));font-family:inherit;font-size:var(--font-size-body-sm);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-press) var(--ease-standard),border-color var(--duration-press) var(--ease-standard),color var(--duration-press) var(--ease-standard)}.filter-button:hover:not(:disabled){background:hsl(var(--secondary));border-color:hsl(var(--muted-foreground) / .4)}.filter-button:active:not(:disabled){background:hsl(var(--muted))}.filter-button:disabled{opacity:.5;cursor:not-allowed}.filter-pager-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);padding:0 var(--space-1)}.filter-pager-info{color:hsl(var(--muted-foreground));font-size:var(--font-size-caption);font-variant-numeric:tabular-nums}.filter-pager{display:flex;align-items:center;gap:var(--space-2)}@media (min-width: 640px){.filter-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.filter-span-1,.filter-span-2,.filter-span-3{grid-column:span 3}.filter-span-4,.filter-span-5,.filter-span-6,.filter-span-7,.filter-span-8,.filter-span-9,.filter-span-10,.filter-span-11,.filter-span-12{grid-column:span 6}}@media (min-width: 1024px){.filter-grid{grid-template-columns:repeat(12,minmax(0,1fr))}.filter-span-1{grid-column:span 1}.filter-span-2{grid-column:span 2}.filter-span-3{grid-column:span 3}.filter-span-4{grid-column:span 4}.filter-span-5{grid-column:span 5}.filter-span-6{grid-column:span 6}.filter-span-7{grid-column:span 7}.filter-span-8{grid-column:span 8}.filter-span-9{grid-column:span 9}.filter-span-10{grid-column:span 10}.filter-span-11{grid-column:span 11}.filter-span-12{grid-column:span 12}}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(/fonts/dm-sans-var.woff2) format("woff2-variations")}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-mono-400.woff2) format("woff2")}:root{--background: 0 0% 98%;--foreground: 220 20% 10%;--card: 0 0% 100%;--card-foreground: 220 20% 10%;--primary: 226 60% 45%;--primary-foreground: 0 0% 100%;--primary-pressed: 226 60% 39%;--surface-primary-soft: 226 100% 97%;--border-primary-subtle: 226 70% 88%;--secondary: 220 14% 96%;--secondary-foreground: 220 20% 10%;--muted: 220 14% 94%;--muted-foreground: 220 11% 42%;--accent: 220 14% 96%;--accent-foreground: 220 20% 10%;--surface-inverse: 220 20% 10%;--content-inverse: 0 0% 100%;--border: 220 14% 90%;--input: 220 14% 90%;--ring: 226 60% 45%;--success: 152 45% 32%;--success-foreground: 0 0% 100%;--success-text: 152 50% 30%;--success-bg: 142 76% 96%;--success-border: 145 92% 91%;--warning: 38 90% 50%;--warning-foreground: 30 80% 25%;--warning-text: 30 80% 25%;--warning-bg: 48 100% 96%;--warning-border: 48 96% 89%;--destructive: 0 65% 50%;--destructive-foreground: 0 0% 100%;--destructive-text: 0 65% 50%;--destructive-bg: 0 100% 97%;--destructive-border: 0 93% 94%;--info: 226 60% 45%;--info-bg: 226 100% 97%;--info-border: 226 70% 88%;--score-top: 152 62% 21%;--score-good: 145 60% 29%;--score-pass: 145 29% 37%;--score-low: 220 9% 46%;--font-sans: "DM Sans", system-ui, -apple-system, "PingFang SC", "HarmonyOS Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;--font-mono: "DM Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-size-nano: 9px;--font-size-micro: 10px;--font-size-label: 11px;--font-size-caption: 12px;--font-size-body-sm: 13px;--font-size-body: 14px;--font-size-body-md: 15px;--font-size-body-lg: 16px;--font-size-title: 17px;--font-size-section-title: 22px;--font-size-page-title: 24px;--line-height-tight: 1.25;--line-height-snug: 1.35;--line-height-body: 1.5;--radius-button: 4px;--radius-base: 6px;--radius-card: 12px;--radius-overlay: 8px;--radius-pill: 9999px;--control-height-default: 2.5rem;--control-height-touch: 2.75rem;--button-height-default: 2.75rem;--button-height-small: 2.5rem;--button-height-large: 3rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--shadow-card: 0 1px 3px hsl(var(--foreground) / .04);--shadow-card-hover: 0 4px 12px hsl(var(--foreground) / .06);--shadow-overlay: 0 20px 48px hsl(var(--foreground) / .16);--shadow-focus: 0 0 0 3px hsl(var(--ring) / .22);--duration-micro: .12s;--duration-press: .15s;--duration-standard: .2s;--duration-panel: .24s;--duration-overlay: .28s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-enter: cubic-bezier(.16, 1, .3, 1);--ease-exit: cubic-bezier(.7, 0, .84, 0);--sidebar-width: 16rem;--content-max: 87.5rem;--z-sticky: 10;--z-overlay: 100}.dark{--background: 220 10% 7%;--foreground: 0 0% 95%;--card: 220 8% 10%;--card-foreground: 0 0% 95%;--primary: 226 55% 60%;--primary-foreground: 0 0% 100%;--primary-pressed: 226 55% 50%;--surface-primary-soft: 226 40% 16%;--border-primary-subtle: 226 30% 28%;--secondary: 220 8% 16%;--muted: 220 8% 14%;--muted-foreground: 220 10% 55%;--accent: 220 8% 16%;--accent-foreground: 0 0% 95%;--surface-inverse: 220 10% 5%;--content-inverse: 0 0% 95%;--border: 220 8% 21%;--input: 220 8% 21%;--ring: 226 55% 60%;--success: 152 40% 50%;--success-text: 152 45% 62%;--success-bg: 152 40% 12%;--success-border: 152 30% 22%;--warning: 38 90% 60%;--warning-text: 38 85% 68%;--warning-bg: 38 60% 12%;--warning-border: 38 50% 24%;--destructive: 0 55% 55%;--destructive-text: 0 60% 68%;--destructive-bg: 0 40% 12%;--destructive-border: 0 40% 24%;--info: 226 55% 60%;--info-bg: 226 40% 16%;--info-border: 226 30% 28%;--score-top: 152 45% 58%;--score-good: 145 45% 55%;--score-pass: 145 30% 55%;--score-low: 220 8% 58%;--shadow-card: 0 1px 3px hsl(0 0% 0% / .3);--shadow-card-hover: 0 4px 12px hsl(0 0% 0% / .4);--shadow-overlay: 0 20px 48px hsl(0 0% 0% / .55)}@media (prefers-reduced-motion: reduce){:root{--duration-micro: 0ms;--duration-press: 0ms;--duration-standard: 0ms;--duration-panel: 0ms;--duration-overlay: 0ms}}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-body);font-feature-settings:"cv02","cv03","cv04","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.015em;line-height:var(--line-height-tight)}h1{font-size:var(--font-size-page-title)}h2{font-size:var(--font-size-section-title)}h3{font-size:var(--font-size-title);font-weight:500}h4{font-size:var(--font-size-body-lg);font-weight:500}p{margin:0}a{color:hsl(var(--primary));text-decoration:none;transition:color var(--duration-micro) var(--ease-standard)}a:hover{text-decoration:underline}:focus-visible{outline:none;box-shadow:0 0 0 2px hsl(var(--background)),0 0 0 4px hsl(var(--ring));border-radius:var(--radius-button)}button{font-family:inherit}.tabular,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}code{font-family:var(--font-mono);font-size:.92em}@media (max-width: 640px){body{font-size:var(--font-size-body-lg)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{display:flex;height:100dvh;background:hsl(var(--background))}.sidebar{display:flex;flex-direction:column;width:var(--sidebar-width);flex:none;background:hsl(var(--surface-inverse));color:hsl(var(--content-inverse))}.sidebar-brand{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-4);border-bottom:1px solid hsl(var(--content-inverse) / .12)}.sidebar-brand-name{font-size:var(--font-size-body-lg);font-weight:600;letter-spacing:-.015em;color:hsl(var(--content-inverse))}.sidebar-brand-sub{color:hsl(var(--content-inverse) / .55);font-size:var(--font-size-caption);font-weight:400}.sidebar-nav{flex:1;min-height:0;overflow-y:auto;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.nav-group-label{padding:var(--space-2) var(--space-3) var(--space-1);font-size:var(--font-size-caption);font-weight:500;color:hsl(var(--content-inverse) / .55);letter-spacing:.06em;text-transform:uppercase}.nav-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-base);font-size:var(--font-size-body);color:hsl(var(--content-inverse) / .7);transition:background var(--duration-micro) var(--ease-standard),color var(--duration-micro) var(--ease-standard)}.nav-item:hover{background:hsl(var(--content-inverse) / .1);color:hsl(var(--content-inverse));text-decoration:none}.nav-item[aria-current=page]{background:hsl(var(--content-inverse) / .1);color:hsl(var(--content-inverse));font-weight:500}.nav-icon{width:16px;height:16px;flex:none}.sidebar-foot{border-top:1px solid hsl(var(--content-inverse) / .12);padding:var(--space-2)}.account-button{display:flex;align-items:center;gap:var(--space-2);width:100%;height:36px;padding:0 var(--space-2);border:none;border-radius:var(--radius-base);background:transparent;color:hsl(var(--content-inverse) / .7);font-size:var(--font-size-caption);text-align:left;cursor:pointer;transition:background var(--duration-micro) var(--ease-standard),color var(--duration-micro) var(--ease-standard)}.account-button:hover{background:hsl(var(--content-inverse) / .1);color:hsl(var(--content-inverse))}.account-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none;border-radius:var(--radius-pill);background:hsl(var(--content-inverse) / .15);color:hsl(var(--content-inverse));font-size:var(--font-size-micro);font-weight:600}.account-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-main{flex:1;min-width:0;overflow-y:auto}.page{width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-head p{color:hsl(var(--muted-foreground));font-size:var(--font-size-body);margin-top:var(--space-1);max-width:68ch}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--button-height-default);padding:0 var(--space-4);border:1px solid hsl(var(--border));border-radius:var(--radius-button);background:hsl(var(--background));color:hsl(var(--foreground));font-size:var(--font-size-body);font-weight:500;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--duration-press) var(--ease-standard),border-color var(--duration-press) var(--ease-standard),color var(--duration-press) var(--ease-standard),transform var(--duration-press) var(--ease-standard)}.btn:hover:not(:disabled){background:hsl(var(--accent))}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{background:hsl(var(--primary));border-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.btn-primary:hover:not(:disabled){background:hsl(var(--primary) / .9);border-color:hsl(var(--primary) / .9)}.btn-secondary{background:hsl(var(--secondary));border-color:transparent;color:hsl(var(--secondary-foreground))}.btn-ghost{background:transparent;border-color:transparent;color:hsl(var(--muted-foreground))}.btn-ghost:hover:not(:disabled){background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.btn-danger{background:hsl(var(--destructive));border-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.btn-danger:hover:not(:disabled){background:hsl(var(--destructive) / .9);border-color:hsl(var(--destructive) / .9)}.btn-outline-danger{background:transparent;border-color:hsl(var(--destructive-border));color:hsl(var(--destructive-text))}.btn-outline-danger:hover:not(:disabled){background:hsl(var(--destructive-bg))}.btn-sm{height:var(--button-height-small);padding:0 var(--space-3);font-size:var(--font-size-body-sm)}.btn-lg{height:var(--button-height-large);padding:0 var(--space-6);font-size:var(--font-size-body-lg)}.btn-block{width:100%}.btn-link{border:none;background:none;padding:0;color:hsl(var(--primary));font-size:var(--font-size-caption);cursor:pointer}.btn-link:hover:not(:disabled){text-decoration:underline}.btn-link:disabled{opacity:.5;cursor:not-allowed}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field-label{font-size:var(--font-size-body-sm);font-weight:500;color:hsl(var(--foreground))}.input,.select{height:var(--control-height-default);padding:0 var(--space-3);border:1px solid hsl(var(--input));border-radius:var(--radius-base);background:hsl(var(--card));color:hsl(var(--foreground));font-family:inherit;font-size:var(--font-size-body);transition:border-color var(--duration-micro) var(--ease-standard),box-shadow var(--duration-micro) var(--ease-standard)}.input:hover:not(:disabled),.select:hover:not(:disabled){border-color:hsl(var(--muted-foreground) / .5)}.input:focus,.select:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .22)}.input:disabled,.select:disabled{background:hsl(var(--muted));color:hsl(var(--muted-foreground));cursor:not-allowed}.input-num{width:76px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media (pointer: coarse){.input,.select{height:var(--control-height-touch)}.btn-sm{height:var(--button-height-small)}}.card{min-width:0;background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-6);transition:box-shadow var(--duration-standard) var(--ease-standard)}.card-tight{padding:0}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.card-head h2{font-size:var(--font-size-title);font-weight:600}.card-body{padding:var(--space-6)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-body-sm)}.table th{text-align:left;padding:var(--space-3) var(--space-4);background:hsl(var(--muted) / .6);color:hsl(var(--muted-foreground));font-weight:500;font-size:var(--font-size-caption);white-space:nowrap;border-bottom:1px solid hsl(var(--border))}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid hsl(var(--border));vertical-align:middle;line-height:var(--line-height-snug)}.table tbody tr{transition:background var(--duration-micro) var(--ease-standard)}.table tbody tr:hover{background:hsl(var(--muted) / .5)}.table tbody tr:last-child td{border-bottom:none}.table-num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.cell-stack{display:flex;flex-direction:column;gap:2px}.cell-sub{color:hsl(var(--muted-foreground));font-size:var(--font-size-caption)}.row-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.tag{display:inline-flex;align-items:center;gap:var(--space-1);height:22px;padding:0 var(--space-2);border:1px solid hsl(var(--border));border-radius:var(--radius-pill);background:hsl(var(--muted) / .7);color:hsl(var(--muted-foreground));font-size:var(--font-size-caption);font-weight:500;white-space:nowrap}.tag-accent{background:hsl(var(--surface-primary-soft));border-color:hsl(var(--border-primary-subtle));color:hsl(var(--primary))}.tag-top{background:hsl(var(--score-top) / .1);border-color:hsl(var(--score-top) / .28);color:hsl(var(--score-top));font-weight:600}.tag-good{background:hsl(var(--score-good) / .1);border-color:hsl(var(--score-good) / .28);color:hsl(var(--score-good))}.tag-pass{background:hsl(var(--score-pass) / .12);border-color:hsl(var(--score-pass) / .28);color:hsl(var(--score-pass))}.tag-low{background:hsl(var(--muted));border-color:hsl(var(--border));color:hsl(var(--score-low))}.score{display:inline-flex;align-items:baseline;gap:var(--space-1);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.02em}.score-lg{font-size:40px}.score-md{font-size:var(--font-size-section-title)}.score-top{color:hsl(var(--score-top))}.score-good{color:hsl(var(--score-good))}.score-pass{color:hsl(var(--score-pass))}.score-low{color:hsl(var(--score-low))}.score-unit{font-size:var(--font-size-caption);font-weight:400;color:hsl(var(--muted-foreground))}.dims{display:flex;flex-direction:column;gap:var(--space-3)}.dim{display:grid;grid-template-columns:96px 1fr 40px;align-items:center;gap:var(--space-3);font-size:var(--font-size-body-sm)}.dim-label{color:hsl(var(--muted-foreground))}.dim-track{height:6px;border-radius:var(--radius-pill);background:hsl(var(--muted));overflow:hidden}.dim-fill{display:block;height:100%;border-radius:var(--radius-pill);background:hsl(var(--primary));transition:width var(--duration-panel) var(--ease-enter)}.dim-value{text-align:right;color:hsl(var(--muted-foreground));font-family:var(--font-mono);font-variant-numeric:tabular-nums}.avatar{width:32px;height:32px;border-radius:var(--radius-pill);object-fit:cover;background:hsl(var(--muted));flex:none}.avatar-sm{width:24px;height:24px}.avatar-lg{width:44px;height:44px}.avatar-fallback{display:inline-flex;align-items:center;justify-content:center;color:hsl(var(--muted-foreground));font-size:var(--font-size-body-sm);font-weight:500}.alert{display:flex;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid hsl(var(--destructive-border));border-radius:var(--radius-overlay);background:hsl(var(--destructive-bg));color:hsl(var(--destructive-text));font-size:var(--font-size-body-sm);line-height:var(--line-height-body)}.alert-info{border-color:hsl(var(--info-border));background:hsl(var(--info-bg));color:hsl(var(--primary))}.alert-warning{border-color:hsl(var(--warning-border));background:hsl(var(--warning-bg));color:hsl(var(--warning-foreground))}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-4);text-align:center}.empty-title{font-size:var(--font-size-body-lg);font-weight:500}.empty-desc{color:hsl(var(--muted-foreground));font-size:var(--font-size-body-sm);max-width:44ch}.skeleton{border-radius:var(--radius-base);background:linear-gradient(90deg,hsl(var(--muted)) 25%,hsl(var(--muted) / .5) 37%,hsl(var(--muted)) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}.btn:active:not(:disabled){transform:none}}.muted{color:hsl(var(--muted-foreground))}.faint{color:hsl(var(--muted-foreground) / .8)}.small{font-size:var(--font-size-caption)}.stack{display:flex;flex-direction:column;gap:var(--space-2)}.row{display:flex;align-items:center;gap:var(--space-2)}.spread{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.divider{height:1px;background:hsl(var(--border));border:none;margin:0}@media (max-width: 900px){.app-shell{flex-direction:column;height:auto;min-height:100dvh}.sidebar{width:100%;flex-direction:row;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.sidebar-brand{border-bottom:none;padding:0;flex:none}.sidebar-brand-sub{display:none}.sidebar-nav{flex-direction:row;overflow-x:auto;padding:0;flex:1}.nav-group-label{display:none}.nav-item{white-space:nowrap}.sidebar-foot{border-top:none;padding:0;flex:none}.account-name{display:none}.page{padding:var(--space-4);gap:var(--space-4)}.card{padding:var(--space-4)}.card-tight{padding:0}}.dark .tag-top{background:hsl(var(--score-top) / .18);border-color:hsl(var(--score-top) / .42)}.dark .tag-good{background:hsl(var(--score-good) / .18);border-color:hsl(var(--score-good) / .42)}.dark .tag-pass{background:hsl(var(--score-pass) / .2);border-color:hsl(var(--score-pass) / .42)}.dark .tag-accent{background:hsl(var(--primary) / .16);border-color:hsl(var(--primary) / .4)}.dark .table th{background:hsl(var(--muted) / .8)}.dark .skeleton{background:linear-gradient(90deg,hsl(var(--muted)) 25%,hsl(var(--muted) / .4) 37%,hsl(var(--muted)) 63%);background-size:400% 100%}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:var(--space-4)}.stat-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5);background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.stat-label{font-size:var(--font-size-caption);color:hsl(var(--muted-foreground))}.stat-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:34px;font-weight:600;line-height:1;letter-spacing:-.02em}.stat-desc{font-size:var(--font-size-caption);line-height:var(--line-height-body);color:hsl(var(--muted-foreground))}.stat-link{margin-top:auto;padding-top:var(--space-2);font-size:var(--font-size-caption)}.calibrate{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid hsl(var(--border));border-radius:var(--radius-overlay);background:hsl(var(--muted) / .35)}.calibrate-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.score-line{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--font-size-body-sm);font-weight:500}.score-line-sep{color:hsl(var(--muted-foreground) / .6)}.calibrate-form{display:flex;align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}.field-hint{font-size:var(--font-size-caption);line-height:var(--line-height-body);color:hsl(var(--muted-foreground))}.field-hint-error{color:hsl(var(--destructive-text))}.action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:var(--space-3)}.action-item{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid hsl(var(--border));border-radius:var(--radius-overlay)}.op-json{margin:0;max-height:12rem;overflow:auto;padding:var(--space-2);border-radius:var(--radius-base);background:hsl(var(--muted) / .6);font-size:var(--font-size-caption);line-height:var(--line-height-body)}.dict-layout{display:grid;grid-template-columns:15rem minmax(0,1fr);gap:var(--space-4);align-items:start}.dict-types{display:flex;flex-direction:column;gap:2px;padding:var(--space-2)}.dict-type{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-base);background:transparent;color:hsl(var(--foreground));font-family:inherit;font-size:var(--font-size-body-sm);text-align:left;cursor:pointer;transition:background var(--duration-micro) var(--ease-standard)}.dict-type:hover{background:hsl(var(--accent))}.dict-type[aria-current=true]{background:hsl(var(--surface-primary-soft));color:hsl(var(--primary));font-weight:600}.dict-type-count{color:hsl(var(--muted-foreground));font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:var(--font-size-caption)}.dict-main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.dict-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3) var(--space-4);border-top:1px solid hsl(var(--border))}.dict-editor{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--space-4)}.dict-editor-actions{display:flex;gap:var(--space-2);justify-content:flex-end;grid-column:1 / -1}.attrs-cell{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.textarea{min-height:5.5rem;padding:var(--space-2) var(--space-3);border:1px solid hsl(var(--input));border-radius:var(--radius-base);background:hsl(var(--card));color:hsl(var(--foreground));font-family:var(--font-mono);font-size:var(--font-size-body-sm);line-height:var(--line-height-body);resize:vertical;transition:border-color var(--duration-micro) var(--ease-standard),box-shadow var(--duration-micro) var(--ease-standard)}.textarea:hover:not(:disabled){border-color:hsl(var(--muted-foreground) / .5)}.textarea:focus{outline:none;border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .22)}@media (max-width: 1000px){.dict-layout{grid-template-columns:minmax(0,1fr)}.dict-types{flex-direction:row;flex-wrap:wrap}.dict-type{width:auto}}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:var(--space-4)}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-4)}.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-3)}.toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.toolbar .input{min-width:12rem}.card-pad{padding:var(--space-4)}button.nav-item{width:100%;border:none;background:none;font:inherit;text-align:left;cursor:pointer}.tab-bar{display:flex;align-items:stretch;gap:2px;height:38px;padding:0 var(--space-4);overflow-x:auto;overflow-y:hidden;border-bottom:1px solid hsl(var(--border));background:hsl(var(--background));scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab-item{display:flex;align-items:center;gap:var(--space-2);max-width:220px;padding:0 var(--space-3);border-bottom:2px solid transparent;font-size:var(--font-size-body-sm);color:hsl(var(--muted-foreground));cursor:pointer;white-space:nowrap;transition:color var(--duration-micro) var(--ease-standard),background var(--duration-micro) var(--ease-standard)}.tab-item:hover{background:hsl(var(--muted) / .5);color:hsl(var(--foreground))}.tab-item.is-active{color:hsl(var(--foreground));border-bottom-color:hsl(var(--primary));font-weight:500}.tab-title{overflow:hidden;text-overflow:ellipsis}.tab-close{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;border-radius:3px;background:none;color:inherit;font-size:14px;line-height:1;cursor:pointer;opacity:.55}.tab-close:hover{background:hsl(var(--muted));opacity:1}.tab-panel{display:block}.auth-layout{display:flex;min-height:100dvh;background:hsl(var(--background))}.auth-brand{display:none;flex-direction:column;justify-content:center;width:26rem;flex:none;padding:0 var(--space-12);background:hsl(var(--surface-inverse));color:hsl(var(--content-inverse))}.auth-brand-head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8)}.auth-brand-mark{display:flex;align-items:center;justify-content:center;width:56px;height:56px;flex:none;border-radius:var(--radius-card);background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:var(--font-size-section-title);font-weight:700;letter-spacing:-.03em}.auth-brand-name{font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:var(--line-height-tight);color:hsl(var(--content-inverse))}.auth-brand-tagline{margin-top:2px;font-size:var(--font-size-body-sm);color:hsl(var(--content-inverse) / .7)}.auth-features{display:flex;flex-direction:column;gap:var(--space-4)}.auth-feature{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-body-sm);color:hsl(var(--content-inverse) / .7)}.auth-feature-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex:none;border-radius:var(--radius-base);background:hsl(var(--content-inverse) / .1);color:hsl(var(--content-inverse) / .85);font-family:var(--font-mono);font-size:var(--font-size-caption);font-weight:600}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.auth-card{width:100%;max-width:26rem;display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-8);background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.auth-card h1{font-size:var(--font-size-page-title);font-weight:700;letter-spacing:-.02em}.auth-desc{color:hsl(var(--muted-foreground));font-size:var(--font-size-body);line-height:var(--line-height-body)}.auth-hint{color:hsl(var(--muted-foreground));font-size:var(--font-size-caption);line-height:var(--line-height-body);text-align:center}.auth-error-slot:empty{display:none}.auth-mobile-brand{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);justify-content:center}.auth-mobile-mark{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-base);background:hsl(var(--primary));color:hsl(var(--primary-foreground));font-size:var(--font-size-title);font-weight:700}.auth-mobile-name{font-size:var(--font-size-body-lg);font-weight:700;letter-spacing:-.02em}.auth-mobile-tagline{font-size:var(--font-size-caption);color:hsl(var(--muted-foreground))}@media (min-width: 1024px){.auth-brand{display:flex}.auth-mobile-brand{display:none}}.gate-layout{display:flex;min-height:100dvh;align-items:center;justify-content:center;padding:var(--space-6);background:hsl(var(--background))}.gate-card{width:100%;max-width:26rem;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-8);background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.gate-card h1{font-size:var(--font-size-section-title);font-weight:600}@media (max-width: 640px){.auth-card,.gate-card{padding:var(--space-6)}}
