:root{font-family:Pretendard,Noto Sans KR,system-ui,sans-serif;line-height:1.5;color:#0f172a;background:#f1f5f9}*{box-sizing:border-box}body{margin:0}.app-shell{max-width:960px;margin:0 auto;padding:0 1rem 2rem}.app-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 0 .5rem}.app-title{font-size:1.15rem;margin:0}.tab-bar{display:flex;gap:.35rem;margin-bottom:1rem;flex-wrap:wrap}.tab-btn{border:1px solid #cbd5e1;background:#fff;padding:.5rem .85rem;border-radius:8px;cursor:pointer}.tab-btn.active{background:#2563eb;color:#fff;border-color:#2563eb}.card{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 1px 3px #00000014;margin-bottom:1rem}.btn{border:none;border-radius:8px;padding:.5rem .85rem;cursor:pointer;background:#2563eb;color:#fff}.btn.secondary{background:#e2e8f0;color:#334155}.btn.small{padding:.35rem .6rem;font-size:.85rem}.btn.danger{background:#fee2e2;color:#b91c1c}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.75rem}.field input,.field select,.field textarea{border:1px solid #cbd5e1;border-radius:8px;padding:.45rem .6rem}.grid-filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.65rem;align-items:end}.breadcrumbs{margin-bottom:.75rem;font-size:.95rem}.crumb{background:none;border:none;color:#2563eb;cursor:pointer;padding:0;font:inherit}.folder-create{display:flex;gap:.5rem;margin-bottom:.75rem}.folder-create input{flex:1;border:1px solid #cbd5e1;border-radius:8px;padding:.45rem}.dir-list{list-style:none;padding:0;margin:0}.dir-item{width:100%;text-align:left;padding:.65rem .75rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;margin-bottom:.4rem;cursor:pointer;font:inherit}.dir-item.folder{background:#f8fafc}.meta{color:#64748b;font-size:.9rem}.as-content{margin:.5rem 0 0;white-space:pre-wrap;color:#334155;font-size:.95rem}.phase-tabs,.status-bar{display:flex;flex-wrap:wrap;gap:.4rem;margin:.75rem 0}.phase-tab,.status-pill{padding:.4rem .75rem;border-radius:999px;border:1px solid #cbd5e1;background:#fff;cursor:pointer;font:inherit}.phase-tab.active,.status-pill.active{background:#2563eb;color:#fff;border-color:#2563eb}.phase-tab.has-photos.phase-before:not(.active){background:#fef3c7;border-color:#f59e0b;color:#92400e;font-weight:600}.phase-tab.has-photos.phase-during:not(.active){background:#dbeafe;border-color:#3b82f6;color:#1e40af;font-weight:600}.phase-tab.has-photos.phase-after:not(.active){background:#dcfce7;border-color:#22c55e;color:#166534;font-weight:600}.phase-tab.active.has-photos{box-shadow:0 0 0 2px #fffc,0 0 0 4px #2563eb}.phase-tab.has-photos.as-photo-before_pickup:not(.active){background:#fef3c7;border-color:#f59e0b;color:#92400e;font-weight:600}.phase-tab.has-photos.as-photo-after_pickup:not(.active){background:#ffedd5;border-color:#f97316;color:#9a3412;font-weight:600}.phase-tab.has-photos.as-photo-item:not(.active){background:#ede9fe;border-color:#8b5cf6;color:#5b21b6;font-weight:600}.phase-tab.has-photos.as-photo-installed:not(.active){background:#dcfce7;border-color:#22c55e;color:#166534;font-weight:600}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.65rem;margin-top:.75rem}.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid #e2e8f0}.gallery-item{position:relative}.toolbar{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.job-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.table-scroll{overflow-x:auto}.job-table th,.job-table td{border-bottom:1px solid #e2e8f0;padding:.55rem;text-align:left;font-size:.92rem}.job-table .cell-ellipsis{max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal{max-width:420px;width:90%}.link-btn{background:none;border:none;color:#2563eb;cursor:pointer;text-decoration:underline;padding:0;font:inherit}.empty{color:#94a3b8}.progress-text{color:#2563eb;font-size:.9rem}.back-bar{margin:-.25rem 0 1rem;padding:.65rem .75rem;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 1px 2px #0000000f}.back-btn{display:inline-flex;align-items:center;gap:.35rem;border:none;background:#eff6ff;color:#1d4ed8;font:inherit;font-weight:600;font-size:1rem;padding:.55rem .85rem;border-radius:8px;cursor:pointer}.back-btn:hover{background:#dbeafe}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.detail-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem}.section-block{margin:1.25rem 0;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:12px}.section-title{margin:0 0 .5rem;font-size:.95rem;color:#475569}.section-hint{margin:0 0 .75rem;font-size:.85rem;color:#94a3b8}.status-badge{display:inline-block;padding:.25rem .65rem;border-radius:999px;font-size:.82rem;font-weight:600;white-space:nowrap}.status-badge.large{font-size:.9rem;padding:.35rem .85rem}.status-pickup,.status-pill-pickup.active{background:#fef3c7;color:#b45309;border-color:#fcd34d}.status-repairing,.status-pill-repairing.active{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.status-repaired,.status-pill-repaired.active{background:#dcfce7;color:#15803d;border-color:#86efac}.status-installed,.status-pill-installed.active{background:#ede9fe;color:#6d28d9;border-color:#c4b5fd}.status-pill-pickup:not(.active){border-color:#fcd34d;color:#b45309}.status-pill-repairing:not(.active){border-color:#93c5fd;color:#1d4ed8}.status-pill-repaired:not(.active){border-color:#86efac;color:#15803d}.status-pill-installed:not(.active){border-color:#c4b5fd;color:#6d28d9}.dir-row{display:flex;gap:.4rem;align-items:stretch;margin-bottom:.4rem}.dir-row .dir-item{margin-bottom:0;flex:1}.dir-action{flex-shrink:0;align-self:center}.gallery-delete{position:absolute;bottom:6px;right:6px;z-index:2;opacity:.95;box-shadow:0 1px 4px #00000040}.catalog-link-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.catalog-link-label{flex:1;min-width:140px;font-size:.95rem}.catalog-picker{max-width:480px}.picker-current{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem;padding:.65rem;background:#f8fafc;border-radius:8px}.picker-list{max-height:280px;overflow-y:auto}.product-list{display:flex;flex-direction:column;gap:.65rem}.product-row{margin-bottom:0}.modal-wide{max-width:520px}
