:root,:root[data-theme=light]{--color-primary: #3399ff;--color-primary-light: rgba(51, 153, 255, .1);--color-primary-dark: #2980b9;--color-secondary: #f0f8ff;--color-background: #f9f9f9;--color-text: #333333;--color-text-light: #666666;--color-border: #dddddd;--color-critical: #ff0000;--color-high: #ff9900;--color-medium: #ffcc00;--color-low: #99cc00;--color-white: #ffffff;--color-black: #000000;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-xxl: 32px;--border-radius-sm: 4px;--border-radius-md: 6px;--border-radius-lg: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 2px 4px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .1);--transition-fast: .1s ease;--transition-normal: .15s ease;--transition-slow: .25s ease}*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text);line-height:1.5;min-height:100vh;width:100%;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.2;color:var(--color-text)}h1{font-size:var(--font-size-xxl);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md)}h3{font-size:var(--font-size-lg);margin-bottom:var(--spacing-sm)}p{margin:0 0 var(--spacing-md) 0}.tooltip{position:relative;display:inline-block}.tooltip .tooltip-text{visibility:hidden;width:200px;background-color:var(--color-text);color:var(--color-white);text-align:center;border-radius:var(--border-radius-md);padding:var(--spacing-md);position:absolute;z-index:10;bottom:125%;left:50%;margin-left:-100px;opacity:0;transition:opacity var(--transition-normal),visibility var(--transition-normal);box-shadow:var(--shadow-md);font-size:var(--font-size-sm)}.tooltip .tooltip-text:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--color-text) transparent transparent transparent}.tooltip:hover .tooltip-text{visibility:visible;opacity:1}:focus{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.timeline{position:relative;padding:var(--spacing-lg) 0}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background-color:var(--color-border)}button,.button{background-color:var(--color-primary);color:var(--color-white);border:none;border-radius:var(--border-radius-md);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);cursor:pointer;transition:background-color var(--transition-fast)}button:hover,.button:hover{background-color:var(--color-primary-dark)}button:disabled,.button:disabled{background-color:var(--color-border);cursor:not-allowed}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none}label{display:block;margin-bottom:var(--spacing-xs);font-weight:500}.card{background-color:var(--color-white);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-md)}@keyframes pulse{0%{box-shadow:0 0 #39f6}70%{box-shadow:0 0 0 10px #39f0}to{box-shadow:0 0 #39f0}}.pulse{animation:pulse 1.5s infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.text-center{text-align:center}.text-sm{font-size:var(--font-size-sm)}.text-lg{font-size:var(--font-size-lg)}.font-bold{font-weight:700}.m-0{margin:0}.m-xs{margin:var(--spacing-xs)}.m-sm{margin:var(--spacing-sm)}.m-md{margin:var(--spacing-md)}.m-lg{margin:var(--spacing-lg)}.m-xl{margin:var(--spacing-xl)}.mt-0{margin-top:0}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-0{margin-bottom:0}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.ml-0{margin-left:0}.ml-xs{margin-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.mr-0{margin-right:0}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.mx-0{margin-left:0;margin-right:0}.mx-xs{margin-left:var(--spacing-xs);margin-right:var(--spacing-xs)}.mx-sm{margin-left:var(--spacing-sm);margin-right:var(--spacing-sm)}.mx-md{margin-left:var(--spacing-md);margin-right:var(--spacing-md)}.mx-lg{margin-left:var(--spacing-lg);margin-right:var(--spacing-lg)}.mx-xl{margin-left:var(--spacing-xl);margin-right:var(--spacing-xl)}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-xs{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.my-sm{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.my-md{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.my-lg{margin-top:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.my-xl{margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.pt-0{padding-top:0}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pb-0{padding-bottom:0}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.pl-0{padding-left:0}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pl-xl{padding-left:var(--spacing-xl)}.pr-0{padding-right:0}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.pr-xl{padding-right:var(--spacing-xl)}.px-0{padding-left:0;padding-right:0}.px-xs{padding-left:var(--spacing-xs);padding-right:var(--spacing-xs)}.px-sm{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-md{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-lg{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-xl{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}.py-0{padding-top:0;padding-bottom:0}.py-xs{padding-top:var(--spacing-xs);padding-bottom:var(--spacing-xs)}.py-sm{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-md{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-lg{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-xl{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.touch-target{min-height:44px;min-width:44px}.touch-target-lg{min-height:48px;min-width:48px}.touch-feedback{transition:transform .15s ease,opacity .15s ease}.touch-feedback:active{transform:scale(.97);opacity:.9}.touch-ripple{position:relative;overflow:hidden}.touch-ripple:after{content:"";position:absolute;top:50%;left:50%;width:5px;height:5px;background:#ffffff80;opacity:0;border-radius:100%;transform:scale(1) translate(-50%,-50%);transform-origin:50% 50%}.touch-ripple:active:after{opacity:.3;animation:ripple .4s ease-out}@keyframes ripple{0%{transform:scale(0) translate(-50%,-50%);opacity:.5}to{transform:scale(20) translate(-50%,-50%);opacity:0}}.safe-area-inset-top{padding-top:env(safe-area-inset-top,0)}.safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom,0)}.safe-area-inset-left{padding-left:env(safe-area-inset-left,0)}.safe-area-inset-right{padding-right:env(safe-area-inset-right,0)}:root[data-theme=dark]{--color-primary: #3399ff;--color-primary-light: rgba(51, 153, 255, .3);--color-primary-dark: #2980b9;--color-secondary: #1e2a38;--color-background: #121212;--color-text: #f5f5f5;--color-text-light: #cccccc;--color-border: #444444;--color-critical: #ff6666;--color-high: #ffbb44;--color-medium: #ffee44;--color-low: #bbee44;--color-white: #ffffff;--color-black: #000000;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .3)}:root[data-theme=dark] .card{background-color:#1e1e1e;color:var(--color-text)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] textarea{background-color:#2a2a2a;color:var(--color-text);border-color:#444}:root[data-theme=dark] button,:root[data-theme=dark] .button{background-color:var(--color-primary);color:var(--color-white)}:root[data-theme=dark] button:hover,:root[data-theme=dark] .button:hover{background-color:var(--color-primary-dark)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-primary: #3399ff;--color-primary-light: rgba(51, 153, 255, .3);--color-primary-dark: #2980b9;--color-secondary: #1e2a38;--color-background: #121212;--color-text: #f5f5f5;--color-text-light: #cccccc;--color-border: #444444;--color-critical: #ff6666;--color-high: #ffbb44;--color-medium: #ffee44;--color-low: #bbee44;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .3)}:root:not([data-theme=light]) .card{background-color:#1e1e1e;color:var(--color-text)}:root:not([data-theme=light]) input,:root:not([data-theme=light]) select,:root:not([data-theme=light]) textarea{background-color:#2a2a2a;color:var(--color-text);border-color:#444}}
