:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;background:#f5f7fb}*{box-sizing:border-box}#root{max-width:960px;margin:0 auto;padding:2.5rem 1.5rem 4rem;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#1f2933}body{background:#f5f7fb}.page{display:flex;flex-direction:column;gap:2.5rem}.header h1{margin-bottom:.5rem;font-size:2rem}.header p{margin:0;color:#52606d}.action-bar{display:flex;gap:.75rem;margin-top:1.25rem;margin-bottom:.75rem;flex-wrap:wrap}.action-button{padding:.55rem 1.1rem;border-radius:999px;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.action-button.secondary{background:#0ea5e9}.action-button.tertiary{background:#f1f5f9;color:#1f2937;border:1px solid #cbd5e1}.action-button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #6366f133}.action-button.secondary:hover{box-shadow:0 10px 18px #0ea5e940}.action-button.tertiary:hover{background:#e2e8f0;box-shadow:none}.readonly-badge{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.4rem;padding:.35rem .75rem;border-radius:999px;background:#fde68a;color:#92400e;font-weight:600}.user-section,.form-section{background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 10px 30px #0f172a14}.readonly-info{margin:-1rem 0 0;padding:.9rem 1rem;border-radius:12px;background:#e2e8f0;color:#1f2937;font-weight:500}.user-toggle-wrap{display:flex;justify-content:flex-end}.user-toggle{padding:.5rem .9rem;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.user-toggle:hover{background:#e0e7ff;color:#3730a3;box-shadow:0 6px 18px #6366f126}.user-section h2{margin:0 0 .8rem}.user-form{display:flex;gap:.75rem;flex-wrap:wrap}.user-form input{flex:1;padding:.6rem .8rem;border-radius:10px;border:1px solid #d2d6dc;font-size:1rem;background:#f9fafb}.user-form button{padding:.65rem 1.2rem;border-radius:10px;border:none;background:#0ea5e9;color:#fff;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;flex-shrink:0}.user-form button:disabled{background:#94a3b8;cursor:not-allowed}.user-form button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 10px 20px #0ea5e940}.user-hint{margin-top:.75rem;color:#64748b;font-size:.95rem}.user-list{list-style:none;padding:0;margin:1.2rem 0 0;display:flex;flex-direction:column;gap:.6rem}.user-list li{display:grid;grid-template-columns:1fr;align-items:center;padding:.75rem .9rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;gap:.75rem}.user-list span{font-weight:600;color:#1f2937}.user-list .user-empty{justify-content:center;color:#64748b;font-weight:500}.user-settings{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.user-settings label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;color:#334155}.user-settings input{width:120px;padding:.45rem .6rem;border-radius:8px;border:1px solid #cbd5e1;background:#f8fafc}.weight-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem;align-items:end}.weight-form label{display:flex;flex-direction:column;gap:.4rem;font-weight:600;color:#334155}.weight-form select,.weight-form input{padding:.6rem .8rem;border-radius:10px;border:1px solid #d2d6dc;font-size:1rem;background:#f9fafb}.weight-form select:disabled,.weight-form input:disabled{background:#e5e7eb;cursor:not-allowed}.weight-form button{padding:.75rem 1rem;border-radius:10px;border:none;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.weight-form button:disabled{background:#94a3b8;cursor:not-allowed}.weight-form button:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 10px 20px #6366f140}.error{margin-top:1rem;color:#dc2626}.global-error{margin:-.5rem 0 0;text-align:center}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.stat-card{padding:1.2rem;border-radius:16px;background:#fff;box-shadow:0 10px 24px #0f172a12;display:flex;flex-direction:column;gap:.35rem}.stat-card header h3{margin:0 0 .35rem;font-size:1.1rem}.stat-card p{margin:0;display:flex;align-items:baseline;gap:.5rem;color:#334155}.stat-card p span{font-weight:600;color:#475569;min-width:72px}.stat-card p strong{font-size:1.05rem}.stat-card p em{font-style:normal}.stat-card small{color:#64748b}.stat-card-warning{border:1px solid #fbbf24;box-shadow:0 12px 28px #f59e0b33}.stat-warning-text{margin-top:.25rem;color:#b91c1c;font-weight:600}.stat-empty{margin:0;color:#94a3b8}.form-hint{margin-top:1rem;color:#6b7280}.note-field{grid-column:1 / -1}.note-field textarea{padding:.6rem .8rem;border-radius:10px;border:1px solid #d2d6dc;font-family:inherit;resize:vertical;min-height:80px;background:#f9fafb}.photo-field{grid-column:1 / -1;display:flex;flex-direction:column;gap:.5rem}.photo-field input[type=file]{margin-top:.3rem}.photo-info{margin:0;font-size:.95rem;color:#475569}.photo-existing{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.inline-checkbox{display:flex;align-items:center;gap:.45rem;font-weight:500;color:#475569}.chart-section,.table-section{background:#fff;padding:1.5rem;border-radius:16px;box-shadow:0 10px 30px #0f172a14}.chart-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.chart-section h2,.table-section h2{margin-top:0;margin-bottom:1rem}.chart-subtitle{color:#64748b;font-size:.95rem}.table-section table{width:100%;border-collapse:collapse}.table-section th,.table-section td{padding:.75rem .5rem;text-align:left;border-bottom:1px solid #e5e7eb}.table-section th:last-child,.table-section td:last-child{text-align:center}.table-section tbody tr:hover{background:#f8fafc}.table-section td.note-cell{max-width:280px;white-space:pre-wrap;word-break:break-word}.photo-link{color:#2563eb;font-weight:600}.photo-link:hover{text-decoration:underline}.delete-button{padding:.4rem .75rem;border-radius:8px;border:1px solid #f87171;background:#fee2e2;color:#b91c1c;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.delete-button:hover{background:#fca5a5;color:#7f1d1d}.user-delete-button{padding:.35rem .7rem}.delta-positive{color:#dc2626;font-weight:600}.delta-negative{color:#059669;font-weight:600}.delta-neutral{color:#475569;font-weight:500}@media(max-width:640px){#root{padding:1.5rem 1.25rem 3rem}.header h1{font-size:1.6rem}.stats-section{grid-template-columns:1fr}.note-field,.photo-field{grid-column:1}}
