:root{--blue-50: #eff6ff;--blue-100: #dbeafe;--blue-200: #bfdbfe;--blue-300: #93c5fd;--blue-400: #60a5fa;--blue-500: #3b82f6;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-800: #1e40af;--ink: #0f172a;--ink-soft: #475569;--muted: #94a3b8;--line: #e2e8f0;--bg: #f4f7fb;--card: #ffffff;--green: #16a34a;--green-bg: #dcfce7;--amber: #d97706;--amber-bg: #fef3c7;--red: #dc2626;--red-bg: #fee2e2;--sky: #0284c7;--sky-bg: #e0f2fe;--radius: 16px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(15,23,42,.05), 0 6px 20px rgba(15,23,42,.05);--shadow-lg: 0 14px 44px rgba(37,99,235,.18);--sidebar-w: 258px;--card-glass: rgba(255,255,255,.72);--ring: rgba(37,99,235,.14)}:root[data-theme=dark]{--blue-50: rgba(59,130,246,.1);--blue-100: rgba(59,130,246,.18);--ink: #e8eefb;--ink-soft: #a7b6cf;--muted: #6d7d9b;--line: #24314c;--bg: #080e1c;--card: #111c33;--green-bg: rgba(34,197,94,.16);--amber-bg: rgba(217,119,6,.18);--red-bg: rgba(239,68,68,.16);--sky-bg: rgba(2,132,199,.18);--shadow: 0 1px 2px rgba(0,0,0,.4), 0 8px 26px rgba(0,0,0,.32);--shadow-lg: 0 16px 46px rgba(0,0,0,.5);--card-glass: rgba(17,28,51,.72);--ring: rgba(59,130,246,.28)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background:radial-gradient(1100px 520px at 100% -8%,rgba(59,130,246,.07),transparent 60%),radial-gradient(900px 480px at -5% 10%,rgba(37,99,235,.05),transparent 55%),var(--bg);background-attachment:fixed;color:var(--ink);-webkit-font-smoothing:antialiased;transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4{font-family:Poppins,Inter,sans-serif;margin:0;color:var(--ink)}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.app-shell{display:flex;min-height:100vh}.main-area{flex:1;min-width:0;display:flex;flex-direction:column}.content{padding:28px 32px;max-width:1280px;width:100%;margin:0 auto}.sidebar{width:var(--sidebar-w);background:linear-gradient(180deg,#1e40af,#2563eb 55%,#3b82f6);color:#eaf2ff;display:flex;flex-direction:column;padding:22px 16px;position:sticky;top:0;height:100vh;flex-shrink:0}.brand{display:flex;align-items:center;gap:12px;padding:4px 8px 22px}.brand-logo{width:40px;height:40px;border-radius:11px;background:#ffffff29;display:grid;place-items:center;font-size:20px}.brand h1{color:#fff;font-size:20px;letter-spacing:.3px}.brand span{font-size:11px;color:#bfdbfe;letter-spacing:2px;text-transform:uppercase}.nav-group-label{font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:#a9c6ff;padding:16px 12px 6px;font-weight:600}.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:11px;color:#dbe7ff;font-weight:500;font-size:14.5px;transition:all .15s;margin-bottom:2px}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#fff;color:var(--blue-700);font-weight:600;box-shadow:var(--shadow)}.nav-item .ico{width:20px;text-align:center;font-size:16px}.sidebar-foot{margin-top:auto;padding:12px}.side-user{display:flex;align-items:center;gap:10px;background:#ffffff1f;border-radius:12px;padding:10px}.side-user .avatar{background:#fff;color:var(--blue-700)}.side-user small{display:block;color:#bfdbfe;font-size:11.5px;text-transform:capitalize}.topbar{height:66px;background:var(--card-glass);backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:30}.topbar h2{font-size:18px}.topbar .sub{font-size:12.5px;color:var(--muted)}.top-spacer{flex:1}.search{display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--muted);min-width:220px}.search input{border:none;background:none;outline:none;font-size:14px;width:100%;color:var(--ink)}.icon-btn{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;font-size:17px;color:var(--ink-soft);position:relative}.icon-btn .dot{position:absolute;top:8px;right:9px;width:8px;height:8px;background:var(--red);border-radius:50%;border:2px solid #fff}.hamburger{display:none}.avatar{width:38px;height:38px;border-radius:50%;background:var(--blue-100);color:var(--blue-700);display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:22px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-head h3{font-size:16px}.card-head .link{color:var(--blue-600);font-size:13px;font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-bottom:24px}.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat .ico-box{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:22px;margin-bottom:14px}.stat .value{font-size:27px;font-weight:700;font-family:Poppins}.stat .label{color:var(--ink-soft);font-size:13.5px;margin-top:2px}.stat .trend{font-size:12px;margin-top:8px;font-weight:600}.trend.up{color:var(--green)}.trend.down{color:var(--red)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:12px;font-weight:600}.badge.green{background:var(--green-bg);color:var(--green)}.badge.amber{background:var(--amber-bg);color:var(--amber)}.badge.red{background:var(--red-bg);color:var(--red)}.badge.blue{background:var(--blue-100);color:var(--blue-700)}.badge.sky{background:var(--sky-bg);color:var(--sky)}.badge.gray{background:#f1f5f9;color:var(--ink-soft)}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;padding:12px 16px;color:var(--muted);font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;font-weight:600;border-bottom:1px solid var(--line);white-space:nowrap}.tbl td{padding:14px 16px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tbody tr:hover{background:var(--blue-50)}.tbl .name-cell{display:flex;align-items:center;gap:11px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:11px;border:1px solid transparent;font-weight:600;font-size:14px;transition:all .15s}.btn.primary{background:var(--blue-600);color:#fff;box-shadow:0 4px 14px #2563eb47}.btn.primary:hover{background:var(--blue-700)}.btn.ghost{background:var(--card);border-color:var(--line);color:var(--ink)}.btn.ghost:hover{border-color:var(--blue-300);color:var(--blue-700)}.btn.sm{padding:7px 13px;font-size:13px;border-radius:9px}.field{margin-bottom:16px}.field label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:7px}.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:11px;font-size:14.5px;font-family:inherit;background:var(--card);color:var(--ink);outline:none;transition:all .15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-400);box-shadow:0 0 0 3px var(--blue-100)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px;gap:16px;flex-wrap:wrap}.page-head h2{font-size:24px}.page-head p{color:var(--muted);font-size:14px;margin-top:4px}.grid-2{display:grid;grid-template-columns:2fr 1fr;gap:22px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.list-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:none}.progress{height:8px;background:var(--blue-100);border-radius:999px;overflow:hidden}.progress>i{display:block;height:100%;background:linear-gradient(90deg,var(--blue-500),var(--blue-700));border-radius:999px}.chip-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.chip{padding:8px 15px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13.5px;font-weight:500;color:var(--ink-soft)}.chip.active{background:var(--blue-600);color:#fff;border-color:var(--blue-600)}.login-wrap{display:flex;min-height:100vh}.login-visual{flex:1;background:linear-gradient(150deg,#1e40af,#2563eb 55%,#3b82f6);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:#ffffff14;bottom:-120px;right:-90px}.login-visual:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:#ffffff12;top:-70px;left:-60px}.login-visual h1{color:#fff;font-size:40px;line-height:1.15;position:relative;z-index:1}.login-visual p{color:#dbeafe;font-size:16px;max-width:400px;position:relative;z-index:1}.login-form-side{flex:1;display:grid;place-items:center;padding:40px}.login-card{width:100%;max-width:400px}.login-card h2{font-size:26px;margin-bottom:6px}.login-card .lead{color:var(--muted);margin-bottom:26px;font-size:14.5px}.demo-accounts{margin-top:22px;border-top:1px dashed var(--line);padding-top:18px}.demo-accounts p{font-size:12px;color:var(--muted);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.demo-btn{display:flex;gap:10px;align-items:center;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--card);margin-bottom:8px;transition:all .15s}.demo-btn:hover{border-color:var(--blue-300);background:var(--blue-50)}.demo-btn small{display:block;color:var(--muted);font-size:12px}.feature-list{list-style:none;padding:0;position:relative;z-index:1}.feature-list li{display:flex;gap:12px;align-items:center;margin-bottom:16px;font-size:15px;color:#eaf2ff}.feature-list .tick{width:26px;height:26px;border-radius:8px;background:#ffffff2e;display:grid;place-items:center;flex-shrink:0}svg{display:block;flex-shrink:0}.nav-item .ico{display:grid;place-items:center}.trend{display:inline-flex;align-items:center;gap:4px}.round-ico{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex-shrink:0}.round-ico.lg{width:46px;height:46px;border-radius:13px}.bar{width:100%;height:var(--h);background:linear-gradient(180deg,var(--blue-400),var(--blue-600));border-radius:8px;transform-origin:bottom;animation:barGrow .7s cubic-bezier(.22,1,.36,1) both}.demo-banner{background:var(--blue-50);color:var(--blue-700);font-size:12.5px;padding:8px 24px;border-bottom:1px solid var(--line);font-weight:500;display:flex;align-items:center;gap:8px}.pulse-dot{width:9px;height:9px;border-radius:50%;background:var(--blue-500);animation:pulse 1.6s ease-in-out infinite}.form-error{display:flex;align-items:center;gap:6px;color:var(--red);font-size:13px;margin-bottom:12px}.demo-ico{width:34px;height:34px;border-radius:10px;background:var(--blue-50);color:var(--blue-700);display:grid;place-items:center;flex-shrink:0}.demo-btn{position:relative}.demo-btn>span:nth-child(2){flex:1}.demo-arrow{color:var(--muted);transition:transform .18s}.demo-btn:hover .demo-arrow{transform:translate(4px);color:var(--blue-600)}.login-visual-body{position:relative;z-index:1}.app-footer{margin-top:auto;background:var(--card);border-top:1px solid var(--line)}.foot-inner{max-width:1280px;margin:0 auto;padding:34px 32px 22px;display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}.foot-brand{display:flex;gap:12px;align-items:flex-start;max-width:280px}.foot-logo{width:40px;height:40px;border-radius:11px;background:var(--blue-600);color:#fff;display:grid;place-items:center;flex-shrink:0}.foot-brand strong{font-family:Poppins;font-size:17px;display:block}.foot-brand span{color:var(--muted);font-size:13px;display:block;margin-top:3px;line-height:1.5}.foot-cols{display:flex;gap:54px;flex-wrap:wrap}.foot-col h5{font-size:12px;text-transform:uppercase;letter-spacing:.8px;color:var(--ink);margin-bottom:12px}.foot-col a{display:block;color:var(--ink-soft);font-size:13.5px;margin-bottom:9px;cursor:pointer;transition:color .15s,transform .15s}.foot-col a:hover{color:var(--blue-600);transform:translate(3px)}.foot-bottom{border-top:1px solid var(--line);padding:16px 32px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:1280px;margin:0 auto;color:var(--muted);font-size:12.5px}.foot-made{color:var(--blue-600);font-weight:500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes contentIn{0%{transform:translateY(8px)}to{transform:translateY(0)}}@keyframes fadeUp{0%{transform:translateY(16px)}to{transform:translateY(0)}}@keyframes pop{0%{transform:scale(.96)}to{transform:none}}@keyframes slideInLeft{0%{transform:translate(-22px)}to{transform:translate(0)}}@keyframes barGrow{0%{transform:scaleY(0);opacity:.3}to{transform:scaleY(1);opacity:1}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}@keyframes wave{0%,60%,to{transform:rotate(0)}20%{transform:rotate(16deg)}40%{transform:rotate(-8deg)}}@keyframes spin{to{transform:rotate(360deg)}}.content{animation:contentIn .4s cubic-bezier(.22,1,.36,1)}.stat-grid>*{animation:fadeUp .5s cubic-bezier(.22,1,.36,1) both}.stat-grid>*:nth-child(1){animation-delay:.04s}.stat-grid>*:nth-child(2){animation-delay:.1s}.stat-grid>*:nth-child(3){animation-delay:.16s}.stat-grid>*:nth-child(4){animation-delay:.22s}.stat-grid>*:nth-child(5){animation-delay:.28s}.stat-grid>*:nth-child(6){animation-delay:.34s}.grid-2>*,.grid-3>*{animation:fadeUp .5s cubic-bezier(.22,1,.36,1) both}.grid-2>*:nth-child(2){animation-delay:.1s}.card{animation:fadeUp .45s cubic-bezier(.22,1,.36,1) both}.stat{transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s}.stat:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.stat .ico-box{transition:transform .22s}.stat:hover .ico-box{transform:scale(1.08) rotate(-4deg)}.card:hover{box-shadow:var(--shadow-lg)}.nav-item{transition:background .15s,color .15s,transform .15s}.nav-item:hover{transform:translate(4px)}.btn{transition:transform .12s,background .15s,box-shadow .15s,border-color .15s}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(.97)}.icon-btn{transition:transform .15s,border-color .15s,color .15s}.icon-btn:hover{transform:translateY(-2px);border-color:var(--blue-300);color:var(--blue-600)}.tbl tbody tr{transition:background .15s}.demo-btn{transition:border-color .15s,background .15s,transform .15s}.demo-btn:hover{transform:translateY(-1px)}.login-visual{animation:contentIn .5s cubic-bezier(.22,1,.36,1)}.login-card{animation:fadeUp .55s cubic-bezier(.22,1,.36,1) both}.login-visual h1{animation:fadeUp .6s cubic-bezier(.22,1,.36,1) both;animation-delay:.1s}.login-visual p{animation:fadeUp .6s cubic-bezier(.22,1,.36,1) both;animation-delay:.18s}.feature-list li{animation:slideInLeft .5s cubic-bezier(.22,1,.36,1) both}.brand-logo{transition:transform .3s}.brand:hover .brand-logo{transform:rotate(-8deg) scale(1.05)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.backdrop{display:none}@media (max-width: 1024px){.grid-2{grid-template-columns:1fr}.grid-3{grid-template-columns:1fr 1fr}}@media (max-width: 860px){.sidebar{position:fixed;left:0;top:0;z-index:60;transform:translate(-100%);transition:transform .25s}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-lg)}.hamburger{display:grid}.backdrop.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;z-index:50;animation:fadeIn .2s ease}.content{padding:20px 16px}.login-visual{display:none}.topbar>.search{display:none}.search.inline{display:flex}.foot-inner{padding:26px 16px 18px;gap:26px}.foot-cols{gap:32px}.foot-bottom{padding:14px 16px}}@media (max-width: 560px){.grid-3{grid-template-columns:1fr}.page-head h2{font-size:20px}.content{padding:16px 12px}}:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring);border-radius:8px}.card,.stat{transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s,background-color .3s,border-color .3s}.theme-toggle{width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--card);display:grid;place-items:center;color:var(--ink-soft);transition:transform .15s,border-color .15s,color .15s}.theme-toggle:hover{transform:translateY(-2px);border-color:var(--blue-300);color:var(--blue-600)}.theme-toggle svg{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.theme-toggle:active svg{transform:rotate(40deg)}.avatar-wrap{position:relative}.avatar-btn{border:none;background:none;padding:0;border-radius:50%}.avatar-btn:hover{box-shadow:0 0 0 3px var(--ring)}.menu{position:absolute;right:0;top:calc(100% + 10px);min-width:230px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:8px;z-index:60;animation:menuIn .18s cubic-bezier(.22,1,.36,1);transform-origin:top right}.menu-head{padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}.menu-head strong{display:block;font-size:14px}.menu-head small{color:var(--muted);font-size:12.5px;text-transform:capitalize}.menu-item{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 12px;border:none;background:none;border-radius:9px;font-size:14px;color:var(--ink);transition:background .13s}.menu-item:hover{background:var(--blue-50);color:var(--blue-700)}.menu-item.danger:hover{background:var(--red-bg);color:var(--red)}.menu-item svg{color:var(--muted)}.menu-item:hover svg{color:inherit}@keyframes menuIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:none}}.notif-menu{min-width:300px}.notif-row{display:flex;gap:11px;padding:11px 12px;border-radius:10px;align-items:flex-start}.notif-row:hover{background:var(--blue-50)}.notif-row small{color:var(--muted);font-size:12px}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:6px}.chart-legend span{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft)}.chart-legend i{width:10px;height:10px;border-radius:3px}.donut-center{font-family:Poppins}.area-path{animation:drawArea 1s ease both}@keyframes drawArea{0%{transform:translateY(10px)}to{transform:translateY(0)}}.spark-line{animation:drawArea .9s ease both}.skel{position:relative;overflow:hidden;background:var(--line);border-radius:8px}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:translate(-100%);animation:shimmer 1.4s infinite}:root[data-theme=dark] .skel:after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}@keyframes shimmer{to{transform:translate(100%)}}.skel-line{height:12px;border-radius:6px}.skel-circle{border-radius:50%}.toast-stack{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{display:flex;align-items:center;gap:11px;min-width:260px;max-width:360px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--blue-500);border-radius:12px;padding:13px 15px;box-shadow:var(--shadow-lg);animation:toastIn .35s cubic-bezier(.22,1,.36,1);font-size:14px;color:var(--ink)}.toast.success{border-left-color:var(--green)}.toast.error{border-left-color:var(--red)}.toast .t-ico{flex-shrink:0;display:grid;place-items:center}.toast.success .t-ico{color:var(--green)}.toast.error .t-ico{color:var(--red)}.toast.info .t-ico{color:var(--blue-600)}@keyframes toastIn{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:none}}@media (max-width: 560px){.toast-stack{left:12px;right:12px;bottom:78px}.toast{min-width:0;max-width:none}}.bottom-nav{display:none}@media (max-width: 860px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:45;background:var(--card-glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-around}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border-radius:10px;color:var(--muted);font-size:10.5px;font-weight:600;transition:color .15s,background .15s}.bottom-nav a.active{color:var(--blue-600);background:var(--blue-50)}.main-area{padding-bottom:66px}.app-footer{margin-bottom:60px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f172a7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fadeIn .16s ease}.modal{background:var(--card);border:1px solid var(--line);border-radius:18px;width:100%;max-width:520px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 60px #0f172a47;animation:modalIn .2s cubic-bezier(.2,.8,.3,1)}.modal.wide{max-width:780px}@keyframes modalIn{0%{opacity:0;transform:translateY(14px) scale(.98)}}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:20px 22px 16px;border-bottom:1px solid var(--line)}.modal-head h3{font-size:17px;font-family:Poppins,inherit}.modal-head p{color:var(--muted);font-size:13px;margin-top:3px}.modal-head .icon-btn{margin-left:auto;flex-shrink:0}.modal-body{padding:20px 22px;overflow-y:auto}.modal-body>form>.modal-foot{margin:4px -22px -20px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--line);background:var(--bg)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.field-grid>.field{grid-column:1 / -1}.field-grid>.field.half{grid-column:span 1}@media (max-width: 560px){.field-grid>.field.half{grid-column:1 / -1}}.field .req{color:var(--red)}.field-hint{display:block;color:var(--muted);font-size:12px;margin-top:5px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px}.detail-grid .dt{color:var(--muted);font-size:12.5px;margin-bottom:3px}.detail-grid .dd{font-weight:600;font-size:14.5px}@media (max-width: 560px){.detail-grid{grid-template-columns:1fr}}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.toolbar .field{margin-bottom:0}.toolbar select,.toolbar input{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font-size:13.5px;font-family:inherit;outline:none}.toolbar select:focus,.toolbar input:focus{border-color:var(--blue-400)}.toolbar .spacer{flex:1}.row-actions{display:flex;gap:6px;justify-content:flex-end}
