:root{font-family:system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;color:#172c43;background:#f3f6fa;font-synthesis:none;--blue:#155acb;--line:#dce4ee}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--blue)}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.5px;font-size:34px;line-height:1.35}h2{font-size:21px;letter-spacing:-.6px}p{line-height:1.75}small,.muted{color:#62748a}.brand{font-size:18px;font-weight:800;letter-spacing:1px}.brand em{font-style:normal;color:#70b8ff}.tag{font-size:11px;letter-spacing:2px;font-weight:700;color:#73859b}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.intro{background:#102b4c;color:white;padding:64px 10%;display:flex;flex-direction:column;justify-content:space-between;min-height:700px;background-image:radial-gradient(ellipse at 0% 100%,#1d5384 0%,transparent 60%)}.intro h1{font-size:48px;max-width:500px}.intro p{color:#b9cde3;max-width:430px}.intro ul{padding:0;list-style:none;display:grid;gap:18px;color:#c7d8ea}.intro li:before{content:'↗';color:#70b8ff;margin-right:14px}.intro footer{font-size:12px;color:#a1bad4}.auth-panel{padding:48px 10%;align-self:center;max-width:700px;width:100%;margin:auto}.tabs{display:flex;border-bottom:1px solid var(--line);margin:24px 0}.tabs button{border:0;background:transparent;padding:14px 22px;color:#62748a}.tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue);font-weight:700}.form{display:grid;gap:17px}.form label{display:grid;gap:7px;font-size:13px;font-weight:650}.form input,.form select,.form textarea,.search{padding:12px;border:1px solid #cbd6e3;border-radius:7px;background:#fff;min-width:0;width:100%;color:#172c43}.form input:focus,.form select:focus{outline:2px solid #6fa7ed;outline-offset:1px}.form input:disabled{background:#f2f5f8}.form small{font-weight:400}.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}.primary,.secondary,.danger{border:0;border-radius:7px;padding:12px 18px;font-weight:650}.primary{background:var(--blue);color:white}.secondary{background:#eaf0f7;color:#254465}.danger{background:#fff0ef;color:#b23b33}.error{color:#af3028;background:#fff0ef;padding:12px;border-radius:6px;font-size:13px}.error:empty{display:none}.note{padding:14px 17px;background:#edf4ff;border:1px solid #d3e4fc;border-radius:8px;font-size:13px;color:#385b86;line-height:1.7}.top{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;background:white}.top .brand{color:#163b66}.top .brand em{color:var(--blue)}.top-right{display:flex;align-items:center;gap:20px;font-size:13px}.layout{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{padding:28px 16px;background:#fff;border-right:1px solid var(--line)}.sidebar .tag{padding:0 14px}.nav{display:grid;gap:7px;margin:18px 0 30px}.nav button{border:0;background:transparent;text-align:left;padding:13px 15px;color:#50647c;border-radius:7px;font-size:14px}.nav button.active{color:var(--blue);background:#edf4ff;font-weight:700}.nav button:disabled{opacity:.6}.content{padding:38px;max-width:1400px;width:100%;margin:0 auto}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}.heading p{margin-bottom:0;color:#657890;font-size:14px}.heading h1{margin-bottom:9px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:25px;margin-bottom:22px}.hero{background:#153d69;color:white;border:0;padding:32px}.hero p{color:#c1d5eb}.hero .badge{background:#285784;color:white}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.service{min-height:170px;margin:0;display:flex;flex-direction:column;align-items:flex-start}.service h3{font-size:17px;margin:16px 0 8px}.service p{font-size:13px;color:#6b7e93;margin:0 0 14px}.service button{margin-top:auto}.badge{display:inline-block;font-size:11px;font-weight:650;background:#edf1f7;color:#526982;padding:5px 9px;border-radius:5px;white-space:nowrap}.badge.active{color:#137153;background:#e7f5ed}.badge.pending{color:#966009;background:#fff3d9}.badge.suspended,.badge.rejected,.badge.deleted{color:#a93e36;background:#fff0ef}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat{margin:0}.stat strong{font-size:30px;display:block;margin-top:9px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th{text-align:left;background:#f5f7fa;color:#6a7d92;font-size:12px}td,th{padding:14px 12px;border-bottom:1px solid #e7edf4}td small{display:block;margin-top:4px}td button{padding:7px 12px}.toolbar{display:flex;gap:12px;margin-bottom:18px}.search{max-width:420px}.empty{text-align:center;padding:45px;color:#70849b}.checks{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checks label{display:flex;align-items:center;font-weight:400;gap:8px}.checks input{width:auto}.modal{position:fixed;inset:0;background:#10233999;display:grid;place-items:center;padding:20px;z-index:5}.dialog{background:#fff;border-radius:14px;padding:28px;max-width:620px;width:100%;max-height:92vh;overflow:auto}.dialog-head{display:flex;justify-content:space-between;align-items:start}.dialog-head button{border:0;background:#f0f3f8;border-radius:5px;padding:5px 10px}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:10px}.loading{padding:50px}.wait{max-width:650px;margin:60px auto;text-align:center;padding:45px}.wait-icon{font-size:38px;margin-bottom:20px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#17314d;color:white;padding:14px 22px;border-radius:9px;z-index:10;max-width:90%;font-size:14px}#toast:empty{display:none}.footnote{margin-top:25px;font-size:12px;color:#73879e}.company-info{display:flex;gap:25px;flex-wrap:wrap;font-size:14px}.company-info span{display:grid;gap:5px}.company-info small{font-size:11px} @media(max-width:1000px){.intro{padding:45px 8%}.intro h1{font-size:38px}.grid{grid-template-columns:repeat(2,1fr)}.content{padding:26px}.layout{grid-template-columns:195px minmax(0,1fr)}}@media(max-width:700px){.auth{grid-template-columns:1fr}.intro{min-height:auto;padding:28px}.intro h1{font-size:29px;margin-top:32px}.intro ul,.intro footer{display:none}.intro p{margin:0}.auth-panel{padding:30px 24px}.top{padding:0 18px;height:66px}.top-right>span{display:none}.layout{display:block}.sidebar{padding:10px 12px;border-right:0;border-bottom:1px solid var(--line)}.sidebar>.tag{display:none}.nav{display:flex;overflow:auto;margin:0;gap:4px}.nav button{white-space:nowrap;padding:12px}.content{padding:24px 16px}.grid,.cols{grid-template-columns:1fr}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:25px}h1{font-size:27px}.heading{align-items:start}.hero{padding:24px}.checks{grid-template-columns:1fr}.dialog{padding:22px}.wait{margin:20px auto;padding:30px 20px}}
.trade-picker{margin:20px 0}.trade-picker>label{font-size:13px;font-weight:650}.trade-search{display:flex;gap:8px;margin:8px 0 14px}.trade-search input,.trade-search select{min-width:0;padding:10px;border:1px solid #cbd6e3;border-radius:7px;background:white}.trade-search input{flex:1;width:100px}.trade-search button{white-space:nowrap}.trade-list{max-height:290px;overflow:auto;margin-bottom:12px}#selected-trade{margin-top:14px}#trade-results>p{font-size:13px}@media(max-width:700px){.trade-search{flex-wrap:wrap}.trade-search select{width:100%}.trade-list td,.trade-list th{padding:10px 6px}}

/* Original EOJIN homepage logo, unchanged aspect ratio and colors. */
.brand-logo{display:flex;align-items:center;flex-shrink:0}
.brand-logo img{display:block;width:104px;height:auto;max-width:100%;object-fit:contain}
.intro .brand-logo{width:196px;padding:16px 18px;background:transparent}
.intro .brand-logo img{width:160px}
.top .brand-logo img{width:104px}
@media(max-width:700px){.intro .brand-logo{width:154px;padding:12px 14px}.intro .brand-logo img{width:126px}.top .brand-logo img{width:88px}}
/* Customer inventory and shipment services */
.filters{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin-bottom:18px}.filters label{display:grid;gap:7px;font-size:13px;font-weight:600;flex:1;min-width:130px}.filters input,.filters select{width:100%;min-height:42px}.stock-status{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;color:#475569;font-size:14px}.availability{display:inline-flex;border-radius:50%;width:34px;height:34px;align-items:center;justify-content:center;font-size:20px;font-weight:700}.availability.yes{color:#047857;background:#d1fae5}.availability.no{color:#64748b;background:#eef2f6}.pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:20px}.shipment-table{min-width:860px}.result-count{font-size:13px;color:#64748b}.statement-tools{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:24px}.statement-scroll{overflow:auto;padding:12px 0}.statement-sheet{box-sizing:border-box;width:190mm;min-height:272mm;padding:7mm;background:#fff;color:#000;margin:0 auto 20px;font-family:Arial,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;border:1px solid #d8dfe8}.statement-sheet h1{font-size:25px;text-align:center;margin:5mm 0 7mm}.statement-meta{display:flex;flex-wrap:wrap;gap:10px 24px;font-size:12px;margin-bottom:12px}.statement-meta span:last-child{margin-left:auto}.parties{display:flex;margin-bottom:6px}.statement-sheet table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:11px}.statement-sheet td,.statement-sheet th{border:1px solid #111;padding:4px;white-space:normal;overflow-wrap:anywhere;color:#000;background:#fff;text-align:center}.statement-sheet .party{width:50%;font-size:9px}.party th{width:13%}.party td{width:28%}.party .party-label{width:7%;writing-mode:vertical-rl;letter-spacing:4px}.statement-sheet .statement-lines tbody tr{height:8mm}.statement-lines .seq{width:5%}.statement-lines .item{width:23%}.statement-lines .spec{width:12%}.statement-lines .quantity{width:7%}.statement-lines .unit{width:5%}.statement-lines .price{width:9%}.statement-lines .amount{width:13%}.statement-lines .remark{width:26%}.statement-lines td:nth-child(2),.statement-lines td:last-child{text-align:left}.statement-sheet .numeric{text-align:right;font-variant-numeric:tabular-nums}.statement-totals{margin-top:6px}.statement-totals th{width:16%}.statement-totals td{width:34%}.statement-sheet .total{font-weight:700;font-size:15px}.statement-sheet .signature{text-align:right}.statement-sheet footer{font-size:12px;text-align:center;border:1px solid #111;border-top:0;padding:7px}.continued{font-size:12px;text-align:right}
@media(max-width:700px){.filters label{min-width:calc(50% - 14px)}.statement-tools{align-items:start;flex-direction:column}.stock-status{font-size:12px}}
@page{size:A4 portrait;margin:14mm 10mm}
@media print{body.printing-statement{background:#fff!important}body.printing-statement .top,body.printing-statement .sidebar,body.printing-statement .content>*:not(#statement-preview),body.printing-statement .statement-tools,body.printing-statement #toast{display:none!important}body.printing-statement .layout,body.printing-statement .content,body.printing-statement .statement-scroll{display:block!important;padding:0!important;margin:0!important;overflow:visible!important;max-width:none!important}body.printing-statement .statement-sheet{width:190mm;min-height:0;border:0;margin:0;padding:0;break-after:page;break-inside:avoid}body.printing-statement .statement-sheet:last-child{break-after:auto}.statement-sheet{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
.filters input,.filters select{padding:10px 12px;border:1px solid #cbd6e3;border-radius:7px;background:white;color:#172c43;min-width:0}
@media print{:root{background:#fff!important}.statement-sheet h1{letter-spacing:3px}}
.shipment-number{border:0;background:transparent;color:#155acb;font-weight:700;text-decoration:underline;padding:8px 0}.shipment-detail{padding:18px;background:#f4f8fe;max-width:1050px}.shipment-detail h3{font-size:15px}.shipment-detail th,.shipment-detail td{padding:10px 9px;font-size:12px}.statement-options{margin-top:18px}.statement-tools>div{flex:1}.statement-options label{max-width:210px}.google-login{display:block;text-align:center;text-decoration:none;margin-top:20px;border:1px solid #cbd6e3;background:white;color:#172c43;padding:12px;border-radius:7px;font-weight:600}

.mill-items{padding:16px 0}.mill-file{padding:12px 0;border-bottom:1px solid #ddd}.mill-view-pages canvas,.mill-print-pages canvas{display:block;max-width:100%;height:auto;margin:16px auto}details[data-number]{padding:14px;border-bottom:1px solid #ddd}details[data-number] summary{cursor:pointer;font-weight:600}
@media print{.mill-view-pages{display:none!important}body.printing-millsheet>#app,body.printing-millsheet>#toast{display:none!important}body.printing-millsheet *{visibility:hidden!important}body.printing-millsheet .mill-print-pages,body.printing-millsheet .mill-print-pages *{visibility:visible!important}body.printing-millsheet .mill-print-pages{position:absolute;left:0;top:0;width:100%}body.printing-millsheet .mill-print-pages canvas{width:100%;height:auto;break-after:page;margin:0}}

.shipment-detail tfoot{font-weight:700;background:#eef4fb;border-top:2px solid #b6c8db}.statement-issued{display:flex;justify-content:space-between;gap:12px;font-size:10px;margin-top:8px;color:#555}.statement-issued span:last-child{text-align:right}

#mill-result,details[data-number] summary{scroll-margin-top:20px}.mill-back{margin-bottom:18px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.mill-wait{display:flex;align-items:center;gap:12px;padding:18px;color:#155acb;font-weight:650}.mill-spinner{width:22px;height:22px;border:3px solid #d5e3f8;border-top-color:#155acb;border-radius:50%;animation:mill-spin .9s linear infinite}.mill-dots{display:inline-block;animation:mill-pulse 1.1s ease-in-out infinite}.mill-empty{padding:18px;background:#edf4ff;border-radius:8px;color:#254465}@keyframes mill-spin{to{transform:rotate(360deg)}}@keyframes mill-pulse{50%{opacity:.25}}@media(prefers-reduced-motion:reduce){.mill-spinner,.mill-dots{animation:none}}

/* Stable table sizing in Safari/iOS; Korean side labels never use writing-mode. */
.content,#statement-preview,#statement-result{min-width:0;max-width:100%}.statement-scroll{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.statement-sheet{-webkit-text-size-adjust:100%;text-size-adjust:100%;flex-shrink:0}.statement-sheet .parties{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.statement-sheet .party{display:table;width:100%;min-width:0;table-layout:fixed}.statement-sheet .party th,.statement-sheet .party td{width:auto;min-width:0;word-break:normal;overflow-wrap:anywhere}.party col.party-side{width:7%}.party col.party-key{width:17%}.party col.party-value{width:32%}.party col.party-key2{width:15%}.party col.party-value2{width:29%}.statement-sheet .party .party-label{width:auto;writing-mode:horizontal-tb;-webkit-writing-mode:horizontal-tb;letter-spacing:0;padding:3px;vertical-align:middle}.party-label>span>span{display:block;line-height:1.65}.shipment-number,details[data-number] summary{scroll-margin-top:20px}[aria-busy="true"]{cursor:progress}.shipment-detail{min-width:0}.shipment-detail .table-wrap{max-width:100%}

details[data-number] summary[aria-busy="true"]::after{content:" · 조회 중…";font-size:12px;color:#155acb}

/* Numeric data stays aligned in all portal and printed tables. */
table td.numeric,table th.numeric{text-align:right;font-variant-numeric:tabular-nums}
.statement-sheet .parties{display:block}.statement-sheet .party-unified{width:100%}
.party-unified col.party-side{width:3.5%}.party-unified col.party-key{width:8.5%}.party-unified col.party-value{width:16%}.party-unified col.party-key2{width:7.5%}.party-unified col.party-value2{width:14.5%}

/* A4 preview: 14 mm vertical / 10 mm horizontal inset, with print rounding clearance. */
.statement-sheet{display:grid;grid-template-rows:auto auto auto minmax(min-content,1fr) auto auto auto;width:210mm;height:295mm;min-height:295mm;padding:14mm 10mm;align-content:stretch}
.statement-sheet .statement-lines{height:100%}
.statement-sheet h1{margin:0 0 6mm}
.statement-sheet .continued{margin:3mm 0}
.statement-sheet footer{border:1px solid #111}
.statement-sheet .statement-issued{align-self:end}
@media print{body.printing-statement .statement-sheet{display:grid;width:190mm;height:267mm;min-height:267mm;padding:0;margin:0;border:0}}

@media print{
 html,body.printing-statement{margin:0!important;padding:0!important;min-height:0!important;height:auto!important}
 body.printing-statement #app,body.printing-statement .layout,body.printing-statement .content,body.printing-statement #statement-preview,body.printing-statement #statement-result,body.printing-statement .statement-scroll,body.printing-statement #print-document{min-height:0!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}
 body.printing-statement .statement-sheet{break-after:auto;page-break-after:auto;break-inside:avoid;page-break-inside:avoid}
 body.printing-statement .statement-sheet+.statement-sheet{break-before:page;page-break-before:always}
}

/* Customer order requests */
.order-header{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}.order-header label,.order-picker label,.order-review label{display:grid;gap:7px;font-weight:600}.order-header input[readonly]{background:#f3f6fb;color:#42546d}.order-entry{min-width:1450px}.order-entry td{vertical-align:top}.order-entry input[type=number]{width:125px;text-align:right}.order-entry input[type=date]{width:145px}.order-entry select{min-width:100px}.order-entry label{display:grid;gap:6px;margin-top:8px}.order-selected{background:#f0f6ff}.order-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px;align-items:center}.order-actions span{margin-left:auto}.order-picker{width:min(1000px,calc(100vw - 32px));max-height:90vh;overflow:auto;border:1px solid #d6e1f0;border-radius:16px;padding:24px;color:#19324f}.order-picker::backdrop{background:#11253b88}.order-picker-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.order-request{border-bottom:1px solid #dce5ef;padding:20px 0}.order-request summary{cursor:pointer;line-height:1.8}.order-review{margin-top:16px}.order-review textarea{min-height:70px}.order-request .table-wrap{margin:16px 0}@media(max-width:650px){.order-picker-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.order-picker{padding:16px}.order-actions span{width:100%;margin-left:0}.order-header{grid-template-columns:1fr 1fr}}
.order-header label,.order-picker label{min-width:0}.order-header input,.order-entry input:not([type=radio]),.order-entry select,.order-picker select,.order-review textarea{min-width:0;max-width:100%;padding:10px 12px;border:1px solid #cbd6e3;border-radius:7px;background:#fff;color:#172c43}.order-header input,.order-picker select,.order-review textarea{width:100%}.order-header input[readonly]{background:#f3f6fb}#order-form{min-width:0;max-width:100%}.order-header{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}@media(max-width:650px){.order-header{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Keep portal navigation available while the content scrolls. */
@media screen{html{scroll-padding-top:90px}.top{position:sticky;top:0;z-index:3}.sidebar{position:sticky;top:76px;align-self:start;height:calc(100dvh - 76px);overflow-y:auto}.content{min-width:0}}
@media screen and (max-width:700px){html{scroll-padding-top:140px}.sidebar{top:66px;height:auto;z-index:3;overflow:visible}.nav{overscroll-behavior-x:contain}}

.order-organization{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.order-organization label{min-width:150px;flex:1}.order-organization select{padding:10px;border:1px solid var(--line);border-radius:7px;max-width:100%;background:white}

.order-delete{margin:20px 0;padding:18px;border:1px solid #ecc9c6;border-radius:8px}.order-delete label{display:grid;gap:7px;margin:12px 0}.order-delete input,.order-delete textarea{max-width:100%;padding:10px;border:1px solid var(--line);border-radius:6px}.order-delete textarea{min-height:70px}

/* Align order input rows, including cutting controls, on one center line. */
.order-entry{min-width:1150px}.order-entry th,.order-entry td{vertical-align:middle}.order-entry td:not(:nth-child(3)){text-align:center}.order-entry td:nth-child(8){text-align:right}.order-entry button,.order-entry input:not([type=radio]),.order-entry select{height:44px;box-sizing:border-box}.order-entry input[type=radio]{margin:0 7px 0 0;vertical-align:middle}.order-cut{display:flex;gap:8px;align-items:center}.order-entry .order-cut label{display:flex;align-items:center;gap:6px;margin:0;white-space:nowrap}.order-entry .order-cut input{width:100px}.order-detail-body{display:flow-root;padding-top:16px}.order-entry-panel{padding:0;border:0}.order-entry-panel>summary{font-size:21px;font-weight:700}.order-request>summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
