:root{--bg: #0d1117;--surface: #161b22;--surface2: #1c2330;--border: #2a3441;--text: #e6edf3;--muted: #8b949e;--primary: #1f6feb;--primary-dim: #163d80;--danger: #da3633;--ok: #2ea043;--warn: #d29922;--radius: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Malgun Gothic,Apple SD Gothic Neo,sans-serif;font-size:15px;line-height:1.5;overscroll-behavior-y:none}#root{max-width:640px;margin:0 auto;min-height:100vh}.app{padding-bottom:calc(72px + var(--safe-bottom))}.topbar{position:sticky;top:0;z-index:20;background:#0d1117eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:calc(10px + var(--safe-top)) 14px 10px;display:flex;align-items:center;gap:10px}.topbar h1{font-size:18px;margin:0;font-weight:700;flex:1}.topbar .back{background:none;border:none;color:var(--text);font-size:22px;padding:4px 8px;cursor:pointer}.iconbtn{background:var(--surface2);border:1px solid var(--border);color:var(--text);width:38px;height:38px;border-radius:10px;font-size:18px;display:grid;place-items:center;cursor:pointer}.content{padding:14px}.search{position:relative;margin-bottom:12px}.search input{width:100%;padding:12px 14px 12px 40px;font-size:15px;background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius)}.search:before{content:"🔍";position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:15px;opacity:.7}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;-webkit-overflow-scrolling:touch}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;background:var(--surface);border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.chip.chip-add{color:var(--primary);border-style:dashed}.eqcard{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:10px;cursor:pointer}.eqcard:active{background:var(--surface2)}.eqthumb{width:54px;height:54px;border-radius:10px;flex:0 0 auto;object-fit:cover;background:var(--surface2);display:grid;place-items:center;font-size:22px;overflow:hidden}.eqinfo{flex:1;min-width:0}.eqinfo .name{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eqinfo .meta{color:var(--muted);font-size:12.5px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 7px;border-radius:6px;background:#2b3340;color:#adbac7;white-space:nowrap}.badge.기계{background:#1c3a5e;color:#79c0ff}.badge.소방{background:#4a1e1e;color:#ff9b95}.badge.전기{background:#4a3a12;color:#f0d264}.badge.기타{background:#2d2340;color:#d2a8ff}.badge.헬스{background:#123a2e;color:#56d4a0}.badge.골프{background:#143a34;color:#4fd6c4}.dday{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;padding:3px 8px;border-radius:999px;white-space:nowrap}.dday.ok{background:#123a2e;color:#56d4a0}.dday.soon{background:#4a3a12;color:#f0d264}.dday.over{background:#4a1e1e;color:#ff9b95}.eqcard .eqright{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto}.inspect-banner{display:flex;align-items:center;gap:10px;width:100%;background:#3a2412;border:1px solid #6b4a1e;color:#f0c877;padding:11px 14px;border-radius:12px;margin-bottom:12px;font-weight:700;font-size:14px;cursor:pointer}.inspect-banner.active{background:var(--primary-dim);border-color:var(--primary);color:#fff}.inspect-banner .arrow{margin-left:auto;opacity:.7}.inspect-box{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.inspect-tile{background:var(--surface2);border-radius:10px;padding:10px 12px}.inspect-tile .k{font-size:11px;color:var(--muted)}.inspect-tile .v{font-size:15px;font-weight:700;margin-top:3px}.inspect-tile.big{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between}.inspect-tile .v.ok{color:#56d4a0}.inspect-tile .v.soon{color:#f0d264}.inspect-tile .v.over{color:#ff9b95}.ledger-tabs{display:flex;gap:8px;margin-bottom:14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:5px}.ledger-tab{flex:1;text-align:center;padding:10px 6px;border-radius:9px;font-size:14px;font-weight:700;color:var(--muted);cursor:pointer;border:none;background:none}.ledger-tab.active{background:var(--primary);color:#fff}.section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.section h2{font-size:13px;color:var(--muted);margin:0 0 12px;text-transform:none;letter-spacing:.3px;font-weight:700}.kv{display:grid;grid-template-columns:96px 1fr;gap:8px 12px;font-size:14px}.kv .k{color:var(--muted)}.kv .v{color:var(--text);word-break:break-word}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.spec-item{background:var(--surface2);border-radius:8px;padding:8px 10px}.spec-item .k{font-size:11px;color:var(--muted)}.spec-item .v{font-size:14px;font-weight:600;margin-top:2px}.photos{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.photos img{width:96px;height:96px;object-fit:cover;border-radius:10px;flex:0 0 auto;border:1px solid var(--border)}.photo-add{width:96px;height:96px;border-radius:10px;border:2px dashed var(--border);background:var(--surface2);display:grid;place-items:center;font-size:13px;color:var(--muted);flex:0 0 auto;cursor:pointer;gap:2px}.photo-wrap{position:relative;flex:0 0 auto}.photo-wrap .del{position:absolute;top:4px;right:4px;background:#000000b3;border:none;color:#fff;width:22px;height:22px;border-radius:50%;font-size:13px;cursor:pointer}.hist-item{border-left:3px solid var(--primary);padding:6px 0 6px 12px;margin-bottom:12px}.hist-item .date{font-size:12px;color:var(--muted)}.hist-item .desc{font-weight:600;margin:2px 0}.hist-item .sub{font-size:13px;color:var(--muted)}.hist-item .amt{color:var(--ok);font-weight:700}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:6px;font-weight:600}.field input,.field textarea,.field select{width:100%;padding:11px 12px;font-size:15px;background:var(--surface2);border:1px solid var(--border);color:var(--text);border-radius:10px;font-family:inherit}.field textarea{min-height:72px;resize:vertical}.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.spec-row{display:grid;grid-template-columns:1fr 1.4fr auto;gap:8px;margin-bottom:8px;align-items:center}.spec-row .rm{background:var(--surface2);border:1px solid var(--border);color:var(--danger);width:38px;height:40px;border-radius:10px;font-size:18px;cursor:pointer}.checks{display:flex;gap:8px}.check{flex:1;text-align:center;padding:10px;border-radius:10px;font-size:13px;font-weight:600;background:var(--surface2);border:1px solid var(--border);color:var(--muted);cursor:pointer}.check.on{background:var(--primary-dim);border-color:var(--primary);color:#fff}.btn{display:block;width:100%;padding:14px;font-size:15px;font-weight:700;border-radius:var(--radius);border:none;cursor:pointer;text-align:center}.btn.primary{background:var(--primary);color:#fff}.btn.ghost{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}.btn-row{display:flex;gap:10px}.btn-row .btn{flex:1}.addbtn{background:none;border:1px dashed var(--border);color:var(--primary);width:100%;padding:11px;border-radius:10px;font-weight:600;cursor:pointer}.bottombar{position:fixed;left:0;right:0;bottom:0;z-index:30;max-width:640px;margin:0 auto;background:#0d1117f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;padding:8px 14px calc(8px + var(--safe-bottom));gap:10px}.bottombar .btn{flex:1;padding:12px}.fab{position:fixed;right:18px;bottom:calc(18px + var(--safe-bottom));z-index:30;width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;border:none;font-size:28px;box-shadow:0 4px 16px #1f6feb80;cursor:pointer}.empty{text-align:center;color:var(--muted);padding:60px 20px}.empty .big{font-size:44px;margin-bottom:10px}.muted{color:var(--muted)}.count{font-size:12.5px;color:var(--muted);margin-bottom:8px}.scan-box{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:100;display:flex;flex-direction:column}#qr-reader{width:100%}.scan-hint{color:#fff;text-align:center;padding:20px}.toast{position:fixed;bottom:calc(90px + var(--safe-bottom));left:50%;transform:translate(-50%);background:var(--surface2);color:var(--text);border:1px solid var(--border);padding:10px 18px;border-radius:999px;font-size:14px;z-index:200;box-shadow:0 4px 16px #0006}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f0;z-index:150;display:grid;place-items:center}.lightbox img{max-width:96vw;max-height:82vh;object-fit:contain;border-radius:6px}.lb-close{position:fixed;top:calc(12px + var(--safe-top));right:16px;background:#ffffff26;border:none;color:#fff;width:42px;height:42px;border-radius:50%;font-size:26px;cursor:pointer}.lb-nav{position:fixed;top:50%;transform:translateY(-50%);background:#ffffff24;border:none;color:#fff;width:46px;height:66px;font-size:32px;cursor:pointer}.lb-nav:disabled{opacity:.25}.lb-prev{left:8px;border-radius:0 10px 10px 0}.lb-next{right:8px;border-radius:10px 0 0 10px}.lb-count{position:fixed;bottom:calc(20px + var(--safe-bottom));left:50%;transform:translate(-50%);color:#fff;background:#00000080;padding:6px 14px;border-radius:999px;font-size:14px}.main-badge{position:absolute;top:4px;left:4px;background:var(--primary);color:#fff;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px}.photo-wrap .setmain{position:absolute;bottom:4px;left:4px;background:#000000b3;border:none;color:#fff;font-size:10px;padding:3px 7px;border-radius:6px;cursor:pointer}.detail-photo{position:relative;flex:0 0 auto}.detail-photo .main-badge{z-index:1}.print-root{background:#555;min-height:100vh;padding-bottom:40px}.print-toolbar{position:sticky;top:0;z-index:5;display:flex;gap:10px;padding:calc(10px + var(--safe-top)) 14px 10px;background:#0d1117f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.print-toolbar .btn{flex:1}.card-sheet{background:#fff;color:#000;width:210mm;max-width:100%;margin:16px auto;padding:14mm 12mm;box-sizing:border-box;font-size:12px;box-shadow:0 4px 20px #0006}.card-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px}.card-title{font-size:22px;font-weight:800;letter-spacing:2px}.card-checks{display:flex;flex-direction:column;gap:3px;font-size:12px;border:1px solid #000;padding:6px 10px}.card-table{width:100%;border-collapse:collapse;margin-bottom:12px;table-layout:fixed}.card-table th,.card-table td{border:1px solid #000;padding:5px 7px;vertical-align:middle;word-break:break-all}.card-table th{background:#eee;font-weight:700;width:14%;text-align:center;white-space:nowrap}.card-table td{text-align:left}.photo-cell{width:30mm;text-align:center;vertical-align:middle;padding:2px}.photo-cell img{width:100%;max-height:45mm;object-fit:contain}.photo-ph{color:#999;letter-spacing:4px}.sec-label{font-weight:800;font-size:13px;text-align:center;background:#333;color:#fff;padding:4px;margin-bottom:0;letter-spacing:3px}.spec-table th{width:14%}.spec-table td{width:36%}.hist-table th{background:#333;color:#fff;text-align:center}.hist-table td{height:26px;text-align:center;font-size:11px}.hist-table td.tleft{text-align:left}.hist-table td.tright{text-align:right}.card-footer{text-align:center;color:#888;font-size:10px;margin-top:12px}@media print{@page{size:A4 portrait;margin:0}body{background:#fff}#root{max-width:none}.no-print,.print-toolbar{display:none!important}.print-root{background:#fff;padding:0}.card-sheet{box-shadow:none;margin:0;width:100%;padding:10mm}.card-footer{color:#888}}.qr-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:100;display:grid;place-items:center;padding:20px}.qr-card{background:#fff;padding:24px;border-radius:16px;text-align:center;color:#111}.qr-card .mgmt{font-weight:700;margin-top:12px;font-size:16px}.qr-card .nm{color:#555;font-size:14px}
