:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-app:#f8fafc;--bg-surface:#fff;--bg-surface-secondary:#f1f5f9;--text-main:#0f172a;--text-sub:#475569;--text-muted:#94a3b8;--border-subtle:#e2e8f0;--border-strong:#cbd5e1;--primary:#4f46e5;--primary-dark:#4338ca;--primary-light:#e0e7ff;--primary-gradient:linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);--success:#10b981;--success-bg:#ecfdf5;--success-text:#047857;--danger:#ef4444;--danger-bg:#fef2f2;--danger-text:#b91c1c;--warning:#f59e0b;--warning-bg:#fffbeb;--warning-text:#b45309;--info:#3b82f6;--info-bg:#eff6ff;--info-text:#1d4ed8;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012;--shadow-lg:0 10px 15px -3px #00000014;--shadow-xl:0 25px 50px -12px #0000004d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--header-height:60px;--bottom-nav-height:64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{width:100%;height:100%;font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;overflow:hidden}.app-shell{background:var(--bg-app);flex-direction:row;width:100vw;height:100dvh;display:flex;position:relative;overflow:hidden}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border-subtle);z-index:40;flex-direction:column;flex-shrink:0;width:260px;height:100%;display:flex}.sidebar-brand{border-bottom:1px solid var(--border-subtle);align-items:center;gap:.75rem;padding:1.1rem 1rem;display:flex}.brand-icon{background:var(--primary-gradient);color:#fff;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex;box-shadow:0 4px 6px -1px #4f46e540}.brand-title{color:var(--text-main);font-size:1rem;font-weight:800}.brand-subtitle{color:var(--text-sub);font-size:.75rem}.sidebar-nav{flex-direction:column;flex:1;gap:.35rem;padding:.85rem .65rem;display:flex}.sidebar-nav-item{width:100%;color:var(--text-sub);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:.75rem;padding:.7rem .9rem;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.sidebar-nav-item:hover{background:var(--bg-surface-secondary);color:var(--text-main)}.sidebar-nav-item.active{background:var(--primary-light);color:var(--primary-dark);font-weight:700}.sidebar-footer{border-top:1px solid var(--border-subtle);color:var(--text-muted);text-align:center;padding:.85rem;font-size:.75rem}.main-wrapper{flex-direction:column;flex:1;min-width:0;height:100%;display:flex;position:relative;overflow:hidden}.header-topbar{height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);z-index:30;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;padding:0 1.25rem;display:flex}.topbar-left{align-items:center;gap:.6rem;display:flex}.topbar-icon{background:var(--primary-gradient);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.topbar-title{color:var(--text-main);font-size:1.05rem;font-weight:800}.topbar-right{align-items:center;gap:.75rem;display:flex}.user-badge{color:#334155;background:#f1f5f9;border-radius:9999px;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.825rem;font-weight:600;display:flex}.scrollable-content{-webkit-overflow-scrolling:touch;flex:1;width:100%;padding:1.25rem;overflow:hidden auto}.mobile-bottom-nav{height:var(--bottom-nav-height);background:var(--bg-surface);border-top:1px solid var(--border-subtle);z-index:50;padding:0 .25rem;display:none;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #0000000d}.bottom-nav-item{color:var(--text-sub);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:.25rem 0;font-size:.7rem;font-weight:500;display:flex}.bottom-nav-item.active{color:var(--primary);font-weight:700}.bottom-nav-item.active .nav-icon-wrapper{background:var(--primary-light);color:var(--primary)}.nav-icon-wrapper{border-radius:12px;justify-content:center;align-items:center;padding:4px 12px;display:flex}.grid-1{grid-template-columns:1fr;gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}@media (width<=768px){.sidebar{display:none}.mobile-bottom-nav{display:flex}.scrollable-content{padding:1rem .85rem calc(var(--bottom-nav-height) + 1rem) .85rem}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr!important}.desktop-table-container{display:none!important}.mobile-card-list{flex-direction:column;gap:.85rem;display:flex!important}.hide-mobile{display:none}}@media (width>=769px){.mobile-card-list{display:none!important}}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.25rem}.mobile-item-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;gap:.6rem;padding:1rem;display:flex}.mobile-card-header{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:flex-start;padding-bottom:.5rem;display:flex}.mobile-card-title{color:var(--text-main);font-size:.95rem;font-weight:700}.mobile-card-row{justify-content:space-between;align-items:center;font-size:.825rem;display:flex}.mobile-card-actions{border-top:1px dashed var(--border-subtle);gap:.5rem;margin-top:.25rem;padding-top:.5rem;display:flex}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary-gradient);color:#fff;box-shadow:0 4px 10px #4f46e533}.btn-secondary{color:var(--text-sub);border-color:var(--border-subtle);background:#fff}.btn-success{background:var(--success);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-sm{border-radius:var(--radius-sm);padding:.35rem .65rem;font-size:.775rem}.btn-disabled{opacity:.75;color:#94a3b8!important;cursor:not-allowed!important;box-shadow:none!important;background:#e2e8f0!important;border-color:#cbd5e1!important}.btn-icon{border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-sub);cursor:pointer;background:#fff;flex-shrink:0;justify-content:center;align-items:center;padding:.45rem;display:inline-flex}.form-group{flex-direction:column;gap:.35rem;margin-bottom:.85rem;display:flex}.form-label{color:var(--text-sub);font-size:.825rem;font-weight:600}.form-control{width:100%;color:var(--text-main);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:#fff;outline:none;padding:.65rem .85rem;font-size:.875rem}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.form-control-readOnly{color:#64748b;background:#f1f5f9;font-weight:700}.table-responsive{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:#fff;width:100%;overflow-x:auto}.custom-table{border-collapse:collapse;text-align:left;width:100%;font-size:.85rem}.custom-table th{color:var(--text-sub);border-bottom:1px solid var(--border-subtle);white-space:nowrap;background:#f8fafc;padding:.75rem .85rem;font-weight:600}.custom-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-main);vertical-align:middle;padding:.75rem .85rem}.custom-table tbody tr:last-child td{border-bottom:none}.custom-table tbody tr:hover{background-color:#f8fafc}.badge{white-space:nowrap;border-radius:9999px;align-items:center;gap:.25rem;padding:.25rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-success{background:var(--success-bg);color:var(--success-text)}.badge-danger{background:var(--danger-bg);color:var(--danger-text)}.badge-warning{background:var(--warning-bg);color:var(--warning-text)}.badge-info{background:var(--info-bg);color:var(--info-text)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;box-sizing:border-box;background:#0f172aa6;justify-content:center;align-items:center;width:100vw;height:100dvh;padding:1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-overlay-nested{z-index:10500!important;background:#0f172abf!important}.modal-content{border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-xl);box-sizing:border-box;background:#fff;flex-direction:column;width:calc(100vw - 2rem);max-width:920px;max-height:calc(100dvh - 2.5rem);margin:auto;animation:.2s cubic-bezier(.16,1,.3,1) popIn;display:flex;position:relative;overflow:hidden}.modal-header{border-bottom:1px solid var(--border-subtle);box-sizing:border-box;background:#fff;flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.85rem 1.1rem;display:flex}.modal-title{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.modal-body{box-sizing:border-box;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:1rem;overflow:auto}.modal-footer{border-top:1px solid var(--border-subtle);box-sizing:border-box;background:#f8fafc;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem 1.1rem;display:flex}@media (width<=640px){.modal-overlay{padding:.5rem}.modal-content{border-radius:var(--radius-md);width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem)}.modal-header{padding:.75rem .85rem}.modal-body{padding:.75rem}.modal-footer{padding:.75rem .85rem}}.toast-container{z-index:12000;flex-direction:column;gap:.6rem;width:calc(100% - 2.5rem);max-width:360px;display:flex;position:fixed;bottom:1.25rem;right:1.25rem}.toast-item{border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--border-subtle);background:#fff;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.85rem;display:flex}.toast-item.success{border-left:4px solid var(--success)}.toast-item.danger{border-left:4px solid var(--danger)}.toast-item.warning{border-left:4px solid var(--warning)}.toast-item.info{border-left:4px solid var(--info)}@keyframes popIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-fade{animation:.2s ease-out forwards fadeIn}
