:root{font-family:Inter,Arial,sans-serif;background:#f7f8fc;color:#111827}body{margin:0}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;border-radius:12px;padding:3rem;box-shadow:0 20px 60px #0000004d;width:100%;max-width:400px}.login-box h1{text-align:center;margin-top:0;color:#111827;font-size:2rem;margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#374151}.field-label-row{display:inline-flex;align-items:center;gap:.45rem;flex-wrap:wrap}.required-label{border-radius:9999px;padding:.16rem .45rem;background:#fee2e2;color:#991b1b;font-size:.72rem;font-weight:700}.label-action-button{border:1px solid transparent;border-radius:9999px;min-height:1.55rem;padding:.18rem .55rem;font-size:.72rem;font-weight:700;line-height:1;cursor:pointer}.multi-select-button{background:#dbeafe;color:#1d4ed8}.multi-select-button:hover{background:#bfdbfe}.reset-select-button{background:#f3f4f6;color:#4b5563;border-color:#d1d5db}.reset-select-button:hover{background:#e5e7eb}.label-action-button:disabled{opacity:.45;cursor:not-allowed}.form-input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem;box-sizing:border-box;transition:border-color .2s}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.password-input-row{position:relative}.password-input{padding-right:4.5rem}.password-input::-ms-reveal,.password-input::-ms-clear{display:none}.password-visibility-button{position:absolute;top:50%;right:.45rem;transform:translateY(-50%);min-width:3.25rem;min-height:2.25rem;border:none;border-radius:6px;background:#f3f4f6;color:#374151;cursor:pointer;font-weight:700}.password-visibility-button:hover{background:#e5e7eb}textarea.form-input{min-height:6rem;resize:vertical}.checkbox-field{display:flex;align-items:center;gap:.625rem;color:#374151;font-weight:600}.checkbox-field input{width:1rem;height:1rem;accent-color:#4f46e5}.login-button{width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s}.login-button:hover{transform:translateY(-2px)}.login-button:active{transform:translateY(0)}.login-error{margin:1rem 0 0;font-size:.9rem;text-align:center}.form-error{margin:0;font-size:.9rem}.login-error,.form-error,.member-add-message.error,.member-inline-error{color:#b91c1c}.member-add-message.error{background:#fee2e2}.member-add-message.warning{background:#fef3c7;color:#92400e}.app-shell{padding:2rem;max-width:900px;margin:0 auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}header h1{font-size:2rem;margin:0}header p{margin:0;color:#6b7280}.header-user-area{display:flex;align-items:center;gap:.65rem}.header-user-card{min-width:206px;min-height:3.25rem;border:1px solid #d1d5db;border-radius:8px;padding:.55rem .85rem;background:#fff;display:flex;flex-direction:column;justify-content:center}.header-user-card strong,.header-user-card span{display:block}.header-user-card strong{color:#111827;font-size:1rem;line-height:1.2}.header-user-card span{margin-top:.25rem;color:#4b5563;font-size:.78rem;font-weight:700;letter-spacing:0}.api-status{margin-bottom:1rem;padding:.75rem 1rem;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff;color:#1e40af;font-size:.95rem}.api-status-error{border-color:#fecaca;background:#fef2f2;color:#991b1b}.logout-button{min-height:3.25rem;padding:.8rem 1.1rem;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background .2s}.logout-button:hover{background:#dc2626}.header-secondary-button{min-height:3.25rem;padding:.8rem 1rem;background:#f3f4f6;color:#111827;border:none;border-radius:8px;cursor:pointer;font-weight:700;transition:background .2s}.header-secondary-button:hover{background:#e5e7eb}section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.group-list{display:flex;flex-direction:column;gap:1rem}.group-item{padding:1rem;border:1px solid #d1d5db;border-radius:8px;background:#f9fafb;display:flex;justify-content:space-between;align-items:center;gap:1rem;transition:all .2s}.group-item:hover{background:#f3f4f6;border-color:#667eea}.group-item.clickable{cursor:pointer}.group-section{display:grid;gap:1.5rem}.section-block{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1rem}.joined-label,.requested-label,.rejected-label,.blocked-label{padding:.38rem .7rem;border-radius:9999px;font-size:.85rem;font-weight:700}.joined-label{background:#dcfce7;color:#166534}.requested-label{background:#fef3c7;color:#92400e}.rejected-label{background:#fee2e2;color:#991b1b}.closed-join-label{display:inline-flex;align-items:center;border-radius:9999px;padding:.35rem .65rem;background:#f3f4f6;color:#4b5563;font-size:.85rem;font-weight:700}.blocked-label{background:#e5e7eb;color:#374151}.group-actions-bar{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-bottom:1.5rem}.group-search-bar{margin-bottom:1.5rem}.primary-button,.secondary-button,.danger-button,.join-button,.logout-button,.joined-button{border:none;border-radius:8px;min-height:2.75rem;padding:.8rem 1rem;font-weight:600;cursor:pointer}.compact-button{min-height:2.25rem;padding:.55rem .75rem;font-size:.86rem}.primary-button{background:#4f46e5;color:#fff}.primary-button:hover{background:#4338ca}.primary-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button{border:1px solid transparent;background:#f3f4f6;color:#111827}.secondary-button:hover{background:#e5e7eb}.secondary-button:disabled{opacity:.5;cursor:not-allowed}.icon-button{width:2.75rem;height:2.75rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:8px;background:#f3f4f6;color:#111827;cursor:pointer}.icon-button:hover{background:#e5e7eb;color:#3730a3}.icon-button:disabled{opacity:.55;cursor:not-allowed}.reload-icon{width:1.15rem;height:1.15rem}.reload-icon.spinning{animation:reload-spin .9s linear infinite}@keyframes reload-spin{to{transform:rotate(360deg)}}.danger-button{background:#fee2e2;color:#991b1b}.danger-button:hover{background:#fecaca}.join-button{background:#10b981;color:#fff}.join-button:hover{background:#0f9d72}.joined-button{background:#e5e7eb;color:#111827}.group-home-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem}.group-home-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;gap:1rem;margin-bottom:1rem}.group-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}.group-title-row h2{margin:0}.group-title-row+p{margin:.55rem 0 0}.group-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem}.group-header-actions{display:grid;grid-template-columns:13.5rem max-content 2.75rem;align-items:center;gap:.65rem;justify-content:end}.group-code-box{min-height:2.75rem;width:13.5rem;min-width:13.5rem;border:1px solid transparent;border-radius:8px;padding:.8rem 1rem;background:#f3f4f6;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.65rem;white-space:nowrap}.group-header-actions .secondary-button{min-height:2.75rem;white-space:nowrap}.group-code-box:hover{background:#e5e7eb}.group-code-box span{color:#4b5563;font-size:.75rem;font-weight:700;line-height:1}.group-code-box strong{color:#111827;font-size:.95rem;line-height:1}.group-home-actions{display:flex;justify-content:flex-start;margin-bottom:1rem}.group-home-nav{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:1rem}.nav-button{border:1px solid #d1d5db;border-radius:8px;padding:.8rem 1rem;background:#fff;color:#374151;cursor:pointer;font-weight:700;display:inline-flex;align-items:center;gap:.45rem;position:relative}.nav-button:hover{border-color:#4f46e5;color:#3730a3}.nav-button.active{border-color:#4f46e5;background:#eef2ff;color:#3730a3}.nav-button:disabled{opacity:.5;cursor:not-allowed}.nav-notification-badge{min-width:1.15rem;height:1.15rem;padding:0 .25rem;border-radius:9999px;background:#dc2626;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;line-height:1;font-weight:800}.group-home-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.25rem}.summary-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.summary-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.summary-single{display:grid;gap:1rem}.summary-controls{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:1rem}.summary-filter-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end}.summary-filter-row label{color:#374151;font-size:.9rem;font-weight:700}.summary-filter-select{min-width:11rem;margin-top:.35rem}.summary-block h4{margin:0 0 .75rem;color:#374151}.summary-clickable{width:100%;border:1px solid #e5e7eb;color:inherit;cursor:pointer;font:inherit;text-align:left}.summary-clickable:hover{border-color:#4f46e5;background:#eef2ff}.summary-detail{margin-top:1rem}.summary-card{border:1px solid #e5e7eb;border-radius:8px;padding:1rem;background:#f9fafb}.summary-card span{display:block;color:#6b7280;font-size:.9rem;margin-bottom:.4rem}.summary-card strong{display:block;color:#111827;font-size:1.5rem}.group-home-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:1rem}.group-home-panel{display:grid;gap:1rem}.group-home-content{background:#f9fafb;padding:1rem;border-radius:8px;border:1px solid #e5e7eb}.group-home-content h3{margin-top:0}.content-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.content-header h3{margin:0}.feature-frame{border:1px solid #e5e7eb;border-radius:8px;padding:1rem;background:#f9fafb}.feature-frame h3{margin-top:0}.filter-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.filter-button{border:1px solid #d1d5db;border-radius:9999px;padding:.5rem .8rem;background:#fff;color:#374151;cursor:pointer;font-weight:700}.filter-button.active{border-color:#4f46e5;background:#eef2ff;color:#3730a3}.member-section+.member-section{margin-top:1.25rem}.member-add-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:.75rem;margin-bottom:1.25rem;max-width:560px}.member-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.member-toolbar-button{border-color:#c7d2fe;background:#eef2ff;color:#312e81;box-shadow:0 1px 2px #4f46e51f}.member-toolbar-button:hover{background:#e0e7ff;border-color:#a5b4fc}.member-add-form label{color:#374151;font-weight:700}.member-add-form .form-input{margin-top:.5rem}.member-add-form .primary-button{white-space:nowrap}.member-add-message{grid-column:1 / -1;margin:0;border-radius:8px;padding:.65rem .8rem;background:#ecfdf5;color:#047857;font-size:.9rem;font-weight:700}.point-request-message,.member-form-message,.create-form-message{margin-bottom:1rem}.approval-message{margin:0}.approval-result-message,.point-list-message{margin-bottom:1rem}.merge-select{min-width:180px;width:auto}.approval-name-input{min-width:160px;width:auto}.member-inline-error{flex-basis:100%;margin:0;font-size:.9rem;text-align:right;white-space:normal}.member-section h4{margin:0 0 .75rem;color:#374151}.member-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.member-section-header h4{margin:0}.point-request-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.point-request-form-grid label{color:#374151;font-weight:700}.point-request-form-grid .form-input{margin-top:.5rem}.wide-field{grid-column:1 / -1}.tag-list{display:grid;gap:.75rem}.management-section{display:grid;gap:.75rem;margin-top:1.25rem}.management-section-body{display:grid;gap:.75rem}.management-section h4{margin:0;color:#111827}.management-toggle{border:1px solid #d1d5db;border-radius:8px;padding:.8rem 1rem;background:#fff;color:#111827;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;font-weight:700;text-align:left}.management-toggle span:last-child{color:#4f46e5;font-size:.86rem}.management-section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.management-inline-form{display:flex;align-items:center;gap:.75rem;max-width:460px}.management-inline-form .form-input{flex:1;min-width:0}.management-inline-form .primary-button{flex:0 0 auto;min-width:88px;white-space:nowrap}.management-form{display:grid;gap:.85rem;max-width:560px}.management-form label{display:grid;gap:.45rem;color:#374151;font-weight:700}.management-form .primary-button{justify-self:start}.management-note{margin:0;color:#6b7280;font-size:.9rem}.tag-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid #e5e7eb;border-radius:8px;padding:.9rem;background:#fff}.tag-item.hidden{background:#f3f4f6;opacity:.78}.tag-item strong{color:#111827}.tag-item span{display:block;margin-top:.25rem;color:#6b7280;font-size:.9rem}.tag-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.hidden-label{display:inline-block;width:fit-content;border-radius:9999px;padding:.25rem .55rem;background:#e5e7eb;color:#374151;font-weight:700}.frame-actions{display:flex;justify-content:flex-end;margin-top:1rem}.history-list,.ranking-list{display:grid;gap:.75rem}.history-item,.ranking-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem;padding:.9rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.history-content{min-width:0}.history-item p{margin:.35rem 0 0;color:#6b7280;font-size:.9rem}.history-meta{display:flex;align-items:flex-end;flex-direction:column;gap:.55rem;white-space:nowrap}.history-badges,.history-actions{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;flex-wrap:wrap}.history-actions .compact-button{min-height:2rem;padding:.45rem .65rem}.history-point{font-size:1rem}.approval-list{display:grid;gap:.85rem}.approval-card{display:grid;gap:.75rem;padding:1rem;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.approval-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.approval-card-header p{margin:.35rem 0 0;color:#6b7280;font-size:.9rem}.approval-point-summary{display:grid;gap:.15rem;min-width:6.5rem;text-align:right}.approval-point-summary span{color:#6b7280;font-size:.78rem;font-weight:700}.approval-point-summary strong{font-size:1rem}.approval-card-meta{display:flex;flex-wrap:wrap;gap:.5rem}.approval-card-meta span{border-radius:6px;padding:.2rem 0;background:transparent;color:#6b7280;font-size:.82rem}.approval-card-meta span+span:before{content:"/";margin-right:.5rem;color:#d1d5db}.approval-request-comment{display:grid;gap:.25rem;border-left:3px solid #d1d5db;padding-left:.75rem}.approval-request-comment span{color:#6b7280;font-size:.78rem;font-weight:700}.approval-request-comment p{margin:0;color:#111827;line-height:1.5}.approval-editor{display:grid;grid-template-columns:minmax(8rem,10rem) minmax(14rem,22rem) auto;align-items:end;gap:.75rem;padding-top:.75rem;border-top:1px solid #eef0f4}.approval-editor label{color:#374151;font-size:.9rem;font-weight:700}.approval-point-row{display:flex;align-items:center;gap:.5rem;margin-top:.4rem}.approval-point-input{max-width:7rem}.approval-reason-input{margin-top:.4rem}.approval-actions{display:flex;align-items:center;justify-content:flex-end;gap:.55rem;white-space:nowrap}.status-label{border-radius:9999px;padding:.35rem .65rem;background:#e5e7eb;color:#374151;font-size:.85rem;font-weight:700}.status-承認済み{background:#dcfce7;color:#166534}.status-申請中{background:#fef3c7;color:#92400e}.status-却下{background:#fee2e2;color:#991b1b}.bulk-history-label{border-radius:9999px;padding:.35rem .65rem;background:#e0f2fe;color:#0369a1;font-size:.85rem;font-weight:700}.link-status-label{border-radius:9999px;padding:.35rem .65rem;background:#dbeafe;color:#1d4ed8;font-size:.85rem;font-weight:700}.link-status-label.unlinked{background:#f3f4f6;color:#4b5563}.self-label{border-radius:9999px;padding:.35rem .65rem;background:#ecfdf5;color:#047857;font-size:.85rem;font-weight:700}.ranking-item span{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:9999px;background:#eef2ff;color:#3730a3;font-weight:700}.ranking-item strong{flex:1}.member-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.ranking-item em{color:#111827;font-style:normal;font-weight:700;white-space:nowrap}.role-label{border-radius:9999px;padding:.3rem .55rem;font-size:.8rem;font-weight:800}.role-OWNER{background:#fef3c7;color:#92400e}.role-ADMIN{background:#dbeafe;color:#1e40af}.role-MEMBER{background:#e5e7eb;color:#374151}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;justify-content:center;align-items:center;background:#0f172a73;z-index:50}.modal{background:#fff;border-radius:16px;padding:1.75rem;width:min(480px,90vw);box-shadow:0 25px 60px #0f172a33}.modal-description{color:#4b5563;line-height:1.6}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.bulk-point-modal{width:min(720px,94vw);max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.bulk-member-header{display:flex;gap:1rem;align-items:flex-end;justify-content:space-between;margin-top:1rem}.bulk-member-search{flex:1;color:#374151;font-weight:700}.bulk-member-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.bulk-member-list{border:1px solid #e5e7eb;border-radius:8px;margin-top:.75rem;max-height:240px;overflow:auto;padding:.5rem;background:#f9fafb}.bulk-member-row{display:flex;align-items:center;gap:.6rem;padding:.6rem .5rem;border-radius:8px;color:#111827;font-weight:600}.bulk-member-row:hover{background:#eef2ff}.bulk-selected-count{margin:.75rem 0 0;color:#374151;font-weight:700}.join-search-row{display:flex;gap:.75rem;align-items:stretch}.join-search-row .form-input{flex:1}.team-detail-card{border:1px solid #e5e7eb;border-radius:8px;padding:1rem;background:#f9fafb}.team-detail-card p{margin:0 0 1rem;color:#374151}.team-detail-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.team-detail-list div{border:1px solid #e5e7eb;border-radius:8px;padding:.75rem;background:#fff}.team-detail-list span,.group-detail-meta span{color:#6b7280;font-size:.85rem}.team-detail-list strong{display:block;margin-top:.25rem;color:#111827}.group-detail-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.group-detail-meta span{border-radius:9999px;padding:.3rem .55rem;background:#eef2ff;color:#3730a3;font-weight:700}.search-input{flex:1;min-width:220px;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;font-size:1rem}.create-form-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.create-form{display:grid;gap:1rem}.group-card-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.group-home-link-button{display:inline-flex;align-items:center;gap:.45rem}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1rem}.pagination button{padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:8px;background:#fff;cursor:pointer}.pagination button:disabled{opacity:.5;cursor:not-allowed}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.result-count{color:#6b7280}.empty-state{padding:1.5rem;border:1px dashed #d1d5db;border-radius:12px;color:#6b7280;text-align:center;background:#f9fafb}@media (max-width: 760px){.app-shell{padding:1rem}header,.content-header{align-items:stretch;flex-direction:column}.group-home-header{grid-template-columns:1fr}.header-user-area{align-items:stretch;flex-direction:column}.group-header-actions{grid-template-columns:minmax(0,1fr) max-content 2.75rem;justify-content:stretch}.group-code-box{width:100%;min-width:0}.group-home-summary,.group-home-grid,.summary-metrics,.summary-split{grid-template-columns:1fr}.history-item,.ranking-item{align-items:flex-start;grid-template-columns:1fr}.history-meta{align-items:flex-start;width:100%}.history-badges,.history-actions{justify-content:flex-start}.approval-card-header,.approval-editor{grid-template-columns:1fr}.approval-card-header{flex-direction:column}.approval-point-summary{text-align:left}.approval-actions{justify-content:flex-start}.join-search-row{flex-direction:column}.team-detail-list,.point-request-form-grid{grid-template-columns:1fr}.member-add-form{grid-template-columns:1fr;max-width:none}.management-section-header,.management-inline-form{align-items:stretch;flex-direction:column}.management-inline-form{max-width:none}}
