*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;font-family:Pretendard,Segoe UI,Apple SD Gothic Neo,sans-serif;background:#f5f7fa;color:#1f2937}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#16a34a,#064e3b)}.login-card{width:min(380px,92vw);background:#fff;padding:32px 28px;border-radius:14px;box-shadow:0 18px 40px #064e3b40;display:flex;flex-direction:column;gap:14px}.login-card h1{margin:0;font-size:22px;color:#064e3b}.login-sub{margin:0 0 6px;font-size:13px;color:#6b7280}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#374151;font-weight:500}.login-card input{padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;outline:none;transition:border-color .15s ease}.login-card input:focus{border-color:#16a34a}.login-error{background:#fef2f2;color:#b91c1c;padding:9px 12px;border-radius:8px;font-size:13px}.login-card button{margin-top:4px;padding:11px 14px;background:#16a34a;color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;transition:background .15s ease}.login-card button:hover:not(:disabled){background:#15803d}.login-card button:disabled{background:#9ca3af;cursor:not-allowed}.login-hint{margin:4px 0 0;font-size:12px;color:#6b7280;line-height:1.45}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{background:#064e3b;color:#f0fdf4;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 8px #00000014}.app-header-title{display:flex;align-items:center;gap:10px}.app-header-title h1{margin:0;font-size:18px;font-weight:600}.brand-emoji{font-size:22px}.app-header-user{display:flex;align-items:center;gap:12px}.user-name{font-weight:500;font-size:14px}.user-name-link{cursor:pointer;border-bottom:1px dotted rgba(255,255,255,.4);color:inherit}.user-name-link:hover{border-bottom-color:#fff}.profile-summary{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.profile-summary>div{display:flex;flex-direction:column;gap:4px}.profile-summary dt{font-size:12px;color:#6b7280;font-weight:500}.profile-summary dd{margin:0;font-size:15px;color:#111827;font-weight:600}.user-badge{background:#16a34a;color:#fff;font-size:11px;padding:2px 7px;border-radius:999px}.app-header button{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.2);padding:6px 12px;border-radius:6px;font-size:13px}.app-header button:hover{background:#fff3}.app-main{flex:1;padding:20px 24px 40px;display:flex;flex-direction:column;gap:20px;max-width:1280px;width:100%;margin:0 auto}.loading{text-align:center;color:#6b7280;padding:40px 0}.error-banner{background:#fef2f2;color:#b91c1c;padding:14px 18px;border-radius:8px;border:1px solid #fecaca}.summary-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}@media (max-width: 900px){.summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.summary-cards{grid-template-columns:1fr}}.summary-card{padding:18px 20px;border-radius:12px;background:#fff;box-shadow:0 1px 3px #0000000a;display:flex;flex-direction:column;gap:6px;border-left:4px solid #16a34a}.summary-card.tone-blue{border-left-color:#2563eb}.summary-card.tone-amber{border-left-color:#f59e0b}.summary-card.tone-rose{border-left-color:#dc2626}.summary-card.tone-teal{border-left-color:#0d9488}.summary-card.tone-violet{border-left-color:#7c3aed}.summary-label{font-size:12px;color:#6b7280;font-weight:500}.summary-value{font-size:22px;font-weight:700;color:#111827}.card{background:#fff;border-radius:12px;padding:20px 22px;box-shadow:0 1px 3px #0000000a}.card h2{margin:0 0 14px;font-size:16px;color:#111827}.member-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.member-stat-card{border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;background:#f9fafb}.member-stat-name{font-size:15px;font-weight:600;color:#111827;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed #d1d5db}.member-stat-card dl{margin:0;display:grid;gap:6px}.member-stat-card dl>div{display:flex;justify-content:space-between;font-size:13px}.member-stat-card dt{color:#6b7280}.member-stat-card dd{margin:0;color:#111827;font-weight:500}.member-stat-card dd.pos{color:#16a34a}.member-stat-card dd.neg{color:#dc2626}.table-scroll{overflow-x:auto}.rounds-table,.extras-table{width:100%;border-collapse:collapse;font-size:13px}.rounds-table th,.rounds-table td,.extras-table th,.extras-table td{padding:7px 9px;border-bottom:1px solid #e5e7eb;text-align:center;white-space:nowrap}.rounds-table thead th{background:#f3f4f6;color:#374151;font-weight:600;border-bottom:2px solid #d1d5db}.rounds-table .member-head{background:#064e3b;color:#fff}.rounds-table tbody th{background:#f9fafb;text-align:left;font-weight:500;color:#374151}.rounds-table tbody td.pos{color:#16a34a;font-weight:600}.round-edit-link{color:#047857;text-decoration:none;border-bottom:1px dashed #047857}.round-edit-link:hover{color:#064e3b;border-bottom-style:solid}.card-hint{font-size:12px;font-weight:400;color:#6b7280}.extras-table th{background:#f3f4f6;text-align:left}.extras-table td.num{text-align:right;font-variant-numeric:tabular-nums}.extras-table td.memo{text-align:left;color:#6b7280;font-size:12px;max-width:360px;white-space:normal}.extras-table .extras-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}.extras-table .extras-actions button{padding:4px 10px;font-size:12px;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer}.extras-table .extras-actions button:hover:not(:disabled){background:#f3f4f6}.extras-table .extras-actions button:disabled{opacity:.5;cursor:not-allowed}.extras-table .extras-actions button.danger{color:#b91c1c;border-color:#fca5a5}.extras-table .extras-actions button.danger:hover:not(:disabled){background:#fef2f2}.extras-table tfoot .extras-row-create td,.extras-table .extras-row-editing td{background:#f9fafb}.extras-table tfoot input,.extras-table tfoot select,.extras-table .extras-row-editing input,.extras-table .extras-row-editing select{width:100%;box-sizing:border-box;padding:5px 8px;font-size:13px;border:1px solid #d1d5db;border-radius:6px}.card .hint{margin:4px 0 12px;font-size:12px;color:#6b7280}.chart-wrap{width:100%;overflow-x:auto}.brand-link{display:flex;align-items:center;gap:10px;color:inherit}.app-nav{display:flex;gap:4px;flex:1;justify-content:center}.nav-link{color:#f0fdf4c7;padding:6px 14px;border-radius:6px;font-size:14px;font-weight:500;transition:background .15s ease,color .15s ease}.nav-link:hover{background:#ffffff14;color:#fff}.nav-link.is-active{background:#ffffff29;color:#fff}.page-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-title{margin:6px 0 0;font-size:22px;font-weight:700;color:#111827}.empty{text-align:center;color:#94a3b8;padding:60px 12px;font-size:14px;background:#fff;border-radius:12px;border:1px dashed #cbd5e1}.btn-primary{background:#16a34a;color:#fff;border:none;padding:9px 16px;border-radius:8px;font-size:14px;font-weight:600}.btn-primary:hover:not(:disabled){background:#15803d}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;padding:9px 16px;border-radius:8px;font-size:14px;font-weight:500}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-link{background:transparent;border:none;color:#16a34a;font-size:13px;padding:4px 6px;font-weight:500}.btn-link:hover{text-decoration:underline}.btn-link.danger{color:#b91c1c}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-card{background:#fff;width:min(460px,100%);border-radius:14px;padding:22px 24px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 50px #0f172a4d;max-height:calc(100vh - 32px);overflow-y:auto}.modal-card h2{margin:0 0 4px;font-size:17px;color:#111827}.modal-desc{margin:0;font-size:13px;line-height:1.5;color:#64748b}.modal-desc strong{color:#111827}.modal-card label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:#475569;font-weight:500}.modal-card input,.modal-card textarea,.modal-card select{padding:9px 11px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;outline:none;resize:vertical}.modal-card input:focus,.modal-card textarea:focus,.modal-card select:focus{border-color:#16a34a}.modal-error{background:#fef2f2;color:#b91c1c;padding:8px 11px;border-radius:6px;font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.form-row{display:flex;gap:10px}.flex-1{flex:1}.checkbox-label{flex-direction:row!important;align-items:center;gap:8px!important;font-weight:500}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:#16a34a;padding:0!important}.success-banner{background:#ecfdf5;color:#047857;padding:10px 14px;border-radius:8px;border:1px solid #a7f3d0;font-size:13px}.form-actions{display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #e5e7eb;padding-top:14px}.members-table{width:100%;border-collapse:collapse;font-size:13px}.members-table th,.members-table td{padding:9px 12px;border-bottom:1px solid #e5e7eb;text-align:left}.members-table thead th{background:#f3f4f6;color:#374151;font-weight:600}.members-table td.num{text-align:center;width:60px;font-variant-numeric:tabular-nums}.members-table td.name{font-weight:500;color:#064e3b}.members-table td.memo{color:#6b7280;max-width:320px}.members-table td.meta{color:#94a3b8;font-size:12px;width:110px}.profile-form{display:flex;flex-direction:column;gap:18px}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.profile-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#475569;font-weight:500}.profile-grid input,.profile-grid textarea{padding:9px 11px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;outline:none;resize:vertical}.profile-grid input:focus,.profile-grid textarea:focus{border-color:#16a34a}.profile-grid .grid-col-2{grid-column:1 / -1}.round-form-section{margin:4px 0 0;font-size:14px;color:#111827;border-top:1px solid #e5e7eb;padding-top:14px}.round-score-table-wrap{overflow-x:auto}.round-score-table{width:100%;border-collapse:collapse;font-size:13px}.round-score-table th,.round-score-table td{padding:6px 8px;border-bottom:1px solid #e5e7eb;text-align:center}.round-score-table thead th{background:#f3f4f6;color:#374151;font-weight:600}.round-score-table td.name{text-align:left;font-weight:500;color:#064e3b;white-space:nowrap}.round-score-table input{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;font-family:inherit;text-align:right;outline:none}.round-score-table input:focus{border-color:#16a34a}.form-hint{margin:0;font-size:12px;color:#6b7280;line-height:1.5}.draw-btn{font-size:15px;padding:10px 22px;background:linear-gradient(135deg,#16a34a,#064e3b);box-shadow:0 6px 18px #064e3b40}.draw-btn:hover:not(:disabled){background:linear-gradient(135deg,#15803d,#042f1f)}.draw-options-card,.draw-map-card{animation:drawFadeIn .35s ease-out}.draw-options-card.rolling,.draw-map-card.rolling{animation:drawShake .07s linear infinite}@keyframes drawFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes drawShake{0%{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}to{transform:translate(0)}}.draw-options-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.draw-option-tile{border-radius:12px;padding:16px 18px;background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:10px;text-align:center;box-shadow:0 1px 2px #0f172a0a}.draw-option-tile.tone-wind{border-top:3px solid #38bdf8}.draw-option-tile.tone-concede{border-top:3px solid #f59e0b}.draw-option-tile.tone-tee{border-top:3px solid #16a34a}.draw-option-tile.tone-green{border-top:3px solid #10b981}.draw-option-head{display:flex;flex-direction:column;align-items:center;gap:4px}.draw-option-emoji{font-size:24px}.draw-option-label{font-size:12px;color:#64748b;font-weight:500}.draw-option-value{font-size:22px;font-weight:700;color:#064e3b;letter-spacing:-.5px}.draw-map-body{display:grid;grid-template-columns:minmax(200px,1fr) 2fr;gap:18px;align-items:stretch}@media (max-width: 640px){.draw-map-body{grid-template-columns:1fr}}.draw-map-image-wrap{border-radius:10px;overflow:hidden;background:#e2e8f0;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center}.draw-map-image-wrap img{width:100%;height:100%;object-fit:cover}.draw-map-image-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,#064e3b,#16a34a);color:#f0fdf4;text-align:center;padding:16px}.draw-map-image-placeholder span:first-child{font-size:48px}.draw-map-image-name{font-size:16px;font-weight:600;word-break:keep-all}.draw-map-info{display:flex;flex-direction:column;gap:14px;justify-content:center}.draw-map-name{margin:0;font-size:24px;font-weight:700;color:#064e3b;word-break:keep-all}.draw-map-meta{margin:0;display:flex;flex-direction:column;gap:8px}.draw-map-meta>div{display:flex;align-items:center;gap:12px;font-size:14px}.draw-map-meta dt{color:#6b7280;font-weight:500;min-width:86px}.draw-map-meta dd{margin:0;display:flex;align-items:center;gap:8px}.stars{font-size:18px;letter-spacing:1px}.stars-filled{color:#f59e0b}.stars-empty{color:#d1d5db}.stars-course .stars-filled{color:#f59e0b}.stars-green .stars-filled{color:#10b981}.stars-num{font-size:12px;color:#94a3b8}.brand-tabs{display:flex;gap:8px;flex-wrap:wrap}.brand-tab{flex:1;min-width:160px;background:#fff;border:1px solid #e2e8f0;border-top:3px solid #e2e8f0;border-radius:10px;padding:12px 16px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;transition:background .15s ease,transform .15s ease;color:#64748b}.brand-tab:hover:not(:disabled):not(.is-active){background:#f8fafc;transform:translateY(-1px)}.brand-tab:disabled{cursor:not-allowed;opacity:.6}.brand-tab.is-active{background:#fff;box-shadow:0 4px 12px #0f172a0f;font-weight:600}.brand-tab-emoji{font-size:24px}.brand-tab-label{flex:1;font-size:15px}.brand-tab-count{font-size:11px;background:#f1f5f9;color:#64748b;padding:2px 8px;border-radius:999px;font-weight:500}
