/* 장비·비품: 공용 표의 폰 변환 규칙보다 구체적으로 카드 배치를 지정한다. */
#global-assets { color: var(--color-slate-700, #334155); }
.assets-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; padding:0 0 24px; margin-bottom:0; }
.assets-title h2 { font-size:24px; line-height:1.3; font-weight:800; color:#1e293b; margin:0 0 6px; }
.assets-title p { font-size:var(--fs-base); color:#64748b; margin:0; }
.assets-tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.assets-tools .btn, .assets-empty .btn { min-height:44px; }
.assets-tools [data-action="asset-create"] { padding:10px 24px; margin-left:4px; }
.assets-filters { display:flex; flex-wrap:wrap; gap:10px; margin:20px 0; }
.assets-filters input { flex:1 1 280px; }
.assets-filters input, .assets-filters select, .assets-form input, .assets-form select, .assets-form textarea { font-size:16px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:8px; background:white; min-width:0; }
.assets-filters input:focus, .assets-filters select:focus, .assets-form :focus { outline:2px solid #6366f1; outline-offset:2px; }
#global-assets button:focus-visible, #global-assets summary:focus-visible { outline:2px solid #2563eb; outline-offset:3px; }
.assets-count { margin:12px 0; font-size:var(--fs-base); color:#64748b; }
.assets-list-heading { display:flex; align-items:baseline; gap:10px; padding:0 0 12px; }
.assets-list-heading h3 { font-size:var(--fs-base); font-weight:700; color:#334155; margin:0; }
.assets-list-heading .assets-count { margin:0; }
.assets-notice { padding:20px 16px; text-align:center; background:white; border-radius:12px; }
.assets-error { color:#b91c1c; margin-top:12px; }
#global-assets .assets-table { width:100%; border-collapse:collapse; background:white; table-layout:auto; font-size:var(--fs-base); }
#global-assets .assets-table th, #global-assets .assets-table td { padding:16px; border-bottom:1px solid #e2e8f0; text-align:left; vertical-align:middle; overflow-wrap:anywhere; }
#global-assets .assets-table th { background:#f8fafc; color:#64748b; font-size:var(--fs-meta); font-weight:600; padding-top:12px; padding-bottom:12px; white-space:nowrap; }
#global-assets .assets-table tbody tr:last-child td { border-bottom:0; }
#global-assets .assets-table tbody tr:hover { background:#fafbff; }
#global-assets .assets-table td:last-child { white-space:nowrap; }
#global-assets .assets-table-wrap { overflow-x:auto; border:1px solid #e2e8f0; border-radius:14px; }
#global-assets .assets-inventory { min-width:820px; }
#global-assets .assets-inventory .assets-identity-cell { width:40%; min-width:260px; white-space:normal; }
.assets-identity { display:flex; align-items:center; gap:14px; min-width:0; }
.assets-identity-text { min-width:0; line-height:1.5; }
.assets-name { display:block; font-size:var(--fs-base); font-weight:700; color:#1e293b; overflow-wrap:anywhere; word-break:keep-all; }
.assets-secondary { display:block; font-size:var(--fs-meta); color:#64748b; line-height:1.5; margin-top:4px; overflow-wrap:anywhere; }
.assets-cell-main { display:block; line-height:1.5; }
.assets-list-photo { width:64px; min-width:64px; min-height:64px; }
.assets-list-photo .assets-thumb { width:64px; height:64px; margin:0; border:1px solid #e2e8f0; object-fit:cover; }
.assets-photo-placeholder { display:flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:10px; background:#f1f5f9; border:1px solid #e2e8f0; color:#94a3b8; font-size:var(--fs-meta); }
.assets-quantity { font-variant-numeric:tabular-nums; font-weight:600; }
.assets-status { display:inline-block; padding:5px 9px; border-radius:6px; font-size:var(--fs-meta); font-weight:600; white-space:nowrap; }
.assets-status-active { color:#047857; background:#ecfdf5; }
.assets-status-repair { color:#a16207; background:#fffbeb; }
.assets-status-lost { color:#b91c1c; background:#fef2f2; }
.assets-status-retired { color:#64748b; background:#f1f5f9; }
.assets-table .btn { min-height:44px; margin:0 2px; }
.assets-row-actions [data-action="asset-delete"] { border-color:transparent; background:transparent; color:#64748b; }
.assets-row-actions [data-action="asset-delete"]:hover { background:#fef2f2; color:#b91c1c; }
.assets-purchase-info { font-variant-numeric:tabular-nums; }
.assets-empty { background:white; border:1px solid #e2e8f0; border-radius:14px; padding:64px 24px; text-align:center; }
.assets-empty h3 { color:#334155; font-size:20px; font-weight:700; margin:0 0 10px; }
.assets-empty p { font-size:var(--fs-base); color:#64748b; margin:0 0 22px; line-height:1.6; }
.assets-empty .assets-empty-hint { margin:16px 0 0; font-size:var(--fs-meta); }
.assets-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.assets-form label { display:flex; flex-direction:column; gap:6px; font-size:var(--fs-base); }
.assets-form textarea { min-height:90px; }
@media (min-width:769px) and (max-width:900px) {
    #global-assets .assets-table { display:table !important; }
    #global-assets .assets-table thead { display:table-header-group !important; }
    #global-assets .assets-table tbody { display:table-row-group !important; }
    #global-assets .assets-table tr { display:table-row !important; }
    #global-assets .assets-table th, #global-assets .assets-table td { display:table-cell !important; }
    .assets-results { overflow-x:auto; }
}
@media (max-width:768px) {
    #global-assets .assets-table, #global-assets .assets-table tbody { display:block !important; width:100%; }
    #global-assets .assets-table thead { display:none !important; }
    #global-assets .assets-table tr { display:block !important; width:100%; margin-bottom:14px; padding:8px; border:1px solid #e2e8f0; border-radius:12px; }
    #global-assets .assets-table td { display:grid !important; grid-template-columns:80px minmax(0,1fr); gap:10px; width:auto !important; white-space:normal !important; overflow-wrap:anywhere; }
    #global-assets .assets-table td::before { content:attr(data-label); font-weight:600; color:#64748b; }
    #global-assets .assets-table td:last-child { display:flex !important; flex-wrap:wrap; }
    .assets-form { grid-template-columns:1fr; }
    .assets-filters input { flex-basis:100%; }
    .assets-filters select { flex:1; }
}

.assets-header .btn, .assets-table .btn { min-height:44px; }


.assets-purchases { margin-bottom:0; padding:2px 16px; border:1px solid #dbeafe; border-radius:10px; background:#eff6ff; }
.assets-purchases-empty { border-color:#e2e8f0; background:transparent; color:#64748b; }
.assets-purchases[open] { padding-bottom:14px; }
.assets-purchases summary { cursor:pointer; font-weight:700; font-size:var(--fs-base); min-height:44px; display:list-item; align-content:center; }
.assets-purchase-controls { display:flex; flex-wrap:wrap; gap:16px; margin-top:12px; }
.assets-purchase-controls label { display:flex; align-items:center; gap:8px; min-height:44px; font-size:var(--fs-base); }
.assets-purchase-controls input { width:20px; height:20px; }
.assets-purchases td > span + .btn { margin-left:8px; }


.assets-thumb { width:56px; height:56px; object-fit:cover; border-radius:8px; display:block; margin-top:6px; }
.assets-photos { margin-top:24px; }
.assets-photos h4 { font-size:var(--fs-base); font-weight:700; margin-bottom:12px; }
.assets-photo-grid { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:12px; }
.assets-photo { width:140px; padding:8px; border:1px solid #cbd5e1; border-radius:12px; overflow-wrap:anywhere; }
.assets-photo .assets-thumb { width:122px; height:110px; }
.assets-photos .btn { min-height:44px; }
.assets-history { margin-top:24px; word-break:keep-all; overflow-wrap:anywhere; }
.assets-history h4 { font-size:var(--fs-base); font-weight:700; }
.assets-history p { margin:12px 0; line-height:1.6; }
.assets-history .btn { min-height:44px; }
.assets-photo-hint { white-space:normal; font-size:var(--fs-meta); }
.assets-import { overflow-x:auto; max-height:60vh; }
.assets-import-table { border-collapse:collapse; width:100%; font-size:var(--fs-base); }
.assets-import-table th, .assets-import-table td { padding:12px; border-bottom:1px solid #e2e8f0; text-align:left; min-width:100px; overflow-wrap:anywhere; }
.assets-import-table th { background:#eef2ff; }
.assets-import-table input { width:24px; height:24px; font-size:16px; }
@media (max-width:768px) {
    .assets-import .assets-import-table, .assets-import .assets-import-table tbody { display:block !important; width:100%; }
    .assets-import .assets-import-table thead { display:none !important; }
    .assets-import .assets-import-table tr { display:block !important; width:100%; padding:8px; margin-bottom:14px; border:1px solid #cbd5e1; border-radius:12px; }
    .assets-import .assets-import-table td { display:grid !important; grid-template-columns:80px minmax(0,1fr); gap:10px; width:auto !important; white-space:normal !important; }
    .assets-import .assets-import-table td::before { content:attr(data-label); font-weight:600; color:#64748b; }
}

/* 목록은 폰에서 장비 정보가 먼저 보이는 카드로 전환한다. */
@media (max-width:768px) {
    .assets-header { gap:16px; padding-bottom:18px; }
    .assets-title { width:100%; }
    .assets-title h2 { font-size:22px; }
    .assets-tools { width:100%; }
    .assets-tools .btn { flex:1; padding:10px 8px; font-size:var(--fs-meta); }
    .assets-tools [data-action="asset-create"] { margin-left:0; flex:0 0 72px; font-size:var(--fs-base); }
    .assets-purchases { padding:2px 12px; }
    .assets-filters { margin:16px 0; gap:8px; }
    .assets-filters select { width:0; }
    #global-assets .assets-inventory { min-width:0; background:transparent; }
    #global-assets .assets-inventory tbody { display:grid !important; gap:12px; }
    #global-assets .assets-inventory tr { display:grid !important; grid-template-columns:1fr 1fr; padding:16px; gap:12px 16px; margin:0; background:white; }
    #global-assets .assets-inventory td { border:0; padding:0; display:block !important; min-width:0; }
    #global-assets .assets-inventory td::before { display:block; font-size:var(--fs-meta); font-weight:400; margin-bottom:5px; }
    #global-assets .assets-inventory .assets-identity-cell { grid-column:1 / -1; width:100%; min-width:0; padding-bottom:14px; border-bottom:1px solid #e2e8f0; }
    #global-assets .assets-inventory .assets-identity-cell::before, #global-assets .assets-inventory .assets-row-actions::before { display:none; }
    #global-assets .assets-inventory .assets-row-actions { grid-column:1 / -1; display:flex !important; justify-content:flex-end; border-top:1px solid #e2e8f0; padding-top:10px; }
    #global-assets .assets-table-wrap:has(.assets-inventory) { border:0; border-radius:0; overflow:visible; }
    .assets-empty { padding:44px 20px; }
}

/* 등록·수정 창: 목록과 같은 밝은 구획·정보 위계. 공용 모달의 다른 화면에는 적용하지 않는다. */
.os-modal:has(.assets-editor-body) { max-height:90vh; max-height:90dvh; }
.os-modal:has(.assets-editor-body) .os-modal-header { background:white; color:#1e293b; border-bottom:1px solid #e2e8f0; padding:18px 24px; }
.os-modal:has(.assets-editor-body) .os-modal-header h3 { font-size:20px; font-weight:800; line-height:1.4; }
.os-modal:has(.assets-editor-body) .os-modal-close { color:#64748b; min-width:44px; min-height:44px; }
.os-modal:has(.assets-editor-body) .os-modal-close:hover { background:#f1f5f9; color:#1e293b; }
.assets-editor-body { background:#f8fafc; min-height:0; overscroll-behavior:contain; }
.assets-editor-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }
.assets-editor-section, .assets-editor-attachments > section { background:white; border:1px solid #e2e8f0; border-radius:12px; padding:20px; min-width:0; }
.assets-editor-body h4 { font-size:16px; color:#1e293b; font-weight:750; margin:0 0 6px; }
.assets-section-help, .assets-field-help { color:#64748b; font-size:var(--fs-meta); line-height:1.6; margin:0 0 16px; word-break:keep-all; overflow-wrap:anywhere; }
.assets-field-help { margin:12px 0 0; }
.assets-editor-purchase { grid-column:1 / -1; }
.assets-editor-purchase .assets-form { grid-template-columns:repeat(4,minmax(0,1fr)); }
.assets-editor-section .assets-form { gap:14px 12px; }
.assets-editor-section label { color:#475569; font-size:var(--fs-base); font-weight:600; min-width:0; }
.assets-editor-section :is(input, select, textarea) { width:100%; min-height:44px; font-weight:400; color:#1e293b; }
.assets-editor-section :is(input, textarea)::placeholder { color:#94a3b8; }
.assets-editor-section :is(input, select, textarea):disabled { color:#64748b; background:#f1f5f9; cursor:not-allowed; opacity:1; }
.assets-editor-section [data-asset-field="name"], .assets-editor-section [data-asset-field="location"], .assets-editor-section [data-asset-field="memo"] { grid-column:1 / -1; }
.assets-editor-section textarea { min-height:78px; resize:vertical; }
.assets-editor-body > .assets-error:empty { display:none; }
.assets-editor-body > .assets-error:not(:empty) { background:#fef2f2; border:1px solid #fecaca; border-radius:10px; padding:12px 16px; margin:16px 0; }
.assets-editor-attachments { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; margin-top:16px; }
.assets-editor-attachments .assets-photos, .assets-editor-attachments .assets-history { margin:0; }
.assets-editor-attachments .assets-photo-guide { grid-column:1 / -1; }
.assets-photo-guide .assets-section-help { margin-bottom:0; }
.assets-editor-attachments .assets-photo-grid { gap:10px; }
.assets-editor-attachments .assets-photo { width:calc(50% - 5px); padding:6px; border-color:#e2e8f0; border-radius:10px; }
.assets-editor-attachments .assets-photo .assets-thumb { width:100%; height:120px; margin:0 0 6px; object-fit:contain; background:#f8fafc; }
.assets-editor-attachments .assets-photo .btn { width:100%; margin:0; }
.assets-editor-attachments .assets-photo-grid > p { width:100%; border:1px dashed #cbd5e1; border-radius:10px; padding:24px 12px; color:#94a3b8; text-align:center; font-size:var(--fs-meta); }
.assets-editor-attachments .assets-history p.assets-section-help { margin:0 0 16px; }
.assets-history-list { max-height:280px; overflow-y:auto; overscroll-behavior:contain; }
.assets-history-list p { font-size:var(--fs-meta); margin:0 0 14px; padding-left:12px; border-left:2px solid #dbeafe; color:#475569; }
.assets-editor-footer { background:white; }
.assets-editor-footer .btn { min-height:44px; padding:10px 24px; }
.os-modal:has(.assets-editor-body) button:focus-visible { outline:2px solid #2563eb; outline-offset:2px; }
@media (max-width:768px) {
    .os-modal:has(.assets-editor-body) .os-modal-header h3 { font-size:18px !important; }
    .assets-editor-grid, .assets-editor-attachments { grid-template-columns:minmax(0,1fr); gap:12px; }
    .assets-editor-section, .assets-editor-attachments > section { padding:16px; }
    .assets-editor-section .assets-form, .assets-editor-purchase .assets-form { grid-template-columns:minmax(0,1fr); }
    .assets-editor-body .assets-section-help { margin-bottom:14px; }
    .assets-editor-footer { padding-bottom:max(12px, env(safe-area-inset-bottom)) !important; }
    .assets-editor-footer .btn { flex:1; }
    .assets-editor-attachments { margin-top:12px; }
}

/* 같은 업무 탭 안에서 읽는 직원용 안내. */
.assets-navigation { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:16px 0; }
.assets-navigation .inventory-tabs { margin:0; }
.assets-navigation > .btn, .assets-navigation .inventory-tabs > button { min-height:44px; }
.assets-guide { font-size:var(--fs-base); line-height:1.7; word-break:keep-all; overflow-wrap:anywhere; }
.assets-guide > p { margin:0 0 16px; color:#475569; }
.assets-guide .assets-guide-flow, .assets-guide .assets-guide-reminder { background:#eff6ff; border-radius:12px; padding:16px; color:#1e40af; }
.assets-guide-step { border:1px solid #e2e8f0; border-radius:12px; margin-bottom:12px; padding:0 16px; }
.assets-guide-step summary { min-height:52px; padding:12px 0; cursor:pointer; color:#1e293b; font-weight:700; }
.assets-guide-role { display:inline-block; margin-left:10px; color:#64748b; font-size:var(--fs-meta); font-weight:400; }
.assets-guide-step p { margin:0 0 14px; color:#475569; }
.assets-guide-step summary:focus-visible { outline:2px solid #2563eb; outline-offset:3px; border-radius:4px; }
.assets-guide .assets-guide-reminder { margin:16px 0 0; }
.os-modal:has(.assets-guide) .os-modal-footer .btn, .os-modal:has(.assets-guide) .os-modal-close { min-height:44px; min-width:44px; }
@media (max-width:640px) {
    .assets-navigation .inventory-tabs { width:100%; }
    .assets-navigation > .btn { margin-left:auto; }
}

/* A4 라벨 설정: 모바일에서도 입력 글자 크기와 선택 영역을 유지한다. */
.asset-label-settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:16px 0; }
.asset-label-settings label { display:flex; flex-direction:column; gap:6px; }
.asset-label-settings input { width:100%; min-height:44px; font-size:16px; border:1px solid #cbd5e1; border-radius:8px; padding:8px; }
.asset-label-choices { max-height:260px; overflow:auto; border:1px solid #e2e8f0; border-radius:8px; margin-bottom:16px; }
.asset-label-choices label { display:flex; align-items:center; gap:10px; min-height:44px; padding:8px 12px; overflow-wrap:anywhere; }
.asset-label-choices input { flex:none; width:20px; height:20px; }
@media (max-width:480px) { .asset-label-settings { grid-template-columns:1fr; } }
