:root{--background: 0 0% 100%;--foreground: 0 0% 9%;--muted: 0 0% 96%;--muted-foreground: 0 0% 45%;--accent: 211 100% 50%;--accent-foreground: 0 0% 100%;--border: 0 0% 91%;--ring: 211 100% 50%;--success: 141 72% 42%;--danger: 358 75% 52%;--warning: 36 100% 50%;--font-system: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", "Inter", sans-serif;--font-mono: "SF Mono", "Menlo", "Monaco", "Consolas", monospace;--font-title: var(--font-system);--font-body: var(--font-system);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--radius-sm: 6px;--radius: 8px;--radius-lg: 12px;--radius-xl: 18px;--radius-2xl: 24px;--shadow-sm: 0 .5px 1px rgb(0 0 0 / .04);--shadow: 0 1px 3px rgb(0 0 0 / .06);--shadow-md: 0 4px 12px rgb(0 0 0 / .08);--shadow-lg: 0 12px 40px rgb(0 0 0 / .12);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.175, .885, .32, 1.275);--fg: hsl(var(--foreground));--muted-fg: hsl(var(--muted-foreground));--primary: hsl(var(--accent));--primary-hover: hsl(var(--accent) / .88);--primary-light: hsl(var(--accent) / .08);--label: hsl(var(--foreground));--secondary: hsl(var(--muted-foreground));--tertiary: hsl(var(--foreground) / .25);--quaternary: hsl(var(--foreground) / .08);--separator: hsl(var(--foreground) / .1);--separator-thick: hsl(var(--foreground) / .15);--bg-window: hsl(var(--background));--bg-secondary: hsl(var(--muted));--bg-tertiary: hsl(var(--background));--bg: hsl(var(--muted));--surface: hsl(var(--background));--blue: hsl(var(--accent));--green: hsl(var(--success));--red: hsl(var(--danger));--orange: hsl(var(--warning));--info-bg: hsl(var(--accent) / .06);--border-color: hsl(var(--border));--ring-color: hsl(var(--ring))}.dark{--background: 0 0% 8%;--foreground: 0 0% 95%;--muted: 0 0% 12%;--muted-foreground: 0 0% 70%;--accent: 211 100% 65%;--border: 0 0% 20%;--ring: 211 100% 65%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-system);background:hsl(var(--background));color:hsl(var(--foreground));line-height:1.5;letter-spacing:-.01em}::-moz-selection{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}::selection{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{scrollbar-width:thin;scrollbar-color:hsl(var(--muted-foreground) / .2) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsl(var(--muted-foreground) / .2);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:hsl(var(--muted-foreground) / .35)}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.\!mt-2{margin-top:.5rem!important}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-px{margin-top:1px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-11{height:2.75rem}.h-2{height:.5rem}.h-5{height:1.25rem}.h-\[4px\]{height:4px}.h-\[6px\]{height:6px}.h-full{height:100%}.max-h-\[300px\]{max-height:300px}.\!w-\[120px\]{width:120px!important}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-5{width:1.25rem}.w-8{width:2rem}.w-\[60px\]{width:60px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[20px\]{min-width:20px}.min-w-\[80px\]{min-width:80px}.max-w-\[200px\]{max-width:200px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-\[10px\]{gap:10px}.gap-\[6px\]{gap:6px}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:8px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:12px}.rounded-sm{border-radius:6px}.rounded-t{border-top-left-radius:8px;border-top-right-radius:8px}.border{border-width:1px}.border-2{border-width:2px}.border-b-2{border-bottom-width:2px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-yellow-300{--tw-border-opacity: 1;border-color:rgb(253 224 71 / var(--tw-border-opacity, 1))}.bg-\[var\(--primary-light\)\]{background-color:var(--primary-light)}.bg-transparent{background-color:transparent}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-\[family-name\:var\(--font-title\)\]{font-family:var(--font-title)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[22px\]{font-size:22px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.leading-relaxed{line-height:1.625}.tracking-wide{letter-spacing:.025em}.text-\[var\(--primary\)\]{color:var(--primary)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}.text-display{font-size:clamp(2.25rem,5vw,5rem);font-weight:600;line-height:1.1;letter-spacing:-.025em}.text-headline{font-size:clamp(1.75rem,4vw,3rem);font-weight:600;line-height:1.2;letter-spacing:-.02em}.text-title{font-size:clamp(1.125rem,2.5vw,1.5rem);font-weight:600;line-height:1.3;letter-spacing:-.01em}.text-body{font-size:clamp(.875rem,2vw,1.125rem);font-weight:400;line-height:1.5}.text-caption{font-size:clamp(.75rem,1.5vw,.875rem);font-weight:400;line-height:1.4;color:hsl(var(--muted-foreground))}.page-wrap{max-width:1200px;margin:0 auto;padding:0 var(--space-lg) var(--space-3xl);width:100%}@media(max-width:768px){.page-wrap{padding:0 var(--space-md) var(--space-3xl)}}.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;background:hsl(var(--background) / .72);border-right:1px solid hsl(var(--border));backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%);display:flex;flex-direction:column;z-index:40;overflow-y:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sidebar-header{padding:var(--space-lg) var(--space-md) var(--space-sm)}.sidebar-header-brand{font-size:22px;font-weight:700;color:hsl(var(--foreground));letter-spacing:-.02em}.sidebar-title{font-size:11px;font-weight:600;color:hsl(var(--muted-foreground));text-transform:none;letter-spacing:0;padding:0 var(--space-md);margin-bottom:var(--space-sm)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:1px;padding:0 var(--space-sm)}.sidebar-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius);font-size:14px;font-weight:400;color:hsl(var(--foreground));cursor:pointer;transition:background .12s var(--ease-out);border:none;background:transparent;text-align:left;width:100%;letter-spacing:-.01em;line-height:1.3}.sidebar-item:hover{background:hsl(var(--foreground) / .05)}.sidebar-item.active{background:hsl(var(--accent) / .12);color:hsl(var(--accent));font-weight:500}.sidebar-item-icon{font-size:16px;width:20px;text-align:center;flex-shrink:0;opacity:.8}.sidebar-item.active .sidebar-item-icon{opacity:1}.sidebar-footer{padding:var(--space-sm);margin:0 var(--space-sm);border-top:1px solid hsl(var(--border))}.sidebar-user{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--radius);font-size:13px;color:hsl(var(--muted-foreground));cursor:pointer;transition:background .12s var(--ease-out);border:none;background:transparent;width:100%;text-align:left}.sidebar-user:hover{background:hsl(var(--foreground) / .04)}.main-content{margin-left:260px;min-height:100vh}@media(max-width:767px){.main-content{margin-left:0}}.page-header{padding:var(--space-2xl) 0 var(--space-lg)}.page-header-title{font-size:clamp(2rem,4vw,3rem);font-weight:600;color:hsl(var(--foreground));letter-spacing:-.02em;line-height:1.15}.page-header-desc{font-size:clamp(.938rem,2vw,1.125rem);font-weight:400;color:hsl(var(--muted-foreground));margin-top:var(--space-xs)}.section{margin-bottom:var(--space-2xl)}.section-title{font-size:clamp(1.25rem,2.5vw,1.75rem);font-weight:600;color:hsl(var(--foreground));margin-bottom:var(--space-md);letter-spacing:-.01em}.section-heading{font-size:13px;font-weight:600;color:hsl(var(--muted-foreground));letter-spacing:-.01em;margin-bottom:var(--space-sm)}.card{background:hsl(var(--background));border:1px solid hsl(var(--border));box-shadow:var(--shadow);border-radius:var(--radius-lg);padding:var(--space-xl);transition:box-shadow .3s var(--ease-out),transform .3s var(--ease-out)}.card:hover{box-shadow:var(--shadow-md)}.card-header{font-size:clamp(1rem,2vw,1.125rem);font-weight:600;color:hsl(var(--foreground));margin-bottom:var(--space-md);letter-spacing:-.01em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-family:var(--font-system);font-weight:500;line-height:1;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s var(--ease-out);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;letter-spacing:-.01em}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.25;cursor:default;transform:none}.btn-sm{padding:var(--space-xs) var(--space-sm);font-size:13px;min-height:28px}.btn-md{padding:var(--space-sm) var(--space-md);font-size:14px;min-height:32px}.btn-lg{padding:var(--space-sm) var(--space-lg);font-size:15px;min-height:40px}.btn-primary{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border:1px solid hsl(var(--accent));box-shadow:0 1px 2px hsl(var(--accent) / .15)}.btn-primary:hover:not(:disabled){background:hsl(var(--accent) / .9);transform:translateY(-.5px);box-shadow:0 4px 12px hsl(var(--accent) / .3)}.btn-secondary{background:hsl(var(--muted));color:hsl(var(--foreground));border:1px solid hsl(var(--border))}.btn-secondary:hover:not(:disabled){background:hsl(var(--foreground) / .08);transform:translateY(-.5px);box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent;color:hsl(var(--accent))}.btn-ghost:hover:not(:disabled){background:hsl(var(--accent) / .08)}.btn-accent{background:hsl(var(--danger));color:#fff}.btn-accent:hover:not(:disabled){background:hsl(var(--danger) / .9);transform:translateY(-.5px);box-shadow:0 4px 12px hsl(var(--danger) / .3)}.btn-danger-ghost{background:transparent;color:hsl(var(--muted-foreground))}.btn-danger-ghost:hover:not(:disabled){color:hsl(var(--danger));background:hsl(var(--danger) / .06)}.field-wrap{display:flex;flex-direction:column;gap:3px}.field-label{font-size:12px;font-weight:500;color:hsl(var(--muted-foreground))}.field{width:100%;padding:var(--space-sm) var(--space-sm);font-size:14px;font-family:var(--font-system);color:hsl(var(--foreground));background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius);outline:none;transition:border-color .15s var(--ease-out),box-shadow .15s var(--ease-out);min-height:36px}.field::-moz-placeholder{color:hsl(var(--muted-foreground) / .5)}.field::placeholder{color:hsl(var(--muted-foreground) / .5)}.field:focus{border-color:hsl(var(--accent));box-shadow:0 0 0 3px hsl(var(--accent) / .18)}.field.error{border-color:hsl(var(--danger))}.field.error:focus{box-shadow:0 0 0 3px hsl(var(--danger) / .16)}.field-error{font-size:11px;margin-top:2px;color:hsl(var(--danger))}textarea.field{resize:vertical;min-height:80px}.select-wrap{position:relative;width:100%}.select{width:100%;padding:var(--space-sm) 32px var(--space-sm) var(--space-sm);font-size:14px;font-family:var(--font-system);color:hsl(var(--foreground));background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:var(--radius);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;transition:border-color .15s var(--ease-out),box-shadow .15s var(--ease-out);min-height:36px}.select:focus{border-color:hsl(var(--accent));box-shadow:0 0 0 3px hsl(var(--accent) / .18)}.select-arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:hsl(var(--muted-foreground));font-size:9px}.segmented{display:inline-flex;gap:0;padding:2px;background:hsl(var(--muted));border-radius:var(--radius)}.segmented-item{padding:var(--space-xs) var(--space-md);font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s var(--ease-out);font-family:var(--font-system);white-space:nowrap;min-height:28px}.segmented-item:hover{color:hsl(var(--foreground))}.segmented-item.active{background:hsl(var(--background));color:hsl(var(--foreground));box-shadow:var(--shadow-sm)}.check-wrap{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer;font-size:14px;color:hsl(var(--foreground))}.check{accent-color:hsl(var(--accent));width:16px;height:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:hsl(var(--foreground) / .25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.modal-panel{background:hsl(var(--background));backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%);border:1px solid hsl(var(--border));border-radius:var(--radius-2xl);padding:var(--space-xl);max-width:440px;width:calc(100vw - 32px);max-height:85vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:scaleIn .35s var(--ease-spring)}@keyframes scaleIn{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.modal-title{font-size:clamp(1rem,2vw,1.125rem);font-weight:600;color:hsl(var(--foreground))}.modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:hsl(var(--muted-foreground));background:hsl(var(--muted));border:none;cursor:pointer;font-size:14px;transition:all .15s var(--ease-out)}.modal-close:hover{background:hsl(var(--foreground) / .1);color:hsl(var(--foreground))}.subtabs{display:inline-flex;gap:0;padding:2px;background:hsl(var(--muted));border-radius:var(--radius)}.subtab{padding:var(--space-xs) var(--space-md);font-size:12px;font-weight:500;color:hsl(var(--muted-foreground));background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .15s var(--ease-out);font-family:var(--font-system)}.subtab:hover{color:hsl(var(--foreground))}.subtab.active{background:hsl(var(--background));color:hsl(var(--foreground));box-shadow:var(--shadow-sm)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-3xl) 0}.loading-spinner{width:20px;height:20px;border:2px solid hsl(var(--muted));border-top-color:hsl(var(--accent));border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{font-size:13px;color:hsl(var(--muted-foreground))}.toast-container{position:fixed;top:var(--space-lg);right:var(--space-lg);z-index:200;display:flex;flex-direction:column;gap:var(--space-sm)}.toast{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:14px;border-radius:var(--radius-lg);background:hsl(var(--background));backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%);border:1px solid hsl(var(--border));color:hsl(var(--foreground));box-shadow:var(--shadow-lg);animation:fadeIn .3s var(--ease-out);max-width:340px}.toast-success{border-left:3px solid hsl(var(--success))}.toast-error{border-left:3px solid hsl(var(--danger))}.toast-info{border-left:3px solid hsl(var(--accent))}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.badge{display:inline-flex;align-items:center;gap:3px;padding:2px var(--space-sm);font-size:11px;font-weight:500;line-height:1.4;border-radius:99px}.badge-primary{background:hsl(var(--accent) / .1);color:hsl(var(--accent))}.badge-muted{background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.badge-success{background:hsl(var(--success) / .1);color:hsl(var(--success))}.badge-danger{background:hsl(var(--danger) / .08);color:hsl(var(--danger))}.badge-warning{background:hsl(var(--warning) / .1);color:hsl(var(--warning))}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl) 0;color:hsl(var(--muted-foreground))}.empty-icon{font-size:36px;margin-bottom:var(--space-sm);opacity:.3}.empty-text{font-size:14px}.error-box{max-width:480px;margin:var(--space-2xl) auto;padding:var(--space-xl);background:hsl(var(--background));border-radius:var(--radius-lg);border:1px solid hsl(var(--border));box-shadow:var(--shadow)}.error-title{font-size:clamp(1rem,2vw,1.125rem);font-weight:600;color:hsl(var(--danger));margin-bottom:var(--space-sm)}.error-detail{font-size:12px;white-space:pre-wrap;word-break:break-all;max-height:180px;overflow:auto;border-radius:var(--radius);padding:var(--space-sm) var(--space-sm);background:hsl(var(--muted));color:hsl(var(--muted-foreground));margin-bottom:var(--space-md)}.history-list{display:flex;flex-direction:column;gap:0}.history-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:0;cursor:pointer;transition:background .1s var(--ease-out)}.history-row+.history-row{border-top:1px solid hsl(var(--border))}.history-row:hover{background:hsl(var(--foreground) / .03)}.history-row-info{display:flex;align-items:center;gap:var(--space-sm)}.history-row-label{font-size:14px;font-weight:400;color:hsl(var(--foreground))}.history-row-meta{font-size:12px;color:hsl(var(--muted-foreground));margin-top:1px}.history-row-actions{display:flex;gap:4px}.gauge{text-align:center;padding:var(--space-md) 0}.gauge-value{font-size:clamp(2.5rem,5vw,4rem);font-weight:600;line-height:1;color:hsl(var(--foreground));letter-spacing:-.03em}.gauge-unit{font-size:clamp(1rem,2vw,1.25rem);font-weight:400;margin-left:2px;color:hsl(var(--muted-foreground))}.gauge-label{font-size:13px;color:hsl(var(--muted-foreground));margin-top:var(--space-xs)}.progress{height:4px;border-radius:99px;overflow:hidden;background:hsl(var(--muted))}.progress-fill{height:100%;border-radius:99px;transition:width .3s var(--ease-out)}.bazi-table{width:100%;border-collapse:collapse;font-size:14px}.bazi-table th{padding:var(--space-sm) var(--space-sm);text-align:center;font-weight:600;font-size:13px;color:hsl(var(--accent));border-bottom:1px solid hsl(var(--border))}.bazi-table td{padding:var(--space-md) var(--space-sm);text-align:center;border-bottom:1px solid hsl(var(--border))}.bazi-stem{font-size:clamp(1.25rem,3vw,1.75rem);font-weight:600;color:hsl(var(--foreground))}.bazi-branch{font-size:clamp(1.25rem,3vw,1.75rem);font-weight:600;color:hsl(var(--muted-foreground))}.bazi-daymaster{text-align:center;font-size:14px;color:hsl(var(--muted-foreground));margin-top:var(--space-sm)}.bazi-daymaster strong{color:hsl(var(--accent));font-weight:500}.elements{display:flex;justify-content:center;gap:var(--space-xl);flex-wrap:wrap;padding:var(--space-lg) 0}.element{display:flex;flex-direction:column;align-items:center;gap:0}.palace-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;max-width:420px}.palace-cell{padding:var(--space-md) var(--space-sm);text-align:center;border-radius:var(--radius-sm);background:hsl(var(--muted));font-size:12px}.palace-cell.center{background:hsl(var(--accent) / .08);font-weight:600;color:hsl(var(--accent))}.tiyong-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-sm)}.tiyong-cell{padding:var(--space-md);text-align:center;border-radius:var(--radius);background:hsl(var(--muted))}.tiyong-relation{padding:var(--space-sm);text-align:center;border-radius:var(--radius);border:1px solid hsl(var(--border));font-weight:500}.pillar-bar{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);justify-content:center;font-size:13px;color:hsl(var(--muted-foreground));background:hsl(var(--muted));border-radius:var(--radius);padding:var(--space-sm) var(--space-lg)}.hex-line-yang{height:5px;background:hsl(var(--foreground));border-radius:2px}.hex-line-yin{display:flex;gap:8px}.hex-line-yin .hex-line-yang{flex:1}.hex-label{display:inline-block;padding:2px var(--space-sm);font-size:11px;border-radius:99px;border:1px solid hsl(var(--border));color:hsl(var(--muted-foreground))}.hex-table{width:100%;border-collapse:collapse;font-size:13px}.hex-table th{padding:var(--space-sm) 4px;font-size:11px;font-weight:600;text-align:center;color:hsl(var(--muted-foreground));border-bottom:1px solid hsl(var(--border))}.hex-table td{padding:var(--space-sm) 4px;text-align:center;border-bottom:1px solid hsl(var(--border))}.hex-table tr.changing{background:hsl(var(--danger) / .04)}.hex-table tr.shi-line{background:hsl(var(--accent) / .06)}.yingqi-box{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);background:hsl(var(--accent) / .06)}.yingqi-label{font-weight:600;color:hsl(var(--accent));min-width:80px;font-size:12px}.yingqi-value{flex:1;font-weight:600;color:hsl(var(--foreground));font-size:14px}.hub-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md);max-width:680px;margin:0 auto;width:100%}@media(min-width:640px){.hub-grid{grid-template-columns:1fr 1fr}}.hub-card{text-align:center;padding:var(--space-2xl) var(--space-lg);cursor:pointer;border-radius:var(--radius-lg);border:1px solid hsl(var(--border));background:hsl(var(--background));box-shadow:var(--shadow);transition:all .3s var(--ease-out)}.hub-card:hover{border-color:hsl(var(--accent));box-shadow:0 4px 16px hsl(var(--accent) / .12);transform:translateY(-1px)}.hub-icon{font-size:36px;margin-bottom:var(--space-md);line-height:1}.hub-name{font-size:clamp(1.125rem,2.5vw,1.25rem);font-weight:600;color:hsl(var(--foreground));margin-bottom:var(--space-xs);letter-spacing:-.01em}.hub-desc{font-size:14px;color:hsl(var(--muted-foreground));line-height:1.5;max-width:260px;margin:0 auto}.duanyu-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:13px}.duanyu-item{padding:var(--space-sm) var(--space-sm);background:hsl(var(--muted));border-radius:var(--radius-sm)}.chat-toggle{position:fixed;bottom:var(--space-lg);right:var(--space-lg);z-index:45;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:hsl(var(--accent));color:hsl(var(--accent-foreground));border:none;cursor:pointer;box-shadow:var(--shadow-md);transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out)}.chat-toggle:hover{transform:scale(1.06);box-shadow:var(--shadow-lg)}.chat-toggle:active{transform:scale(.95)}.chat-panel{position:fixed;bottom:88px;right:var(--space-lg);z-index:45;width:360px;max-width:calc(100vw - 32px);height:480px;max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius-xl);background:hsl(var(--background));backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%);box-shadow:var(--shadow-lg);border:1px solid hsl(var(--border));animation:scaleIn .25s var(--ease-spring)}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);border-bottom:1px solid hsl(var(--border));flex-shrink:0}.chat-head-left{display:flex;align-items:center;gap:var(--space-sm)}.chat-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:hsl(var(--accent));color:hsl(var(--accent-foreground));font-size:13px;font-weight:600;flex-shrink:0}.chat-title{font-size:15px;font-weight:600;color:hsl(var(--foreground))}.chat-body{flex:1;overflow-y:auto;padding:var(--space-md);background:hsl(var(--muted))}.chat-msg{margin-bottom:var(--space-sm);display:flex;flex-direction:column}.chat-msg-user{align-items:flex-end}.chat-msg-ai{align-items:flex-start}.chat-bubble{max-width:80%;padding:var(--space-sm) var(--space-sm);font-size:14px;line-height:1.45;white-space:pre-wrap;border-radius:16px}.chat-bubble-user{background:hsl(var(--accent));color:hsl(var(--accent-foreground));border-bottom-right-radius:4px}.chat-bubble-ai{background:hsl(var(--background));color:hsl(var(--foreground));border:1px solid hsl(var(--border));border-bottom-left-radius:4px}.chat-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.chat-suggestion{padding:var(--space-xs) var(--space-sm);font-size:12px;border-radius:99px;background:hsl(var(--background));color:hsl(var(--accent));cursor:pointer;transition:background .12s var(--ease-out);border:1px solid hsl(var(--border));font-family:var(--font-system)}.chat-suggestion:hover{background:hsl(var(--accent) / .08)}.chat-foot{display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-top:1px solid hsl(var(--border));flex-shrink:0}.chat-input{flex:1;padding:var(--space-sm) var(--space-sm);font-size:14px;border-radius:99px;outline:none;border:1px solid hsl(var(--border));background:hsl(var(--muted));color:hsl(var(--foreground));font-family:var(--font-system);transition:border-color .12s var(--ease-out)}.chat-input:focus{border-color:hsl(var(--accent))}.chat-input::-moz-placeholder{color:hsl(var(--muted-foreground))}.chat-input::placeholder{color:hsl(var(--muted-foreground))}.chat-loading{font-size:12px;padding:var(--space-xs);color:hsl(var(--muted-foreground));animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.report{font-size:clamp(.875rem,2vw,1rem);line-height:1.6;color:hsl(var(--foreground))}.report h1{font-size:clamp(1.5rem,3.5vw,2rem);font-weight:600;margin:var(--space-2xl) 0 var(--space-md);color:hsl(var(--foreground));letter-spacing:-.02em}.report h2{font-size:clamp(1.125rem,2.5vw,1.375rem);font-weight:600;margin:var(--space-xl) 0 var(--space-sm);color:hsl(var(--foreground));padding-bottom:var(--space-sm);border-bottom:1px solid hsl(var(--border))}.report h3{font-size:clamp(1rem,2vw,1.125rem);font-weight:600;margin:var(--space-lg) 0 var(--space-sm);color:hsl(var(--foreground))}.report h4{font-size:15px;font-weight:600;margin:var(--space-md) 0 var(--space-sm)}.report p{margin:var(--space-sm) 0}.report blockquote{border-left:3px solid hsl(var(--accent));padding:var(--space-sm) var(--space-md);margin:var(--space-md) 0;background:hsl(var(--accent) / .04);border-radius:0 var(--radius) var(--radius) 0;font-size:14px}.report table{width:100%;border-collapse:collapse;margin:var(--space-md) 0;font-size:13px}.report thead{background:hsl(var(--muted))}.report th{padding:var(--space-sm) var(--space-sm);text-align:left;font-size:11px;font-weight:600;color:hsl(var(--muted-foreground))}.report td{padding:var(--space-sm) var(--space-sm);border-top:1px solid hsl(var(--border))}.report tbody tr:nth-child(2n){background:hsl(var(--foreground) / .01)}.report pre{padding:var(--space-md);border-radius:var(--radius);font-size:12px;overflow-x:auto;background:hsl(var(--muted));border:1px solid hsl(var(--border));font-family:var(--font-mono)}.report code{padding:2px var(--space-xs);border-radius:4px;font-size:12px;font-family:var(--font-mono);background:hsl(var(--accent) / .06);color:hsl(var(--accent))}.report pre code{background:transparent;color:inherit;padding:0}.report ul,.report ol{margin:var(--space-sm) 0;padding-left:22px}.report li{margin:4px 0}.report hr{margin:var(--space-lg) 0;border:none;height:1px;background:hsl(var(--border))}.report a{color:hsl(var(--accent));text-decoration:none}.report a:hover{text-decoration:underline}.report img{max-width:100%;border-radius:var(--radius);margin:var(--space-md) 0}.ai-insight{position:relative;border-radius:var(--radius-lg);padding:var(--space-xl);background:linear-gradient(135deg,hsl(var(--accent) / .04),hsl(var(--background)));border:1px solid hsl(var(--accent) / .15)}.ai-insight-title{font-size:clamp(1rem,2vw,1.125rem);font-weight:600;color:hsl(var(--foreground));margin-bottom:var(--space-md)}.report-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:640px){.report-grid.cols-2{grid-template-columns:1fr 1fr}}.actions{display:flex;gap:var(--space-sm);justify-content:center;margin-top:var(--space-xl);padding-top:var(--space-lg)}.page-footer{margin-top:var(--space-3xl);text-align:center;padding:var(--space-lg) 0;color:hsl(var(--muted-foreground));font-size:12px}.fold-trigger{font-size:13px;color:hsl(var(--accent));cursor:pointer;border:none;background:transparent;font-family:var(--font-system);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);transition:background .12s var(--ease-out)}.fold-trigger:hover{background:hsl(var(--accent) / .06)}@keyframes appleFadeIn{0%{opacity:0}to{opacity:1}}@keyframes appleScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fade-in{animation:appleFadeIn .5s var(--ease-out) forwards}.bottom-bar{position:fixed;bottom:0;left:0;right:0;height:84px;padding-bottom:20px;background:hsl(var(--background) / .72);backdrop-filter:blur(20px) saturate(120%);-webkit-backdrop-filter:blur(20px) saturate(120%);border-top:1px solid hsl(var(--border));display:flex;align-items:center;justify-content:space-around;z-index:50}.bottom-bar-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius);font-size:10px;font-weight:500;color:hsl(var(--muted-foreground));cursor:pointer;border:none;background:transparent;font-family:var(--font-system);min-width:48px}.bottom-bar-item .icon{font-size:22px;line-height:1}.bottom-bar-item.active{color:hsl(var(--accent))}@media(max-width:768px){.btn{min-height:44px}.segmented-item{min-height:36px}}@media print{html,body{background:#fff!important;color:#000!important;font-size:11pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sidebar,.bottom-bar,.chat-toggle,.chat-panel,.btn,button,input,textarea,select{display:none!important}.card{box-shadow:none!important;border:1px solid #ddd!important}.main-content{margin-left:0!important}.report{font-size:10pt;line-height:1.6;color:#000}@page{margin:10mm 12mm;size:A4}}@media(min-width:768px){.md\:mt-12{margin-top:3rem}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-8{gap:2rem}.md\:self-start{align-self:flex-start}}@media print{.print\:block{display:block}.print\:hidden{display:none}}
