:root{--plas-green: #4CAF50;--plas-green-hover: #43A047;--plas-green-light: #E8F5E9;--plas-green-dark: #388E3C;--plas-blue: #003F6B;--plas-blue-hover: #002F4F;--plas-blue-light: #E3F2FD;--plas-white: #FFFFFF;--plas-gray: #6E6E6E;--plas-gray-light: #F5F5F5;--plas-gray-medium: #9E9E9E;--plas-gray-dark: #424242;--plas-error: #D32F2F;--plas-error-light: #FFEBEE;--plas-error-border: #FFCDD2;--plas-success: #2E7D32;--plas-success-light: #E8F5E9;--plas-success-border: #C8E6C9;--plas-warning: #F57C00;--plas-warning-light: #FFF3E0;--plas-warning-border: #FFE0B2;--plas-info: #0288D1;--plas-info-light: #E1F5FE;--plas-info-border: #B3E5FC;--plas-border: #E0E0E0;--plas-border-radius: 12px;--plas-border-radius-sm: 8px;--plas-border-radius-lg: 16px;--plas-shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--plas-shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--plas-shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--plas-spacing-xs: .25rem;--plas-spacing-sm: .5rem;--plas-spacing-md: 1rem;--plas-spacing-lg: 1.5rem;--plas-spacing-xl: 2rem;--plas-spacing-2xl: 3rem;--plas-font-heading: "Montserrat", system-ui, -apple-system, sans-serif;--plas-font-body: "Open Sans", system-ui, -apple-system, sans-serif;--plas-font-size-xs: .75rem;--plas-font-size-sm: .875rem;--plas-font-size-base: 1rem;--plas-font-size-lg: 1.125rem;--plas-font-size-xl: 1.25rem;--plas-font-size-2xl: 1.5rem;--plas-font-size-3xl: 2rem;--plas-font-weight-normal: 400;--plas-font-weight-medium: 500;--plas-font-weight-semibold: 600;--plas-font-weight-bold: 700;--plas-line-height-tight: 1.25;--plas-line-height-normal: 1.5;--plas-line-height-relaxed: 1.75;--plas-transition-fast: .15s ease-in-out;--plas-transition-base: .25s ease-in-out;--plas-transition-slow: .35s ease-in-out;--plas-z-header: 100;--plas-z-modal: 200;--plas-z-toast: 300}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--plas-font-body);font-size:var(--plas-font-size-base);line-height:var(--plas-line-height-normal);color:var(--plas-gray-dark);background-color:var(--plas-gray-light);min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--plas-font-heading);font-weight:var(--plas-font-weight-semibold);line-height:var(--plas-line-height-tight);color:var(--plas-blue)}h1{font-size:var(--plas-font-size-3xl);font-weight:var(--plas-font-weight-bold)}h2{font-size:var(--plas-font-size-2xl)}h3{font-size:var(--plas-font-size-xl)}h4{font-size:var(--plas-font-size-lg)}p{margin-bottom:var(--plas-spacing-md)}a{color:var(--plas-blue);text-decoration:none;transition:color var(--plas-transition-fast)}a:hover{color:var(--plas-green)}a:focus-visible{outline:2px solid var(--plas-green);outline-offset:2px;border-radius:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--plas-spacing-sm);padding:var(--plas-spacing-md) var(--plas-spacing-xl);font-family:var(--plas-font-heading);font-size:var(--plas-font-size-base);font-weight:var(--plas-font-weight-semibold);line-height:1;text-align:center;white-space:nowrap;border:none;border-radius:var(--plas-border-radius-sm);cursor:pointer;transition:all var(--plas-transition-fast);text-decoration:none}.btn:active{transform:scale(.98)}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background-color:var(--plas-green);color:var(--plas-white)}.btn-primary:hover:not(:disabled){background-color:var(--plas-green-hover)}.btn-primary:focus-visible{outline:2px solid var(--plas-green);outline-offset:2px}.btn-secondary{background-color:var(--plas-white);color:var(--plas-blue);border:1px solid var(--plas-border)}.btn-secondary:hover:not(:disabled){background-color:var(--plas-gray-light);border-color:var(--plas-blue)}.btn-outline{background-color:transparent;color:var(--plas-green);border:2px solid var(--plas-green)}.btn-outline:hover:not(:disabled){background-color:var(--plas-green);color:var(--plas-white)}.btn-full{width:100%}.btn-lg{padding:var(--plas-spacing-lg) var(--plas-spacing-2xl);font-size:var(--plas-font-size-lg)}.btn-sm{padding:var(--plas-spacing-sm) var(--plas-spacing-md);font-size:var(--plas-font-size-sm)}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:1.25rem;height:1.25rem;border:2px solid rgba(255,255,255,.3);border-top-color:var(--plas-white);border-radius:50%;animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.form-group{margin-bottom:var(--plas-spacing-lg)}.form-label{display:block;font-size:var(--plas-font-size-sm);font-weight:var(--plas-font-weight-medium);color:var(--plas-blue);margin-bottom:var(--plas-spacing-sm)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--plas-spacing-md);font-family:var(--plas-font-body);font-size:var(--plas-font-size-base);color:var(--plas-gray-dark);background-color:var(--plas-white);border:1px solid var(--plas-border);border-radius:var(--plas-border-radius-sm);transition:border-color var(--plas-transition-fast),box-shadow var(--plas-transition-fast)}.form-input::-moz-placeholder,.form-textarea::-moz-placeholder{color:var(--plas-gray-medium)}.form-input::placeholder,.form-textarea::placeholder{color:var(--plas-gray-medium)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--plas-green);box-shadow:0 0 0 3px #4caf5026}.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible{outline:2px solid var(--plas-green);outline-offset:1px}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--plas-error)}.form-error{display:flex;align-items:center;gap:var(--plas-spacing-xs);margin-top:var(--plas-spacing-sm);font-size:var(--plas-font-size-sm);color:var(--plas-error)}.form-error:before{content:"";display:inline-block;width:.875rem;height:.875rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23D32F2F'%3E%3Cpath fill-rule='evenodd' d='M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z' clip-rule='evenodd'/%3E%3C/svg%3E");background-size:contain;flex-shrink:0}.form-hint{margin-top:var(--plas-spacing-sm);font-size:var(--plas-font-size-sm);color:var(--plas-gray)}.form-checkbox,.form-radio{width:1.125rem;height:1.125rem;accent-color:var(--plas-green);cursor:pointer}.form-checkbox:focus-visible,.form-radio:focus-visible{outline:2px solid var(--plas-green);outline-offset:2px}.form-checkbox-group,.form-radio-group{display:flex;align-items:center;gap:var(--plas-spacing-sm)}.form-checkbox-label,.form-radio-label{font-size:var(--plas-font-size-sm);color:var(--plas-gray);cursor:pointer}.alert{padding:var(--plas-spacing-md) var(--plas-spacing-lg);border-radius:var(--plas-border-radius-sm);font-size:var(--plas-font-size-sm);margin-bottom:var(--plas-spacing-lg)}.alert-success{background-color:var(--plas-success-light);color:var(--plas-success);border:1px solid var(--plas-success-border)}.alert-error{background-color:var(--plas-error-light);color:var(--plas-error);border:1px solid var(--plas-error-border)}.alert-warning{background-color:var(--plas-warning-light);color:var(--plas-warning);border:1px solid var(--plas-warning-border)}.alert-info{background-color:var(--plas-info-light);color:var(--plas-info);border:1px solid var(--plas-info-border)}.card{background-color:var(--plas-white);border-radius:var(--plas-border-radius);box-shadow:var(--plas-shadow-md);padding:var(--plas-spacing-xl);border:1px solid var(--plas-border)}.card-header{margin-bottom:var(--plas-spacing-lg);padding-bottom:var(--plas-spacing-lg);border-bottom:1px solid var(--plas-border)}.card-title{font-size:var(--plas-font-size-xl);font-weight:var(--plas-font-weight-semibold);color:var(--plas-blue);margin-bottom:0}.card-body{padding:0}.card-footer{margin-top:var(--plas-spacing-lg);padding-top:var(--plas-spacing-lg);border-top:1px solid var(--plas-border)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:var(--plas-gray)}.text-primary{color:var(--plas-green)}.text-secondary{color:var(--plas-blue)}.text-error{color:var(--plas-error)}.text-sm{font-size:var(--plas-font-size-sm)}.text-xs{font-size:var(--plas-font-size-xs)}.mb-0{margin-bottom:0}.mt-sm{margin-top:var(--plas-spacing-sm)}.mt-md{margin-top:var(--plas-spacing-md)}.mt-lg{margin-top:var(--plas-spacing-lg)}.mb-sm{margin-bottom:var(--plas-spacing-sm)}.mb-md{margin-bottom:var(--plas-spacing-md)}.mb-lg{margin-bottom:var(--plas-spacing-lg)}
