@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=DM+Mono:wght@400;500&display=swap";.btn{border-radius:var(--radius-sm);transition:background var(--transition), box-shadow var(--transition), opacity var(--transition), transform var(--transition);cursor:pointer;white-space:nowrap;letter-spacing:.01em;border:1.5px solid #0000;justify-content:center;align-items:center;gap:7px;font-family:inherit;font-weight:600;display:inline-flex;position:relative}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--sm{gap:5px;padding:5px 12px;font-size:12px}.btn--md{padding:8px 18px;font-size:13.5px}.btn--lg{padding:11px 24px;font-size:15px}.btn--full{width:100%}.btn--primary{background:var(--clr-brand);color:#fff;border-color:var(--clr-brand);box-shadow:0 1px 3px #2563eb40}.btn--primary:hover:not(:disabled){background:var(--clr-brand-dark);border-color:var(--clr-brand-dark)}.btn--secondary{background:var(--clr-surface-2);color:var(--clr-text-primary);border-color:var(--clr-border)}.btn--secondary:hover:not(:disabled){background:var(--clr-border)}.btn--outline{color:var(--clr-brand);border-color:var(--clr-brand);background:0 0}.btn--outline:hover:not(:disabled){background:var(--clr-brand-muted)}.btn--danger{background:var(--clr-danger);color:#fff;border-color:var(--clr-danger)}.btn--danger:hover:not(:disabled){background:#dc2626}.btn--ghost{color:var(--clr-text-secondary);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--clr-surface-2);color:var(--clr-text-primary)}.btn__spinner{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.7s linear infinite spin}.btn__icon{align-items:center;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field__label{color:var(--clr-text-primary);align-items:center;gap:3px;font-size:13px;font-weight:600;display:flex}.field__required{color:var(--clr-danger)}.field__control{position:relative}.field__input{border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);width:100%;color:var(--clr-text-primary);background:var(--clr-surface);transition:border-color var(--transition), box-shadow var(--transition);appearance:none;outline:none;padding:9px 13px;font-size:14px}.field__input::placeholder{color:var(--clr-text-muted)}.field__input:focus{border-color:var(--clr-brand);box-shadow:0 0 0 3px #2563eb1f}.field--error .field__input{border-color:var(--clr-danger)}.field--error .field__input:focus{box-shadow:0 0 0 3px #ef44441f}.field__textarea{resize:vertical;min-height:100px}.field__select-wrap{position:relative}.field__select{cursor:pointer;padding-right:34px}.field__select-arrow{color:var(--clr-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;right:11px;transform:translateY(-50%)}.field__icon-left{color:var(--clr-text-muted);pointer-events:none;display:flex;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.field__input--padded{padding-left:36px}.field__error{color:var(--clr-danger);margin-top:2px;font-size:12px}.field__hint{color:var(--clr-text-muted);margin-top:2px;font-size:12px}.auth-page{background:var(--clr-bg);min-height:100vh;padding:var(--sp-lg);justify-content:center;align-items:center;display:flex;position:relative}.auth-page:before{content:"";z-index:0;background:linear-gradient(135deg,#eff6ff 0%,#f8fafc 50%,#f0fdf4 100%);position:absolute;inset:0}.auth-card{background:var(--clr-surface);border-radius:var(--radius-xl);border:1px solid var(--clr-border);box-shadow:var(--shadow-xl);padding:var(--sp-2xl) var(--sp-xl);z-index:1;width:100%;max-width:440px;animation:.3s both fadeIn;position:relative}.auth-card--wide{max-width:500px}.auth-card__brand{margin-bottom:var(--sp-xl);align-items:center;gap:10px;display:flex}.auth-card__logo{background:var(--clr-brand);border-radius:var(--radius-sm);color:#fff;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.auth-card__brand-name{color:var(--clr-text-primary);letter-spacing:-.01em;font-size:16px;font-weight:700}.auth-card__header{margin-bottom:var(--sp-xl)}.auth-card__title{color:var(--clr-text-primary);letter-spacing:-.03em;margin-bottom:6px;font-size:24px;font-weight:800}.auth-card__subtitle{color:var(--clr-text-muted);font-size:14px}.auth-card__error{color:#dc2626;border-radius:var(--radius-sm);margin-bottom:var(--sp-md);background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:8px;padding:10px 14px;font-size:13.5px;font-weight:500;display:flex}.auth-card__form{gap:var(--sp-md);flex-direction:column;display:flex}.auth-card__footer{margin-top:var(--sp-lg);text-align:center;color:var(--clr-text-muted);font-size:13.5px}.auth-card__link{color:var(--clr-brand);font-weight:600}.auth-card__link:hover{text-decoration:underline}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--sp-md);background:#0f172a80;justify-content:center;align-items:center;animation:.15s both fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--clr-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);flex-direction:column;width:100%;max-height:90vh;animation:.2s both fadeIn;display:flex}.modal--sm{max-width:420px}.modal--md{max-width:600px}.modal--lg{max-width:800px}.modal__header{padding:var(--sp-lg) var(--sp-lg) var(--sp-md);border-bottom:1px solid var(--clr-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal__title{color:var(--clr-text-primary);font-size:17px;font-weight:700}.modal__body{padding:var(--sp-lg);flex:1;overflow-y:auto}.modal__footer{padding:var(--sp-md) var(--sp-lg);border-top:1px solid var(--clr-border);justify-content:flex-end;gap:var(--sp-sm);flex-shrink:0;display:flex}.spinner-wrap{display:flex}.spinner-wrap--center{padding:var(--sp-xl);justify-content:center;align-items:center}.spinner{border:2px solid var(--clr-border);border-top-color:var(--clr-brand);border-radius:50%;flex-shrink:0;animation:.7s linear infinite spin}.spinner--sm{width:16px;height:16px}.spinner--md{width:28px;height:28px}.spinner--lg{border-width:3px;width:44px;height:44px}.empty-state{padding:var(--sp-2xl) var(--sp-lg);text-align:center;justify-content:center;align-items:center;gap:var(--sp-sm);flex-direction:column;display:flex}.empty-state__icon{font-size:40px;line-height:1}.empty-state__title{color:var(--clr-text-primary);margin-top:var(--sp-xs);font-size:16px;font-weight:700}.empty-state__message{color:var(--clr-text-muted);max-width:340px;font-size:13.5px;line-height:1.6}.empty-state__retry{margin-top:var(--sp-sm);border-radius:var(--radius-sm);border:1.5px solid var(--clr-border);background:var(--clr-surface);cursor:pointer;color:var(--clr-text-primary);transition:background var(--transition);padding:6px 16px;font-size:13px;font-weight:600}.empty-state__retry:hover{background:var(--clr-bg)}.page-loader{justify-content:center;align-items:center;gap:var(--sp-md);flex-direction:column;min-height:100vh;display:flex}.page-loader__spinner{border:3px solid var(--clr-border);border-top-color:var(--clr-brand);border-radius:50%;width:44px;height:44px;animation:.7s linear infinite spin}.page-loader__text{color:var(--clr-text-muted);font-size:14px;font-weight:500}.stats-card{background:var(--clr-surface);border-radius:var(--radius-lg);border:1px solid var(--clr-border);padding:var(--sp-lg);align-items:flex-start;gap:var(--sp-md);transition:box-shadow var(--transition), transform var(--transition);display:flex}.stats-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stats-card__icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.stats-card--blue .stats-card__icon{color:#2563eb;background:#dbeafe}.stats-card--green .stats-card__icon{color:#16a34a;background:#dcfce7}.stats-card--orange .stats-card__icon{color:#ea580c;background:#ffedd5}.stats-card--purple .stats-card__icon{color:#7c3aed;background:#ede9fe}.stats-card--red .stats-card__icon{color:#dc2626;background:#fee2e2}.stats-card__body{flex-direction:column;gap:3px;display:flex}.stats-card__title{color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.stats-card__value{color:var(--clr-text-primary);letter-spacing:-.03em;font-size:28px;font-weight:800;line-height:1.1}.stats-card__sub{color:var(--clr-text-muted);font-size:12px}.badge{border-radius:var(--radius-full);letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.badge--open{color:var(--clr-open);background:var(--clr-open-bg);border-color:var(--clr-open-border)}.badge--open .badge__dot{background:var(--clr-open)}.badge--in-progress{color:var(--clr-progress);background:var(--clr-progress-bg);border-color:var(--clr-progress-border)}.badge--in-progress .badge__dot{background:var(--clr-progress)}.badge--assigned{color:var(--clr-progress);background:var(--clr-progress-bg);border-color:var(--clr-progress-border)}.badge--assigned .badge__dot{background:var(--clr-progress)}.badge--completed{color:var(--clr-completed);background:var(--clr-completed-bg);border-color:var(--clr-completed-border)}.badge--completed .badge__dot{background:var(--clr-completed)}.badge--closed{color:var(--clr-closed);background:var(--clr-closed-bg);border-color:var(--clr-closed-border)}.badge--closed .badge__dot{background:var(--clr-closed)}.badge--urgent{color:var(--clr-critical);background:#fef2f2;border-color:#fecaca}.badge--urgent .badge__dot{background:var(--clr-critical)}.badge--priority{padding:2px 8px;font-size:11px}.badge--critical{color:var(--clr-critical);background:#fef2f2;border-color:#fecaca}.badge--high{color:var(--clr-high);background:#fff7ed;border-color:#fed7aa}.badge--medium{color:var(--clr-medium);background:#fffbeb;border-color:#fde68a}.badge--normal{color:var(--clr-normal);background:#eff6ff;border-color:#bfdbfe}.badge--low{color:var(--clr-low);background:#f9fafb;border-color:#e5e7eb}.badge--role{text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;font-size:11px}.badge--role-admin{color:var(--clr-admin-text);background:var(--clr-admin-bg)}.badge--role-developer{color:var(--clr-dev-text);background:var(--clr-dev-bg)}.badge--role-client{color:var(--clr-client-text);background:var(--clr-client-bg)}.ticket-detail{flex-direction:column;display:flex}.ticket-detail__loading{padding:var(--sp-xl)}.ticket-detail__header{justify-content:space-between;align-items:flex-start;gap:var(--sp-md);padding:var(--sp-lg) var(--sp-lg) var(--sp-md);border-bottom:1px solid var(--clr-border);display:flex}.ticket-detail__header-left{flex-direction:column;gap:6px;display:flex}.ticket-detail__ref{color:var(--clr-text-muted);font-family:DM Mono,monospace;font-size:12px;font-weight:500}.ticket-detail__title{color:var(--clr-text-primary);letter-spacing:-.01em;font-size:17px;font-weight:700}.ticket-detail__badges{flex-wrap:wrap;gap:6px;display:flex}.ticket-detail__tabs{border-bottom:1px solid var(--clr-border);padding:0 var(--sp-lg);gap:0;display:flex}.ticket-detail__tab{color:var(--clr-text-muted);transition:color var(--transition), border-color var(--transition);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-size:13px;font-weight:600}.ticket-detail__tab:hover{color:var(--clr-text-primary)}.ticket-detail__tab--active{color:var(--clr-brand);border-bottom-color:var(--clr-brand)}.ticket-detail__body{padding:var(--sp-lg)}.ticket-detail__meta-grid{gap:var(--sp-md);background:var(--clr-surface-2);border-radius:var(--radius-md);padding:var(--sp-md);margin-bottom:var(--sp-lg);border:1px solid var(--clr-border-light);grid-template-columns:1fr 1fr;display:grid}.ticket-detail__meta-item{flex-direction:column;gap:3px;display:flex}.ticket-detail__meta-label{text-transform:uppercase;letter-spacing:.06em;color:var(--clr-text-muted);font-size:11px;font-weight:700}.ticket-detail__meta-value{color:var(--clr-text-primary);font-size:13.5px;font-weight:600}.ticket-detail__section{margin-bottom:var(--sp-lg)}.ticket-detail__section-title{color:var(--clr-text-secondary);margin-bottom:var(--sp-sm);border-bottom:1px solid var(--clr-border-light);padding-bottom:6px;font-size:13px;font-weight:700}.ticket-detail__description{color:var(--clr-text-secondary);font-size:14px;line-height:1.7}.ticket-detail__comments{gap:var(--sp-md);margin-bottom:var(--sp-md);flex-direction:column;display:flex}.ticket-detail__comment{gap:10px;display:flex}.ticket-detail__comment-avatar{background:var(--clr-brand-light);width:30px;height:30px;color:var(--clr-brand);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.ticket-detail__comment-body{flex:1}.ticket-detail__comment-meta{align-items:center;gap:8px;margin-bottom:3px;display:flex}.ticket-detail__comment-meta strong{font-size:13px;font-weight:700}.ticket-detail__comment-meta span{color:var(--clr-text-muted);font-size:11.5px}.ticket-detail__comment-text{color:var(--clr-text-secondary);font-size:13.5px;line-height:1.6}.ticket-detail__comment-form{flex-direction:column;gap:8px;display:flex}.ticket-detail__comment-input{border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);resize:vertical;width:100%;transition:border-color var(--transition);outline:none;padding:9px 12px;font-family:inherit;font-size:13.5px}.ticket-detail__comment-input:focus{border-color:var(--clr-brand)}.ticket-detail__activity{padding:var(--sp-lg)}.ticket-detail__no-activity{color:var(--clr-text-muted);font-size:13.5px}.activity-timeline{padding-left:24px;position:relative}.activity-timeline:before{content:"";background:var(--clr-border);width:1px;position:absolute;top:8px;bottom:0;left:7px}.activity-item{padding-bottom:var(--sp-md);flex-direction:column;gap:3px;display:flex;position:relative}.activity-item__dot{background:var(--clr-surface);border:2px solid var(--clr-brand);border-radius:50%;width:10px;height:10px;position:absolute;top:4px;left:-20px}.activity-item--first .activity-item__dot{background:var(--clr-brand)}.activity-item__action{color:var(--clr-text-primary);font-size:13.5px;font-weight:500}.activity-item__meta{align-items:center;gap:8px;display:flex}.activity-item__actor{color:var(--clr-brand);font-size:12px;font-weight:600}.activity-item__time{color:var(--clr-text-muted);font-size:12px}.ticket-table-wrap{background:var(--clr-surface);border-radius:var(--radius-lg);border:1px solid var(--clr-border);overflow:hidden}.ticket-table__filters{align-items:center;gap:var(--sp-sm);padding:var(--sp-md) var(--sp-lg);border-bottom:1px solid var(--clr-border);flex-wrap:wrap;display:flex}.ticket-table__search{background:var(--clr-bg);border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);min-width:200px;color:var(--clr-text-muted);transition:border-color var(--transition);flex:1;align-items:center;gap:8px;padding:7px 12px;display:flex}.ticket-table__search:focus-within{border-color:var(--clr-brand);color:var(--clr-text-primary)}.ticket-table__search-input{color:var(--clr-text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:13.5px}.ticket-table__search-input::placeholder{color:var(--clr-text-muted)}.ticket-table__select{border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);color:var(--clr-text-primary);background:var(--clr-surface);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%2394a3b8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;outline:none;padding:7px 28px 7px 10px;font-family:inherit;font-size:13px}.ticket-table__count{color:var(--clr-text-muted);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:600}.ticket-table__scroll{overflow-x:auto}.ticket-table{border-collapse:collapse;width:100%}.ticket-table thead tr{background:var(--clr-surface-2);border-bottom:1px solid var(--clr-border)}.ticket-table th{text-align:left;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:10px 16px;font-size:11.5px;font-weight:700}.ticket-table__row{border-bottom:1px solid var(--clr-border-light);transition:background var(--transition)}.ticket-table__row:hover{background:var(--clr-surface-2)}.ticket-table__row:last-child{border-bottom:none}.ticket-table td{vertical-align:middle;padding:12px 16px}.ticket-table__id{color:var(--clr-text-muted);font-family:DM Mono,monospace;font-size:12.5px;font-weight:500}.ticket-table__title-cell{flex-direction:column;gap:2px;max-width:280px;display:flex}.ticket-table__title{color:var(--clr-text-primary);font-size:13.5px;font-weight:600}.ticket-table__desc{color:var(--clr-text-muted);font-size:12px}.ticket-table__meta{color:var(--clr-text-muted);font-size:12.5px}.ticket-table__assignee{align-items:center;gap:7px;font-size:13px;font-weight:500;display:flex}.ticket-table__assignee-avatar{background:var(--clr-brand-light);width:24px;height:24px;color:var(--clr-brand);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.ticket-table__unassigned{color:var(--clr-text-muted);font-size:12.5px;font-style:italic}.ticket-table__status-select{border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);width:100%;color:var(--clr-text-primary);background:var(--clr-surface);cursor:pointer;appearance:none;padding:7px 10px;font-family:inherit;font-size:13px}.ticket-table__actions{align-items:center;gap:5px;display:flex}.dashboard{gap:var(--sp-xl);flex-direction:column;display:flex}.dashboard__stats{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.dashboard__section{background:var(--clr-surface);border-radius:var(--radius-lg);border:1px solid var(--clr-border);overflow:hidden}.dashboard__section-header{padding:var(--sp-md) var(--sp-lg);border-bottom:1px solid var(--clr-border);justify-content:space-between;align-items:center;display:flex}.dashboard__section-title{color:var(--clr-text-primary);letter-spacing:-.01em;font-size:15px;font-weight:700}.dashboard__modal-body{gap:var(--sp-md);flex-direction:column;display:flex}.dashboard__modal-desc{color:var(--clr-text-secondary);font-size:14px}.products-page{gap:var(--sp-xl);flex-direction:column;display:flex}.products-page__toolbar{align-items:center;gap:var(--sp-sm);flex-wrap:wrap;display:flex}.products-page__search{background:var(--clr-surface);border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);min-width:200px;color:var(--clr-text-muted);transition:border-color var(--transition);flex:1;align-items:center;gap:8px;padding:8px 12px;display:flex}.products-page__search:focus-within{border-color:var(--clr-brand);color:var(--clr-text-primary)}.products-page__search-input{color:var(--clr-text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:13.5px}.products-page__search-input::placeholder{color:var(--clr-text-muted)}.products-page__count{color:var(--clr-text-muted);white-space:nowrap;font-size:12px;font-weight:600}.products-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.product-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);transition:box-shadow var(--transition), transform var(--transition);flex-direction:column;display:flex;overflow:hidden}.product-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.product-card__header{padding:var(--sp-md) var(--sp-md) 0;justify-content:space-between;align-items:center;display:flex}.product-card__icon{border-radius:var(--radius-md);background:var(--clr-brand-light);width:40px;height:40px;color:var(--clr-brand);justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex}.product-card__actions{gap:4px;display:flex}.product-card__action-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--clr-text-muted);transition:background var(--transition), color var(--transition);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.product-card__action-btn:hover{background:var(--clr-bg);color:var(--clr-text-primary)}.product-card__action-btn--danger:hover{color:var(--clr-danger);background:#fef2f2}.product-card__body{padding:var(--sp-md);flex-direction:column;flex:1;gap:8px;display:flex}.product-card__name{color:var(--clr-text-primary);letter-spacing:-.01em;font-size:15px;font-weight:700}.product-card__meta{flex-direction:column;gap:4px;display:flex}.product-card__meta-item{color:var(--clr-text-secondary);align-items:center;gap:6px;font-size:12.5px;display:flex}.product-card__desc{color:var(--clr-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.6;display:-webkit-box;overflow:hidden}.product-card__footer{padding:var(--sp-sm) var(--sp-md);border-top:1px solid var(--clr-border-light);background:var(--clr-surface-2);justify-content:space-between;align-items:center;display:flex}.product-card__tickets{color:var(--clr-brand);background:var(--clr-brand-muted);border-radius:var(--radius-full);padding:2px 8px;font-size:12px;font-weight:600}.product-card__date{color:var(--clr-text-muted);font-size:11.5px}.products-page__form{gap:var(--sp-md);flex-direction:column;display:flex}.products-page__form-row{gap:var(--sp-md);grid-template-columns:1fr 1fr;display:grid}@media (width<=480px){.products-page__form-row{grid-template-columns:1fr}}.submit-page{background:var(--clr-bg);flex-direction:column;min-height:100vh;display:flex}.submit-page__header{background:var(--clr-surface);border-bottom:1px solid var(--clr-border);align-items:center;gap:10px;padding:16px 40px;display:flex}.submit-page__logo{background:var(--clr-brand);border-radius:var(--radius-sm);color:#fff;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.submit-page__brand{color:var(--clr-text-primary);font-size:16px;font-weight:700}.submit-page__container{width:100%;max-width:1100px;padding:0 var(--sp-xl);flex:1;align-items:start;gap:0;margin:40px auto;display:grid}.submit-page__info{padding-right:var(--sp-2xl);padding-top:var(--sp-md)}.submit-page__title{color:var(--clr-text-primary);letter-spacing:-.03em;margin-bottom:var(--sp-md);font-size:28px;font-weight:800;line-height:1.2}.submit-page__subtitle{color:var(--clr-text-secondary);margin-bottom:var(--sp-xl);font-size:14.5px;line-height:1.7}.submit-page__steps{gap:var(--sp-md);flex-direction:column;display:flex}.submit-page__step{align-items:flex-start;gap:var(--sp-md);padding:var(--sp-md);background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);display:flex}.submit-page__step-icon{flex-shrink:0;font-size:22px;line-height:1}.submit-page__step-title{color:var(--clr-text-primary);margin-bottom:3px;font-size:13.5px;font-weight:700}.submit-page__step-desc{color:var(--clr-text-muted);font-size:12.5px;line-height:1.5}.submit-page__card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);overflow:hidden}.submit-page__form{padding:var(--sp-xl);gap:var(--sp-xl);flex-direction:column;display:flex}.submit-page__form-section{gap:var(--sp-md);flex-direction:column;display:flex}.submit-page__form-section-title{color:var(--clr-text-secondary);text-transform:uppercase;letter-spacing:.06em;padding-bottom:var(--sp-sm);border-bottom:1px solid var(--clr-border-light);font-size:13px;font-weight:700}.submit-page__row{gap:var(--sp-md);grid-template-columns:1fr 1fr;display:grid}.submit-page__success{padding:var(--sp-2xl) var(--sp-xl);text-align:center;align-items:center;gap:var(--sp-md);flex-direction:column;display:flex}.submit-page__success-icon{font-size:48px}.submit-page__success-title{color:var(--clr-text-primary);font-size:22px;font-weight:800}.submit-page__success-desc{color:var(--clr-text-muted);max-width:340px;font-size:14px;line-height:1.6}.submit-page__ref-box{background:var(--clr-surface-2);border:1.5px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--sp-md) var(--sp-xl);flex-direction:column;align-items:center;gap:4px;width:100%;display:flex}.submit-page__ref-label{text-transform:uppercase;letter-spacing:.08em;color:var(--clr-text-muted);font-size:11px;font-weight:700}.submit-page__ref-value{color:var(--clr-brand);letter-spacing:.05em;font-family:DM Mono,monospace;font-size:22px;font-weight:600}@media (width<=900px){.submit-page__container{padding:var(--sp-md);margin:var(--sp-lg) auto;grid-template-columns:1fr}.submit-page__info{margin-bottom:var(--sp-lg);padding-right:0}.submit-page__row{grid-template-columns:1fr}}.tickets-page,.users-page{gap:var(--sp-lg);flex-direction:column;display:flex}.users-page__summary{align-items:center;gap:var(--sp-sm);flex-wrap:wrap;display:flex}.users-page__pill{border:1.5px solid var(--clr-border);border-radius:var(--radius-full);background:var(--clr-surface);cursor:pointer;transition:border-color var(--transition), background var(--transition);align-items:center;gap:6px;padding:5px 12px 5px 6px;display:flex}.users-page__pill:hover{border-color:var(--clr-brand)}.users-page__pill--active{border-color:var(--clr-brand);background:var(--clr-brand-muted)}.users-page__pill-count{color:var(--clr-text-secondary);background:var(--clr-bg);border-radius:var(--radius-full);padding:1px 7px;font-size:12px;font-weight:700}.users-page__total{color:var(--clr-text-muted);margin-left:auto;font-size:12.5px;font-weight:600}.users-page__toolbar{align-items:center;gap:var(--sp-sm);display:flex}.users-page__search{background:var(--clr-surface);border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);min-width:220px;color:var(--clr-text-muted);transition:border-color var(--transition);flex:1;align-items:center;gap:8px;padding:8px 12px;display:flex}.users-page__search:focus-within{border-color:var(--clr-brand)}.users-page__search-input{color:var(--clr-text-primary);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:13.5px}.users-page__search-input::placeholder{color:var(--clr-text-muted)}.users-page__count{color:var(--clr-text-muted);white-space:nowrap;font-size:12px;font-weight:600}.users-table-wrap{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-lg);overflow-x:auto}.users-table{border-collapse:collapse;width:100%}.users-table thead tr{background:var(--clr-surface-2);border-bottom:1px solid var(--clr-border)}.users-table th{text-align:left;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;padding:10px 16px;font-size:11.5px;font-weight:700}.users-table__row{border-bottom:1px solid var(--clr-border-light);transition:background var(--transition)}.users-table__row:hover{background:var(--clr-surface-2)}.users-table__row:last-child{border-bottom:none}.users-table td{vertical-align:middle;padding:13px 16px}.users-table__user{align-items:center;gap:10px;display:flex}.users-table__avatar{background:var(--clr-brand-light);width:34px;height:34px;color:var(--clr-brand);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.users-table__name{color:var(--clr-text-primary);font-size:13.5px;font-weight:600}.users-table__email{color:var(--clr-text-secondary);font-size:13px}.users-table__date{color:var(--clr-text-muted);font-size:12.5px}.users-table__actions{gap:6px;display:flex}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--clr-sidebar-bg);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar__logo{border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:20px 20px 16px;display:flex}.sidebar__logo-icon{background:var(--clr-brand);border-radius:var(--radius-sm);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sidebar__logo-text{color:#f1f5f9;letter-spacing:-.01em;font-size:15px;font-weight:700}.sidebar__nav{flex-direction:column;flex:1;gap:2px;padding:16px 12px;display:flex}.sidebar__section-label{letter-spacing:.08em;text-transform:uppercase;color:#475569;padding:0 8px 8px;font-size:10px;font-weight:700}.sidebar__link{border-radius:var(--radius-sm);color:var(--clr-sidebar-text);transition:background var(--transition), color var(--transition);align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;font-weight:500;display:flex;position:relative}.sidebar__link:hover{background:var(--clr-sidebar-hover);color:var(--clr-sidebar-active-text)}.sidebar__link--active{background:var(--clr-sidebar-active-bg);color:var(--clr-sidebar-active-text)}.sidebar__link--active:before{content:"";background:var(--clr-brand);border-radius:0 2px 2px 0;width:3px;position:absolute;top:20%;bottom:20%;left:0}.sidebar__link-icon{flex-shrink:0;display:flex}.sidebar__link-label{flex:1;line-height:1.3}.sidebar__link-badge{letter-spacing:.04em;text-transform:uppercase;color:#93c5fd;border-radius:var(--radius-full);white-space:nowrap;background:#2563eb40;padding:2px 6px;font-size:9px;font-weight:700}.sidebar__footer{border-top:1px solid #ffffff0f;flex-direction:column;gap:8px;padding:12px;display:flex}.sidebar__user{border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 10px;display:flex}.sidebar__avatar{background:var(--clr-brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.sidebar__user-info{flex-direction:column;gap:3px;min-width:0;display:flex}.sidebar__user-name{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar__logout{border-radius:var(--radius-sm);color:#64748b;width:100%;transition:background var(--transition), color var(--transition);align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.sidebar__logout:hover{color:#f87171;background:#ef44441f}.topbar{background:var(--clr-surface);border-bottom:1px solid var(--clr-border);height:64px;padding:0 var(--sp-xl);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar__title{color:var(--clr-text-primary);letter-spacing:-.02em;font-size:19px;font-weight:700}.topbar__subtitle{color:var(--clr-text-muted);margin-top:1px;font-size:13px}.topbar__right{align-items:center;gap:var(--sp-md);display:flex}.topbar__profile{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition);align-items:center;gap:8px;padding:6px 10px;display:flex;position:relative}.topbar__profile:hover{background:var(--clr-bg)}.topbar__avatar{background:var(--clr-brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.topbar__user-meta{color:var(--clr-text-primary);align-items:center;gap:5px;font-size:13.5px;font-weight:600;display:flex}.topbar__dropdown{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;padding:var(--sp-sm);animation:.15s both fadeIn;position:absolute;top:calc(100% + 6px);right:0}.topbar__dropdown-header{padding:var(--sp-sm) var(--sp-sm) var(--sp-xs);border-bottom:1px solid var(--clr-border);margin-bottom:var(--sp-xs)}.topbar__dropdown-name{color:var(--clr-text-primary);font-size:13px;font-weight:600}.topbar__dropdown-email{color:var(--clr-text-muted);margin-top:2px;font-size:12px}.app-shell{min-height:100vh;display:flex}.app-shell__main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.app-shell__content{padding:var(--sp-xl);flex:1;overflow-y:auto}@media (width<=768px){.app-shell__content{padding:var(--sp-md)}}:root{--clr-brand:#2563eb;--clr-brand-dark:#1d4ed8;--clr-brand-light:#dbeafe;--clr-brand-muted:#eff6ff;--clr-sidebar-bg:#0f172a;--clr-sidebar-text:#94a3b8;--clr-sidebar-active-bg:#1e293b;--clr-sidebar-active-text:#f1f5f9;--clr-sidebar-hover:#1e293b;--clr-bg:#f1f5f9;--clr-surface:#fff;--clr-surface-2:#f8fafc;--clr-border:#e2e8f0;--clr-border-light:#f1f5f9;--clr-text-primary:#0f172a;--clr-text-secondary:#475569;--clr-text-muted:#94a3b8;--clr-open:#f59e0b;--clr-open-bg:#fffbeb;--clr-open-border:#fde68a;--clr-progress:#2563eb;--clr-progress-bg:#eff6ff;--clr-progress-border:#bfdbfe;--clr-completed:#10b981;--clr-completed-bg:#ecfdf5;--clr-completed-border:#a7f3d0;--clr-closed:#6b7280;--clr-closed-bg:#f3f4f6;--clr-closed-border:#d1d5db;--clr-critical:#dc2626;--clr-high:#ea580c;--clr-medium:#d97706;--clr-normal:#2563eb;--clr-low:#6b7280;--clr-admin-bg:#fef2f2;--clr-admin-text:#dc2626;--clr-dev-bg:#eff6ff;--clr-dev-text:#2563eb;--clr-success:#10b981;--clr-danger:#ef4444;--clr-warning:#f59e0b;--clr-info:#3b82f6;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--sp-2xl:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000a;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -1px #0000000a;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -2px #00000008;--shadow-xl:0 20px 25px -5px #00000014, 0 10px 10px -5px #00000005;--sidebar-w:260px;--transition:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:15px}body{background:var(--clr-bg);color:var(--clr-text-primary);min-height:100vh;font-family:DM Sans,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit}img{max-width:100%;display:block}ul,ol{list-style:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--clr-text-muted)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}.page-enter{animation:.25s both fadeIn}
