*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:Noto Sans SC,Inter,system-ui,sans-serif;background:#f5f6f8;color:#1e2a38;font-size:14px;-webkit-font-smoothing:antialiased}#root{height:100%}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 8px center!important;background-size:11px 11px!important;padding-right:26px!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cdd3db;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#aab2bd}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:4px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.w-full{width:100%}.h-full{height:100%}.text-12{font-size:12px}.text-13{font-size:13px}.text-14{font-size:14px}.text-16{font-size:16px}.text-18{font-size:18px}.text-20{font-size:20px}.text-24{font-size:24px}.text-28{font-size:28px}.fw-400{font-weight:400}.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}.text-muted{color:#7b8794}.text-sub{color:#5c6773}.text-main{color:#1e2a38}.line-through{text-decoration:line-through}.th-tip{position:relative;display:inline-flex;align-items:center;gap:4px;cursor:help}.th-tip-icon{color:#9ca3af;font-size:12px;line-height:1}.th-tip:hover .th-tip-icon{color:#3b82f6}.th-tip-pop{display:none;position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);z-index:30;width:max-content;max-width:280px;padding:10px 12px;background:#1e2a38;color:#e5e7eb;font-size:12px;font-weight:400;line-height:1.6;border-radius:8px;white-space:normal;box-shadow:0 4px 16px #1e2a3847;cursor:default}.th-tip:hover .th-tip-pop{display:block}.th-tip-pop:before{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#1e2a38}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .25s ease-out}:root{--bp-tablet: 768px;--bp-desktop: 1024px;--color-bg: #F5F6F8;--color-surface: #FFFFFF;--color-border: #E5E7EB;--color-border-subtle: #F0F1F3;--color-text: #1E2A38;--color-text-sub: #5C6773;--color-text-muted: #7B8794;--color-primary: #1B3A5C;--color-primary-soft: #EFF6FF;--color-brand: #E86A33;--color-brand-2: #F59E0B;--color-danger: #DC2626;--color-focus: #1B3A5C;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(30, 42, 56, .06);--shadow-md: 0 4px 16px rgba(30, 42, 56, .12);--shadow-lg: 0 12px 32px rgba(30, 42, 56, .18);--sidebar-w: 224px;--topbar-h: 52px;--tap-target: 44px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--z-drawer: 100;--z-mask: 95;--z-toast: 200}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:4px}button:focus:not(:focus-visible),a:focus:not(:focus-visible),[role=button]:focus:not(:focus-visible){outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(pointer:coarse){.tap-target{min-width:var(--tap-target);min-height:var(--tap-target)}.nav-item{min-height:var(--tap-target)}}.nav-item{transition:filter .12s ease,background .15s ease;-webkit-tap-highlight-color:transparent}.nav-item:active{filter:brightness(.96)}.sidebar{position:relative;width:var(--sidebar-w);flex:0 0 auto;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.4,0,.2,1);will-change:transform}@media(max-width:1023.98px){.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:var(--z-drawer);width:min(288px,86vw);transform:translate(-100%);box-shadow:var(--shadow-lg);padding-top:var(--safe-top);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);border-right:none}.sidebar.open{transform:translate(0)}}.drawer-mask{position:fixed;inset:0;z-index:var(--z-mask);background:#0f17236b;opacity:0;pointer-events:none;transition:opacity .25s ease}.drawer-mask.open{opacity:1;pointer-events:auto}@media(min-width:1024px){.drawer-mask{display:none}}.topbar{height:var(--topbar-h);flex-shrink:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 20px}@media(max-width:1023.98px){.topbar{padding-left:max(12px,var(--safe-left));padding-right:max(12px,var(--safe-right))}}.topbar-title{font-size:15px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);color:var(--color-text-sub);background:transparent;flex-shrink:0}.icon-btn:hover{background:#f5f6f8}.icon-btn:active{background:#eef1f5}.content-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}@media(max-width:767.98px){.hide-mobile{display:none!important}}@media(max-width:1023.98px){.hide-compact{display:none!important}}.mobile-only{display:none!important}@media(max-width:767.98px){.mobile-only{display:revert!important}.mobile-only.flex{display:flex!important}}.compact-only{display:none!important}@media(max-width:1023.98px){.compact-only{display:revert!important}.compact-only.flex{display:flex!important}}.rwd-grid{display:grid;gap:16px;grid-template-columns:repeat(var(--cols, 4),minmax(0,1fr))}@media(max-width:1023.98px){.rwd-grid{grid-template-columns:repeat(var(--cols-md, 2),minmax(0,1fr))}}@media(max-width:767.98px){.rwd-grid{grid-template-columns:repeat(var(--cols-sm, 1),minmax(0,1fr))}}.page{padding:20px}@media(max-width:767.98px){.page{padding:14px}}@media(max-width:767.98px){.empty-state{padding:28px 16px!important}}@media(max-width:767.98px){.card-header{flex-direction:column;align-items:stretch!important;gap:10px}}.card-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px}@media(max-width:767.98px){.card-toolbar{width:100%;gap:8px}.card-toolbar .grow-sm{flex:1 1 140px;min-width:0}.card-toolbar .grow-sm>*{width:100%!important}.card-toolbar .tabs-row{flex:1 1 100%;overflow-x:auto;padding-bottom:2px}}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:767.98px){.rwd-cards thead{display:none}.rwd-cards,.rwd-cards tbody,.rwd-cards tr,.rwd-cards td{display:block;width:100%}.rwd-cards tr{margin-bottom:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:6px 0;overflow:hidden}.rwd-cards td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:7px 12px!important;text-align:right;white-space:normal!important}.rwd-cards td:before{content:attr(data-label);flex:0 0 auto;font-weight:500;color:var(--color-text-muted);text-align:left}.rwd-cards td select,.rwd-cards td input,.rwd-cards td textarea{min-width:0;max-width:100%}.rwd-cards td:empty{display:none}}.skeleton{background:linear-gradient(90deg,#eef0f3 25%,#f7f8fa 37%,#eef0f3 63%);background-size:400% 100%;animation:skeleton 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
