*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border-width:0;border-style:solid;border-color:var(--border)}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--font-mono);font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.right-0{right:0}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.mb-2{margin-bottom:.5rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.grid{display:grid}.contents{display:contents}.list-item{display:list-item}.w-full{width:100%}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.break-all{word-break:break-all}.rounded{border-radius:4px}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.bg-\[var\(--bg-header\)\]{background-color:var(--bg-header)}.bg-\[var\(--bg-stripe\)\]{background-color:var(--bg-stripe)}.bg-card{background-color:var(--bg-card)}.p-0{padding:0}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.text-xs{line-height:1.5}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.text-\[var\(--alert-orange-text\)\]{color:var(--alert-orange-text)}.text-green{color:var(--alert-green-text)}.text-red{color:var(--alert-red-text)}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.sepia{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)}.sepia{--tw-sepia:sepia(100%)}.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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}:root{--font:"Pretendard Variable",Pretendard,"Inter","Apple SD Gothic Neo","Segoe UI",sans-serif;--font-mono:"Pretendard Variable","JetBrains Mono",Consolas,ui-monospace,monospace;--font-size:12px;--text-xs:10px;--text-sm:11px;--text-base:12px;--text-md:13px;--text-lg:14px;--text-xl:16px;--text-2xl:18px;--fw-normal:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--line-height:1.5;--bg-page:#fafafa;--bg-card:#ffffff;--bg-header:#f4f4f5;--bg-sunken:#f4f4f5;--bg-hover:#e9e9eb;--bg-selected:#eff6ff;--bg-stripe:#f9f9fa;--bg-elevated:#ffffff;--bg-disabled:#f4f4f5;--text-main:#18181b;--text-sub:#52525b;--text-weak:#a1a1aa;--text-muted:#d4d4d8;--text-inverse:#ffffff;--text-link:#2563eb;--border:#e4e4e7;--border-soft:#f4f4f5;--border-strong:#d4d4d8;--border-focus:#18181b;--brand:#1B2A4A;--brand-h:#0F1B35;--brand-bg:#eef2f7;--brand-soft:#f8fafc;--focus-ring:rgba(27,42,74,0.18);--red-bg:#fef2f2;--red-text:#b91c1c;--red-border:#fecaca;--orange-bg:#fff7ed;--orange-text:#c2410c;--orange-border:#fed7aa;--amber-bg:#fefce8;--amber-text:#a16207;--amber-border:#fef08a;--green-bg:#f0fdf4;--green-text:#15803d;--green-border:#bbf7d0;--blue-bg:#eff6ff;--blue-text:#1d4ed8;--blue-border:#bfdbfe;--indigo-bg:#eef2ff;--indigo-text:#4338ca;--indigo-border:#c7d2fe;--purple-bg:#faf5ff;--purple-text:#7e22ce;--purple-border:#e9d5ff;--zinc-bg:#f4f4f5;--zinc-text:#52525b;--zinc-border:#e4e4e7;--alert-red-bg:var(--red-bg);--alert-red-text:var(--red-text);--alert-red-border:var(--red-border);--alert-orange-bg:var(--orange-bg);--alert-orange-text:var(--orange-text);--alert-orange-border:var(--orange-border);--alert-green-bg:var(--green-bg);--alert-green-text:var(--green-text);--alert-green-border:var(--green-border);--alert-blue-bg:var(--blue-bg);--alert-blue-text:var(--blue-text);--alert-blue-border:var(--blue-border);--radius-sm:0;--radius:0;--radius-md:0;--radius-lg:0;--radius-pill:999px;--row-height:30px;--input-height:26px;--button-height:26px;--cell-padding:6px 8px;--sidebar-w:172px;--topbar-h:48px;--bottombar-h:42px;--font-weight:400;--font-weight-medium:400;--z-dropdown:100;--z-modal:1000;--z-toast:2000;--shadow-sm:0 1px 2px rgba(0,0,0,0.04);--shadow:0 1px 3px rgba(0,0,0,0.05),0 1px 2px rgba(0,0,0,0.03);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.07),0 2px 4px -1px rgba(0,0,0,0.04);--shadow-lg:0 10px 24px -4px rgba(0,0,0,0.10),0 4px 8px -2px rgba(0,0,0,0.04)}:root[data-theme=sepia]{--bg-page:#f4ecd8;--bg-card:#faf5e6;--bg-sunken:#efe6cf;--bg-stripe:#f7f0db;--bg-hover:#ebe2c8;--bg-selected:#f0e8c8;--bg-elevated:#faf5e6;--text-main:#3b2e1f;--text-sub:#6b5944;--text-weak:#9a8769;--text-muted:#c4b691;--border:#ddd0ab;--border-soft:#ece2c6;--border-strong:#c4b691}:root[data-theme=cool]{--bg-page:#f1f5f9;--bg-card:#ffffff;--bg-sunken:#e2e8f0;--bg-stripe:#f8fafc;--bg-hover:#e2e8f0;--bg-selected:#dbeafe;--bg-elevated:#ffffff;--text-main:#1e293b;--text-sub:#475569;--text-weak:#94a3b8;--text-muted:#cbd5e1;--border:#cbd5e1;--border-soft:#e2e8f0;--border-strong:#94a3b8}:root[data-theme=warm]{--bg-page:#f5f1eb;--bg-card:#fbf8f3;--bg-sunken:#ebe4d7;--bg-stripe:#f5f0e6;--bg-hover:#ebe4d7;--bg-selected:#f0e5d0;--bg-elevated:#fbf8f3;--text-main:#2a2520;--text-sub:#5a4f44;--text-weak:#8a7d6f;--text-muted:#c4b8a8;--border:#d8cdb9;--border-soft:#ebe4d7;--border-strong:#c4b8a8}:root[data-theme=mint]{--bg-page:#ecfdf5;--bg-card:#f6fffb;--bg-sunken:#d1fae5;--bg-stripe:#f0fdf6;--bg-hover:#d1fae5;--bg-selected:#bbf7d0;--bg-elevated:#f6fffb;--text-main:#064e3b;--text-sub:#047857;--text-weak:#6ee7b7;--text-muted:#a7f3d0;--border:#a7f3d0;--border-soft:#d1fae5;--border-strong:#6ee7b7}:root[data-theme=dark]{--bg-page:#0f172a;--bg-card:#1e293b;--bg-header:#243245;--bg-sunken:#243245;--bg-stripe:#1c2638;--bg-hover:#2e3f5a;--bg-selected:#1e3a8a;--bg-elevated:#243245;--text-main:#f1f5f9;--text-sub:#94a3b8;--text-weak:#64748b;--text-muted:#475569;--text-inverse:#0f172a;--text-link:#60a5fa;--border:#334155;--border-soft:#1e293b;--border-strong:#475569;--border-focus:#93c5fd;--brand:#93c5fd;--brand-h:#bfdbfe;--brand-bg:#2a3a5a;--brand-soft:#1e293b;--focus-ring:#475569;--red-bg:#450a0a;--red-text:#fca5a5;--red-border:#7f1d1d;--orange-bg:#451a03;--orange-text:#fcd34d;--orange-border:#78350f;--amber-bg:#422006;--amber-text:#fcd34d;--amber-border:#78350f;--green-bg:#052e1f;--green-text:#6ee7b7;--green-border:#14532d;--blue-bg:#0c1f3d;--blue-text:#93c5fd;--blue-border:#1e3a8a;--indigo-bg:#1e1b4b;--indigo-text:#c7d2fe;--indigo-border:#3730a3;--purple-bg:#2e1065;--purple-text:#d8b4fe;--purple-border:#6b21a8;--zinc-bg:#243245;--zinc-text:#cbd5e1;--zinc-border:#334155}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{font-family:var(--font);font-size:var(--font-size);line-height:var(--line-height);font-weight:var(--font-weight);color:var(--text-main);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11" 1,"ss01" 1;font-variant-numeric:tabular-nums;letter-spacing:-.01em}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}a{color:var(--text-link);text-decoration:none}.date,.mono,.num,.plate,code,kbd{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.plate{font-weight:var(--font-weight-medium)}.layout{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh}:root[data-sidebar=collapsed] .layout{grid-template-columns:56px 1fr}.sidebar{min-width:0}.sb-item>span{overflow:hidden;white-space:nowrap;text-overflow:clip}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden;min-width:0}.app>.bottom-bar,.app>.kpi-strip,.app>header{flex-shrink:0}.app>.dashboard,.app>.page-shell,.app>.penalty-body{flex:1;min-height:0}.bottom-bar{gap:10px;padding:0 10px;height:var(--bottombar-h);background:var(--bg-card);border-top:1px solid var(--border);flex-shrink:0}.bottom-bar,.bottom-bar-left{display:flex;align-items:center}.bottom-bar-left{gap:14px;flex:1;flex-wrap:wrap;font-size:12px;color:var(--text-sub)}.bottom-bar-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.sidebar{background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sb-brand{gap:8px;height:var(--topbar-h);padding:0 12px;border-bottom:1px solid var(--border)}.sb-brand,.sb-brand-logo{display:flex;align-items:center;flex-shrink:0}.sb-brand-logo{width:30px;height:30px;background:var(--brand);color:white;border-radius:var(--radius-md);justify-content:center;font-weight:var(--font-weight-medium);font-size:12px}.sb-brand-text{line-height:1.1;min-width:0}.sb-brand-name{font-weight:var(--font-weight-medium);font-size:13px}.sb-brand-sub{font-size:10px;color:var(--text-weak);margin-top:2px}.sb-brand-collapse{margin-left:auto;width:24px;height:24px;border:none;background:transparent;cursor:pointer;color:var(--text-weak);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .1s,color .1s}.sb-brand-collapse:hover{background:var(--bg-sunken);color:var(--text-main)}.sb-section{display:flex;flex-direction:column;gap:1px;padding:6px 8px 4px}.sb-section-label{font-size:10px;color:var(--text-weak);text-transform:uppercase;letter-spacing:.06em;padding:4px 12px;font-weight:var(--font-weight-medium)}.page-shell-nav-item,.sb-item{display:flex;align-items:center;gap:8px;padding:6px 12px;border:none;background:transparent;border-radius:var(--radius);color:var(--text-sub);font-size:12px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color .1s ease,color .1s ease;text-decoration:none;text-align:left;width:100%;letter-spacing:-.005em;font-family:inherit}.page-shell-nav-item>svg,.sb-item>svg{width:16px!important;height:16px!important;min-width:16px;flex-shrink:0}.page-shell-nav-item:hover,.sb-item:hover{background:var(--bg-sunken);color:var(--text-main)}.page-shell-nav-item:active,.sb-item:active{background:var(--bg-stripe)}.page-shell-nav-item:focus-visible,.sb-item:focus-visible{outline:none;background:var(--bg-sunken);box-shadow:0 0 0 2px var(--focus-ring) inset}.page-shell-nav-item.active,.sb-item.active{background:var(--bg-sunken);color:var(--text-main);font-weight:var(--font-weight-medium)}.page-shell-nav-item.active>svg,.sb-item.active>svg{color:var(--brand)}.page-shell-nav-item:disabled,.page-shell-nav-item[disabled],.sb-item:disabled,.sb-item[disabled]{color:var(--text-muted);cursor:not-allowed}.page-shell-nav-item:disabled:hover,.sb-item:disabled:hover{background:transparent;color:var(--text-muted)}.sb-item-muted{color:var(--text-weak)}.sb-item .sb-count,.sb-item-muted:hover{color:var(--text-sub)}.sb-item .sb-count{margin-left:auto;font-size:11px;background:var(--bg-card);padding:1px 7px;border-radius:99px;min-width:18px;text-align:center;border:1px solid var(--border)}.sb-spacer{flex:1}.sb-divider{height:1px;background:var(--border);margin:4px 0}.page-shell{display:grid;grid-template-columns:240px 1fr;gap:10px;padding:10px;overflow:hidden;background:var(--bg-page)}.page-shell-nav{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:6px;display:flex;flex-direction:column;gap:1px;overflow:auto}.page-shell-nav-divider{font-size:10px;font-weight:var(--font-weight-medium);color:var(--text-weak);text-transform:uppercase;letter-spacing:.06em;padding:14px 10px 6px}.page-shell-main{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:14px 18px;overflow:auto}.page-shell-main .detail-section{background:transparent;border:none;box-shadow:none;border-top:1px solid var(--border-soft);padding-top:12px;margin-top:12px}.page-shell-main .detail-section:first-of-type{border-top:none;padding-top:0;margin-top:0}.page-shell-main .detail-section-header{padding:0 0 8px;min-height:auto;border-bottom:none;background:transparent}.page-shell-main .detail-section-body{padding:0}.page-header{display:flex;align-items:center;gap:12px;margin-bottom:14px}.page-header-title-group{display:flex;flex-direction:column;gap:2px;min-width:0}.page-header-title{font-size:18px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:8px;line-height:1.2;margin:0}.page-header-title>svg{color:var(--text-sub);flex-shrink:0}.page-header-title-sub{font-size:12px;color:var(--text-weak)}.page-header-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.page-shell-tabs{display:flex;gap:4px;background:transparent;border:none;border-bottom:1px solid var(--border);padding:4px 0 12px;align-items:center}.page-shell-tabs .tab{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;font-size:12px;font-weight:var(--font-weight-medium);color:var(--text-sub);cursor:pointer;border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius-sm);transition:background-color .1s,border-color .1s,color .1s;white-space:nowrap;font-family:inherit}.page-shell-tabs .tab>svg{width:13px;height:13px}.page-shell-tabs .tab:hover{background:var(--bg-sunken);color:var(--text-main)}.page-shell-tabs .tab:focus-visible{outline:none;box-shadow:0 0 0 2px var(--focus-ring)}.page-shell-tabs .tab.active{background:var(--brand);border-color:var(--brand);color:var(--text-inverse)}.page-shell-tabs .tab.active:hover{background:var(--brand-h);border-color:var(--brand-h);color:var(--text-inverse)}.page-shell-tabs .tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 5px;background:var(--bg-sunken);color:var(--text-sub);font-size:10px;border-radius:var(--radius-sm);font-weight:400;font-variant-numeric:tabular-nums;margin-left:2px}.page-shell-tabs .tab.active .tab-count{background:rgba(255,255,255,.22);color:var(--text-inverse)}.page-shell-nav-card{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border:1px solid transparent;background:transparent;border-radius:var(--radius);cursor:pointer;transition:background-color .1s,border-color .1s;text-align:left;font-family:inherit;letter-spacing:-.005em;width:100%}.page-shell-nav-card:hover{background:var(--bg-sunken)}.page-shell-nav-card:active{background:var(--bg-stripe)}.page-shell-nav-card:focus-visible{outline:none;background:var(--bg-sunken);box-shadow:0 0 0 2px var(--focus-ring) inset}.page-shell-nav-card.active{background:var(--bg-sunken);border-color:var(--border)}.page-shell-nav-card.unregistered:hover{background:var(--orange-bg)}.page-shell-nav-card-icon{width:24px;height:24px;border-radius:var(--radius);background:var(--brand-bg);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}.page-shell-nav-card-main{flex:1;min-width:0}.page-shell-nav-card-name{font-size:12px;font-weight:var(--font-weight-medium);color:var(--text-main)}.page-shell-nav-card-meta,.page-shell-nav-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-shell-nav-card-meta{font-size:11px;color:var(--text-weak);margin-top:2px}.page-shell-nav-card-stats{display:flex;gap:4px;align-items:center;font-size:10px;color:var(--text-weak);margin-top:4px}.settings-shell{display:grid;grid-template-columns:240px 1fr;overflow:hidden}.settings-nav{border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;gap:2px;background:var(--bg-card);overflow:auto}.settings-nav-item{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border:none;background:transparent;border-radius:var(--radius);color:var(--text-sub);font-size:12px;font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color .1s,color .1s;text-align:left;font-family:inherit;letter-spacing:-.005em}.settings-nav-item>svg{width:16px;height:16px;flex-shrink:0}.settings-nav-item.active,.settings-nav-item:hover{background:var(--bg-sunken);color:var(--text-main)}.settings-nav-item.active{font-weight:var(--font-weight-medium)}.settings-nav-item.active>svg{color:var(--brand)}.settings-main{padding:24px 28px;overflow:auto;background:var(--bg-page)}.font-pick{display:none}:root[data-sidebar=collapsed] .sb-divider{margin:8px 0}.sb-foot{padding:6px 8px;display:flex;flex-direction:column;gap:1px}:root[data-sidebar=collapsed] .sb-brand-logo,:root[data-sidebar=collapsed] .sb-brand-text,:root[data-sidebar=collapsed] .sb-count,:root[data-sidebar=collapsed] .sb-item>span,:root[data-sidebar=collapsed] .sb-section-label,:root[data-sidebar=collapsed] .sb-user{display:none}:root[data-sidebar=collapsed] .sb-brand{padding:0;justify-content:center}:root[data-sidebar=collapsed] .sb-brand-collapse{margin-left:0;width:32px;height:32px}:root[data-sidebar=collapsed] .sb-foot,:root[data-sidebar=collapsed] .sb-section{padding-left:12px;padding-right:12px;align-items:center}:root[data-sidebar=collapsed] .sb-item{width:32px;height:32px;padding:0;justify-content:center}:root[data-sidebar=collapsed] .sb-item.active:before{display:none}.sb-user{padding:6px 10px;font-size:11px;color:var(--text-main);font-weight:var(--font-weight-medium)}.sb-user-email{font-size:10px;color:var(--text-weak);font-weight:400;margin-top:1px}.topbar{gap:10px;padding:0 10px;background:var(--bg-card);border-bottom:1px solid var(--border);height:var(--topbar-h)}.topbar,.topbar-title{display:flex;align-items:center}.topbar-title{gap:8px;font-weight:var(--font-weight-medium);font-size:14px;color:var(--text-main);padding:0 8px 0 4px;white-space:nowrap;min-width:140px;flex-shrink:0}.topbar-search{position:relative;width:260px}.topbar-search .icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-weak);pointer-events:none}.topbar-search input{padding-left:30px;width:100%}.topbar-brand{display:flex;align-items:center;gap:10px;font-weight:var(--font-weight-medium);font-size:14px;height:100%}.topbar-brand-logo{width:32px;height:32px;background:var(--bg-sunken);border:1px dashed var(--border-strong);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--text-weak);font-size:9px;letter-spacing:.05em;flex-shrink:0}.topbar-brand-text{line-height:1.1}.topbar-brand-text .name{font-weight:var(--font-weight-medium)}.topbar-brand-text .sub{font-size:11px;color:var(--text-weak);font-weight:400}.topbar-summary{display:flex;align-items:center;gap:28px;flex:1}.metric{display:flex;flex-direction:column;line-height:1.2}.metric .label{font-size:11px;color:var(--text-weak);margin-bottom:2px;letter-spacing:0}.metric .value{font-size:14px;font-weight:var(--font-weight-medium);color:var(--text-main);font-variant-numeric:tabular-nums}.metric .value .unit{font-size:11px;color:var(--text-sub);font-weight:400;margin-left:2px}.metric.danger .value{color:var(--red-text)}.topbar-actions{gap:8px}.topbar-actions,.topbar-right{display:flex;align-items:center}.topbar-right{margin-left:auto;gap:16px}.topbar-sort{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-weak);white-space:nowrap}.topbar-sort .arrow{font-size:9px;opacity:.8}.topbar-date{font-size:13px;font-weight:var(--font-weight-medium);color:var(--text-sub);font-variant-numeric:tabular-nums;white-space:nowrap}.page-body{padding:16px;overflow:auto}.dashboard,.page-body{background:var(--bg-page)}.dashboard{display:grid;grid-template-columns:1fr 380px;gap:10px;padding:10px;overflow:hidden}.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden}.panel-header{justify-content:space-between;padding:0 12px;height:var(--row-height);background:var(--bg-header);border-bottom:1px solid var(--border-strong);flex-shrink:0}.panel-header,.panel-title{display:flex;align-items:center;gap:8px}.panel-title{font-size:12px;color:var(--text-main)}.panel-title,.panel-title .badge{font-weight:var(--font-weight-medium)}.panel-title .badge{display:inline-flex;align-items:center;justify-content:center;height:18px;min-width:22px;padding:0 7px;border-radius:var(--radius);background:var(--zinc-bg);color:var(--zinc-text);font-size:11px}.panel-body{flex:1;overflow:auto}.panel-toolbar{display:flex;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg-card);align-items:center;flex-wrap:wrap;flex-shrink:0}.sidebar-stack{display:grid;grid-template-rows:1fr 1fr;gap:8px;overflow:hidden}.panel-meta{font-variant-numeric:tabular-nums;font-weight:var(--font-weight-medium);font-size:13px;letter-spacing:-.01em}.panel-meta.danger{color:var(--red-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--button-height);padding:0 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text-main);cursor:pointer;transition:background-color .1s ease,border-color .1s ease,color .1s ease;white-space:nowrap;font-size:12px;font-weight:var(--font-weight-medium);letter-spacing:-.005em;font-family:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn>svg{width:14px;height:14px;flex-shrink:0}.btn:hover{background:var(--bg-sunken)}.btn:active{background:var(--bg-stripe)}.btn:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.btn:disabled,.btn[disabled]{background:var(--bg-card);color:var(--text-weak);border-color:var(--border-soft);cursor:not-allowed}.btn:disabled:hover,.btn[disabled]:hover{background:var(--bg-card)}.btn-sm{height:22px;padding:0 8px;font-size:11px;gap:4px}.btn-sm>svg{width:11px;height:11px}.btn-lg{height:32px;padding:0 16px;font-size:13px;gap:8px}.btn-lg>svg{width:16px;height:16px}.btn-icon{width:var(--button-height);padding:0}.btn-sm.btn-icon{width:22px}.btn-lg.btn-icon{width:32px}.btn-primary{background:var(--brand);color:var(--text-inverse);border-color:var(--brand)}.btn-primary:hover{border-color:var(--brand-h)}.btn-primary:active,.btn-primary:hover{background:var(--brand-h)}.btn-primary:disabled,.btn-primary[disabled]{background:var(--text-muted);border-color:var(--text-muted);color:var(--bg-card)}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-sub)}.btn-ghost:hover{background:var(--bg-sunken);border-color:transparent;color:var(--text-main)}.btn-ghost:active{background:var(--bg-stripe)}.btn-danger{color:var(--red-text);border-color:var(--red-border)}.btn-danger:active,.btn-danger:hover{background:var(--red-bg)}.input,.select{height:var(--input-height);padding:0 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text-main);outline:none;font-family:inherit;font-size:12px;letter-spacing:-.005em;transition:background-color .1s ease,border-color .1s ease,box-shadow .1s ease}.input:hover,.select:hover{border-color:var(--border-strong)}.input:focus,.input:focus-visible,.select:focus,.select:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.input::-moz-placeholder{color:var(--text-weak)}.input::placeholder{color:var(--text-weak)}.input:disabled,.select:disabled{background:var(--bg-sunken);color:var(--text-weak);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:14px;height:14px;min-width:14px;min-height:14px;accent-color:var(--brand);cursor:pointer;margin:0;vertical-align:middle;flex:0 0 auto}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed;opacity:.6}.chip{display:inline-flex;align-items:center;gap:5px;height:var(--button-height);padding:0 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);font-size:12px;font-weight:var(--font-weight-medium);color:var(--text-sub);cursor:pointer;transition:background-color .1s ease,border-color .1s ease,color .1s ease;white-space:nowrap;letter-spacing:-.005em;font-family:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chip>svg{width:12px;height:12px;flex-shrink:0}.chip:hover{background:var(--bg-sunken);color:var(--text-main)}.chip:active{background:var(--bg-stripe)}.chip:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--focus-ring)}.chip.active{background:var(--brand);color:var(--text-inverse);border-color:var(--brand)}.chip.active:hover{background:var(--brand-h);border-color:var(--brand-h);color:var(--text-inverse)}.chip:disabled,.chip[disabled]{color:var(--text-weak);border-color:var(--border-soft);cursor:not-allowed}.chip-count{background:rgba(255,255,255,.22);padding:0 5px;font-size:10px;height:16px;display:inline-flex;align-items:center;border-radius:var(--radius)}.chip:not(.active) .chip-count{background:var(--bg-sunken);color:var(--text-sub)}.chip.chip-tone-red.active{background:var(--red-text);border-color:var(--red-text);color:#fff}.chip.chip-tone-red.active:hover{background:var(--red-text);border-color:var(--red-text);filter:brightness(.92)}.chip.chip-tone-amber.active{background:var(--amber-text);border-color:var(--amber-text);color:#fff}.chip.chip-tone-amber.active:hover{background:var(--amber-text);border-color:var(--amber-text);filter:brightness(.92)}.chip.chip-tone-orange.active{background:var(--orange-text);border-color:var(--orange-text);color:#fff}.chip.chip-tone-orange.active:hover{background:var(--orange-text);border-color:var(--orange-text);filter:brightness(.92)}.chip.chip-tone-blue.active{background:var(--blue-text);border-color:var(--blue-text);color:#fff}.chip.chip-tone-blue.active:hover{background:var(--blue-text);border-color:var(--blue-text);filter:brightness(.92)}.chip.chip-tone-gray.active{background:var(--text-sub);border-color:var(--text-sub);color:#fff}.chip.chip-tone-gray.active:hover{background:var(--text-sub);border-color:var(--text-sub);filter:brightness(.92)}.chip.chip-tone-red:not(.active){color:var(--red-text)}.chip.chip-tone-amber:not(.active){color:var(--amber-text)}.chip.chip-tone-orange:not(.active){color:var(--orange-text)}.chip.chip-tone-blue:not(.active){color:var(--blue-text)}.table-wrap{width:100%;overflow:auto;height:100%}.table{width:100%;border-collapse:separate;border-spacing:0;table-layout:auto}.table td,.table th{padding:var(--cell-padding);text-align:left;white-space:nowrap;height:var(--row-height);font-family:inherit;font-size:12px}.table thead th{position:sticky;top:0;background:var(--bg-header);color:var(--text-sub);font-weight:var(--font-weight-medium);border-bottom:1px solid var(--border-strong);border-right:1px solid var(--border-soft);z-index:10}.table thead th:last-child{border-right:none}.table tbody td{border-bottom:1px solid var(--border-soft);border-right:1px solid var(--bg-stripe);color:var(--text-main)}.table tbody td:last-child{border-right:none}.table tbody tr:nth-child(2n) td{background:var(--bg-stripe)}.table tbody tr:hover td{background:var(--bg-hover)}.table tbody tr.selected td{background:var(--bg-selected)}.table th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .1s,color .1s}.table th.sortable:hover{background:var(--bg-sunken);color:var(--text-main)}.table th.sortable.active{color:var(--brand);background:var(--brand-bg)}.table th .sort-arrow{margin-left:4px;font-size:9px;vertical-align:1px}.table thead tr.group-row th{font-size:10px;text-transform:none;color:var(--text-sub);background:var(--bg-sunken);border-bottom:1px solid var(--border-soft);padding:4px 10px;letter-spacing:.04em;text-align:center;font-weight:var(--font-weight-medium);top:0}.table thead tr.col-row th{top:24px}.status-cell{display:inline-flex;flex-direction:column;align-items:center;gap:3px;line-height:1.3}.status-cell .days{font-size:10px;color:var(--text-weak);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.status-cell .days.danger{color:var(--red-text);font-weight:var(--font-weight-medium)}.table tbody tr{cursor:pointer;position:relative}.table tbody tr:last-child td{border-bottom:none}.kpi-strip{display:flex;padding:6px 10px;background:var(--bg-card);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.kpi-chip,.kpi-strip{align-items:center;gap:6px}.kpi-chip{display:inline-flex;padding:4px 10px;height:26px;background:var(--bg-sunken);border:1px solid var(--border-soft);border-radius:var(--radius-sm);font-size:11px;color:var(--text-sub);white-space:nowrap}.kpi-chip>svg{width:12px;height:12px;color:var(--text-weak)}.kpi-chip strong{color:var(--text-main);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.kpi-chip.red,.kpi-chip.red strong{color:var(--red-text)}.kpi-chip.orange,.kpi-chip.orange strong{color:var(--orange-text)}.kpi-chip.green,.kpi-chip.green strong{color:var(--green-text)}.kpi-chip.brand,.kpi-chip.brand strong{color:var(--brand)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table td.center,.table th.center{text-align:center}.table td.danger{color:var(--red-text);font-weight:var(--font-weight-medium)}.table td.muted{color:var(--text-weak)}.table td.dim{color:var(--text-sub)}.table td.checkbox-col,.table th.checkbox-col{width:36px;min-width:36px;max-width:36px;padding:0 0 0 12px;text-align:center;vertical-align:middle}.table .checkbox-col input[type=checkbox]{vertical-align:middle;margin:0}.table tbody tr.selected-row,.table tbody tr.selected-row:hover{background:var(--brand-bg)}.cust{display:inline-flex;align-items:center;gap:8px}.cust-avatar{width:24px;height:24px;border-radius:50%;background:var(--brand-bg);color:var(--brand);justify-content:center;flex-shrink:0}.cust-avatar,.status{display:inline-flex;align-items:center;font-size:11px;font-weight:var(--font-weight-medium)}.status{gap:5px;height:20px;padding:0 9px 0 7px;border-radius:var(--radius);white-space:nowrap;border:1px solid transparent}.status:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.status.구매대기{background:var(--orange-bg);color:var(--orange-text)}.status.등록대기{background:var(--amber-bg);color:var(--amber-text)}.status.상품화중{background:var(--blue-bg);color:var(--blue-text)}.status.상품대기,.status.인도대기,.status.출고대기{background:var(--indigo-bg);color:var(--indigo-text)}.status.계약,.status.계약완료,.status.계약중,.status.운행{background:var(--green-bg);color:var(--green-text)}.status.종료임박{background:#fef9c3;color:#854d0e}.status.연장대기{background:var(--blue-bg);color:var(--blue-text)}.status.종료대기{background:var(--orange-bg);color:var(--orange-text)}.status.사고,.status.정비,.status.휴차,.status.휴차중{background:var(--purple-bg);color:var(--purple-text)}.status.임시배차{background:var(--amber-bg);color:var(--amber-text)}.status.대기,.status.반납,.status.반납예정,.status.반납완료,.status.휴차대기{background:var(--zinc-bg);color:var(--zinc-text)}.status.상품화대기{background:var(--blue-bg);color:var(--blue-text)}.status.매각대기{background:var(--orange-bg);color:var(--orange-text)}.status.매각{background:var(--red-bg);color:var(--red-text)}.status.무계약{background:var(--bg-sunken);color:var(--text-weak)}.status.정상{background:var(--green-bg);color:var(--green-text)}.status.미수검{background:var(--amber-bg);color:var(--amber-text)}.status.미납,.status.위반{background:var(--red-bg);color:var(--red-text)}.status.완료{background:var(--green-bg);color:var(--green-text)}.status.예정{background:var(--zinc-bg);color:var(--zinc-text)}.tag{display:inline-flex;align-items:center;justify-content:center;height:18px;min-width:36px;padding:0 7px;border-radius:var(--radius);font-size:10px;font-weight:var(--font-weight-medium)}.tag.out{background:var(--blue-bg);color:var(--blue-text)}.tag.in{background:var(--indigo-bg);color:var(--indigo-text)}.tag.over{background:var(--red-bg);color:var(--red-text)}.tag.idle{background:var(--purple-bg);color:var(--purple-text)}.filter-bar{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.filter-divider{width:1px;height:18px;background:var(--border);margin:0 6px;flex-shrink:0}.filter-group-label{font-size:10px;color:var(--text-weak);text-transform:uppercase;letter-spacing:.06em;font-weight:var(--font-weight-medium);margin-right:2px}.list-item{display:flex;align-items:center;gap:10px;padding:4px 12px;border-bottom:1px solid var(--border-soft);cursor:pointer;transition:background .08s;min-height:var(--row-height)}.list-item:hover{background:var(--bg-hover)}.list-item:last-child{border-bottom:none}.list-item-main{flex:1;min-width:0}.list-item-top{gap:6px;font-weight:var(--font-weight-medium);font-size:12px}.list-item-sub,.list-item-top{display:flex;align-items:center;line-height:1.3}.list-item-sub{font-size:11px;color:var(--text-sub);gap:5px;margin-top:0}.list-item-right{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0}.list-item-right .date{font-size:11px;color:var(--text-sub)}.list-item-right .dday{font-size:11px;color:var(--text-weak);margin-top:1px}.list-item-right .dday.danger{color:var(--red-text);font-weight:var(--font-weight-medium)}.dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:var(--z-modal);animation:fadeIn .12s ease}.dialog-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg-card);border-radius:var(--radius-lg);width:min(1200px,95vw);height:min(860px,92vh);display:flex;flex-direction:column;z-index:calc(var(--z-modal) + 1);box-shadow:var(--shadow-lg);animation:zoomIn .14s ease;overflow:hidden}@keyframes spin{to{transform:rotate(1turn)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes zoomIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.dialog-title{font-weight:var(--font-weight-medium);font-size:14px}.dialog-body{flex:1;overflow:auto;padding:18px}.dialog-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--border);background:var(--bg-card)}.dialog-close{background:transparent;border:none;cursor:pointer;padding:6px;border-radius:var(--radius);color:var(--text-sub);transition:background .1s}.dialog-close:hover{background:var(--bg-sunken);color:var(--text-main)}.search-result-row{display:flex;align-items:center;gap:10px;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid var(--border-soft);cursor:pointer;width:100%;text-align:left;transition:background .1s;font-size:12px}.search-result-row:last-child{border-bottom:none}.search-result-row:hover{background:var(--bg-hover)}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--bg-sunken);padding:24px 16px;cursor:pointer;transition:background-color .1s ease,border-color .1s ease;text-align:center}.dropzone.drag,.dropzone.dragging,.dropzone:hover{border-color:var(--brand);background:var(--brand-bg)}.dropzone-icon{width:36px;height:36px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--brand)}.dropzone-title{font-size:14px;font-weight:var(--font-weight-medium);color:var(--text-main);margin-top:4px}.dropzone-desc{font-size:12px;color:var(--text-sub);line-height:1.5;max-width:480px}.dropzone-desc code{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 6px;font-size:11px;margin:0 1px;color:var(--text-main)}.schema-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:4px 10px;max-width:720px;text-align:left}.schema-col{display:flex;align-items:center;gap:5px;padding:4px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11px}.schema-col.required{border-color:var(--border-strong)}.schema-col-dot{width:5px;height:5px;border-radius:50%;background:var(--border-strong);flex-shrink:0}.schema-col.required .schema-col-dot{background:var(--red-text)}.schema-col-name{color:var(--text-main);font-weight:var(--font-weight-medium)}.schema-col-hint{margin-left:auto}.schema-col-hint,.schema-legend{color:var(--text-weak);font-size:10px}.schema-legend{display:flex;gap:12px;align-items:center;margin-top:6px}.schema-legend-dot{display:inline-block;width:5px;height:5px;border-radius:50%;margin-right:4px;vertical-align:middle}.dropzone-hint{font-size:11px;color:var(--text-weak)}.dropzone.compact{flex-direction:row;padding:12px 16px;gap:10px}.dropzone.compact .dropzone-icon{width:32px;height:32px;border-radius:var(--radius-md)}.dropzone.compact .dropzone-title{font-size:12px;margin:0}.dropzone.compact .dropzone-desc{display:none}.form-grid{grid-template-columns:110px 1fr;gap:8px 14px}.form-grid,.form-grid-2{display:grid;align-items:center}.form-grid-2{grid-template-columns:110px 1fr 110px 1fr;gap:10px 14px}.form-label{color:var(--text-sub);text-align:right;padding-right:4px;font-size:12px}.tabs-list{display:flex;gap:4px;padding:6px 8px;background:var(--bg-header);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center}.tabs-trigger{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 12px;font-size:12px;font-weight:var(--font-weight-medium);color:var(--text-sub);cursor:pointer;border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius-sm);transition:background-color .1s,border-color .1s,color .1s;white-space:nowrap;font-family:inherit}.tabs-trigger:hover{background:var(--bg-sunken);color:var(--text-main)}.tabs-trigger[data-state=active]{background:var(--brand);border-color:var(--brand);color:var(--text-inverse)}.tabs-trigger[data-state=active]:hover{background:var(--brand-h);border-color:var(--brand-h);color:var(--text-inverse)}.tabs-trigger .count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 5px;background:var(--bg-sunken);color:var(--text-sub);font-size:10px;border-radius:var(--radius-sm);font-weight:400}.tabs-trigger[data-state=active] .count{background:rgba(255,255,255,.22);color:var(--text-inverse)}.auth-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:40px 16px;background:#f8f9fa;font-family:var(--font);letter-spacing:-.01em}.auth-brand{font-size:28px;letter-spacing:-.5px}.auth-brand__base{font-weight:300;color:#7F8599}.auth-brand__main{font-weight:var(--font-weight-medium);color:#0D0D0F}.auth-brand__erp{font-weight:300;color:#1B2A4A;margin-left:4px}.auth-copyright{font-size:11px;color:#9ca3af;letter-spacing:.01em}.auth-spin{animation:auth-spin .9s linear infinite;display:inline-block}@keyframes auth-spin{to{transform:rotate(1turn)}}.auth-card{width:100%;max-width:400px;background:#ffffff;border:none;border-radius:2px;padding:40px 32px;box-shadow:0 2px 10px rgba(0,0,0,.04),0 10px 30px rgba(0,0,0,.06);display:grid;gap:24px}.auth-card__head{display:grid;gap:8px}.auth-card__title{margin:0;font-size:20px;font-weight:var(--font-weight-medium);color:#1f1f1f;line-height:1.3;letter-spacing:-.02em}.auth-card__sub{margin:0;font-size:13px;color:#5f6368;line-height:1.5}.auth-form{display:grid;gap:16px}.auth-field{display:grid;gap:6px}.auth-field label{font-size:12px;font-weight:var(--font-weight-medium);color:#5f6368;line-height:1.4}.auth-field input{width:100%;height:44px;padding:0 12px;border:1px solid #dadce0;border-radius:2px;background:#ffffff;font-size:13px;font-family:inherit;color:#1f1f1f;outline:none;box-sizing:border-box;letter-spacing:-.01em;transition:border-color .1s}.auth-field input::-moz-placeholder{color:#80868b}.auth-field input::placeholder{color:#80868b}.auth-field input:hover{border-color:#c4c7cc}.auth-field input:focus{border-color:#1b2a4a}.auth-submit{width:100%;height:44px;margin-top:4px;border:0;border-radius:2px;background:#1b2a4a;color:#ffffff;font-size:13px;font-weight:var(--font-weight-medium);font-family:inherit;cursor:pointer;letter-spacing:-.01em;transition:background-color .1s,box-shadow .1s}.auth-submit:hover{background:#142038;box-shadow:0 1px 3px rgba(27,42,74,.4)}.auth-submit:active{background:#0f1a2e}.auth-submit:disabled{background:#c4c7cc;cursor:default;box-shadow:none}.auth-message{margin:0;font-size:12px;line-height:1.5;color:#d93025;text-align:center}.auth-message:empty{display:none}.auth-guide{font-size:12px;color:#80868b;line-height:1.5;text-align:center;margin:0}.checklist{background:var(--bg-stripe);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.checklist-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--text-sub);text-transform:uppercase;letter-spacing:.05em;font-weight:var(--font-weight-medium);margin-bottom:10px}.checklist-progress{font-variant-numeric:tabular-nums;color:var(--text-main)}.checklist-progress.complete{color:var(--green-text)}.checklist-item{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.checklist-item:hover{color:var(--text-main)}.checklist-item.checked{color:var(--text-sub);text-decoration:line-through;text-decoration-color:var(--text-weak)}.pipeline{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:8px 0}.pipeline-step{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:var(--font-weight-medium);background:var(--bg-sunken);color:var(--text-weak);border:1px solid var(--border);white-space:nowrap;transition:all .15s}.pipeline-step.past{background:var(--green-bg);color:var(--green-text);border-color:var(--green-border)}.pipeline-step.past:before{content:"✓";font-weight:var(--font-weight-medium);margin-right:2px;opacity:.7}.pipeline-step.current{background:var(--brand);color:var(--text-inverse);border-color:var(--brand);font-weight:var(--font-weight-medium);box-shadow:0 0 0 3px var(--brand-bg)}.pipeline-step.future{color:var(--text-weak)}.pipeline-step.future,.pipeline-step.skip{background:var(--bg-card);border-style:dashed}.pipeline-step.skip{color:var(--text-muted);opacity:.5}.pipeline-arrow{color:var(--text-weak);font-size:11px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pipeline-branch{display:inline-flex;align-items:center;gap:4px;margin-left:6px;padding-left:12px;border-left:2px dashed var(--border)}.detail-stack{display:flex;flex-direction:column;gap:14px}.detail-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;background:linear-gradient(135deg,var(--brand-bg) 0,var(--bg-card) 100%);border:1px solid var(--border);border-radius:var(--radius-md)}.detail-hero-main{flex:1}.detail-hero-name{font-size:20px;font-weight:var(--font-weight-medium);letter-spacing:-.02em;color:var(--text-main);line-height:1.2}.detail-hero-meta{font-size:12px;color:var(--text-sub);margin-top:6px;display:flex;align-items:center;gap:8px}.detail-hero-meta .plate{background:var(--bg-card);border:1px solid var(--border);padding:1px 8px;border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);color:var(--text-main)}.detail-hero-badges{display:flex;gap:6px;flex-wrap:wrap}.detail-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.detail-section-header{display:flex;align-items:center;gap:8px;padding:8px 12px;min-height:38px;border-bottom:1px solid var(--border);background:var(--bg-card);font-size:12px;font-weight:var(--font-weight-medium);color:var(--text-main)}.detail-section-header .icon{color:var(--text-weak);display:flex}.detail-section-header>.title{flex:1}.input.inline-edit{width:100%;height:22px;padding:0 6px;font-size:11px;background:transparent;border:1px solid transparent;border-radius:0}.input.inline-edit:hover{background:var(--bg-card);border-color:var(--border-soft)}.input.inline-edit:focus{background:var(--bg-card);border-color:var(--brand);outline:none}.detail-section-body{padding:10px 12px}.detail-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-field{display:grid;grid-template-columns:80px 1fr;gap:12px;padding:6px 0;font-size:12px;align-items:center}.detail-field:not(:last-child){border-bottom:1px solid var(--border-soft)}.detail-field .label{color:var(--text-weak);font-size:11px}.detail-field .value{color:var(--text-main);font-weight:var(--font-weight-medium)}.detail-field .value.mono{font-variant-numeric:tabular-nums;letter-spacing:-.01em}.detail-field .value.muted{color:var(--text-weak);font-weight:400}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;color:var(--text-weak);gap:6px;height:100%;font-size:12px}.text-xs{font-size:11px;line-height:1.4}.dropdown-menu,.popover{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:180px;padding:4px;display:flex;flex-direction:column;z-index:var(--z-dropdown);animation:fadeIn .08s ease,slideDown .08s ease}@keyframes slideDown{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}.dropdown-item{display:flex;align-items:center;gap:8px;height:28px;padding:0 8px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text-main);font-size:12px;white-space:nowrap;font-family:inherit;border:none;background:transparent;text-align:left;width:100%}.dropdown-item>svg{width:13px;height:13px;flex-shrink:0;color:var(--text-sub)}.dropdown-item:hover{background:var(--bg-sunken)}.dropdown-item.danger{color:var(--red-text)}.dropdown-item.danger:hover{background:var(--red-bg)}.dropdown-item .shortcut{margin-left:auto;color:var(--text-weak);font-size:10px;font-family:var(--font-mono)}.dropdown-divider{height:1px;background:var(--border-soft);margin:4px 0}.dropdown-label{padding:4px 8px;font-size:10px;color:var(--text-weak);text-transform:uppercase;letter-spacing:.05em}.tooltip{background:var(--text-main);color:var(--text-inverse);font-size:11px;padding:4px 8px;border-radius:var(--radius-sm);z-index:var(--z-toast);animation:fadeIn .1s ease;max-width:220px}.toast{background:var(--bg-card);border:1px solid var(--border);border-left:3px solid var(--brand);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:10px 12px;font-size:12px;min-width:240px;display:flex;align-items:center;gap:8px;animation:fadeIn .12s ease,slideDown .12s ease}.toast.success{border-left-color:var(--green-text)}.toast.warning{border-left-color:var(--orange-text)}.toast.error{border-left-color:var(--red-text)}.skeleton{background:linear-gradient(90deg,var(--bg-sunken) 25%,var(--bg-stripe) 50%,var(--bg-sunken) 75%);background-size:200% 100%;animation:skeletonPulse 1.4s infinite;border-radius:var(--radius-sm)}@keyframes skeletonPulse{0%{background-position:200% 0}to{background-position:-200% 0}}kbd{display:inline-flex;align-items:center;height:18px;padding:0 5px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:10px;color:var(--text-sub)}.penalty-shell{display:grid;grid-template-rows:var(--topbar-h) 1fr auto;height:100vh;overflow:hidden}.penalty-body{overflow:auto;padding:10px;background:var(--bg-page)}.penalty-table-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:auto}.stat-item{font-size:12px;color:var(--text-sub);white-space:nowrap}.stat-item.alert{color:var(--orange-text)}.stat-item strong{color:var(--text-main);font-weight:var(--font-weight-medium)}.stat-divider{width:1px;height:14px;background:var(--border)}.chip-group{display:inline-flex;gap:4px}.text-red{color:var(--red-text)}.text-medium{font-weight:var(--font-weight-medium)}.text-muted{color:var(--text-muted)}.dim{color:var(--text-sub)}.num{text-align:right}.date,.num{font-variant-numeric:tabular-nums}.spin{animation:spin 1s linear infinite}.table td.sticky-col,.table td.sticky-col-2,.table th.sticky-col,.table th.sticky-col-2{position:sticky;z-index:11;background:var(--bg-card)}.table th.sticky-col,.table th.sticky-col-2{background:var(--bg-card)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-row{padding:32px 0;text-align:center;color:var(--text-weak)}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mx-auto{margin-left:auto;margin-right:auto}.text-weak{color:var(--text-weak)}.hidden{display:none}.space-y-3>*+*{margin-top:12px}.ml-auto{margin-left:auto}.border{border:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.rounded{border-radius:var(--radius)}.px-3{padding-left:12px;padding-right:12px}.py-1{padding-top:4px;padding-bottom:4px}.py-2{padding-top:8px;padding-bottom:8px}.font-medium{font-weight:var(--font-weight-medium)}.text-sub{color:var(--text-sub)}.flex-1{flex:1}.gap-2{gap:8px}.gap-3{gap:12px}