:root{--color-canvas-white:#fff;--color-midnight-charcoal:#292d34;--color-deep-space-charcoal:#090c1d;--color-dark-onyx:#202023;--color-ash-gray:#e8e8e8;--color-smoke-gray:#6b7280;--color-input-border:#d5d9e0;--color-row-hover:#f7f8fa;--color-hint-of-sky:#e9ebf0;--color-deep-violet:#7b68ee;--color-electric-blue:#0091ff;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-heading:var(--font-sans);--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--radius-cards:12px;--radius-buttons:9px;--radius-pills:54px;--shadow-subtle:#0000001a 0px 1px 3px 0px, #0000001a 0px 1px 2px -1px;--page-max-width:1280px;--section-gap:24px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);color:var(--color-midnight-charcoal);background:var(--color-canvas-white);-webkit-font-smoothing:antialiased;line-height:1.5}h1,h2,h3{font-family:var(--font-heading);color:var(--color-deep-space-charcoal);margin:0}.card{background:var(--color-canvas-white);border:1px solid var(--color-ash-gray);border-radius:var(--radius-cards);box-shadow:var(--shadow-subtle);padding:var(--spacing-20)}.card-title{margin-bottom:var(--spacing-12);font-size:15px;font-weight:650}.page>*+.card{margin-top:var(--spacing-16)}.card>.muted:only-child{padding:var(--spacing-32) 0;text-align:center;margin:0}.btn{min-height:34px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:550;line-height:20px;text-decoration:none;transition:background-color .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-dark-onyx);color:var(--color-canvas-white)}.btn-primary:hover:not(:disabled){background:#3a3b42}.btn-ghost{background:var(--color-canvas-white);color:var(--color-midnight-charcoal);border-color:var(--color-input-border)}.btn-ghost:hover:not(:disabled){background:var(--color-row-hover);border-color:var(--color-smoke-gray)}.badge{color:var(--color-midnight-charcoal);border-radius:var(--radius-pills);padding:2px var(--spacing-8);white-space:nowrap;background:#00000014;align-items:center;font-size:12px;font-weight:600;line-height:18px;display:inline-flex}p.badge{white-space:normal}.badge-draft{background:var(--color-hint-of-sky);color:var(--color-smoke-gray)}.badge-confirmed{color:var(--color-electric-blue);background:#0091ff1f}.badge-paid{color:#1f9d55;background:#1f9d5524}.badge-rejected{color:#e03131;background:#e031311f}.btn-disabled{opacity:.5;pointer-events:none}.badge-warn{color:#b26a00;background:#f59f0029}.muted{color:var(--color-smoke-gray)}.stat-row{padding:var(--spacing-4) 0;justify-content:space-between;align-items:center;display:flex}.stat-label{color:var(--color-smoke-gray);font-size:13px}.stat-value{font-weight:500}.card-actions{gap:var(--spacing-8);margin-top:var(--spacing-16);display:flex}.mini-list{margin-top:var(--spacing-12);padding-top:var(--spacing-8);border-top:1px solid var(--color-ash-gray)}.stat-ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:60%;overflow:hidden}:root{--shell-bg:#f5f6f8;--sidebar-bg:#11131b;--sidebar-line:#ffffff14;--sidebar-text:#c3c7d1;--sidebar-muted:#7c8293;--sidebar-hover:#ffffff0f;--sidebar-active:#ffffff1a;--accent:var(--color-electric-blue);--sidebar-width:232px;--topbar-height:52px}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);color:var(--sidebar-text);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{height:var(--topbar-height);padding:0 var(--spacing-16);border-bottom:1px solid var(--sidebar-line);flex-shrink:0;align-items:center;gap:10px;display:flex}.brand-mark{object-fit:contain;flex:none;width:26px;height:26px}.brand-name{color:#fff;letter-spacing:.02em;font-size:15px;font-weight:750}.brand-sub{color:var(--sidebar-muted);font-weight:600}.sidebar-nav{min-height:0;padding:var(--spacing-12) var(--spacing-8);scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.nav-link{min-height:32px;padding:0 var(--spacing-12) 0 38px;color:var(--sidebar-text);border-radius:6px;align-items:center;gap:10px;font-size:13.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.sidebar-nav>.nav-link{padding-left:var(--spacing-12)}.nav-link:hover{background:var(--sidebar-hover);color:#fff}.nav-link-active,.nav-link-active:hover{background:var(--sidebar-active);color:#fff;font-weight:650}.nav-link-active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:7px;bottom:7px;left:0}.nav-link-disabled,.nav-link-disabled:hover{color:var(--sidebar-muted);cursor:not-allowed;background:0 0}.nav-soon{color:var(--sidebar-muted);border:1px solid var(--sidebar-line);border-radius:var(--radius-pills);padding:0 var(--spacing-8);margin-left:auto;font-size:10.5px}.nav-icon{opacity:.85;flex-shrink:0}.nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nav-group{margin-top:var(--spacing-8);flex-direction:column;gap:2px;display:flex}.nav-group-header{width:100%;min-height:32px;padding:0 var(--spacing-12);color:var(--sidebar-muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;font-size:13px;font-weight:650;display:flex}.nav-group-header:hover{color:#fff;background:var(--sidebar-hover)}.nav-group-current>.nav-group-header{color:#fff}.nav-group-chevron{opacity:.6;flex-shrink:0;transition:transform .15s}.nav-group-header[aria-expanded=false] .nav-group-chevron{transform:rotate(-90deg)}.nav-group-items{flex-direction:column;gap:2px;display:flex}.nav-group-items[hidden]{display:none}.sidebar-user{padding:var(--spacing-12) var(--spacing-16);border-top:1px solid var(--sidebar-line);flex-shrink:0;align-items:center;gap:10px;display:flex}.user-avatar{color:#fff;background:#ffffff1f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:inline-flex}.user-meta{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.user-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.user-role{color:var(--sidebar-muted);font-size:11.5px}.user-logout{color:var(--sidebar-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:6px;display:inline-flex}.user-logout:hover{background:var(--sidebar-hover);color:#fff}.app-main{background:var(--shell-bg);flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.topbar{z-index:1;-webkit-backdrop-filter:saturate(1.4)blur(6px);backdrop-filter:saturate(1.4)blur(6px);border-bottom:1px solid var(--color-ash-gray);background:#ffffffeb;position:sticky;top:0}.topbar-inner{height:var(--topbar-height);padding:0 var(--spacing-32);align-items:center;gap:var(--spacing-12);display:flex}.topbar-crumb{align-items:center;gap:var(--spacing-8);white-space:nowrap;flex:1;min-width:0;font-size:14px;display:flex;overflow:hidden}.crumb-group{color:var(--color-smoke-gray)}.crumb-sep{color:var(--color-ash-gray)}.crumb-current{color:var(--color-deep-space-charcoal);font-weight:650}.topbar-date{color:var(--color-smoke-gray);white-space:nowrap;font-size:13px}.page{width:100%;max-width:1320px;padding:28px var(--spacing-32) 48px;margin:0 auto}.page-title{letter-spacing:-.01em;margin-bottom:var(--spacing-20);font-size:22px;font-weight:750}.card-grid{gap:var(--section-gap);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.page-head{align-items:center;gap:var(--spacing-8);margin-bottom:var(--spacing-20);flex-wrap:wrap;display:flex}.page-head>:first-child{margin-right:auto}.page-head .page-title{margin-bottom:0}.app-main a:not(.btn){color:var(--accent);text-decoration:none}.app-main a:hover{text-decoration:underline}.app-main .data-table a:not(.btn){color:var(--color-deep-space-charcoal);font-weight:600}.app-main a.btn:hover{text-decoration:none}.field{margin-bottom:var(--spacing-16);color:var(--color-midnight-charcoal);flex-direction:column;gap:6px;font-size:13px;font-weight:550;display:flex}.field input,.field select,.field textarea{font:inherit;border:1px solid var(--color-input-border);background:var(--color-canvas-white);border-radius:8px;padding:6px 10px;font-size:14px;font-weight:400;line-height:20px}.field-check{align-items:center;gap:var(--spacing-8);margin-bottom:var(--spacing-16);font-size:14px;display:flex}.field-check input{width:18px;height:18px}.form-actions{gap:var(--spacing-8);display:flex}.product-form{column-gap:var(--spacing-16);margin-bottom:var(--spacing-24);grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));align-items:start;display:grid}:is(.product-form>:not(.field),.product-form>.field:has(textarea)){grid-column:1/-1}.product-form>.btn{justify-self:start}.product-form>details{margin-bottom:var(--spacing-12)}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13.5px}.data-table th,.data-table td{text-align:left;padding:9px var(--spacing-12);border-bottom:1px solid var(--color-ash-gray)}.data-table th{color:var(--color-smoke-gray);background:#f4f5f7;font-size:12.5px;font-weight:600}.data-table tbody tr:hover td{background:var(--color-row-hover)}.data-table tbody tr:last-child td{border-bottom:0}.data-table td.num{text-align:right;white-space:nowrap}:is(.data-table:has(tbody td.num:first-child) thead th:first-child,.data-table:has(tbody td.num:nth-child(2)) thead th:nth-child(2),.data-table:has(tbody td.num:nth-child(3)) thead th:nth-child(3),.data-table:has(tbody td.num:nth-child(4)) thead th:nth-child(4),.data-table:has(tbody td.num:nth-child(5)) thead th:nth-child(5),.data-table:has(tbody td.num:nth-child(6)) thead th:nth-child(6),.data-table:has(tbody td.num:nth-child(7)) thead th:nth-child(7),.data-table:has(tbody td.num:nth-child(8)) thead th:nth-child(8),.data-table:has(tbody td.num:nth-child(9)) thead th:nth-child(9),.data-table:has(tbody td.num:nth-child(10)) thead th:nth-child(10),.data-table:has(tbody td.num:nth-child(11)) thead th:nth-child(11),.data-table:has(tbody td.num:nth-child(12)) thead th:nth-child(12)){text-align:right}.row-actions{text-align:right;white-space:nowrap}.data-table .btn{min-height:28px;padding:3px 10px;font-size:13px}.row-actions .btn+.btn{margin-left:var(--spacing-8)}.quote-lines-head,.quote-line{gap:var(--spacing-8);grid-template-columns:1.4fr 1.4fr .7fr 1fr 1fr auto;align-items:center;display:grid}.quote-lines-head{color:var(--color-smoke-gray);margin-bottom:var(--spacing-4);font-size:12px}.quote-lines{gap:var(--spacing-12);margin-bottom:var(--spacing-12);flex-direction:column;display:flex}.quote-line-group{gap:var(--spacing-4);flex-direction:column;display:flex}.quote-line-content{font:inherit;width:100%;padding:var(--spacing-8);border:1px solid var(--color-ash-gray);border-radius:var(--radius-buttons);resize:vertical;font-size:14px}.quote-line input,.quote-line select{font:inherit;width:100%;padding:var(--spacing-8);border:1px solid var(--color-ash-gray);border-radius:var(--radius-buttons);font-size:14px}.quote-line-total{text-align:right;color:var(--color-midnight-charcoal);font-size:14px}.contract-lines-head,.contract-line{gap:var(--spacing-8);grid-template-columns:2fr .8fr 1fr 1fr auto;align-items:center;display:grid}.contract-lines-head{color:var(--color-smoke-gray);margin-bottom:var(--spacing-4);font-size:12px}.contract-line{margin-bottom:var(--spacing-8)}.contract-line input{font:inherit;width:100%;padding:var(--spacing-8);border:1px solid var(--color-ash-gray);border-radius:var(--radius-buttons);font-size:14px}.list-filters{gap:var(--spacing-8);margin-bottom:var(--spacing-12);flex-wrap:wrap;align-items:center;display:flex}.list-filters select,.list-filters input{font:inherit;border:1px solid var(--color-input-border);background:var(--color-canvas-white);border-radius:8px;padding:6px 10px;font-size:14px;line-height:20px}.list-filters input{flex:200px}.quote-total{justify-content:flex-end;gap:var(--spacing-16);margin-bottom:var(--spacing-16);font-weight:600;display:flex}.bar{background:var(--color-hint-of-sky);border-radius:var(--radius-pills);height:8px;margin:2px 0;overflow:hidden}.bar-fill{border-radius:var(--radius-pills);height:100%}.bar-revenue{background:var(--color-electric-blue)}.bar-expense{background:var(--color-smoke-gray)}.amount-negative{color:#d64545}.kpi-card{gap:var(--spacing-4);flex-direction:column;display:flex}.kpi-label{color:var(--color-smoke-gray);font-size:13px}.kpi-value{letter-spacing:-.01em;font-feature-settings:"tnum";font-size:24px;font-weight:600}.kpi-sub{color:var(--color-smoke-gray);font-feature-settings:"tnum";font-size:13px}.kpi-hint-receivable{color:#c2410c}.list-row{justify-content:space-between;align-items:baseline;gap:var(--spacing-12);padding:var(--spacing-8) 0;border-bottom:1px solid var(--color-ash-gray);font-size:14px;display:flex}.list-row:last-child{border-bottom:none}.list-amount{font-feature-settings:"tnum";white-space:nowrap}.activity-meta{color:var(--color-smoke-gray);font-size:12px}.kpi-grid{gap:var(--section-gap);margin-bottom:var(--section-gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.dash-grid-2{gap:var(--section-gap);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.attendance-strip{align-items:center;gap:var(--spacing-24);padding:var(--spacing-12) var(--spacing-20);margin-bottom:var(--section-gap);flex-wrap:wrap;display:flex}.attendance-strip .strip-title{font-weight:650}.attendance-strip .strip-item{font-feature-settings:"tnum"}.attendance-strip .strip-actions{gap:var(--spacing-8);margin-left:auto;display:flex}.attendance-strip .strip-error{flex-basis:100%;margin:0}.btn-sm{min-height:28px;padding:3px 10px;font-size:13px}.kpi-badge{margin-left:var(--spacing-8);vertical-align:middle;font-size:11px}.trend-card{margin-bottom:var(--section-gap)}.trend-legend{gap:var(--spacing-16);color:var(--color-smoke-gray);margin-bottom:var(--spacing-12);font-size:13px;display:flex}.legend-dot{width:10px;height:10px;margin-right:var(--spacing-4);vertical-align:middle;border-radius:2px;display:inline-block}.trend-plot{height:160px;position:relative}.trend-gridline{border-top:1px dashed var(--color-ash-gray);position:absolute;left:0;right:0}.trend-gridline-top{top:0}.trend-gridline-mid{top:50%}.trend-cols{align-items:flex-end;gap:var(--spacing-16);display:flex;position:absolute;inset:0}.trend-col{justify-content:center;align-items:flex-end;gap:var(--spacing-4);flex:1;height:100%;display:flex}.vbar{border-radius:3px 3px 0 0;width:16px;transition:height .2s}.vbar-revenue{background:var(--color-electric-blue)}.vbar-expense{background:var(--color-smoke-gray)}.trend-labels{gap:var(--spacing-16);margin-top:var(--spacing-8);display:flex}.trend-label{text-align:center;color:var(--color-smoke-gray);font-feature-settings:"tnum";flex:1;font-size:12px}.login-shell{min-height:100vh;padding:var(--spacing-24);background:var(--color-hint-of-sky);justify-content:center;align-items:center;display:flex}.login-card{width:100%;max-width:360px}.login-card h1{margin-bottom:var(--spacing-24);font-size:22px}.login-field{gap:var(--spacing-4);margin-bottom:var(--spacing-16);flex-direction:column;font-size:14px;display:flex}.login-field input{font:inherit;padding:var(--spacing-8) var(--spacing-12);border:1px solid var(--color-ash-gray);border-radius:var(--radius-buttons);font-size:14px}.login-error{color:#c0392b;margin:0 0 var(--spacing-16);font-size:14px}.login-submit{width:100%}.quote-print-wrap{--qp-ink:#0a0e14;--qp-ink-soft:#3a4452;--qp-ink-faint:#8a94a3;--qp-line:#1a2330;--qp-line-soft:#e2e6ec;--qp-accent:#07111f;--qp-paper-edge:#f4f7fa;background:var(--qp-paper-edge);min-height:100vh;color:var(--qp-ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-family:Pretendard,-apple-system,Apple SD Gothic Neo,Malgun Gothic,맑은 고딕,sans-serif}.print-toolbar{z-index:50;justify-content:flex-end;gap:var(--spacing-8);max-width:210mm;padding:var(--spacing-12) var(--spacing-4);margin:0 auto;display:flex;position:sticky;top:0}.qp-warn{max-width:210mm;margin:0 auto var(--spacing-8);color:#8a5a00;background:#fff4e5;border:1px solid #f0c36d;border-radius:8px;padding:10px 14px;font-size:13px;font-weight:600;line-height:1.5}.quote-print-fitbox{overflow:hidden}.quote-print-fit{transform-origin:0 0}.quote-print{max-width:210mm;min-height:297mm;color:var(--qp-ink);background:#fff;margin:0 auto 40px;padding:12mm 18mm 10mm;font-size:12px;line-height:1.5;box-shadow:0 1px 3px #0a0e1414,0 12px 32px #0a0e140f}.quote-print .head{border-bottom:2.5px solid var(--qp-line);justify-content:space-between;align-items:flex-start;padding-bottom:10px;display:flex}.quote-print .head__title{letter-spacing:.22em;color:var(--qp-ink);margin-left:-.04em;font-size:31px;font-weight:800;line-height:1}.quote-print .head__meta{text-align:right;color:var(--qp-ink-soft);padding-top:4px;font-size:12px;line-height:1.9}.quote-print .head__meta b{color:var(--qp-ink);font-weight:600}.quote-print .parties{grid-template-columns:1fr 1fr;margin-top:13px;display:grid}.quote-print .party{border:1px solid var(--qp-line-soft);padding:11px 15px}.quote-print .party+.party{border-left:none}.quote-print .party__role{letter-spacing:.04em;color:var(--qp-ink-faint);margin-bottom:9px;font-size:11px;font-weight:700}.quote-print .party__name{margin-bottom:3px;font-size:16px;font-weight:700}.quote-print .party__recv{color:var(--qp-ink-soft);margin-bottom:8px;font-size:12.5px}.quote-print .party__rows{color:var(--qp-ink-soft);font-size:10.5px;line-height:1.6}.quote-print .party__rows .lbl{width:60px;color:var(--qp-ink-faint);vertical-align:top;display:inline-block}.quote-print .addr-row{display:flex}.quote-print .addr-row .addr-val{flex:1}.quote-print .terms-bar{border:1px solid var(--qp-line-soft);grid-template-columns:repeat(3,1fr);margin-top:14px;font-size:11.5px;display:grid}.quote-print .terms-bar__cell{border-right:1px solid var(--qp-line-soft);padding:6px 14px}.quote-print .terms-bar__cell:last-child{border-right:none}.quote-print .terms-bar__lbl{color:var(--qp-ink-faint);margin-bottom:3px;font-size:11px}.quote-print .terms-bar__val{color:var(--qp-ink);font-weight:500}.quote-print .amount-line{background:var(--qp-accent);color:#fff;border-radius:4px;justify-content:space-between;align-items:center;margin-top:10px;padding:9px 18px;display:flex}.quote-print .amount-line__lbl{letter-spacing:.04em;opacity:.85;font-size:12px}.quote-print .amount-line__val{letter-spacing:.02em;font-size:16px;font-weight:700}.quote-print .amount-line__sub{opacity:.7;margin-left:8px;font-size:11px;font-weight:400}.quote-print .sec-title{letter-spacing:.01em;border-left:3px solid var(--qp-accent);margin:10px 0 6px;padding-left:10px;font-size:11.5px;font-weight:700}.quote-print table.items{border-collapse:collapse;width:100%;font-size:12px}.quote-print table.items thead th{background:var(--qp-accent);color:#fff;text-align:center;letter-spacing:.02em;padding:6px 12px;font-size:11px;font-weight:600}.quote-print table.items thead th.num{width:40px}.quote-print table.items thead th.pname{width:120px}.quote-print table.items thead th.qty{width:64px}.quote-print table.items thead th.price{width:104px}.quote-print table.items thead th.amt{width:118px}.quote-print table.items tbody td{border-bottom:1px solid var(--qp-line-soft);color:var(--qp-ink-soft);vertical-align:middle;text-align:center;padding:7px 12px}.quote-print table.items tbody td.num{color:var(--qp-ink-faint)}.quote-print table.items tbody td.pname{color:var(--qp-ink);font-weight:600}.quote-print table.items tbody td.content{white-space:pre-line;color:var(--qp-ink-soft);font-size:10px;line-height:1.42}.quote-print table.items tbody td.price,.quote-print table.items tbody td.amt{font-variant-numeric:tabular-nums}.quote-print table.items tbody td.amt{color:var(--qp-ink);font-weight:600}.quote-print .totals{justify-content:flex-end;margin-top:8px;display:flex}.quote-print .totals__box{width:300px}.quote-print .totals__row--grand{background:var(--qp-accent);color:#fff;border-radius:4px;justify-content:space-between;padding:9px 16px;font-size:14px;font-weight:700;display:flex}.quote-print .totals__row--grand .v{font-size:17px}.quote-print .vat-note{text-align:right;color:var(--qp-ink-faint);margin-top:8px;font-size:11px}.quote-print .scope{color:var(--qp-ink-soft);margin-top:3px;font-size:11px;line-height:1.6}.quote-print .scope ol{counter-reset:s;margin:0;padding:0;list-style:none}.quote-print .scope li{counter-increment:s;margin-bottom:1px;padding-left:22px;position:relative}.quote-print .scope li:before{content:counter(s);background:var(--qp-line-soft);width:16px;height:16px;color:var(--qp-ink);border-radius:3px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:absolute;top:1px;left:0}.quote-print .scope__notes{border-top:1px dashed var(--qp-line-soft);color:var(--qp-ink-faint);margin-top:8px;padding-top:8px;font-size:10.5px;line-height:1.65}.quote-print .scope__notes div{text-indent:-12px;padding-left:12px}.quote-print .scope__notes div:before{content:"· "}.quote-print .seal{text-align:center;justify-content:center;margin-top:6px;display:flex}.quote-print .seal__inner{text-align:center;min-width:220px;padding-bottom:40px;position:relative}.quote-print .seal__company{margin-bottom:2px;font-size:15px;font-weight:700}.quote-print .seal__sub{color:var(--qp-ink-faint);font-size:11px}.quote-print .seal__sub:empty{display:none}.quote-print .seal__line{border-top:1px solid var(--qp-ink-soft);width:220px;margin-top:26px}.quote-print .seal__rep{color:var(--qp-ink-soft);margin-top:10px;font-size:12px}.quote-print .seal__rep b{color:var(--qp-ink);font-weight:600}.quote-print .seal__in{display:inline-block;position:relative}.quote-print .seal__stamp{opacity:.85;mix-blend-mode:multiply;pointer-events:none;width:62px;height:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (width<=768px){.quote-print{max-width:none;min-height:0;padding:var(--spacing-20)}.quote-print .head{gap:var(--spacing-8);flex-wrap:wrap}.quote-print .parties{grid-template-columns:1fr}.quote-print .party+.party{border-left:1px solid var(--qp-line-soft);border-top:none}.quote-print .terms-bar{grid-template-columns:1fr}.quote-print .terms-bar__cell{border-right:none;border-bottom:1px solid var(--qp-line-soft)}.quote-print .terms-bar__cell:last-child{border-bottom:none}}@media print{@page{size:A4;margin:0}html,body{background:#fff}.print-toolbar{display:none!important}.quote-print-wrap{background:#fff;min-height:0}.quote-print{box-shadow:none;width:210mm;max-width:none;height:auto;min-height:0;margin:0}.qp-warn{display:none!important}.quote-print table.items thead th,.quote-print .amount-line,.quote-print .totals__row--grand{-webkit-print-color-adjust:exact;print-color-adjust:exact}.quote-print table.items tbody tr,.quote-print .scope,.quote-print .seal{break-inside:avoid}}.hamburger{padding:var(--spacing-4);border-radius:var(--radius-buttons);color:var(--color-midnight-charcoal);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:none}.hamburger:hover{background:var(--color-hint-of-sky)}@media (width<=768px){.app-shell{display:block}.sidebar{z-index:100;height:auto;transition:transform .2s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.sidebar-open{transform:translate(0)}.drawer-overlay{z-index:90;background:#0006;position:fixed;inset:0}.hamburger{display:inline-flex}.topbar-inner{padding:0 var(--spacing-12)}.topbar-date{display:none}.sidebar.sidebar-open{box-shadow:8px 0 24px #00000040}.page{padding:var(--spacing-16)}.page>.page-head>:first-child{flex-basis:100%}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid-2{grid-template-columns:1fr}}@media (width<=480px){.kpi-grid{grid-template-columns:1fr}.trend-cols{gap:var(--spacing-8)}.trend-col{gap:2px}.vbar{width:10px}.trend-labels{gap:var(--spacing-8)}.trend-label{font-size:11px}}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=768px){.table-scroll .data-table th,.table-scroll .data-table td{white-space:nowrap}.quote-lines-head{display:none}.quote-line{grid-template-columns:1fr 1fr}.quote-line>select,.quote-line>input[aria-label=품목명]{grid-column:1/-1}.quote-line>button{justify-self:end}.contract-lines-head{display:none}.contract-line{grid-template-columns:1fr 1fr}.contract-line>input[aria-label=품목명]{grid-column:1/-1}.contract-line>button{justify-self:end}.form-actions,.card-actions{flex-wrap:wrap}}.detail-head-main{align-items:center;gap:var(--spacing-16);display:flex}@media (width<=768px){.stat-row{align-items:flex-start;gap:var(--spacing-4);flex-direction:column}.page-head,.detail-head-main{gap:var(--spacing-8);flex-wrap:wrap}.stat-ellipsis{flex:1;min-width:0;max-width:none}}.stock-line{gap:var(--spacing-8);margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-8);border-bottom:1px solid var(--color-ash-gray);grid-template-columns:minmax(200px,2fr) repeat(auto-fit,minmax(120px,1fr)) 44px;align-items:start;display:grid}.stock-cell{gap:var(--spacing-4);color:var(--color-smoke-gray);flex-direction:column;min-width:0;font-size:12px;display:flex}.stock-cell select,.stock-cell input{font:inherit;color:initial;width:100%;padding:var(--spacing-8);border:1px solid var(--color-ash-gray);border-radius:var(--radius-buttons);font-size:14px}.stock-line>button{grid-column:-2/-1;margin-top:20px}@media (width<=768px){.stock-line{grid-template-columns:1fr 1fr}.stock-cell-wide{grid-column:1/-1}.stock-line>button{grid-column:1/-1;justify-self:end;margin-top:0}}.row-cancelled td:not(.row-actions){opacity:.55}.count-input{font:inherit;width:8em;padding:var(--spacing-4) var(--spacing-8);border:1px solid var(--color-ash-gray);border-radius:var(--radius-buttons);font-size:14px}.label-print-wrap{background:var(--color-hint-of-sky,#f5f6f8);min-height:100vh;padding:var(--spacing-16)}.label-toolbar{flex-wrap:wrap;align-items:center}.label-toolbar input{width:5em}.label-sheet-a4{background:#fff;grid-template-columns:repeat(3,63.5mm);grid-auto-rows:38.1mm;column-gap:2.75mm;width:196mm;margin:0 auto;display:grid}.label-sheet-roll{flex-direction:column;align-items:center;gap:4mm;display:flex}.label-sheet-roll .label{page-break-after:always;break-after:page;background:#fff;width:62mm;height:29mm}.label{box-sizing:border-box;color:#000;flex-direction:column;justify-content:center;gap:.8mm;padding:2mm 3mm;font-family:inherit;display:flex;overflow:hidden}.label-name{white-space:nowrap;text-overflow:ellipsis;font-size:10pt;font-weight:600;overflow:hidden}.label-meta,.label-value{white-space:nowrap;text-overflow:ellipsis;font-size:7pt;overflow:hidden}.label-value{text-align:center;letter-spacing:.05em}.barcode{fill:#000;width:100%;height:11mm}.label-sheet-roll .barcode{height:9mm}@media screen{.label-sheet-a4 .label{outline:1px dashed #ccc}}@media print{.label-print-wrap{background:#fff;padding:0}.label-sheet-roll{gap:0}}.st-page{color:#000;background:#fff;max-width:186mm;margin:0 auto;padding:6mm}.st-sheet{font-size:9pt}.st-title{text-align:center;letter-spacing:.3em;margin:0 0 3mm;font-size:16pt}.st-title small{letter-spacing:0;font-size:9pt}.st-cancelled{text-align:center;color:#b00020;margin:0 0 2mm;font-weight:700}.st-meta{flex-wrap:wrap;gap:4mm;margin-bottom:2mm;display:flex}.st-parties{grid-template-columns:1fr 1fr;gap:3mm;margin-bottom:3mm;display:grid}.st-party{border:1px solid #000;padding:2mm 3mm;line-height:1.5}.st-party-title{border-bottom:1px solid #000;margin-bottom:1mm;font-weight:700}.st-table{border-collapse:collapse;width:100%}.st-table th,.st-table td{border:1px solid #000;padding:1mm 2mm}.st-table tfoot td{font-weight:700}.st-num{text-align:right;white-space:nowrap}.st-sign{text-align:right;margin-top:3mm}.st-cut{border:none;border-top:1px dashed #000;margin:8mm 0}.pop{background:var(--color-hint-of-sky);min-height:100vh;color:var(--color-midnight-charcoal);word-break:keep-all;font-size:16px}.pop-nowrap{white-space:nowrap}.pop-head{align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-16);background:var(--color-canvas-white);border-bottom:1px solid var(--color-ash-gray);display:flex}.pop-title{color:var(--color-deep-space-charcoal);flex:1;font-weight:700;text-decoration:none}.pop-title small{color:var(--color-smoke-gray);font-size:12px;font-weight:400;display:block}.pop-body{max-width:560px;padding:var(--spacing-16);gap:var(--spacing-12);flex-direction:column;margin:0 auto;display:flex}.pop-card,.pop-summary{gap:var(--spacing-4);min-height:56px;color:inherit;flex-direction:column;text-decoration:none;display:flex}.pop-form,.pop-field{gap:var(--spacing-8);flex-direction:column;display:flex}.pop-form{gap:var(--spacing-16)}.pop-label{font-weight:600}.pop input{min-height:56px;padding:0 var(--spacing-12);border:1px solid var(--color-ash-gray);border-radius:var(--radius-buttons);background:var(--color-canvas-white);font-size:18px}.pop .btn.pop-big,.pop .btn.pop-step,.pop .btn.pop-chip,.pop .btn.pop-save{justify-content:center;min-height:56px;font-size:16px}.pop-stepper{gap:var(--spacing-8);grid-template-columns:56px minmax(0,1fr) 56px;display:grid}.pop-stepper input{text-align:center;width:100%;min-width:0;font-size:22px}.pop .btn.pop-step{font-size:24px}.pop-row,.pop-grid{gap:var(--spacing-8);grid-template-columns:1fr 1fr;display:grid}.pop-grid{grid-template-columns:repeat(3,1fr)}.pop .btn.pop-chip.is-on{background:var(--color-dark-onyx);color:var(--color-canvas-white)}.pop .btn.pop-save{min-height:64px;font-size:20px}.pop-notice{padding:var(--spacing-12) var(--spacing-16);border-radius:var(--radius-cards);background:var(--color-canvas-white);border-left:6px solid var(--color-electric-blue)}.pop-notice p{margin:0 0 var(--spacing-4)}.pop-notice-ok{border-left-color:#1f9d55}.pop-notice-error,.pop-notice-zero{border-left-color:#d64545}.pop-recent{margin:var(--spacing-4) 0}.genealogy-cols{gap:var(--spacing-16);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.card-subtitle{margin:var(--spacing-8) 0 var(--spacing-4);font-size:14px;font-weight:600}.genealogy-tree{padding-left:var(--spacing-16);border-left:2px solid var(--color-ash-gray);margin:0;list-style:none}.genealogy-tree li{margin:var(--spacing-4) 0;word-break:keep-all}.wo-print .wo-company{text-align:center;margin:0 0 3mm}.wo-print .wo-head-main{justify-content:space-between;align-items:center;gap:4mm;margin-bottom:3mm;display:flex}.wo-print .wo-barcode{width:70mm}.wo-print .wo-no{font-size:12pt}.wo-print .wo-key{font-weight:700}.wo-print .wo-barcode .barcode{height:14mm}.wo-print .wo-info{margin-bottom:3mm}.wo-print th{text-align:left;background:#f0f0f0}.wo-print .wo-h2{margin:4mm 0 1mm;font-size:10pt}.wo-print .wo-blank td{height:9mm}.wo-print .wo-memo{border:1px solid #000;min-height:14mm;margin-top:3mm;padding:1mm 2mm}.wo-print .wo-signs{justify-content:flex-end;gap:3mm;margin-top:5mm;display:flex}.wo-print .wo-sign{text-align:center;border:1px solid #000;width:28mm}.wo-print .wo-sign-role{background:#f0f0f0;border-bottom:1px solid #000}.wo-print .wo-sign-box{height:14mm}input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:1px;outline:2px solid #0091ff59}.pop .btn{font-size:16px}@media (pointer:coarse){.field input,.field select,.field textarea,.login-field input,.list-filters select,.list-filters input,.quote-line input,.quote-line select,.quote-line-content,.contract-line input,.stock-cell select,.stock-cell input,.count-input{font-size:16px}}.gl-entry>summary{gap:var(--spacing-8);cursor:pointer;flex-wrap:wrap;align-items:center;display:flex}.gl-entry[open]>summary{margin-bottom:var(--spacing-8)}.gl-entry-total{margin-left:auto}.row-warn>td{background:#f59f0014}.gl-report tr.row-group td,.gl-report tr.row-total td{font-weight:600}.gl-report tr.row-total td{border-top:2px solid}.gl-report-indent tr.row-account td:first-child{padding-left:1.5rem}.gl-report-controls{align-items:flex-end}.link-button{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}
