/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.min-h-\[36px\]{min-height:36px}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-\[280px\]{max-width:280px}.max-w-\[320px\]{max-width:320px}.max-w-\[900px\]{max-width:900px}.min-w-\[780px\]{min-width:780px}.table-fixed{table-layout:fixed}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.object-contain{-o-object-fit:contain;object-fit:contain}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition\!{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events!important;transition-timing-function:var(--tw-ease,ease)!important;transition-duration:var(--tw-duration,0s)!important}.duration-150{--tw-duration:.15s;transition-duration:.15s}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.focus\:border-transparent:focus{border-color:#0000}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}:root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--color-primary-600:#3b5bdb;--color-primary-700:#2d45c7;--color-slate-50:#f8fafc;--color-slate-100:#f1f5f9;--color-slate-200:#e2e8f0;--color-slate-300:#cbd5e1;--color-slate-400:#94a3b8;--color-slate-500:#64748b;--color-slate-600:#475569;--color-slate-700:#334155;--color-slate-800:#1e293b;--color-slate-900:#0f172a;--color-success:#10b981;--color-danger:#ef4444;--color-warning:#f59e0b;--color-info:#3b82f6;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}html,body,*{font-family:var(--font-sans)!important}html,body{background:var(--color-slate-50);color:var(--color-slate-900);margin:0;padding:0;font-size:14px;font-weight:400;line-height:1.5}.app{max-width:1400px;min-height:100vh;margin:0 auto}header{border-bottom:1px solid var(--color-slate-200);background:#fff;align-items:center;margin-bottom:0;padding:.75rem 1rem;display:flex}header img{height:40px;margin-right:1rem}header h1{color:var(--color-slate-900);margin:0;font-size:1.25rem;font-weight:600}.app-layout{gap:1.5rem;padding:1.5rem;display:flex}.sidebar{flex-shrink:0;width:280px}.sidebar-section{border:1px solid var(--color-slate-200);background:#fff;border-radius:.5rem;margin-bottom:1rem;padding:1rem;box-shadow:0 1px 3px #0000000d}.sidebar-section h3{color:var(--color-slate-900);margin:0 0 .75rem;font-size:.9375rem;font-weight:600}.main-content{flex:1;min-width:0}.full-width-section{border:1px solid var(--color-slate-200);background:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 3px #0000000d}.controls{gap:.5rem;margin-bottom:.75rem;display:flex}.controls input{border:1px solid var(--color-slate-300);color:var(--color-slate-900);background:#fff;border-radius:.375rem;flex:1;padding:.5rem .75rem;font-size:.875rem}.controls input:focus{border-color:var(--color-primary-600);outline:none;box-shadow:0 0 0 3px #3b5bdb1a}.table-wrap{border:1px solid var(--color-slate-200);background:#fff;border-radius:.5rem;padding:.75rem;overflow-x:auto;box-shadow:0 1px 3px #0000000d}.table-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}table{border-collapse:collapse;width:100%;font-size:.875rem}th{border-bottom:2px solid var(--color-slate-200);text-align:left;color:var(--color-slate-700);background:var(--color-slate-50);padding:.75rem;font-weight:600}td{border-bottom:1px solid var(--color-slate-200);color:var(--color-slate-900);padding:.75rem}tr:hover{background:var(--color-slate-50)}button{border:1px solid var(--color-slate-300);color:var(--color-slate-900);cursor:pointer;background:#fff;border-radius:.375rem;padding:.5rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;transition:all .15s}button:hover{background:var(--color-slate-50);border-color:var(--color-slate-400)}button:active{background:var(--color-slate-100)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--color-primary-600);color:#fff;border-color:var(--color-primary-600)}button.primary:hover{background:var(--color-primary-700);border-color:var(--color-primary-700)}button.secondary{background:var(--color-slate-600);color:#fff;border-color:var(--color-slate-600)}button.secondary:hover{background:var(--color-slate-700);border-color:var(--color-slate-700)}button.danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}button.danger:hover{background:#dc2626;border-color:#dc2626}button.success{background:var(--color-success);color:#fff;border-color:var(--color-success)}button.success:hover{background:#059669;border-color:#059669}.pagination{justify-content:flex-end;gap:.5rem;margin-top:.75rem;display:flex}.pager{color:var(--color-slate-600);margin-bottom:.75rem;font-size:.8125rem}.modal-overlay{z-index:40;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.modal{background:#fff;border-radius:.5rem;width:100%;max-width:800px;max-height:90vh;padding:1.5rem;overflow:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{border-bottom:1px solid var(--color-slate-200);z-index:10;background:#fff;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;display:flex;position:sticky;top:0}.modal-body table{border-collapse:collapse;width:100%}.modal-body th{text-align:left;width:140px;color:var(--color-slate-700);padding:.5rem;font-weight:600}.modal-body td{padding:.5rem}.raw{background:var(--color-slate-100);border:1px solid var(--color-slate-200);border-radius:.375rem;padding:.5rem;overflow:auto}.details-btn{margin-left:.5rem;padding:.25rem .5rem;font-size:.75rem}.spinner{border:2px solid var(--color-slate-200);border-top-color:var(--color-primary-600);vertical-align:middle;border-radius:50%;width:14px;height:14px;margin-right:.5rem;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.toast-container{z-index:60;position:fixed;top:1.5rem;right:1.5rem}.toast{border:1px solid var(--color-slate-200);background:#fff;border-radius:.5rem;align-items:center;gap:.75rem;min-width:280px;margin-bottom:.5rem;padding:1rem;display:flex;box-shadow:0 10px 15px -3px #0000001a}.toast .toast-message{color:var(--color-slate-900);flex:1;font-size:.875rem}.toast.success{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.toast.success .toast-message{color:#065f46}.toast.error{color:#7f1d1d;background:#fef2f2;border-color:#fecaca}.toast.error .toast-message{color:#7f1d1d}.toast-close{cursor:pointer;color:var(--color-slate-400);background:0 0;border:0;padding:0;font-size:1.125rem;line-height:1}.toast-close:hover{color:var(--color-slate-700)}.loading-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#ffffffe6;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.loading-box{border:1px solid var(--color-slate-200);background:#fff;border-radius:.75rem;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 2.5rem;display:flex;box-shadow:0 20px 25px -5px #0000001a}.hourglass{font-size:3.375rem;animation:1.8s ease-in-out infinite tilt}@keyframes tilt{0%{transform:rotate(0)}40%{transform:rotate(8deg)}60%{transform:rotate(-8deg)}to{transform:rotate(0)}}.loading-text{text-align:center;color:var(--color-slate-900);max-width:380px;font-size:.9375rem;font-weight:500;line-height:1.4}.loading-sub{color:var(--color-slate-600);margin-top:.25rem;font-size:.8125rem}@media (max-width:900px){body{padding:10px}.app{max-width:100%}header{flex-wrap:wrap;gap:8px}header>div{justify-content:space-between;width:100%;margin-left:0}header button{padding:5px 10px;font-size:13px}.app-layout{flex-direction:column;gap:12px}.sidebar{flex-shrink:1;width:100%}.sidebar-section{padding:12px}.main-content{width:100%}.full-width-section{padding:12px}.controls{flex-wrap:wrap}.controls input,.controls button{width:100%;min-width:0}.table-actions{flex-direction:column;gap:6px}.table-actions button,.table-actions label,.table-actions select{width:100%;padding:5px 8px;font-size:12px}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{white-space:nowrap;min-width:600px;font-size:12px}th,td{padding:6px 4px}.modal-overlay{padding:0}.modal{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%;padding:12px;overflow-y:auto}.modal-header{flex-wrap:wrap;gap:8px}.modal-body{-webkit-overflow-scrolling:touch;overflow-x:auto}.modal-body table{min-width:500px}.modal-body th{width:100px;font-size:12px}.modal-body td{font-size:12px}.toast-container{top:10px;left:10px;right:10px}.toast{min-width:0;font-size:13px}button{padding:5px 8px;font-size:13px}}@media (max-width:600px){body{padding:8px}header button span{display:none}.sidebar-section h3{font-size:14px}table{min-width:500px;font-size:11px}th,td{padding:4px 2px}.pagination{flex-wrap:wrap;justify-content:center;gap:4px}.pagination button{flex:auto;min-width:60px;font-size:11px}button{padding:4px 6px;font-size:12px}.modal-header button{padding:4px 8px;font-size:11px}}.scroll-x{-webkit-overflow-scrolling:touch;overflow-x:auto}.scroll-y{-webkit-overflow-scrolling:touch;overflow-y:auto}.scroll-both{-webkit-overflow-scrolling:touch;overflow:auto}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
