@import "https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap";.sidebar[data-v-06f3b8e8]{width:var(--sidebar-width);background:var(--gradient-depth);color:#fff;z-index:100;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar[data-v-06f3b8e8]:after{content:"";background:var(--gradient-sea);opacity:.55;width:3px;position:absolute;top:0;bottom:0;right:0}.sidebar-header[data-v-06f3b8e8]{border-bottom:1px solid #ffffff14;padding:1.5rem 1.25rem 1.25rem;position:relative}.close-btn[data-v-06f3b8e8]{color:#ffffffb3;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;display:none;position:absolute;top:.75rem;right:.5rem}.drawer-overlay[data-v-06f3b8e8]{display:none}.brand-logo[data-v-06f3b8e8]{width:148px;height:auto;display:block}.brand-sub[data-v-06f3b8e8]{text-transform:uppercase;letter-spacing:.15em;opacity:.55;margin-top:.5rem;font-size:.6875rem;display:block}.sidebar-nav[data-v-06f3b8e8]{flex-direction:column;flex:1;gap:.25rem;padding:.75rem;display:flex}.nav-item[data-v-06f3b8e8]{border-radius:var(--radius-sm);color:#ffffff9e;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);align-items:center;gap:.75rem;padding:.7rem .75rem .7rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item[data-v-06f3b8e8]:before{content:"";background:var(--coral);width:3px;height:0;transition:height var(--dur-base) var(--ease-spring);border-radius:0 3px 3px 0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.nav-item.active[data-v-06f3b8e8]:before{height:60%}.nav-item[data-v-06f3b8e8]:hover{color:#ffffffeb;background:#ffffff14}.nav-item.active[data-v-06f3b8e8]{color:#fff;background:#ffffff1f}.nav-icon[data-v-06f3b8e8]{transition:transform var(--dur-base) var(--ease-spring);font-size:1.25rem}.nav-item.active .nav-icon[data-v-06f3b8e8]{transform:scale(1.12)}.sidebar-footer[data-v-06f3b8e8]{border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.user-info[data-v-06f3b8e8]{align-items:center;gap:.625rem;display:flex}.user-avatar[data-v-06f3b8e8]{background:var(--secondary);border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.8125rem;font-weight:700;display:flex}.user-details[data-v-06f3b8e8]{flex-direction:column;display:flex}.user-name[data-v-06f3b8e8]{font-size:.8125rem;font-weight:600}.user-role[data-v-06f3b8e8]{opacity:.4;font-size:.6875rem}.logout-btn[data-v-06f3b8e8]{color:#fff6;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:.375rem;transition:all .15s}.logout-btn[data-v-06f3b8e8]:hover{color:#fff;background:#ffffff0f}@media (width<=768px){.sidebar[data-v-06f3b8e8]{z-index:110;width:min(280px,85vw);transition:transform .25s;transform:translate(-100%)}.sidebar.open[data-v-06f3b8e8]{box-shadow:var(--shadow-lg);transform:translate(0)}.drawer-overlay[data-v-06f3b8e8]{z-index:105;background:#00000073;display:block;position:fixed;inset:0}.close-btn[data-v-06f3b8e8]{display:flex}.nav-item[data-v-06f3b8e8]{min-height:48px;font-size:.9375rem}.logout-btn[data-v-06f3b8e8]{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}}@media (prefers-reduced-motion:reduce){.sidebar[data-v-06f3b8e8]{transition:none}}.app-layout[data-v-cb4a43f4]{min-height:100vh;display:flex}.main-area[data-v-cb4a43f4]{margin-left:var(--sidebar-width);background:var(--surface);flex:1;min-width:0;min-height:100vh}.topbar[data-v-cb4a43f4]{display:none}.page-enter-active[data-v-cb4a43f4]{transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out)}.page-leave-active[data-v-cb4a43f4]{transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.page-enter-from[data-v-cb4a43f4]{opacity:0;transform:translateY(6px)}.page-leave-to[data-v-cb4a43f4]{opacity:0;transform:translateY(-4px)}@media (width<=768px){.main-area[data-v-cb4a43f4]{margin-left:0}.main-area.has-topbar[data-v-cb4a43f4]{padding-top:3.5rem}.topbar[data-v-cb4a43f4]{background:var(--gradient-depth);color:#fff;z-index:90;height:3.5rem;box-shadow:var(--shadow-md);align-items:center;gap:.75rem;padding:0 .75rem;display:flex;position:fixed;top:0;left:0;right:0}.topbar-logo[data-v-cb4a43f4]{width:auto;height:22px}.menu-btn[data-v-cb4a43f4]{color:#fff;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.menu-btn[data-v-cb4a43f4]:active{background:#ffffff1f}}:root{--teal:#173b3e;--teal-light:#1f5054;--teal-deep:#0a2224;--coral:#edb591;--lagoon:#5d92a2;--sky:#a6cede;--sand:#faf6f2;--white:#fff;--coral-strong:#a7521b;--surface:var(--sand);--surface-container-lowest:var(--white);--surface-container:#f4ede6;--surface-container-high:#ece0d6;--primary:var(--teal);--on-primary:var(--white);--primary-hover:var(--teal-light);--primary-container:#d6e9f1;--secondary:#276b7e;--secondary-hover:#1f5666;--secondary-container:#e3f0f5;--accent:var(--coral);--accent-strong:var(--coral-strong);--danger:#b3261e;--danger-hover:#8c1d18;--danger-container:#fce8e6;--success:#2a6b4f;--success-container:#dcefe4;--warning:#9a5b16;--warning-container:#fbeedd;--on-surface:var(--teal);--on-surface-variant:#4a6567;--outline:#6e9aa8;--outline-variant:#dce8ed;--gradient-sea:linear-gradient(115deg, var(--teal) 0%, var(--lagoon) 55%, var(--sky) 100%);--gradient-depth:linear-gradient(135deg, var(--teal-light) 0%, var(--teal) 55%, var(--teal-deep) 100%);--font-heading:"Poppins", system-ui, sans-serif;--font-body:"Poppins", system-ui, sans-serif;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--shadow-sm:0 1px 2px #173b3e0f;--shadow-md:0 4px 12px -2px #173b3e1a;--shadow-lg:0 12px 28px -6px #173b3e24;--dur-fast:.12s;--dur-base:.2s;--dur-slow:.32s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--sidebar-width:264px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--surface);color:var(--on-surface);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.015em;font-weight:800;line-height:1.15}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--secondary);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{z-index:200;background:var(--primary);color:var(--on-primary);border-radius:var(--radius-sm);transition:top var(--dur-base) var(--ease-out);padding:.625rem 1rem;font-size:.875rem;font-weight:600;position:absolute;top:-100px;left:.5rem}.skip-link:focus{top:.5rem}input,textarea,select,button{font-family:var(--font-body)}.form-input{border:1px solid var(--outline);border-radius:var(--radius-sm);width:100%;color:var(--on-surface);background:#fff;padding:.625rem .875rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-input:focus{border-color:var(--secondary);outline:none;box-shadow:0 0 0 3px #276b7e26}@keyframes field-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.form-input.error{border-color:var(--danger);animation:field-shake var(--dur-slow) var(--ease-out)}.form-label{color:var(--on-surface-variant);margin-bottom:.375rem;font-size:.8125rem;font-weight:600;display:block}.form-error{color:var(--danger);margin-top:.25rem;font-size:.75rem}.btn{font-family:var(--font-heading);cursor:pointer;white-space:nowrap;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.55rem 1.1rem;font-size:.8125rem;font-weight:500;display:inline-flex}.btn:not(:disabled):hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:not(:disabled):active{box-shadow:none;transform:translateY(0)scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface-container);color:var(--on-surface)}.btn-secondary:hover{background:var(--surface-container-high)}.btn-success{background:var(--secondary);color:#fff}.btn-success:hover{background:var(--secondary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.badge{text-transform:uppercase;letter-spacing:.025em;border-radius:9999px;align-items:center;padding:.125rem .625rem;font-size:.6875rem;font-weight:600;display:inline-flex}.badge-green{background:var(--success-container);color:var(--success)}.badge-yellow{background:var(--warning-container);color:var(--warning)}.badge-red{color:var(--danger);background:#fee2e2}.badge-neutral{background:var(--surface-container);color:var(--on-surface-variant)}.badge-teal{background:var(--secondary-container);color:var(--secondary)}.card{border:1px solid var(--outline);border-radius:var(--radius-lg);background:#fff;padding:1.25rem}.table-wrapper{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--outline);padding:.75rem 1rem;font-size:.75rem;font-weight:600}td{border-bottom:1px solid var(--outline-variant);padding:.75rem 1rem;font-size:.875rem}tr:hover td{background:var(--surface-container)}.spinner{border:2px solid var(--outline);border-top-color:var(--secondary);border-radius:50%;width:1.5rem;height:1.5rem;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;color:var(--on-surface-variant);padding:3rem 1rem}.empty-state .material-symbols-outlined{opacity:.3;margin-bottom:.75rem;font-size:3rem}.toast{border-radius:var(--radius-md);z-index:1000;padding:.75rem 1.25rem;font-size:.875rem;font-weight:500;animation:.3s slideUp;position:fixed;bottom:1.5rem;right:1.5rem}.toast-success{color:#fff;background:#166534}.toast-error{background:var(--danger);color:#fff}@keyframes slideUp{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}.only-mobile{display:none}@media (width<=768px){.only-mobile{display:initial}.only-desktop{display:none!important}.btn{min-height:44px;padding:.625rem 1rem;font-size:.875rem}.btn-sm{min-height:40px;padding:.5rem .875rem;font-size:.8125rem}.form-input,select.form-input,textarea.form-input{min-height:44px;padding:.75rem .875rem;font-size:16px}.card{border-radius:var(--radius-md);padding:1rem}.page{padding:1rem}.page-header{flex-direction:column;align-items:stretch;gap:.75rem}.page-title{font-size:1.25rem}.form-row,.form-grid{grid-template-columns:1fr!important}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{width:100%;display:block}.responsive-table thead{display:none}.responsive-table tr{border:1px solid var(--outline);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;margin-bottom:.75rem;padding:.875rem}.responsive-table td{text-align:right;border:none;justify-content:space-between;align-items:center;gap:1rem;padding:.375rem 0;display:flex}.responsive-table td:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.03em;color:var(--on-surface-variant);text-align:left;flex-shrink:0;font-size:.75rem;font-weight:600}.responsive-table tr{flex-direction:column;display:flex}.responsive-table td[data-primary]{text-align:left;border-bottom:1px solid var(--outline-variant,var(--outline));order:-1;margin-bottom:.375rem;padding-bottom:.5rem;font-size:1rem;font-weight:600;display:block}.responsive-table td[data-primary]:before{content:none}.responsive-table td[data-actions]{border-top:1px solid var(--outline-variant,var(--outline));flex-wrap:wrap;justify-content:flex-start;gap:.5rem;margin-top:.375rem;padding-top:.75rem;display:flex}.responsive-table td[data-actions]:before{content:none}.responsive-table td[data-actions] .btn{flex:1;justify-content:center;min-width:0}}
