@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Sora:wght@600;700;800&display=swap";:root{--ink-900:#0b1f26;--ink-800:#12313b;--ink-700:#1b4650;--teal-900:#083744;--teal-800:#0f4c5c;--teal-700:#146273;--teal-600:#1b7a8f;--sunset-600:#ff6b35;--sunset-500:#ff8552;--sunset-400:#ffa675;--amber-500:#ffb703;--amber-100:#fff3d6;--green-600:#1b9c63;--green-100:#e2f8ee;--red-600:#e14b4b;--red-100:#fde6e6;--blue-600:#3568e0;--blue-100:#e7edfd;--bg-app:#f3f6f7;--bg-card:#fff;--bg-soft:#eef3f4;--border:#e1e8ea;--border-soft:#edf1f2;--text-900:#101c1f;--text-700:#3c5257;--text-500:#6d8388;--text-400:#94a5a9;--radius-lg:18px;--radius-md:14px;--radius-sm:10px;--shadow-sm:0 1px 2px #09232a0f, 0 1px 1px #09232a0a;--shadow-md:0 8px 24px -8px #09232a29, 0 2px 6px #09232a0f;--shadow-lg:0 20px 48px -12px #09232a3d;--font-body:"Manrope",system-ui,sans-serif;--font-display:"Sora",system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--bg-app);color:var(--text-900);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 100% 0,#ff6b350f,#0000 40%),radial-gradient(circle at 0 100%,#0f4c5c0f,#0000 40%);background-attachment:fixed;margin:0}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink-900);letter-spacing:-.01em;margin:0}p{margin:0}a{color:inherit;text-decoration:none}button{font-family:inherit}ul{margin:0;padding:0;list-style:none}::selection{background:var(--sunset-400);color:#fff}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#c7d3d5;border-radius:20px}::-webkit-scrollbar-thumb:hover{background:#aebcbe}.app-shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(190deg, var(--teal-900), var(--ink-900) 85%);color:#dce9ec;z-index:40;flex-direction:column;flex-shrink:0;width:264px;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:22px 20px 18px;display:flex}.sidebar-brand img{object-fit:cover;border-radius:11px;width:38px;height:38px;box-shadow:0 4px 14px #00000059}.sidebar-brand .name{font-family:var(--font-display);color:#fff;font-size:15.5px;font-weight:700}.sidebar-brand .tag{color:#9fc2c9;letter-spacing:.04em;font-size:11px}.sidebar-nav{flex:1;padding:14px 12px;overflow-y:auto}.sidebar-section{text-transform:uppercase;letter-spacing:.09em;color:#6f97a0;margin:16px 10px 6px;font-size:10.5px}.sidebar-link{color:#c3d9dd;cursor:pointer;border-radius:11px;align-items:center;gap:11px;margin-bottom:2px;padding:10px 12px;font-size:13.6px;font-weight:600;display:flex;position:relative}.sidebar-link svg{flex-shrink:0;width:17px;height:17px}.sidebar-link:hover{color:#fff;background:#ffffff0f}.sidebar-link.active{color:#fff;background:linear-gradient(90deg,#ff6b3538,#ff6b350d)}.sidebar-link.active:before{content:"";background:var(--sunset-600);border-radius:6px;width:4px;position:absolute;top:8px;bottom:8px;left:-12px}.sidebar-foot{border-top:1px solid #ffffff14;padding:14px}.main-area{flex-direction:column;flex:1;min-height:100vh;margin-left:264px;display:flex}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:30;background:#ffffffd9;justify-content:space-between;align-items:center;height:68px;padding:0 26px;display:flex;position:sticky;top:0}.topbar-search{background:var(--bg-soft);border:1px solid var(--border);width:340px;color:var(--text-500);border-radius:12px;align-items:center;gap:9px;padding:9px 14px;display:flex}.topbar-search input{width:100%;color:var(--text-900);background:0 0;border:none;outline:none;font-size:13.5px}.topbar-right{align-items:center;gap:16px;display:flex}.icon-btn{background:var(--bg-soft);border:1px solid var(--border);cursor:pointer;width:38px;height:38px;color:var(--text-700);border-radius:11px;justify-content:center;align-items:center;display:flex;position:relative}.icon-btn:hover{background:#e4ecee}.badge-dot{background:var(--sunset-600);color:#fff;border:2px solid #fff;border-radius:20px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:9.5px;font-weight:700;display:flex;position:absolute;top:-3px;right:-3px}.topbar-user{cursor:pointer;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:6px 10px 6px 6px;display:flex}.topbar-user:hover{background:var(--bg-soft);border-color:var(--border)}.avatar{background:linear-gradient(135deg, var(--sunset-500), var(--amber-500));color:#fff;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:flex}.topbar-user .who{line-height:1.2}.topbar-user .who .n{color:var(--text-900);font-size:13px;font-weight:700}.topbar-user .who .r{color:var(--text-500);font-size:11px}.page-wrap{width:100%;max-width:1480px;margin:0 auto;padding:26px 28px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head h1{font-size:23px;font-weight:800}.page-head .sub{color:var(--text-500);margin-top:4px;font-size:13.5px}.breadcrumbs{color:var(--text-500);align-items:center;gap:6px;margin-bottom:8px;font-size:12.5px;display:flex}.breadcrumbs .sep{color:var(--text-400)}.breadcrumbs .cur{color:var(--text-900);font-weight:700}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:13.4px;font-weight:700;transition:all .15s;display:inline-flex}.btn svg{width:15px;height:15px}.btn-primary{background:linear-gradient(135deg, var(--sunset-600), #ff8145);color:#fff;box-shadow:0 8px 18px -6px #ff6b358c}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 12px 22px -6px #ff6b3599}.btn-dark{background:var(--teal-900);color:#fff}.btn-dark:hover{background:var(--ink-900)}.btn-outline{border-color:var(--border);color:var(--text-700);background:#fff}.btn-outline:hover{background:var(--bg-soft);border-color:#c9d5d7}.btn-ghost{color:var(--text-700);background:0 0}.btn-ghost:hover{background:var(--bg-soft)}.btn-danger{background:var(--red-600);color:#fff}.btn-danger:hover{background:#c73f3f}.btn-sm{border-radius:9px;padding:7px 12px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-icon{border-radius:10px;width:36px;height:36px;padding:0}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-pad{padding:22px}.card-head{border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.card-head h3{font-size:15.5px;font-weight:700}.card-head .sub{color:var(--text-500);margin-top:2px;font-size:12px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.stat-card .glow{filter:blur(30px);opacity:.35;border-radius:50%;width:110px;height:110px;position:absolute;top:-40px;right:-30px}.stat-card .top-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.stat-card .icon-wrap{border-radius:12px;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-card .icon-wrap svg{width:20px;height:20px}.stat-card .trend{border-radius:20px;align-items:center;gap:3px;padding:3px 8px;font-size:12px;font-weight:700;display:flex}.trend.up{color:var(--green-600);background:var(--green-100)}.trend.down{color:var(--red-600);background:var(--red-100)}.stat-card .value{font-family:var(--font-display);color:var(--ink-900);font-size:27px;font-weight:800}.stat-card .label{color:var(--text-500);margin-top:3px;font-size:12.5px;font-weight:600}.table-toolbar{border-bottom:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.table-toolbar-left{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.search-box{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;min-width:230px;padding:8px 12px;display:flex}.search-box input{width:100%;color:var(--text-900);background:0 0;border:none;outline:none;font-size:13px}.search-box svg{width:15px;height:15px;color:var(--text-500);flex-shrink:0}.select-filter{border:1px solid var(--border);color:var(--text-700);cursor:pointer;background:#fff;border-radius:10px;padding:8px 12px;font-size:12.8px;font-weight:600}.table-wrap{overflow-x:auto}table.data-table{border-collapse:collapse;width:100%;font-size:13.3px}table.data-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-500);background:var(--bg-soft);white-space:nowrap;border-bottom:1px solid var(--border);padding:12px 16px;font-size:11px;font-weight:700}table.data-table tbody td{border-bottom:1px solid var(--border-soft);color:var(--text-800);white-space:nowrap;vertical-align:middle;padding:14px 16px}table.data-table tbody tr{transition:background .12s}table.data-table tbody tr:hover{background:#fbfcfc}table.data-table tbody tr:last-child td{border-bottom:none}.cell-primary{color:var(--text-900);font-weight:700}.cell-sub{color:var(--text-500);margin-top:2px;font-size:11.5px}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;display:inline-flex}.th-sort svg{width:12px;height:12px}.row-actions{align-items:center;gap:6px;display:flex}.pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;display:flex}.pagination .info{color:var(--text-500);font-size:12.5px}.pagination .pages{align-items:center;gap:5px;display:flex}.page-btn{border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-700);background:#fff;border-radius:9px;font-size:12.5px;font-weight:700}.page-btn.active{background:var(--teal-900);color:#fff;border-color:var(--teal-900)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.badge{white-space:nowrap;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-dot-i:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-green{background:var(--green-100);color:var(--green-600)}.badge-red{background:var(--red-100);color:var(--red-600)}.badge-amber{background:var(--amber-100);color:#a26800}.badge-blue{background:var(--blue-100);color:var(--blue-600)}.badge-gray{color:var(--text-500);background:#eef1f2}.form-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.field{flex-direction:column;gap:6px;margin-bottom:2px;display:flex}.field.full{grid-column:1/-1}.field label{color:var(--text-700);font-size:12.5px;font-weight:700}.field label .req{color:var(--sunset-600)}.field input,.field select,.field textarea{border:1px solid var(--border);color:var(--text-900);background:#fff;border-radius:10px;outline:none;padding:10px 13px;font-family:inherit;font-size:13.4px;transition:border-color .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--teal-600);box-shadow:0 0 0 3px #1462731f}.field .err{color:var(--red-600);font-size:11.5px;font-weight:600}.field input.invalid,.field select.invalid,.field textarea.invalid{border-color:var(--red-600)}.field .hint{color:var(--text-400);font-size:11px}.checkbox-row{color:var(--text-700);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0b1f268c;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal{width:560px;max-width:92vw;max-height:88vh;box-shadow:var(--shadow-lg);background:#fff;border-radius:20px;animation:.18s popIn;overflow:auto}.modal-head{border-bottom:1px solid var(--border-soft);z-index:2;background:#fff;justify-content:space-between;align-items:center;padding:20px 24px;display:flex;position:sticky;top:0}.modal-head h3{font-size:16.5px;font-weight:800}.modal-body{padding:22px 24px}.modal-foot{border-top:1px solid var(--border-soft);background:#fff;justify-content:flex-end;align-items:center;gap:10px;padding:16px 24px;display:flex;position:sticky;bottom:0}.drawer-overlay{z-index:100;background:#0b1f2680;position:fixed;inset:0}.drawer{z-index:101;background:#fff;flex-direction:column;width:460px;max-width:92vw;animation:.22s slideIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-20px 0 50px #09232a33}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.96)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}.toast-stack{z-index:200;flex-direction:column;gap:10px;width:340px;display:flex;position:fixed;top:20px;right:20px}.toast{box-shadow:var(--shadow-lg);border-left:4px solid var(--teal-700);background:#fff;border-radius:13px;align-items:flex-start;gap:10px;padding:13px 15px;animation:.2s slideDown;display:flex}.toast.success{border-color:var(--green-600)}.toast.error{border-color:var(--red-600)}.toast.info{border-color:var(--blue-600)}.toast svg{flex-shrink:0;width:18px;height:18px;margin-top:1px}.toast .t{font-size:13px;font-weight:700}.toast .m{color:var(--text-500);margin-top:2px;font-size:12px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;color:var(--text-500);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-state .ic{background:var(--bg-soft);width:64px;height:64px;color:var(--text-400);border-radius:18px;justify-content:center;align-items:center;margin-bottom:16px;display:flex}.empty-state .ic svg{width:28px;height:28px}.empty-state h4{color:var(--text-900);margin-bottom:4px;font-size:15px}.skeleton{background:linear-gradient(90deg,#eef2f3 25%,#f7f9f9 37%,#eef2f3 63%) 0 0/400% 100%;border-radius:8px;animation:1.4s infinite sk}@keyframes sk{0%{background-position:100%}to{background-position:0}}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex}.tab-btn{color:var(--text-500);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:11px 16px;font-size:13.2px;font-weight:700}.tab-btn.active{color:var(--sunset-600);border-color:var(--sunset-600)}.chip{background:var(--bg-soft);border:1px solid var(--border);cursor:pointer;color:var(--text-700);border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.chip.active{background:var(--teal-900);color:#fff;border-color:var(--teal-900)}.divider{background:var(--border-soft);height:1px;margin:18px 0}.demo-ribbon{background:linear-gradient(90deg, var(--amber-500), var(--sunset-600));color:#fff;text-align:center;letter-spacing:.06em;text-transform:uppercase;padding:7px;font-size:12px;font-weight:800}.perm-grid{border:1px solid var(--border);border-radius:14px;grid-template-columns:1.4fr repeat(6,.7fr);gap:0;display:grid;overflow:hidden}.perm-grid>div{border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);align-items:center;padding:12px 14px;font-size:12.5px;display:flex}.perm-grid .ph{background:var(--bg-soft);text-transform:uppercase;letter-spacing:.05em;color:var(--text-500);justify-content:center;font-size:11px;font-weight:700}.perm-grid .mod{color:var(--text-900);font-weight:700}.toggle{cursor:pointer;background:#dde5e6;border-radius:20px;flex-shrink:0;width:38px;height:22px;transition:background .15s;position:relative}.toggle.on{background:var(--green-600)}.toggle .dot{background:#fff;border-radius:50%;width:18px;height:18px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.toggle.on .dot{left:18px}.progress-bar{background:var(--bg-soft);border-radius:20px;height:8px;overflow:hidden}.progress-bar .fill{background:linear-gradient(90deg, var(--sunset-600), var(--amber-500));border-radius:20px;height:100%;transition:width .5s}@media (width<=1080px){.stat-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}}@media (width<=860px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-area{margin-left:0}.topbar-search{display:none}}@media (width<=560px){.stat-grid{grid-template-columns:1fr}.page-wrap{padding:18px 14px 40px}}
