.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:.5rem;font-weight:500;cursor:pointer;transition:all .15s ease;text-decoration:none}.button:disabled{opacity:.5;cursor:not-allowed}.button--sm{padding:.375rem .75rem;font-size:.875rem}.button--md{padding:.5rem 1rem;font-size:1rem}.button--lg{padding:.75rem 1.5rem;font-size:1.125rem}.button--icon-only{flex:0 0 auto;padding:0}.button--icon-only.button--sm{width:2rem;height:2rem}.button--icon-only.button--md{width:2.5rem;height:2.5rem}.button--icon-only.button--lg{width:3rem;height:3rem}.button--primary{background-color:var(--color-primary, #22c978);color:#fff}.button--primary:hover:not(:disabled){background-color:var(--color-primary-hover, #18b86b)}.button--secondary{background-color:var(--color-secondary, #e5e7eb);color:var(--color-text, #1f2937)}.button--secondary:hover:not(:disabled){background-color:var(--color-secondary-hover, #d1d5db)}.button--ghost{background-color:transparent;color:var(--color-text, #1f2937)}.button--ghost:hover:not(:disabled){background-color:var(--color-ghost-hover, #f3f4f6)}.button--danger{background-color:var(--color-danger, #ef4444);color:#fff}.button--danger:hover:not(:disabled){background-color:var(--color-danger-hover, #dc2626)}.button--full-width{width:100%}.input{width:100%;padding:.625rem .875rem;font-size:1rem;line-height:1.5;color:var(--color-text, #1f2937);background-color:#fff;border:1px solid var(--color-border, #d1d5db);border-radius:.5rem;transition:border-color .15s ease,box-shadow .15s ease}.input:focus{outline:none;border-color:var(--color-primary, #22c978);box-shadow:0 0 0 3px var(--color-primary-ring, rgba(34, 201, 120, .16))}.input:disabled{background-color:var(--color-disabled-bg, #f3f4f6);cursor:not-allowed}.input::placeholder{color:var(--color-placeholder, #9ca3af)}.input--error{border-color:var(--color-danger, #ef4444)}.input--error:focus{box-shadow:0 0 0 3px var(--color-danger-ring, rgba(239, 68, 68, .1))}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group__label{font-size:.875rem;font-weight:500;color:var(--color-text, #1f2937)}.form-group__required{color:var(--color-danger, #ef4444);margin-left:.125rem}.form-group__helper{font-size:.75rem;color:var(--color-text-secondary, #6b7280)}.form-group__error{font-size:.75rem;color:var(--color-danger, #ef4444)}.card{border:1px solid var(--color-border);border-radius:1rem;background:var(--color-bg-white);box-shadow:0 14px 40px #0f172a0d}.card--padding-none{padding:0}.card--padding-sm{padding:1rem}.card--padding-md{padding:1.5rem}.card--padding-lg{padding:2rem}.page{width:100%;max-width:var(--content-max-width);margin:0 auto}.page__header{display:flex;min-height:5.5rem;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:var(--space-page)}.page__heading{min-width:0}.page__eyebrow{margin-bottom:.25rem;color:var(--color-primary);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.page__title{color:var(--color-text);font-size:clamp(1.75rem,4vw,2.25rem);font-weight:700;letter-spacing:-.025em;line-height:1.15}.page__subtitle{max-width:42rem;margin-top:.4rem;color:var(--color-text-secondary)}.page__actions{display:flex;flex:0 0 auto;align-items:center;gap:.5rem}.page__content{display:flex;flex-direction:column;gap:var(--space-page)}@media(max-width:640px){.page__header{min-height:0;align-items:stretch;flex-direction:column;gap:1rem}.page__actions>*{width:100%}}.pill{display:inline-flex;flex:0 0 auto;align-items:center;padding:.22rem .55rem;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.035em;line-height:1.4;text-transform:uppercase}.pill--neutral{background:var(--color-disabled-bg);color:var(--color-text-secondary)}.pill--info{background:var(--color-info-bg);color:var(--color-info-text)}.pill--success{background:var(--color-success-bg);color:var(--color-success-text)}.pill--warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.pill--danger{background:var(--color-error-bg);color:var(--color-error-text)}.alert{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:.5rem;font-size:.875rem}.alert__content{flex:1}.alert__close{background:none;border:none;font-size:1.25rem;line-height:1;cursor:pointer;opacity:.7;padding:0}.alert__close:hover{opacity:1}.alert--info{background-color:var(--color-info-bg, #eff6ff);color:var(--color-info-text, #1e40af);border:1px solid var(--color-info-border, #bfdbfe)}.alert--success{background-color:var(--color-success-bg, #f0fdf4);color:var(--color-success-text, #166534);border:1px solid var(--color-success-border, #bbf7d0)}.alert--warning{background-color:var(--color-warning-bg, #fffbeb);color:var(--color-warning-text, #92400e);border:1px solid var(--color-warning-border, #fde68a)}.alert--error{background-color:var(--color-error-bg, #fef2f2);color:var(--color-error-text, #991b1b);border:1px solid var(--color-error-border, #fecaca)}.auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-bg);padding:1rem}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background-color:var(--color-bg-white);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:fixed;z-index:30;height:100vh}.sidebar__logo{padding:1.5rem;border-bottom:1px solid var(--color-border)}.sidebar__logo a{display:flex;width:100%;height:2.25rem;align-items:center;text-decoration:none}.sidebar__logo-image{display:block;width:auto;max-width:100%;height:2.25rem;object-fit:contain;object-position:left center}.sidebar__nav{list-style:none;padding:1rem 0;flex:1}.sidebar__link{display:flex;align-items:center;gap:.7rem;margin:.125rem .75rem;padding:.7rem .75rem;border-radius:.65rem;color:var(--color-text-secondary);text-decoration:none;transition:background-color .15s ease,color .15s ease}.sidebar__link svg{flex:0 0 auto}.sidebar__link:hover{background-color:var(--color-ghost-hover);color:var(--color-text);text-decoration:none}.sidebar__link--active{color:var(--color-primary);background-color:var(--color-primary-ring);font-weight:600}.sidebar__footer{display:flex;padding:.75rem;flex-direction:column;gap:.6rem;border-top:1px solid var(--color-border)}.sidebar__account{display:flex;min-width:0;padding:.55rem;align-items:center;gap:.65rem;border-radius:.7rem;color:var(--color-text);text-decoration:none;transition:background-color .15s ease,color .15s ease}.sidebar__account:hover,.sidebar__account--active{background:var(--color-primary-ring);color:var(--color-primary);text-decoration:none}.sidebar__account-avatar{display:grid;width:2.25rem;height:2.25rem;overflow:hidden;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--color-primary-ring);color:var(--color-primary)}.sidebar__account-avatar img{width:100%;height:100%;object-fit:cover}.sidebar__account-meta{display:flex;min-width:0;flex-direction:column;line-height:1.25}.sidebar__account-meta strong,.sidebar__account-meta small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__account-meta strong{font-size:.85rem}.sidebar__account-meta small{margin-top:.15rem;color:var(--color-text-secondary);font-size:.7rem}.sidebar__logout{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.5rem 1rem;background:none;border:1px solid var(--color-border);border-radius:.5rem;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.sidebar__logout:hover{background-color:var(--color-ghost-hover);color:var(--color-text)}.language-toggle{width:100%;margin-bottom:.5rem;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-bg-white);color:var(--color-text-secondary);cursor:pointer;font-weight:600}.language-toggle--floating{position:fixed;z-index:20;top:1rem;right:1rem;width:auto}.main-content{flex:1;min-width:0;margin-left:var(--sidebar-width);padding:var(--content-padding);background-color:var(--color-bg)}@media(max-width:800px){.app-layout{display:block}.sidebar{position:sticky;top:0;width:100%;height:auto;flex-flow:row wrap;border-right:0;border-bottom:1px solid var(--color-border);box-shadow:0 8px 24px #0f172a0d}.sidebar__logo{padding:.75rem 1rem;border-bottom:0}.sidebar__nav{display:flex;order:3;width:100%;padding:.35rem .25rem;overflow-x:auto;border-top:1px solid var(--color-border)}.sidebar__nav li{flex:0 0 auto}.sidebar__link{margin:0;padding:.55rem .75rem;white-space:nowrap}.sidebar__footer{margin-left:auto;padding:.5rem .75rem;flex-direction:row;align-items:center;gap:.5rem;border-top:0}.sidebar__account{padding:.15rem}.sidebar__account-meta{display:none}.language-toggle,.sidebar__logout{width:auto;margin:0}.main-content{margin-left:0}}@media(max-width:640px){:root{--content-padding: 1rem}.sidebar__logo a,.sidebar__logo-image{height:1.75rem}.sidebar__footer{padding-left:.25rem}}.loading{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--color-text-secondary)}.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.select,.textarea{width:100%;padding:.625rem .875rem;border:1px solid var(--color-border);border-radius:.5rem;background:var(--color-bg-white);color:var(--color-text);font:inherit;line-height:1.5;transition:border-color .15s ease,box-shadow .15s ease}.select{cursor:pointer}.textarea{resize:vertical}.select:focus,.textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-ring)}.empty-state{padding:1.25rem;color:var(--color-text-secondary);font-size:.875rem;text-align:center}@media(max-width:640px){.form-row{grid-template-columns:1fr}.form-actions{flex-wrap:wrap}.form-actions>*{flex:1}}.data-table-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.data-table{width:100%;min-width:640px;border-collapse:collapse;table-layout:auto}.data-table th,.data-table td{padding:.875rem 1rem;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.data-table th{background:var(--color-bg);color:var(--color-text-secondary);font-size:.75rem;font-weight:700;letter-spacing:.035em;line-height:1.25;text-transform:uppercase;white-space:nowrap}.data-table tbody tr{transition:background-color .15s ease}.data-table tbody tr:hover{background:#fafcff}.data-table tbody tr:last-child td{border-bottom:0}.data-table__primary{min-width:12rem}.data-table__compact,.data-table__numeric{width:1%;white-space:nowrap}.data-table__numeric{text-align:right;font-variant-numeric:tabular-nums}.data-table__actions{width:7.5rem;min-width:7.5rem;max-width:7.5rem;text-align:right;white-space:nowrap}.data-table td.data-table__actions{padding-inline:.5rem}.data-table__actions-group{display:inline-flex;width:6.5rem;max-width:100%;justify-content:flex-end;gap:.25rem}@media(max-width:640px){.data-table th,.data-table td{padding:.75rem}}:root{--font-body: "Lexend", sans-serif;--font-heading: "Lexend Exa", sans-serif;--sidebar-width: 240px;--content-max-width: 1120px;--content-padding: 2rem;--space-page: 1.5rem;--color-primary: #22c978;--color-primary-hover: #18b86b;--color-primary-ring: rgba(34, 201, 120, .16);--color-secondary: #e5e7eb;--color-secondary-hover: #d1d5db;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-ring: rgba(239, 68, 68, .1);--color-text: #1f2937;--color-text-secondary: #6b7280;--color-placeholder: #9ca3af;--color-border: #e5e7eb;--color-disabled-bg: #f3f4f6;--color-ghost-hover: #f3f4f6;--color-info-bg: #eff6ff;--color-info-text: #1e40af;--color-info-border: #bfdbfe;--color-success-bg: #f0fdf4;--color-success-text: #166534;--color-success-border: #bbf7d0;--color-warning-bg: #fffbeb;--color-warning-text: #92400e;--color-warning-border: #fde68a;--color-error-bg: #fef2f2;--color-error-text: #991b1b;--color-error-border: #fecaca;--color-bg: #f9fafb;--color-bg-white: #ffffff}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);color:var(--color-text);line-height:1.5}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}
