* { box-sizing: border-box; } [hidden] { display: none !important; } html, body { height: 100%; margin: 0; } body { display: flex; flex-direction: column; background: #edf0f4; color: #203345; font: 12px "Malgun Gothic", sans-serif; } button, input, select, textarea { font: inherit; color: inherit; } button { cursor: pointer; border: 1px solid #b4c4d2; background: linear-gradient(#fff, #e5edf4); padding: 5px 10px; border-radius: 2px; } button:hover { background: #d9edff; border-color: #7da4c3; } button:disabled { opacity: 0.45; cursor: default; } input, select, textarea { border: 1px solid #c5d2dd; background: #fff; padding: 4px; min-width: 0; } input:focus, select:focus, textarea:focus { outline: 2px solid #7db3dd; outline-offset: -2px; } input[type="checkbox"] { vertical-align: middle; accent-color: #346f9e; } header { flex: none; } .titlebar { height: 34px; display: flex; align-items: center; gap: 26px; padding: 0 12px; background: linear-gradient(90deg, #1f4b70, #487b9f); color: #fff; } .titlebar b { font-size: 14px; } .titlebar span { font-size: 11px; color: #d3e5f2; } .titlebar button { margin-left: auto; background: #ecf4fa; color: #254b66; font-size: 11px; padding: 3px 10px; } .menubar { display: flex; align-items: center; gap: 3px; background: #f9fafb; border-bottom: 1px solid #becbd7; height: 29px; padding-left: 5px; } .menubar details { position: relative; } .menubar summary { list-style: none; cursor: pointer; padding: 6px 13px; } .menubar summary:hover, .menubar details[open] > summary { background: #d9e9f6; } .menu { position: absolute; z-index: 20; top: 100%; left: 0; min-width: 210px; padding: 4px; background: #f8fafc; border: 1px solid #a6b9c8; box-shadow: 2px 4px 9px #19395130; display: flex; flex-direction: column; } .menu button { text-align: left; background: transparent; border: 0; padding: 8px 14px; white-space: nowrap; } .menu button:hover { background: #d6e9f8; } .menu hr { width: 100%; margin: 3px 0; border: 0; border-top: 1px solid #d4dee7; } .menu-button { border: 0; background: transparent; font-size: 12px; } .toolbar { display: flex; align-items: center; gap: 5px; padding: 7px 9px; border-bottom: 1px solid #b7c6d3; white-space: nowrap; overflow: auto; } .toolbar label { margin-left: 10px; } .toolbar input[type="text"], #project-name { width: 210px; } .toolbar i { border-left: 1px solid #bac9d6; height: 24px; margin: 0 6px; } .work-tabs { display: flex; gap: 2px; background: #dbe4ed; padding: 4px 6px 0; border-bottom: 1px solid #8fa9be; overflow: auto; flex: none; } .work-tabs button { background: #e8edf3; border: 1px solid #b8c8d5; border-bottom: 0; padding: 7px 20px; white-space: nowrap; } .work-tabs .active { background: #fff; color: #1a547e; font-weight: bold; border-color: #8fa9be; box-shadow: inset 0 3px #4e8cb9; } main { display: flex; flex-direction: column; flex: 1; min-height: 0; margin: 7px; border: 1px solid #afc0cd; background: #fff; } .work-title { display: flex; gap: 20px; align-items: center; padding: 7px 10px; background: #dce8f2; border-bottom: 1px solid #b6c7d6; flex: none; } .work-title b { font-size: 13px; color: #1b5279; } .work-title span { color: #688094; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .row-tools { padding: 5px 7px; display: flex; align-items: center; gap: 4px; background: #f1f5f8; border-bottom: 1px solid #c5d2dc; flex: none; } .row-tools input[type="search"] { width: 230px; margin-left: 14px; } #paging { display: flex; gap: 7px; align-items: center; margin-left: auto; color: #708393; font-size: 11px; } #paging button { padding: 2px 9px; } .work-area { display: flex; flex: 1; min-height: 0; } #group-pane { width: 220px; flex: none; border-right: 3px solid #bdcbd7; overflow: auto; background: #f6f8fa; } #group-pane h2 { font-size: 12px; background: #e6edf3; padding: 8px 10px; margin: 0; color: #516e85; border-bottom: 1px solid #c2d1dd; } #group-list { display: flex; flex-direction: column; } #group-list button { border: 0; border-bottom: 1px solid #d4dfe8; background: transparent; text-align: left; position: relative; padding: 10px; } #group-list button:hover { background: #e6f1fa; } #group-list .active { background: #cde5f7; border-left: 3px solid #3278aa; } #group-list b { display: block; font-size: 12px; max-height: 37px; overflow: hidden; } #group-list small { display: block; color: #7690a3; margin-top: 3px; } #group-list span { display: block; text-align: right; color: #24577c; margin-top: 3px; } #work-content { overflow: auto; flex: 1; min-width: 0; background: #fff; } .sheet { border-collapse: separate; border-spacing: 0; min-width: 100%; font-variant-numeric: tabular-nums; } .sheet th, .sheet td { border-right: 1px solid #d2dde5; border-bottom: 1px solid #d2dde5; padding: 0; white-space: nowrap; } .sheet thead th { position: sticky; top: 0; z-index: 3; background: linear-gradient(#edf3f8, #dce6ee); color: #3c5a70; text-align: center; font-size: 11px; font-weight: normal; padding: 8px 5px; min-width: 87px; } .sheet td { height: 29px; background: #fff; min-width: 87px; } .sheet tr:nth-child(even) td { background: #fafcfd; } .sheet input, .sheet select, .sheet textarea { width: 100%; height: 28px; border: 0; background: transparent; padding: 4px 6px; min-width: 85px; } .sheet input[type="number"] { text-align: right; -moz-appearance: textfield; } .sheet input::-webkit-inner-spin-button { appearance: none; } .sheet .row-number { position: sticky; left: 0; z-index: 2; background: #e8eff5 !important; min-width: 55px; max-width: 55px; text-align: center; color: #647e91; font-size: 10px; } .sheet .row-number input { width: 12px; height: 12px; min-width: 0; display: inline; vertical-align: middle; margin: 0 4px 0 0; } .sheet .row-number label { padding: 7px 4px; display: block; cursor: pointer; } .sheet tr.selected td { background: #e1f0fb; } .sheet tr.level td { background: #eaf0f6; font-weight: bold; } .sheet tr.heading td { background: #e3edf5; font-weight: bold; } .sheet .col-Name { min-width: 210px; } .sheet .col-Size { min-width: 185px; } .sheet .col-Code { min-width: 115px; } .sheet .col-LineData { min-width: 650px; position: relative; } .sheet .col-LineData textarea { min-width: 620px; height: 31px; resize: vertical; white-space: pre; font-family: "Malgun Gothic", monospace; font-weight: normal; padding-right: 22px; } .sheet .col-LineData .tiny { position: absolute; right: 0; top: 4px; padding: 0 4px; } .sheet .col-VSusic { min-width: 250px; } .sheet .col-VSusic input { min-width: 250px; } .sheet .col-Level, .sheet .col-Index { min-width: 50px; } .sheet .col-Level input, .sheet .col-Index input { min-width: 50px; } #messages { background: #fff1df; border-bottom: 1px solid #ead5ae; padding: 9px; color: #9a4c15; flex: none; max-height: 70px; overflow: auto; } .totals { display: flex; justify-content: flex-end; background: #e3edf5; border-top: 1px solid #b5c8d7; flex: none; overflow: auto; white-space: nowrap; } .totals span { padding: 9px 15px; border-left: 1px solid #c0d0dd; color: #617b8f; } .totals b { color: #183e5b; margin-left: 8px; font-size: 13px; } .totals span:last-child { background: #d4e6f3; } footer { display: flex; justify-content: space-between; align-items: center; height: 24px; padding: 0 9px; background: #f0f4f7; color: #668093; font-size: 10px; flex: none; } dialog { border: 1px solid #8da9bf; padding: 0; max-width: 900px; min-width: 380px; max-height: 85vh; background: #fff; color: #203345; box-shadow: 0 15px 60px #1239; } dialog::backdrop { background: #17344c55; } .dialog-head { position: sticky; top: 0; background: #dbe9f4; padding: 9px 12px; display: flex; justify-content: space-between; gap: 30px; align-items: center; z-index: 2; } .dialog-head button { padding: 0 7px; font-size: 19px; } #dialog-content { padding: 18px; overflow: auto; } #dialog-content table { border-collapse: collapse; min-width: 400px; } #dialog-content td, #dialog-content th { border: 1px solid #c8d5df; padding: 7px 10px; } #dialog-content textarea { width: 100%; min-width: 550px; font-family: monospace; white-space: pre; } .form-fields { display: grid; gap: 12px; margin-bottom: 18px; } .form-fields label { display: flex; align-items: center; justify-content: space-between; gap: 25px; } .form-fields input, .form-fields select { width: 220px; padding: 6px; } .marker-tools { display: flex; gap: 4px; margin-bottom: 10px; } .business-tools { padding: 12px; display: flex; align-items: center; gap: 7px; background: #edf3f8; border-bottom: 1px solid #c9d6df; flex-wrap: wrap; } .business-tools b { margin-right: 15px; } .business-note { padding: 12px 16px; color: #627e92; line-height: 1.7; } .empty { padding: 30px; color: #7c90a0; } .muted { color: #7a90a0; padding: 10px; } .business-tools input[type="checkbox"] { width: auto; } .business-tools select { padding: 5px; } .error-row { background: #fff1e5; } @media (max-width: 800px) { .toolbar label { margin-left: 4px; } .work-tabs button { padding: 7px 13px; } #group-pane { width: 150px; } .totals { justify-content: flex-start; } .totals span { padding: 8px; } .work-title span { display: none; } } @media print { header, footer, .totals, .row-tools, #group-pane, .work-title, #messages, button { display: none !important; } body, main, .work-area, #work-content { display: block; height: auto; overflow: visible; border: 0; margin: 0; } .sheet thead th { position: static; } .sheet .row-number { position: static; } input, select, textarea { border: 0; appearance: none; } .sheet { font-size: 9px; } }