:root{--ink:#24332e;--muted:#66726c;--line:#dfe4dd;--paper:#fff;--warm:#f5f4ef;--olive:#466153;--blue:#2462c5;--soft:#edf2ec;--danger:#aa4135;--font:Pretendard,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--warm);color:var(--ink);font-family:var(--font);line-height:1.55;font-size:14px}button,input,select{font:inherit;color:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:disabled{opacity:.45;cursor:default}input,select{border:1px solid #cfd8cd;background:white;border-radius:6px;padding:9px 11px;min-width:0}input:focus,select:focus,button:focus-visible,a:focus-visible{outline:2px solid #6593d8;outline-offset:2px}input.invalid{border-color:var(--danger);background:#fff3ef}input.is-edited{border-color:#d3a346;background:#fffaf0}[hidden]{display:none!important}.print-only{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1440px;padding:23px 38px;margin:auto;border-bottom:1px solid var(--line)}.brand{font-weight:850;letter-spacing:.04em;font-size:24px;display:flex;gap:16px;align-items:center}.brand:before{content:'';width:6px;height:23px;background:#bf4538}.brand span{font-size:12px;font-weight:500;letter-spacing:0;color:var(--muted)}.site-header nav{display:flex;gap:24px;font-size:13px;font-weight:550}.page-shell{max-width:1360px;margin:0 auto;padding:42px 38px 24px}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;margin-bottom:28px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;color:var(--olive);margin:0 0 10px}.page-intro h1{font-size:30px;letter-spacing:-.045em;line-height:1.25;margin:0 0 12px;font-weight:750}.intro-copy{color:var(--muted);margin:0;max-width:660px;word-break:keep-all;font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:43px;padding:10px 17px;border:1px solid #cfd8cd;border-radius:7px;background:#fff;font-weight:600;font-size:13px;text-decoration:none;white-space:nowrap}.button:hover{background:#eef2ec;text-decoration:none}.button.primary{color:white;background:var(--blue);border-color:var(--blue)}.button.primary:hover{background:#1d51a8}.text-button{background:none;border:0;padding:10px;font-size:13px}.text-button:hover{text-decoration:underline}.text-link{color:var(--olive);font-size:13px;text-decoration:underline}.danger{color:var(--danger)}.danger-button{color:#fff;background:var(--danger);border-color:var(--danger)}.notice{padding:14px 18px;margin-bottom:16px;border-radius:7px;background:#e8f1e9;overflow-wrap:anywhere}.notice.error{background:#fff0ec;color:#92392e}.undo-notice{background:#eaf0f6;border-radius:7px;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.undo-notice button{border:0;background:none;color:#24548c;text-decoration:underline;font-size:13px}
.document{background:var(--paper);border:1px solid #e0e4dc;border-radius:12px;padding:35px 32px 24px}.document-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:24px;border-bottom:2px solid var(--ink)}.document-brand{font-weight:850;font-size:13px;letter-spacing:.07em;display:flex;align-items:center;gap:12px;margin:0 0 12px}.document-brand span{font-size:11px;letter-spacing:0;color:var(--muted);font-weight:500}.document-header h2{font-size:25px;letter-spacing:-.04em;margin:0;line-height:1.2;font-weight:750}.document-info{font-size:12px;color:var(--muted);display:grid;text-align:right;gap:5px}.document-info time{color:var(--ink);margin-left:10px}.document-meta{display:flex;align-items:center;gap:22px;padding:22px 0;flex-wrap:wrap}.document-meta label{display:flex;gap:12px;align-items:center;font-size:12px;color:var(--muted)}#projectName{width:270px;color:var(--ink)}.area-input{display:inline-flex;gap:7px;align-items:center}.area-input input{width:122px}.area-result{margin-left:auto;font-size:11px;display:grid;gap:4px}.area-result span{color:var(--muted)}.area-result strong{font-size:13px;font-weight:650}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr) 1.3fr;gap:12px}.summary-card{background:#f6f7f3;border-radius:7px;padding:17px 19px;min-width:0}.summary-card>span{font-size:12px;color:var(--muted);font-weight:550}.summary-card strong{font-size:24px;display:block;margin-top:7px;letter-spacing:-.045em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;line-height:1.3}.summary-card small{font-size:11px;font-weight:450;margin-left:6px;letter-spacing:0}.summary-card p{margin:6px 0 0;font-size:10px;color:var(--muted)}.summary-total{background:#eaf0e7}.summary-total strong{color:#345341}.document-caption{color:var(--muted);font-size:11px;margin:13px 0 22px;word-break:keep-all}.review-note{display:grid;gap:5px;background:#fbf5e9;padding:14px 17px;font-size:12px;margin-bottom:15px;border-radius:6px;color:#76623c}.review-note span{font-size:11px}.scope-review{border-bottom:1px solid var(--line);padding:12px 0;font-size:12px;color:var(--muted)}.scope-review summary{cursor:pointer}.scope-review summary span{margin-left:10px;color:#8b6529}.scope-review li{margin:4px 0}.scope-review a{color:var(--olive);text-decoration:underline}.item-section{margin-top:32px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:17px}.section-heading .eyebrow{font-size:9px;margin-bottom:6px}.section-heading h3{font-size:20px;letter-spacing:-.04em;margin:0;font-weight:700}.unit-note{font-size:11px;color:var(--muted)}.edit-toolbar{display:flex;align-items:flex-end;gap:12px;margin-bottom:12px}.search-box{display:grid;gap:5px;flex:1;max-width:340px;font-size:11px;color:var(--muted)}.search-box input{width:100%;font-size:13px}.group-filter{display:grid;gap:5px;font-size:11px;color:var(--muted)}.group-filter select{max-width:220px;min-height:41px;font-size:13px}.edit-help{font-size:11px;color:var(--muted);margin:0 0 23px}.edit-help strong{font-weight:650;color:var(--olive)}#editCount{margin-left:8px;color:#9a6a22}.empty-search{padding:32px;text-align:center;color:var(--muted)}
.work-group{--accent:#567061;margin-bottom:28px}.work-group[data-discipline="토목"]{--accent:#886b44}.work-group[data-discipline="기계"]{--accent:#3e7787}.work-group[data-discipline="전기"]{--accent:#a17821}.work-group[data-discipline="통신"]{--accent:#74638f}.work-group[data-discipline="소방"]{--accent:#a3574d}.work-group[data-discipline="구조"]{--accent:#52617f}.work-group[data-discipline="조경"]{--accent:#668245}.work-heading{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;background:#f1f4ee;border-left:4px solid var(--accent);gap:18px}.work-heading>div{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.discipline{color:var(--accent);font-size:10px;font-weight:750}.work-heading h4{font-size:14px;line-height:1.4;margin:0;font-weight:700}.work-heading span:not(.discipline){font-size:10px;color:var(--muted)}.work-heading>strong{font-size:14px;white-space:nowrap;font-variant-numeric:tabular-nums}.work-heading small{font-size:10px;font-weight:400;margin-left:3px}.table-wrap{width:100%}.items-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.col-item{width:29%}.col-quantity{width:10%}.col-money{width:10%}.col-total{width:12%}.col-actions{width:9%}.items-table th{font-size:11px;font-weight:600;color:var(--muted);text-align:right;padding:12px 9px;border-bottom:1px solid var(--line);background:#fafbf8}.items-table th:first-child{text-align:left}.items-table td{border-bottom:1px solid var(--line);padding:15px 9px;vertical-align:middle}.item-description strong{display:block;font-size:13px;font-weight:650;overflow-wrap:anywhere;word-break:keep-all;line-height:1.5}.item-meta{display:block;color:var(--muted);font-size:11px;margin:5px 0}.item-source{display:block;color:#778379;font-size:10px;margin-top:5px;word-break:keep-all}.check-label{display:inline-block;font-size:9px;padding:2px 6px;background:#fbf1da;color:#8b6b27;border-radius:3px;margin-top:6px}.money{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.item-total{font-weight:750;color:#2f4e3c}.quantity-cell{text-align:right}.quantity-editor{display:grid;gap:3px;justify-items:end}.quantity-editor input{width:100%;padding:7px 7px;text-align:right;font-size:12px;font-variant-numeric:tabular-nums}.quantity-editor>span:last-child{font-size:10px;color:var(--muted)}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.option-link{padding:4px 0;font-size:10px;border:0;background:none;color:var(--olive);text-decoration:underline}.item-actions{text-align:right}.item-actions button{font-size:10px;border:0;background:none;color:var(--olive);padding:5px 0;display:block;white-space:nowrap;margin-left:auto}.item-actions .remove-item{color:#9b6e66}.item-actions button:hover{text-decoration:underline}.items-table tfoot{background:#f6f8f3}.items-table tfoot th,.items-table tfoot td{padding:12px 9px;font-weight:700;border-bottom:1px solid #cfd8cd}.detail-row>td{padding:0;background:#fbfcf9}.detail-body{padding:20px 20px 18px}.detail-body h5{margin:0 0 12px;font-size:13px}.item-warnings{font-size:11px;background:#fbf5e8;margin:0 0 14px;padding:12px 12px 12px 30px;color:#7b6438}.item-warnings li{margin:4px 0}.detail-table-wrap{overflow-x:auto}.detail-table{width:100%;border-collapse:collapse;font-size:11px}.detail-table th{padding:8px 9px;text-align:left;background:none}.detail-table td{padding:9px;border-bottom:1px solid #e6eae2}.detail-table td:nth-child(2){width:40%}.detail-table td strong{font-size:11px;font-weight:600;display:block}.detail-table td span{display:block;font-size:10px;color:var(--muted)}.detail-table td:last-child{font-weight:650}.detail-table th:nth-last-child(-n+2){text-align:right}.detail-body>p{margin:12px 0 0;font-size:10px;color:var(--muted)}.option-editor{display:flex;gap:6px;align-items:center}.option-editor input{width:84px;padding:7px}.detail-table .option-editor span{display:inline}.document-notes{margin:30px 0 20px;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px}.document-notes h3{font-size:13px;color:var(--ink);margin:0 0 10px}.document-notes ol{padding-left:18px;margin:0}.document-notes li{padding:3px 0;word-break:keep-all}.document-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;color:#899184;font-size:10px}.empty-state{padding:68px 12px 82px;text-align:center}.empty-state h3{font-size:23px;letter-spacing:-.04em;margin:10px 0 14px;line-height:1.3}.empty-state p{font-size:13px;color:var(--muted);margin:0 0 25px;word-break:keep-all}.empty-actions{display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}.empty-actions .text-link{margin-left:10px}.output-section{padding:28px 0 4px}.output-section h2{font-size:22px;letter-spacing:-.04em;margin:0 0 10px}.output-section>div>p:not(.eyebrow){font-size:12px;color:var(--muted);margin:0}.output-buttons{display:flex;gap:10px;margin:20px 0 13px}.print-options{display:flex;align-items:center;gap:20px;font-size:11px;color:var(--muted);flex-wrap:wrap}.print-options input{accent-color:var(--olive);vertical-align:middle;margin:0 7px 0 0}.next-actions{display:flex;align-items:center;gap:22px;font-size:12px;margin:22px 0 0;border-top:1px solid var(--line);padding-top:15px;flex-wrap:wrap}.next-actions a{text-decoration:underline;color:var(--olive)}.next-actions button{margin-left:auto}.screen-footer{display:flex;justify-content:space-between;margin:24px 0 0;color:var(--muted);font-size:11px}.preview-actions{display:flex;gap:12px;align-items:center;background:#edf1e9;padding:15px 18px;margin-bottom:20px;border-radius:8px}.preview-actions p{flex:1;margin:0;font-size:12px}dialog{max-width:min(460px,calc(100% - 32px));border:1px solid var(--line);border-radius:12px;padding:26px;color:var(--ink)}dialog::backdrop{background:#14231c66}dialog h2{font-size:20px;letter-spacing:-.03em;margin:0 0 14px}dialog p{font-size:13px;overflow-wrap:anywhere}.dialog-help{color:var(--muted);font-size:12px!important}dialog form>div{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
@media(max-width:1100px){.document-meta{gap:18px}.area-result{margin-left:0}.summary-card strong{font-size:20px}.col-item{width:26%}.col-money{width:10%}.col-actions{width:12%}.items-table{font-size:11px}.items-table td{padding:12px 6px}.items-table th{padding:12px 6px}.quantity-editor input{font-size:11px}.item-actions button{font-size:10px}}
@media(max-width:760px){.site-header{padding:18px 18px;gap:12px;align-items:flex-start;flex-wrap:wrap}.brand{font-size:22px}.brand span{font-size:11px}.site-header nav{width:100%;gap:18px;font-size:11px;flex-wrap:wrap}.page-shell{padding:28px 16px 20px}.page-intro{display:block;margin-bottom:22px}.page-intro h1{font-size:26px}.intro-copy{font-size:12px}.page-intro>.button{margin-top:18px}.document{padding:24px 16px 18px;border-radius:9px}.document-header{padding-bottom:20px;align-items:flex-start}.document-header h2{font-size:23px}.document-brand{display:block;font-size:12px}.document-brand span{display:block;margin-top:4px;font-size:9px}.document-info{font-size:10px;padding-top:1px}.document-meta{display:grid;grid-template-columns:1fr;gap:12px;padding:18px 0}.document-meta label{display:grid;grid-template-columns:66px 1fr;gap:8px}.document-meta #projectName{width:100%}.area-input input{width:122px}.area-result{margin-top:2px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.summary-grid{grid-template-columns:repeat(2,1fr);gap:9px}.summary-card{padding:14px 12px}.summary-card strong{font-size:20px}.summary-card>span{font-size:11px}.summary-card small{font-size:10px}.summary-total strong{font-size:21px}.document-caption{font-size:10px;margin-top:12px}.review-note{padding:12px;font-size:11px}.review-note span{font-size:10px}.item-section{margin-top:25px}.edit-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:10px}.search-box{grid-column:1/-1;max-width:none}.group-filter{grid-column:1/-1}.group-filter select{max-width:none;width:100%}.edit-toolbar .button{font-size:12px;padding:9px 8px}.edit-help{font-size:10px;line-height:1.7}.edit-help #editCount{display:block;margin-left:0}.work-heading{padding:12px 11px;gap:10px}.work-heading>div{gap:7px}.work-heading h4{font-size:13px}.work-heading>strong{font-size:12px}.items-table colgroup,.items-table thead{display:none}.items-table,.items-table tbody{display:block}.items-table tbody>.item-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 14px;padding:17px 0;border-bottom:1px solid var(--line)}.items-table tbody>.item-row>td{display:block;border:0;padding:0;min-width:0;font-size:12px}.item-description{grid-column:1/-1}.item-description strong{font-size:14px}.item-meta{font-size:11px}.item-source{font-size:10px}.items-table tbody>.item-row>td[data-label]:before{content:attr(data-label);display:block;font-size:10px;font-weight:500;color:var(--muted);margin-bottom:5px;text-align:left}.quantity-editor{display:flex;justify-content:flex-start;align-items:center}.quantity-editor input{width:calc(100% - 28px);font-size:13px}.quantity-cell{text-align:left}.items-table tbody>.item-row>.money{display:flex;justify-content:space-between;gap:8px;align-items:center}.items-table tbody>.item-row>.money:before{margin:0}.items-table tbody>.item-row>.item-total{grid-column:1/-1;background:#f1f5ee;padding:10px 12px;font-size:15px}.items-table tbody>.item-row>.item-actions{grid-column:1/-1;display:flex;justify-content:space-between}.item-actions button{display:inline;font-size:11px;padding:3px 0;margin-left:0}.items-table tfoot,.items-table tfoot tr{display:block}.items-table tfoot tr{padding:13px 11px}.items-table tfoot th{display:block;padding:0 0 7px;border:0;font-size:11px}.items-table tfoot td.money{display:flex;justify-content:space-between;border:0;padding:3px 0;font-size:11px}.items-table tfoot td.money:before{content:attr(data-label);color:var(--muted);font-weight:500}.items-table .detail-row{display:block}.items-table .detail-row>td{display:block}.detail-body{padding:16px 10px}.detail-table{min-width:550px}.detail-table th,.detail-table td{padding:7px}.option-editor input{width:65px}.work-group{margin-bottom:24px}.document-notes{font-size:10px}.document-footer{display:block}.document-footer span{display:block;margin-top:3px}.empty-state{padding:44px 0 48px}.empty-state h3{font-size:21px}.empty-state p{font-size:12px}.empty-actions{gap:10px}.empty-actions .button{width:100%}.empty-actions .text-link{margin:8px 0 0}.output-section h2{font-size:20px}.output-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.output-buttons>.primary{grid-column:1/-1}.output-buttons .button{font-size:12px}.print-options{gap:12px}.next-actions{display:grid;gap:14px}.next-actions button{margin:0;text-align:left;padding-left:0}.screen-footer{gap:15px;font-size:10px;flex-wrap:wrap}.undo-notice{align-items:flex-start;font-size:12px;flex-wrap:wrap}.preview-actions{flex-wrap:wrap}.preview-actions p{flex-basis:100%}.preview-actions .button{flex:1;font-size:12px}}

.quantity-note{display:block;font-size:9px;color:#8b6b27;margin-top:6px;line-height:1.5;word-break:keep-all}.unify-quantity{font-size:10px;color:#365c47;border:0;background:#edf1e9;padding:5px 7px;margin-top:6px;border-radius:4px}.col-item{width:32%}.col-quantity{width:12%}.col-money{width:11%}.col-total{width:13%}.col-actions{width:10%}

/* Clearly distinguish deletion from calculation and detail actions. */
.item-actions .remove-item{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 12px;margin-top:7px;border:1px solid #bd302a;border-radius:5px;background:#c7362f;color:#fff;font-weight:700;text-decoration:none}.item-actions .remove-item:hover{background:#a82722;color:#fff;text-decoration:none}.item-actions .remove-item:focus-visible{outline:3px solid #f3b2ab;outline-offset:3px}.item-actions .remove-item:disabled{opacity:.45;cursor:not-allowed}@media(max-width:760px){.item-actions .remove-item{min-height:36px;margin-top:0;padding:7px 16px}}
