:root { color: #171d2d; background: #fff; font-family: "Noto Sans KR", sans-serif; }
* { box-sizing: border-box; }
body { margin: 0 auto; max-width: 600px; min-height: 100vh; background: #fff; }
button, input, select { font: inherit; }
[hidden] { display: none !important; }
.header-container { display:flex; justify-content:space-between; align-items:center; position:sticky; top:0; z-index:20; background:#fff; }
.header-left { display:flex; align-items:center; }
.header-logo { text-decoration:none; color:#000; font-size:18px; font-weight:700; padding:15px; margin:0; white-space:nowrap; }
.header-logo img { height:26px; padding:0 6px 4px; vertical-align:middle; box-sizing:border-box; }
.back-button { border:0; background:none; cursor:pointer; padding:0; margin-right:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.back-button svg { width:28px; height:28px; stroke:rgba(0,12,30,.9); }
.menu { display:flex; gap:15px; padding:15px 30px 15px 15px; }
.menu a, .menu button { display:flex; align-items:center; background:none; border:0; padding:0; cursor:pointer; }
.menu svg { width:20px; height:20px; stroke:rgb(130,130,130); stroke-width:3; position:relative; bottom:2px; }
.menu #recently-visited-btn svg { stroke-width:2.5; }
main { padding:13px 20px 40px; }
.title-row { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin:0 0 12px; }
h1 { margin:0; font-size:21px; letter-spacing:-1px; line-height:1.35; }
.period-hint { flex:none; color:#8b95a1; font-size:12px; }
.section { margin-top:17px; }
.section-heading { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin:0 0 7px; }
.section-heading h2 { margin:0; font-size:14px; line-height:1.4; }
.result-count { flex:none; color:#6b7684; font-size:12px; font-variant-numeric:tabular-nums; }
.section-actions { display:flex; align-items:center; gap:9px; }
.preview-open, .full-copy-action { border:0; background:none; color:#4e5968; font-size:12px; font-weight:700; cursor:pointer; }
.preview-open, .full-copy-action { min-height:32px; padding:4px 0; }
.preview-open { padding-left:3px; }
.preview-open:disabled, .full-copy-action:disabled { color:#aeb7c2; cursor:not-allowed; }
.copy-status { min-height:18px; margin:5px 1px 0; color:#6b7684; font-size:11px; line-height:1.5; }
.clipboard-fallback { position:fixed; left:-10000px; top:0; width:1px; height:1px; opacity:0; }
.property-section { position:relative; z-index:5; }
.property-stage { position:relative; height:173px; }
.property-row, .property-placeholder { position:absolute; top:111px; left:0; right:0; min-height:62px; padding:10px 11px; border:1px solid #d9dee5; border-radius:10px; }
.property-placeholder { display:flex; align-items:center; justify-content:center; background:#f7f8fa; color:#8b95a1; text-align:center; font-size:13px; font-weight:700; }
.property-copy { min-width:0; }
.property-name, .property-address { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.property-name { color:inherit; text-decoration:none; font-size:15px; font-weight:700; letter-spacing:-.4px; }
.property-address { margin-top:3px; color:#6b7684; font-size:11px; line-height:1.35; }
#property-search { position:relative; }
.search-label { display:block; margin-bottom:7px; font-size:14px; font-weight:700; }
.search-input { width:100%; height:48px; border:1px solid #d9dee5; border-radius:10px; background:#fff; color:#171d2d; padding:0 13px; outline:none; }
.search-input::placeholder { color:#a3acb7; }
.search-input:focus { border-color:#4e5968; box-shadow:0 0 0 2px rgba(78,89,104,.10); }
.property-stage:has(#selected-property[hidden]) .search-input { border:2px solid #171d2d; }
.search-status { min-height:20px; margin:6px 1px 0; color:#8b95a1; font-size:11px; }
.search-results { position:absolute; top:101px; left:0; right:0; z-index:20; max-height:285px; overflow:auto; overscroll-behavior:contain; list-style:none; margin:0; padding:0 10px; border:1px solid #d9dee5; border-radius:10px; background:#fff; box-shadow:0 10px 24px rgba(23,29,45,.12); }
.search-results:empty { display:none; }
.search-result { width:100%; min-height:57px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; border:0; border-bottom:1px solid #edf0f2; background:#fff; color:inherit; padding:9px 2px; text-align:left; cursor:pointer; }
.search-result:disabled { color:#aeb7c2; cursor:wait; }
.search-result-name { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:14px; font-weight:700; }
.search-result-meta { display:block; margin-top:3px; color:#6b7684; font-size:11px; }
.search-result-type { color:#6b7684; font-size:11px; }
.filter-open { width:100%; min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; border:1px solid #d9dee5; border-radius:10px; background:#fff; color:#4e5968; padding:9px 13px; text-align:left; font-size:12px; font-weight:700; cursor:pointer; }
.filter-open:disabled { background:#f7f8fa; color:#aeb7c2; cursor:not-allowed; }
body.filter-modal-open { overflow:hidden; }
.filter-modal { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(23,29,45,.38); }
.filter-dialog { display:flex; width:min(100%,560px); max-height:calc(100dvh - 32px); flex-direction:column; overflow:hidden; border-radius:14px; background:#fff; box-shadow:0 12px 32px rgba(23,29,45,.18); }
.filter-dialog-header { display:flex; flex:none; align-items:center; justify-content:space-between; padding:12px 16px 9px; border-bottom:1px solid #edf0f2; }
.filter-dialog-header h2 { margin:0; font-size:16px; }
.filter-dialog-close { width:44px; height:44px; border:0; border-radius:50%; background:#f2f4f6; color:#4e5968; font-size:24px; cursor:pointer; }
.filter-dialog-body { min-height:0; overflow:auto; padding:4px 16px 14px; }
.filter-group { min-width:0; margin:14px 0 0; padding:0; border:0; }
.filter-group legend { margin-bottom:7px; padding:0; font-size:12px; font-weight:700; }
.filter-chip-grid { display:grid; gap:6px; }
.filter-chip-grid-3 { grid-template-columns:repeat(3,1fr); }
.filter-chip-grid-4 { grid-template-columns:repeat(4,1fr); }
.filter-area-grid { grid-template-columns:repeat(3,1fr); max-height:128px; overflow:auto; overscroll-behavior:contain; }
.filter-chip { position:relative; }
.filter-chip input { position:absolute; opacity:0; pointer-events:none; }
.filter-chip span { display:flex; min-height:38px; align-items:center; justify-content:center; border:1px solid #d9dee5; border-radius:9px; color:#6b7684; padding:6px 4px; font-size:11px; font-weight:700; cursor:pointer; }
.filter-chip input:checked + span { border-color:#202a3a; background:#202a3a; color:#fff; }
.filter-chip input:focus-visible + span { outline:2px solid #104be0; outline-offset:2px; }
.filter-canceled { min-height:54px; display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; border-top:1px solid #edf0f2; padding-top:12px; cursor:pointer; }
.filter-canceled strong, .filter-canceled small { display:block; }
.filter-canceled strong { font-size:12px; }
.filter-canceled small { margin-top:2px; color:#8b95a1; font-size:10px; }
.filter-canceled input { width:18px; height:18px; accent-color:#202a3a; }
.filter-dialog-footer { display:grid; grid-template-columns:1fr 2fr; gap:7px; flex:none; padding:10px 16px 16px; border-top:1px solid #edf0f2; }
.filter-dialog-footer button { min-height:44px; border-radius:10px; font-size:13px; font-weight:700; cursor:pointer; }
.filter-dialog-cancel { border:1px solid #d9dee5; background:#fff; color:#4e5968; }
.filter-dialog-apply { border:0; background:#202a3a; color:#fff; }
.preview-list { list-style:none; margin:0; padding:0; border-top:1px solid #edf0f2; }
.preview-row { display:grid; grid-template-columns:76px minmax(0,1fr) auto; align-items:center; gap:8px; min-height:56px; padding:8px 2px; border-bottom:1px solid #edf0f2; }
.preview-date { font-size:11px; font-variant-numeric:tabular-nums; }
.preview-copy { min-width:0; }
.preview-main { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:13px; font-weight:700; letter-spacing:-.3px; }
.preview-sub { display:block; margin-top:2px; color:#6b7684; font-size:10px; }
.preview-amount { font-size:13px; font-weight:700; white-space:nowrap; font-variant-numeric:tabular-nums; }
.canceled { color:#d04444; }
.preview-state { min-height:112px; display:flex; align-items:center; justify-content:center; margin:0; color:#8b95a1; text-align:center; font-size:13px; }
body.preview-modal-open { overflow:hidden; }
.preview-modal { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(23,29,45,.38); }
.preview-dialog { display:flex; width:min(100%,560px); max-height:calc(100dvh - 32px); flex-direction:column; overflow:hidden; border-radius:14px; background:#fff; box-shadow:0 12px 32px rgba(23,29,45,.18); }
.preview-dialog-header { display:flex; flex:none; align-items:center; justify-content:space-between; gap:12px; padding:16px 16px 11px; border-bottom:1px solid #edf0f2; }
.preview-dialog-header h2 { margin:0 0 2px; font-size:16px; line-height:1.4; }
.preview-close { width:44px; height:44px; flex:none; border:0; border-radius:50%; background:#f2f4f6; color:#4e5968; font-size:24px; line-height:1; cursor:pointer; }
.preview-dialog-body { min-height:0; overflow:auto; padding:0 16px; overscroll-behavior:contain; }
.preview-dialog-footer { display:flex; min-height:68px; flex:none; align-items:center; justify-content:space-between; gap:12px; padding:10px 16px; border-top:1px solid #edf0f2; }
.preview-dialog-footer .copy-status { min-width:0; flex:1; margin:0; }
.preview-copy-action { min-height:44px; flex:none; border:1px solid #d9dee5; border-radius:10px; background:#fff; color:#4e5968; padding:8px 12px; font-size:12px; font-weight:700; cursor:pointer; }
.preview-copy-action:disabled { color:#aeb7c2; cursor:not-allowed; }
.format-options { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; padding:3px; border-radius:10px; background:#f2f4f6; }
.format-option { position:relative; }
.format-option input { position:absolute; opacity:0; pointer-events:none; }
.format-option span { display:flex; min-height:44px; align-items:center; justify-content:center; padding:8px 4px; border-radius:8px; color:#8b95a1; text-align:center; font-size:13px; font-weight:700; cursor:pointer; }
.format-option input:checked + span { color:#171d2d; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.format-option input:disabled + span { color:#aeb7c2; cursor:not-allowed; }
.format-option input:focus-visible + span { outline:2px solid #104be0; outline-offset:2px; }
.format-hint { min-height:16px; margin:5px 1px 0; color:#8b95a1; font-size:10px; line-height:1.5; }
.primary-action-slot { min-height:48px; margin-top:10px; }
.primary-action { width:100%; min-height:48px; border:0; border-radius:10px; background:#202a3a; color:#fff; font-size:14px; font-weight:700; cursor:pointer; }
.primary-action:disabled { background:#d9dee5; color:#fff; cursor:not-allowed; }
.action-status { min-height:19px; margin:7px 1px 0; color:#6b7684; font-size:11px; line-height:1.5; }
.ready-details { margin:0; border-top:1px solid #edf0f2; }
.ready-details div { display:grid; grid-template-columns:54px minmax(0,1fr); gap:8px; padding:8px 2px; border-bottom:1px solid #edf0f2; font-size:12px; line-height:1.45; }
.ready-details dt { color:#8b95a1; }
.ready-details dd { min-width:0; margin:0; overflow-wrap:anywhere; color:#4e5968; }
.source-footer { margin-top:27px; padding-top:14px; border-top:1px solid #edf0f2; color:#6b7684; font-size:12px; line-height:1.6; }
.source-footer strong { display:block; margin-bottom:3px; color:#4e5968; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:2px solid #104be0; outline-offset:2px; }
@media (max-width:360px) {
    main { padding-left:16px; padding-right:16px; }
    .menu { padding-right:16px; gap:13px; }
    .period-hint { font-size:11px; }
    .preview-row { grid-template-columns:72px minmax(0,1fr) auto; gap:7px; }
}
