.kanan-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:0 24px;height:44px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);white-space:nowrap;text-decoration:none;letter-spacing:.01em}.kanan-btn-primary:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.kanan-btn-primary:active:not(:disabled){transform:scale(.97)}.kanan-btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.kanan-btn-primary[data-size=sm]{height:36px;padding:0 16px;font-size:var(--text-xs)}.kanan-btn-primary[data-size=lg]{height:52px;padding:0 32px;font-size:var(--text-base)}.kanan-btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:0 24px;height:44px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--color-primary);background:transparent;border:1.5px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);white-space:nowrap}.kanan-btn-secondary:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);transform:translateY(-1px)}.kanan-btn-secondary:active:not(:disabled){transform:scale(.97)}.kanan-btn-secondary:disabled{opacity:.5;cursor:not-allowed;transform:none}.kanan-btn-secondary[data-size=sm]{height:36px;padding:0 16px;font-size:var(--text-xs)}.kanan-btn-secondary[data-size=lg]{height:52px;padding:0 32px;font-size:var(--text-base)}.kanan-btn-alt{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:0 24px;height:44px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:#fff;background:var(--color-alt);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out);white-space:nowrap}.kanan-btn-alt:hover:not(:disabled){background:var(--color-alt-hover);transform:translateY(-1px)}.kanan-btn-alt:active:not(:disabled){transform:scale(.97)}.kanan-btn-alt:disabled{opacity:.5;cursor:not-allowed;transform:none}.kanan-btn-alt[data-size=sm]{height:36px;padding:0 16px;font-size:var(--text-xs)}.kanan-btn-alt[data-size=lg]{height:52px;padding:0 32px;font-size:var(--text-base)}.kanan-field{display:flex;flex-direction:column;gap:var(--space-xs);position:relative}.kanan-field-label{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;color:var(--color-text);display:flex;align-items:center;gap:6px}.kanan-field-label .kanan-field-required{color:var(--color-danger);font-size:var(--text-sm);font-weight:700}.kanan-field-hint{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:2px}.kanan-field-error{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-danger);display:flex;align-items:center;gap:4px;animation:kanan-shake .3s ease}.kanan-input-core{height:44px;padding:0 var(--space-md);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);outline:none;width:100%;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.kanan-input-core::placeholder{color:var(--color-text-secondary);opacity:.6}.kanan-input-core:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px #4a7c5926}.kanan-input-core:focus{border-color:var(--color-primary);outline:none}.kanan-input-core[data-error=true]{border-color:var(--color-danger);box-shadow:0 0 0 3px #ba1a1a26}.kanan-input-core[data-error=true]:focus-visible{border-color:var(--color-danger);box-shadow:0 0 0 3px #ba1a1a33}.kanan-input-core:disabled{opacity:.5;cursor:not-allowed;background:var(--color-bg-tertiary)}.kanan-input-core[data-size=sm]{height:36px;padding:0 12px;font-size:var(--text-xs)}.kanan-input-core[data-size=lg]{height:52px;padding:0 20px;font-size:var(--text-base)}.kanan-input-core[data-multiline=true]{height:auto;min-height:100px;padding:12px var(--space-md);line-height:1.5;resize:vertical}.kanan-input-core:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--color-bg-secondary) inset!important;-webkit-text-fill-color:var(--color-text)!important}.kanan-input-core[type=number]::-webkit-inner-spin-button,.kanan-input-core[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.kanan-input-core[type=number]{-moz-appearance:textfield}.kanan-input-core[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;height:16px;width:16px;background:var(--color-text-secondary);mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3C/svg%3E");cursor:pointer}.kanan-password-wrapper{position:relative;display:flex;align-items:center}.kanan-password-field{padding-right:44px}.kanan-password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:18px;padding:6px 10px;line-height:1;border-radius:var(--radius-sm);transition:background var(--duration-instant) var(--ease-out);color:var(--color-text-secondary)}.kanan-password-toggle:hover{background:var(--color-bg-tertiary)}.kanan-password-reqs{display:flex;flex-direction:column;gap:3px;margin-top:4px}.kanan-password-req{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease-out)}.kanan-password-req--met{color:var(--color-success)}.kanan-phone-wrapper{display:flex;align-items:center;gap:0}.kanan-phone-prefix{display:flex;align-items:center;height:44px;padding:0 12px 0 14px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm);white-space:nowrap;user-select:none}.kanan-phone-field{border-radius:0 var(--radius-sm) var(--radius-sm) 0!important}.kanan-input-core[data-size=sm]~.kanan-phone-prefix,.kanan-phone-wrapper:has(.kanan-input-core[data-size=sm]) .kanan-phone-prefix{height:36px;font-size:var(--text-xs)}.kanan-input-core[data-size=lg]~.kanan-phone-prefix,.kanan-phone-wrapper:has(.kanan-input-core[data-size=lg]) .kanan-phone-prefix{height:52px;font-size:var(--text-base)}.kanan-money-wrapper{display:flex;align-items:center;gap:0;position:relative}.kanan-money-currency{position:relative;flex-shrink:0}.kanan-money-currency-btn{display:flex;align-items:center;gap:4px;height:44px;padding:0 8px 0 12px;font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;color:var(--color-primary);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-right:none;border-radius:var(--radius-sm) 0 0 var(--radius-sm);cursor:pointer;user-select:none;transition:background var(--duration-fast) var(--ease-out);white-space:nowrap}.kanan-money-currency-btn:hover:not(:disabled){background:var(--color-bg)}.kanan-money-currency-btn:disabled{opacity:.5;cursor:not-allowed}.kanan-money-symbol{font-size:var(--text-sm);line-height:1}.kanan-money-currency-code{font-size:var(--text-xs);opacity:.6;font-weight:500;line-height:1}.kanan-money-chevron{opacity:.5;margin-left:2px;transition:transform var(--duration-fast) var(--ease-out)}.kanan-money-currency--open .kanan-money-chevron{transform:rotate(180deg)}.kanan-money-currency-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;min-width:200px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;padding:4px;animation:kanan-scale-in var(--duration-fast) var(--ease-out) both}.kanan-money-currency--open .kanan-money-currency-dropdown{display:block}.kanan-money-currency-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);background:transparent;border:none;border-radius:4px;cursor:pointer;text-align:left;transition:background var(--duration-fast) var(--ease-out)}.kanan-money-currency-option:hover{background:var(--color-bg-tertiary)}.kanan-money-currency-option--active{color:var(--color-primary);font-weight:600}.kanan-money-currency-option-symbol{font-weight:700;width:28px;text-align:center;flex-shrink:0}.kanan-money-field{border-radius:0 var(--radius-sm) var(--radius-sm) 0!important;font-variant-numeric:tabular-nums}.kanan-money-wrapper[data-size=sm] .kanan-money-currency-btn{height:36px;padding:0 6px 0 10px;font-size:var(--text-xs)}.kanan-money-wrapper[data-size=lg] .kanan-money-currency-btn{height:52px;padding:0 10px 0 16px}.kanan-date-field{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235c5f63' stroke-width='2'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px;cursor:pointer}.kanan-time-row{display:flex;align-items:center;gap:4px}.kanan-time-select{width:auto;min-width:64px;padding:0 8px!important;text-align:center;cursor:pointer}.kanan-time-sep{font-size:var(--text-lg);font-weight:600;color:var(--color-text-secondary);user-select:none;line-height:1}.kanan-time-period{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;margin-left:4px}.kanan-time-period-btn{padding:8px 12px;border:none;background:transparent;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.kanan-time-period-btn:hover:not(:disabled){background:var(--color-bg-tertiary)}.kanan-time-period-btn--active{background:var(--color-primary)!important;color:#fff!important}.kanan-time-period-btn:disabled{opacity:.5;cursor:not-allowed}.kanan-time-period-btn:first-child{border-right:1px solid var(--color-border)}.kanan-timepicker-trigger{display:flex;align-items:center;gap:var(--space-xs);height:44px;width:100%;padding:0 var(--space-md);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);text-align:left;user-select:none}.kanan-timepicker-trigger:hover:not(:disabled){border-color:var(--color-primary)}.kanan-timepicker-trigger:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 3px #4a7c5926}.kanan-timepicker-trigger--open{border-color:var(--color-primary);box-shadow:0 0 0 3px #4a7c5926}.kanan-timepicker-trigger--error{border-color:var(--color-danger);box-shadow:0 0 0 3px #ba1a1a26}.kanan-timepicker-trigger--sm{height:36px;padding:0 12px}.kanan-timepicker-trigger:disabled{opacity:.5;cursor:not-allowed;background:var(--color-bg-tertiary)}.kanan-timepicker-trigger-icon{font-size:18px;color:var(--color-text-secondary);flex-shrink:0}.kanan-timepicker-trigger-text{flex:1;font-variant-numeric:tabular-nums}.kanan-timepicker-trigger-chevron{font-size:18px;color:var(--color-text-secondary);flex-shrink:0;transition:transform var(--duration-fast) var(--ease-out)}.kanan-timepicker-panel{position:absolute;z-index:100;top:calc(100% + 4px);left:0;right:0;max-height:160px;overflow-y:auto;overflow-x:hidden;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:var(--space-sm);display:none;flex-direction:column;gap:var(--space-xs)}.kanan-timepicker-panel--open{display:flex;animation:kanan-timepicker-in var(--duration-fast) var(--ease-out) both}@keyframes kanan-timepicker-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.kanan-timepicker-section{display:flex;flex-direction:column;gap:4px}.kanan-timepicker-section-label{font-family:var(--font-sans);font-size:10px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:0 2px}.kanan-timepicker-hours,.kanan-timepicker-minutes{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.kanan-timepicker-period{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.kanan-timepicker-cell{display:flex;align-items:center;justify-content:center;height:28px;padding:0;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;font-variant-numeric:tabular-nums;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;outline:none;transition:background var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out);user-select:none}.kanan-timepicker-cell:hover:not(:disabled){background:var(--color-bg-tertiary)}.kanan-timepicker-cell:focus-visible{border-color:var(--color-primary);box-shadow:0 0 0 2px #4a7c5933}.kanan-timepicker-cell--active{background:var(--color-primary)!important;color:#fff!important;font-weight:600}@media(max-width:480px){.kanan-timepicker-trigger{height:40px}.kanan-timepicker-cell{height:32px;font-size:12px}.kanan-timepicker-panel{max-height:180px}}.kanan-timepicker-panel::-webkit-scrollbar{width:4px}.kanan-timepicker-panel::-webkit-scrollbar-track{background:transparent}.kanan-timepicker-panel::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.kanan-timepicker-panel::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}.kanan-file-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:32px 24px;cursor:pointer;background:var(--color-bg-secondary);transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);text-align:center;user-select:none}.kanan-file-dropzone:hover:not([data-error=true]){border-color:var(--color-primary);background:var(--color-bg)}.kanan-file-dropzone--over{border-color:var(--color-success);background:var(--color-success-bg);box-shadow:0 0 0 4px #4a7c591a}.kanan-file-dropzone[data-error=true]{border-color:var(--color-danger);background:var(--color-danger-bg)}.kanan-file-dropzone--has-files{padding:12px}.kanan-file-input-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.kanan-file-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px}.kanan-file-icon{font-size:28px;line-height:1}.kanan-file-text{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text)}.kanan-file-link{color:var(--color-primary);font-weight:600}.kanan-file-info{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-secondary)}.kanan-file-previews{display:flex;flex-wrap:wrap;gap:10px}.kanan-file-preview{position:relative;width:100px;height:100px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg)}.kanan-file-preview-img{width:100%;height:100%;object-fit:cover}.kanan-file-preview-icon{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:4px;font-size:24px}.kanan-file-preview-name{font-size:9px;color:var(--color-text-secondary);text-align:center;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:90px}.kanan-file-preview-size{position:absolute;bottom:0;left:0;right:0;background:#05111eb3;color:#fff;font-size:9px;font-weight:600;padding:2px 6px;text-align:center}.kanan-file-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:50%;border:none;background:#05111e99;color:#fff;font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-instant) var(--ease-out)}.kanan-file-remove:hover{background:var(--color-danger)}.kanan-file-add-more{display:flex;align-items:center;justify-content:center;border-style:dashed;cursor:pointer;font-size:28px;color:var(--color-text-secondary)}.kanan-textarea{overflow-y:hidden}.kanan-textarea-counter{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-secondary);text-align:right;margin-top:2px;transition:color var(--duration-fast) var(--ease-out)}.kanan-textarea-counter--warn{color:var(--color-warning);font-weight:600}.kanan-textarea-counter--over{color:var(--color-danger);font-weight:700}.kanan-select-wrapper{position:relative}.kanan-select-field{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%235c5f63' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.kanan-select-field option{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg)}.kanan-select-field option:disabled{color:var(--color-text-secondary)}.kanan-switch-row{display:flex;align-items:center;gap:10px}.kanan-switch{width:44px;height:24px;border-radius:12px;border:none;background:var(--color-border);cursor:pointer;position:relative;flex-shrink:0;transition:background var(--duration-fast) var(--ease-out);padding:0}.kanan-switch[aria-checked=true]{background:var(--color-success)}.kanan-switch:disabled{opacity:.5;cursor:not-allowed}.kanan-switch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.kanan-switch[data-error=true]{outline:2px solid var(--color-danger);outline-offset:2px}.kanan-switch-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform var(--duration-fast) var(--ease-spring)}.kanan-switch[aria-checked=true] .kanan-switch-thumb{transform:translate(20px)}.kanan-switch-label{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:500;color:var(--color-text);cursor:pointer;user-select:none}.kanan-switch-state{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:600}.kanan-card{background:var(--color-bg-secondary);border:none;border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.kanan-card:hover{box-shadow:var(--shadow-md)}.kanan-card[data-padding=sm]{padding:var(--space-md)}.kanan-card[data-padding=lg]{padding:var(--space-xl)}.kanan-heading-1{font-family:var(--font-sans);font-size:var(--text-3xl);font-weight:700;color:var(--color-text);line-height:1.2;letter-spacing:-.02em}.kanan-heading-2{font-family:var(--font-sans);font-size:var(--text-2xl);font-weight:600;color:var(--color-text);line-height:1.3;letter-spacing:-.01em}.kanan-body{font-family:var(--font-sans);font-size:var(--text-base);font-weight:400;color:var(--color-text);line-height:1.6}.kanan-caption{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:400;color:var(--color-text-secondary);line-height:1.5;letter-spacing:.01em}.kanan-heading-1-light{font-family:var(--font-sans);font-size:var(--text-3xl);font-weight:700;color:#fff;line-height:1.2;letter-spacing:-.02em}.kanan-body-light{font-family:var(--font-sans);font-size:var(--text-base);font-weight:400;color:#ffffffd9;line-height:1.6}.kanan-badge{display:inline-flex;align-items:center;height:24px;padding:0 12px;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);white-space:nowrap;letter-spacing:.02em}.kanan-badge[data-variant=success]{color:var(--color-success);background:var(--color-success-bg)}.kanan-badge[data-variant=warning]{color:var(--color-warning);background:var(--color-warning-bg)}.kanan-badge[data-variant=danger]{color:var(--color-danger);background:var(--color-danger-bg)}.kanan-badge[data-variant=neutral]{color:var(--color-text-secondary);background:var(--color-bg-secondary)}
