.logo{display:flex;justify-content:center;align-items:center}.logo-content{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 24px;background-color:#fff;border-radius:8px;width:100%}.logo-icon{flex-shrink:0}.logo-text{color:var(--keio-navy, #001E62);font-weight:700;white-space:nowrap}.submenu{position:absolute;top:100%;left:0;min-width:200px;background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;box-shadow:0 4px 8px #00000026;padding:.5rem 0;z-index:1001}.submenu-list{list-style:none;margin:0;padding:0}.submenu-item{border-bottom:1px solid #f0f0f0}.submenu-item:last-child{border-bottom:none}.submenu-link{display:block;padding:.75rem 1rem;color:#333;text-decoration:none;font-size:.9rem;transition:background-color .2s ease}.submenu-link:hover{background-color:var(--keio-yellow);color:#333;text-decoration:none}.submenu-modal{position:fixed;top:0;left:0;right:0;bottom:var(--bottom-nav-height);background-color:#00000080;z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg)}.submenu-modal-content{background-color:#fff;border-radius:8px;width:100%;max-width:400px;max-height:80vh;overflow-y:auto;padding:var(--spacing-lg)}.submenu-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--keio-navy)}.submenu-modal-title{font-size:1.2rem;font-weight:700;color:var(--keio-navy)}.submenu-modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.submenu-modal-list{list-style:none;margin:0;padding:0}.submenu-modal-item{border-bottom:1px solid #f0f0f0}.submenu-modal-item:last-child{border-bottom:none}.submenu-modal-link{display:block;padding:1rem;color:#333;text-decoration:none;font-size:1rem;transition:background-color .2s ease}.submenu-modal-link:hover{background-color:var(--keio-yellow);text-decoration:none}.header{position:sticky;top:0;left:0;right:0;background-color:var(--keio-navy);color:#fff;box-shadow:0 2px 4px #0000001a;z-index:1000;display:none}.header-container{max-width:1000px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md)}.header-logo{padding:.5rem 0;display:flex;align-items:center}.header-nav{flex:1;display:flex;justify-content:flex-end}.header-menu{display:flex;list-style:none;margin:0;padding:0;gap:.5rem}.header-menu-item{position:relative}.header-menu-link,.header-menu-button{display:flex;align-items:center;gap:.25rem;padding:1rem;color:#fff;text-decoration:none;font-size:.9rem;font-weight:500;background:none;border:none;cursor:pointer;transition:background-color .2s ease}.header-menu-link:hover,.header-menu-button:hover{background-color:#f1c40033;text-decoration:none}.menu-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.menu-icon{width:18px;height:18px}.menu-badge{position:absolute;top:-6px;right:-6px;background-color:var(--keio-red);color:#fff;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;border:2px solid var(--keio-navy)}@media(min-width:769px){.header{display:block}}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background-color:var(--keio-navy);box-shadow:0 -2px 4px #0000001a;z-index:1000;display:none}.bottom-nav-menu{display:flex;justify-content:space-around;align-items:center;list-style:none;margin:0;padding:0;height:var(--bottom-nav-height)}.bottom-nav-item{flex:1;display:flex;justify-content:center;align-items:center}.bottom-nav-link,.bottom-nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;padding:.4rem .2rem;color:#fff;text-decoration:none;background:none;border:none;cursor:pointer;width:100%;height:100%;transition:background-color .2s ease}.bottom-nav-link:hover,.bottom-nav-button:hover,.bottom-nav-link.active,.bottom-nav-button.active{background-color:#f1c40033;text-decoration:none}.bottom-nav-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center}.bottom-nav-icon{width:24px;height:24px}.bottom-nav-badge{position:absolute;top:-4px;right:-8px;background-color:var(--keio-red);color:#fff;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;border:2px solid var(--keio-navy)}.bottom-nav-label{font-size:.65rem;font-weight:500;text-align:center;white-space:nowrap}@media(max-width:768px){.bottom-nav{display:block}}.footer{background-color:#f5f5f5;color:#666;padding:var(--spacing-lg) var(--spacing-md);margin-top:auto}.footer-container{max-width:var(--max-width);margin:0 auto}.footer-copyright{text-align:center;font-size:.85rem}.footer-copyright p{margin:0}@media(max-width:768px){.footer{padding-bottom:calc(var(--bottom-nav-height) + var(--spacing-lg))}}.year-overlay{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:8px;padding:6px 16px;background-color:#001e62;color:#fff;font-size:12px;border-radius:0 0 8px 8px;box-shadow:0 2px 8px #0003}.year-overlay--preview{background-color:#c63527}.year-overlay-year{font-weight:700}.year-overlay-status{font-weight:400;opacity:.9}.year-overlay-preview-badge{display:inline-block;padding:2px 8px;background-color:#fff3;border-radius:4px;font-weight:600;font-size:11px}@media(max-width:768px){.year-overlay{font-size:11px;padding:4px 12px;gap:6px}.year-overlay-preview-badge{font-size:10px;padding:2px 6px}}.layout{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding-top:0;padding-bottom:var(--spacing-xl)}@media(min-width:769px){.main-content{padding-top:0}}@media(max-width:768px){.main-content{padding-bottom:calc(var(--bottom-nav-height) + var(--spacing-xs))}}.year-selector{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:8px;margin-bottom:20px}@media(max-width:480px){.year-selector{flex-direction:column;align-items:stretch;gap:8px;padding:10px 12px}.year-selector-label{font-size:13px}.year-selector-select{max-width:100%;width:100%}.year-selector-preview-badge{align-self:flex-start}}.year-selector-label{font-weight:600;color:#664d03;white-space:nowrap}.year-selector-select{flex:1;padding:8px 12px;border:1px solid #ccc;border-radius:4px;font-size:14px;background-color:#fff;max-width:300px}.year-selector-select:focus{outline:none;border-color:#ffc107;box-shadow:0 0 0 2px #ffc10740}.year-selector-select:disabled{background-color:#e9ecef;cursor:not-allowed}.year-selector-loading{color:#664d03;font-size:14px}.year-selector-preview-badge{display:inline-block;padding:4px 10px;background-color:#001e62;color:#fff;border-radius:4px;font-size:12px;font-weight:600}.home{padding:var(--spacing-md)}.logout-section{text-align:center;margin-top:var(--spacing-xl);margin-bottom:var(--spacing-xs)}.logout-button{background:#6c757d;border:none;color:#fff;cursor:pointer;font-size:.8rem;padding:.4rem 1.5rem;border-radius:4px;transition:background .2s ease}.logout-button:hover{background:#5a6268}.hero{text-align:center;padding:var(--spacing-xl) 0;margin-bottom:var(--spacing-xl);background:linear-gradient(135deg,var(--keio-navy) 0%,#003380 100%);color:#fff;border-radius:8px}.hero-title{font-size:2rem;font-weight:700;margin-bottom:var(--spacing-md)}.hero-subtitle{font-size:1.1rem;opacity:.9}.section-title{font-size:1.5rem;font-weight:700;color:var(--keio-navy);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:3px solid var(--keio-yellow)}.quick-links{margin-bottom:var(--spacing-xl)}.quick-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-lg)}.quick-link-card{background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:var(--spacing-lg);text-align:center;text-decoration:none;color:#333;transition:all .3s ease;cursor:pointer}.quick-link-card:hover{border-color:var(--keio-yellow);box-shadow:0 4px 12px #00000026;transform:translateY(-4px);text-decoration:none}.quick-link-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.quick-link-title{font-size:1.2rem;font-weight:700;color:var(--keio-navy);margin-bottom:var(--spacing-sm)}.quick-link-description{font-size:.9rem;color:#666;line-height:1.5}.transfer-notification{margin-bottom:var(--spacing-lg)}.transfer-banner{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-sm);display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.transfer-banner-text{margin:0;font-size:.95rem;color:#856404;font-weight:500;flex:1}.transfer-banner-btn{background-color:var(--keio-navy);color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;white-space:nowrap;transition:opacity .2s}.transfer-banner-btn:hover{opacity:.9;color:#fff;text-decoration:none}@media(max-width:768px){.transfer-banner{flex-direction:column;align-items:flex-start}.transfer-banner-btn{align-self:flex-end}}.info-section{margin-bottom:var(--spacing-xl)}.info-card{background:#f8f9fa;border-left:4px solid var(--keio-yellow);padding:var(--spacing-lg);border-radius:4px}.info-text{font-size:1rem;line-height:1.7;color:#333;margin:0}.announcement-list{list-style:none;padding:0;margin:0}.announcement-item{background:#f8f9fa;border-left:4px solid var(--keio-yellow);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-sm);border-radius:4px;display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md)}.announcement-item:last-child{margin-bottom:0}.announcement-title{font-size:1rem;line-height:1.5;color:#333;flex:1}.announcement-link{font-size:.875rem;color:var(--keio-navy);text-decoration:none;padding:.25rem .5rem;border:1px solid var(--keio-navy);border-radius:4px;white-space:nowrap;transition:all .2s ease}.announcement-link:hover{background:var(--keio-navy);color:#fff}@media(max-width:768px){.hero{padding:var(--spacing-md) var(--spacing-sm);margin-bottom:var(--spacing-md)}.hero-title{font-size:1.1rem;margin-bottom:var(--spacing-sm)}.hero-subtitle{font-size:.85rem;line-height:1.4}.quick-links-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.section-title{font-size:1.3rem}.announcement-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.announcement-link{align-self:flex-end}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--keio-navy) 0%,#003380 100%);padding:var(--spacing-lg)}.login-container{background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000004d;padding:var(--spacing-xl);width:100%;max-width:450px}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-title{font-size:1.8rem;font-weight:700;color:var(--keio-navy);margin-top:var(--spacing-md)}.login-error{background-color:#fee;border:1px solid var(--keio-red);border-radius:4px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:var(--keio-red);font-size:.9rem;text-align:center}.login-form,.form-group{margin-bottom:var(--spacing-lg)}.login-links{display:flex;flex-direction:row;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid #e0e0e0}.login-links .btn{flex:1;padding:.75rem 1rem;text-align:center;text-decoration:none;border-radius:4px;font-size:.9rem;font-weight:500;transition:all .2s ease}.login-links .btn-outline-primary{background-color:transparent;border:2px solid var(--keio-navy);color:var(--keio-navy)}.login-links .btn-outline-primary:hover{background-color:var(--keio-navy);color:#fff}@media(max-width:768px){.login-page{padding:var(--spacing-md)}.login-container{padding:var(--spacing-lg)}.login-title{font-size:1.5rem}}.forgot-password-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--keio-navy) 0%,#003380 100%);padding:var(--spacing-lg)}.forgot-password-container{background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000004d;padding:var(--spacing-xl);width:100%;max-width:450px}.forgot-password-header{text-align:center;margin-bottom:var(--spacing-lg)}.forgot-password-title{font-size:1.5rem;font-weight:700;color:var(--keio-navy);margin-top:var(--spacing-md)}.forgot-password-description{color:#666;font-size:.95rem;line-height:1.6;text-align:center;margin-bottom:var(--spacing-lg)}.forgot-password-error{background-color:#fee;border:1px solid var(--keio-red);border-radius:4px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:var(--keio-red);font-size:.9rem;text-align:center}.forgot-password-success{background-color:#e8f5e9;border:1px solid #4caf50;border-radius:4px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:#2e7d32;font-size:.9rem;text-align:center}.forgot-password-form,.form-group{margin-bottom:var(--spacing-lg)}.forgot-password-links{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid #e0e0e0}.forgot-password-link{font-size:.9rem;color:var(--keio-navy);text-decoration:none;transition:color .2s ease}.forgot-password-link:hover{color:var(--keio-yellow);text-decoration:underline}@media(max-width:768px){.forgot-password-page{padding:var(--spacing-md)}.forgot-password-container{padding:var(--spacing-lg)}.forgot-password-title{font-size:1.3rem}}.reset-password-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--keio-navy) 0%,#003380 100%);padding:var(--spacing-lg)}.reset-password-container{background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000004d;padding:var(--spacing-xl);width:100%;max-width:450px}.reset-password-header{text-align:center;margin-bottom:var(--spacing-lg)}.reset-password-title{font-size:1.5rem;font-weight:700;color:var(--keio-navy);margin-top:var(--spacing-md)}.reset-password-description{color:#666;font-size:.95rem;line-height:1.6;text-align:center;margin-bottom:var(--spacing-lg)}.reset-password-error{background-color:#fee;border:1px solid var(--keio-red);border-radius:4px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:var(--keio-red);font-size:.9rem;text-align:center}.reset-password-success{background-color:#e8f5e9;border:1px solid #4caf50;border-radius:4px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:#2e7d32;font-size:.9rem;text-align:center}.reset-password-success small{display:block;margin-top:var(--spacing-sm);color:#666}.reset-password-form,.form-group{margin-bottom:var(--spacing-lg)}.reset-password-links{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid #e0e0e0}.reset-password-link{font-size:.9rem;color:var(--keio-navy);text-decoration:none;transition:color .2s ease}.reset-password-link:hover{color:var(--keio-yellow);text-decoration:underline}@media(max-width:768px){.reset-password-page{padding:var(--spacing-md)}.reset-password-container{padding:var(--spacing-lg)}.reset-password-title{font-size:1.3rem}}.register-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--keio-navy) 0%,#003380 100%);padding:var(--spacing-lg)}.register-container{background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000004d;padding:var(--spacing-xl);width:100%;max-width:450px}.register-header{text-align:center;margin-bottom:var(--spacing-lg)}.register-title{font-size:1.5rem;font-weight:700;color:var(--keio-navy);margin-top:var(--spacing-md)}.register-description{color:#666;font-size:.95rem;line-height:1.6;text-align:center;margin-bottom:var(--spacing-lg)}.register-error{background-color:#fee;border:1px solid var(--keio-red);border-radius:4px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:var(--keio-red);font-size:.9rem;text-align:center}.register-success{background-color:#e8f5e9;border:1px solid #4caf50;border-radius:4px;padding:var(--spacing-md);margin-bottom:var(--spacing-lg);color:#2e7d32;font-size:.9rem;text-align:center}.register-form,.form-group{margin-bottom:var(--spacing-lg)}.form-label{display:block;font-weight:600;color:#333;margin-bottom:var(--spacing-sm);font-size:.95rem}.form-input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:var(--keio-yellow);box-shadow:0 0 0 3px #f1c4001a}.btn-block{width:100%;padding:1rem;font-size:1.1rem}.register-links{text-align:center;padding-top:var(--spacing-lg);border-top:1px solid #e0e0e0}.register-link{font-size:.9rem;color:var(--keio-navy);text-decoration:none;transition:color .2s ease}.register-link:hover{color:var(--keio-yellow);text-decoration:underline}.register-complete-container{background:#fff;border-radius:8px;box-shadow:0 4px 12px #0000004d;padding:var(--spacing-xl);width:100%;max-width:600px}.register-complete-container .form-row{display:flex;gap:var(--spacing-md)}.register-complete-container .form-row .form-group{flex:1}.form-input[readonly]{background-color:#f5f5f5;color:#666}.form-select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s ease;background-color:#fff}.form-select:focus{outline:none;border-color:var(--keio-yellow);box-shadow:0 0 0 3px #f1c4001a}.required{color:var(--keio-red);margin-left:4px}@media(max-width:768px){.register-page{padding:var(--spacing-md)}.register-container,.register-complete-container{padding:var(--spacing-lg)}.register-title{font-size:1.3rem}.register-complete-container .form-row{flex-direction:column;gap:0}}.not-found{min-height:60vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.not-found-content{text-align:center;max-width:600px}.not-found-title{font-size:8rem;font-weight:700;color:var(--keio-yellow);margin:0;line-height:1}.not-found-subtitle{font-size:2rem;font-weight:700;color:var(--keio-navy);margin:var(--spacing-lg) 0}.not-found-text{font-size:1.1rem;color:#666;margin-bottom:var(--spacing-xl);line-height:1.6}@media(max-width:768px){.not-found-title{font-size:5rem}.not-found-subtitle{font-size:1.5rem}.not-found-text{font-size:1rem}}.ticket-list-page{padding:2rem 1rem}.ticket-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.page-title{font-size:1.5rem;font-weight:700;margin-bottom:0;color:var(--keio-navy)}.year-selector{padding:.4rem .8rem;border:1px solid #ccc;border-radius:6px;font-size:.95rem;color:var(--keio-navy);background:#fff;cursor:pointer}.year-selector:focus{outline:none;border-color:var(--keio-navy)}.year-label{font-size:.95rem;font-weight:500;color:var(--keio-navy)}.loading{text-align:center;padding:2rem}.empty-state p{margin-bottom:1.5rem;color:#666}.sheet-list{display:flex;flex-direction:column;gap:1rem}.sheet-card{background:#fff;border-radius:8px;padding:1.25rem 1.5rem;box-shadow:0 2px 4px #0000001a}.sheet-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.sheet-header-item{display:flex;align-items:center;gap:.4rem}.sheet-number{font-weight:700;font-size:1.05rem;color:var(--keio-navy)}.points-remaining{font-weight:700;font-size:1.1rem;color:var(--keio-navy)}.sheet-body{display:flex;flex-direction:column;gap:.5rem}.sheet-tickets,.sheet-registered{display:flex;justify-content:space-between;align-items:baseline}.sheet-tickets label,.sheet-registered label{font-weight:500;color:#666;flex-shrink:0;margin-right:.5rem}.ticket-numbers{color:#333;text-align:right;word-break:break-word}.sheet-registered span{color:#333}.sheet-card.in-transfer{border:2px solid #ffc107}.transfer-badge{background-color:#ffc107;color:#856404;padding:.15rem .5rem;border-radius:4px;font-size:.8rem;font-weight:600}.ticket-transfer-info{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee;display:flex;justify-content:space-between;align-items:center;gap:.5rem}.transfer-target{margin:0;font-size:.85rem;color:#666}.btn-cancel-transfer{background:none;border:1px solid #dc3545;color:#dc3545;padding:.4rem .75rem;border-radius:4px;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:all .2s}.btn-cancel-transfer:hover{background:#dc3545;color:#fff}.btn-cancel-transfer:disabled{opacity:.5;cursor:not-allowed}.mitakai-autocomplete{position:relative;width:100%}.mitakai-autocomplete input{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;font-size:14px}.mitakai-autocomplete input:focus{border-color:#001e62;outline:none;box-shadow:0 0 0 2px #001e621a}.mitakai-autocomplete input:disabled{background-color:#f5f5f5;cursor:not-allowed}.mitakai-autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 4px 4px;z-index:100;box-shadow:0 4px 6px #0000001a}.mitakai-autocomplete-item{padding:8px 12px;cursor:pointer;font-size:14px;border-bottom:1px solid #f0f0f0}.mitakai-autocomplete-item:last-child{border-bottom:none}.mitakai-autocomplete-item:hover{background-color:#f0f4ff}.mitakai-autocomplete-item .code{font-weight:700;color:#001e62;margin-right:8px}.mitakai-autocomplete-item .name{color:#666}.mitakai-autocomplete-no-results{padding:8px 12px;color:#999;font-size:14px}.mitakai-autocomplete-selected{display:flex;align-items:center;gap:8px;padding:6px 10px;background-color:#f0f4ff;border:1px solid #001E62;border-radius:4px;font-size:14px}.mitakai-autocomplete-selected .code{font-weight:700;color:#001e62}.mitakai-autocomplete-selected .name{color:#333}.mitakai-autocomplete-clear{margin-left:auto;background:none;border:none;color:#999;cursor:pointer;font-size:16px;padding:0 4px;line-height:1}.mitakai-autocomplete-clear:hover{color:#c63527}.ticket-register-page{padding:2rem 1rem;max-width:500px;margin:0 auto}.ticket-register-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.ticket-purchase-page{max-width:600px;margin:0 auto;padding:20px}.ticket-purchase-page h1{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;color:var(--keio-navy)}.purchase-steps{display:flex;justify-content:space-between;margin-bottom:30px;border-bottom:1px solid #ddd;padding-bottom:10px}.purchase-steps .step{font-weight:700;color:#aaa}.purchase-steps .step.active{color:var(--keio-navy)}.purchase-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.purchase-form .form-group{margin-bottom:1.5rem}.purchase-form .form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.purchase-form select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;background:#fff}.purchase-form select:focus{outline:none;border-color:var(--keio-navy)}.price-summary{background:#f8f9fa;padding:15px;border-radius:8px;margin-bottom:1.5rem}.price-row{display:flex;justify-content:space-between;margin-bottom:5px}.price-row.total{font-weight:700;font-size:1.2em;margin-top:10px;padding-top:10px;border-top:1px solid #ddd;color:var(--keio-navy)}.referral-section{margin-bottom:1.5rem}.referral-section h3{font-size:1rem;font-weight:500;margin-bottom:.5rem;color:#333}.referral-section .referral-item{margin-bottom:1rem}.referral-section .referral-item label{display:block;margin-bottom:.25rem;font-size:.9rem;color:#555}.purchase-confirm-section{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.confirm-detail{margin-bottom:1.5rem}.confirm-detail h3{border-bottom:1px solid #eee;padding-bottom:10px;margin-bottom:15px;font-size:1rem}.confirm-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f0f0f0}.confirm-row:last-child{border-bottom:none}.payment-section{margin-top:20px;border:1px solid #ddd;padding:20px;border-radius:8px}.payment-section h3{margin-bottom:15px;font-size:1rem}.card-form .form-group{margin-bottom:1rem}.card-form .form-group label{display:block;margin-bottom:.25rem;font-weight:500;font-size:.9rem}.card-form .form-group input{width:100%;padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.card-form .form-group input:focus{outline:none;border-color:var(--keio-navy)}.expiry-inputs{display:flex;align-items:center}.purchase-actions{display:flex;justify-content:space-between;margin-top:20px;padding-top:20px;border-top:1px solid #ddd}.purchase-actions .btn{width:auto;padding:.75rem 2rem}.btn-secondary{background-color:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer}.alert-warning{background-color:#fff3cd;color:#856404;border:1px solid #ffc107}.ticket-transfer-page{padding:2rem 1rem;max-width:500px;margin:0 auto}.transfer-form{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group input:focus{outline:none;border-color:var(--keio-navy)}.form-group small{display:block;margin-top:.25rem;font-size:.85rem;color:#666}.btn{width:100%;padding:.75rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover{opacity:.9}.btn-secondary{background-color:#6c757d;color:#fff}.btn-secondary:hover{opacity:.9}.mt-2{margin-top:.5rem}.transfer-confirm,.transfer-select,.transfer-complete{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.confirm-card{margin-bottom:1.5rem}.confirm-card h3{font-size:1.2rem;margin-bottom:1rem;color:var(--keio-navy)}.confirm-details{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem}.confirm-details dt{font-weight:500;color:#666}.confirm-details dd{margin:0;font-weight:500}.select-instruction{margin-bottom:1rem;font-weight:500;color:var(--keio-navy)}.sheet-list{margin-bottom:1.5rem}.sheet-item{display:flex;align-items:center;gap:.75rem;padding:1rem;border:2px solid #eee;border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:border-color .2s}.sheet-item.selected{border-color:var(--keio-navy);background-color:#f0f4ff}.sheet-item input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--keio-navy)}.sheet-info{display:flex;flex-direction:column}.sheet-number{font-weight:600;font-size:1rem}.sheet-detail{font-size:.85rem;color:#666}.transfer-complete{text-align:center}.complete-icon{width:60px;height:60px;border-radius:50%;background-color:#28a745;color:#fff;font-size:2rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.transfer-complete h2{font-size:1.3rem;color:var(--keio-navy);margin-bottom:.5rem}.transfer-complete p{color:#666;margin-bottom:1.5rem}.complete-summary{text-align:left;background:#f8f9fa;padding:1rem;border-radius:4px;margin-bottom:1.5rem}.transfer-receive-page{padding:2rem 1rem;max-width:500px;margin:0 auto}.page-title{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;color:var(--keio-navy)}.alert-success{background-color:#efe;color:#0a0;border:1px solid #cfc}.empty-state{text-align:center;padding:3rem 1rem}.empty-state p{color:#666;margin-bottom:1.5rem}.transfer-list{display:flex;flex-direction:column;gap:1rem}.transfer-card{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.transfer-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;background-color:var(--keio-navy);color:#fff}.transfer-from{font-weight:600}.transfer-date{font-size:.85rem;opacity:.8}.transfer-body{padding:1rem}.transfer-details{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem}.transfer-details dt{font-weight:500;color:#666}.transfer-details dd{margin:0}.transfer-actions{display:flex;gap:.5rem;padding:0 1rem 1rem}.btn{flex:1;padding:.75rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background-color:var(--keio-navy);color:#fff;width:100%}.btn-accept{background-color:var(--keio-navy);color:#fff}.btn-accept:hover{opacity:.9}.btn-reject{background-color:#dc3545;color:#fff}.btn-reject:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.gift-list-page{padding:2rem 1rem}.gift-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.gift-card-link{text-decoration:none;color:inherit}.gift-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;display:flex;flex-direction:column;height:100%}.gift-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.gift-image-container{width:100%;height:200px;overflow:hidden;background:#f0f0f0;display:flex;align-items:center;justify-content:center;position:relative}.applied-badge{position:absolute;top:10px;right:10px;background-color:var(--keio-red, #C63527);color:#fff;padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:700;z-index:1}.gift-image{width:100%;height:100%;object-fit:cover}.gift-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);color:#999;font-size:.9rem}.gift-info{padding:1.25rem;flex-grow:1;display:flex;flex-direction:column;gap:.75rem}.gift-name{font-size:1rem;font-weight:700;color:var(--keio-navy);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gift-requirement{display:flex;gap:1rem;padding:.75rem;background:#f5f5f5;border-radius:6px}.gift-stock{display:flex;justify-content:center}.stock-available{padding:.5rem 1rem;background:#e8f5e9;color:#2e7d32;border-radius:4px;font-size:.9rem;font-weight:500}.stock-unavailable{padding:.5rem 1rem;background:#ffebee;color:#c62828;border-radius:4px;font-size:.9rem;font-weight:500}.gift-skus{padding:.75rem;background:#fafafa;border-radius:6px;border:1px solid #eeeeee}.gift-footer{padding:1rem 1.25rem;border-top:1px solid #f0f0f0;text-align:center}.gift-detail-link{color:var(--keio-navy);font-weight:500;font-size:.9rem;transition:color .3s ease}.gift-card:hover .gift-detail-link{color:var(--keio-yellow)}@media(max-width:768px){.gift-list-page{padding:1.5rem 1rem}.gift-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.gift-image-container{height:160px}.gift-info{padding:1rem;gap:.5rem}.gift-name{font-size:.95rem}.requirement-value{font-size:1.1rem}.gift-footer{padding:.75rem 1rem}}@media(max-width:480px){.gift-list{grid-template-columns:1fr}.gift-image-container{height:200px}.gift-requirement{gap:.5rem}}.gift-detail-page{padding:2rem 1rem;max-width:1000px;margin:0 auto}.cart-link{color:var(--keio-navy);text-decoration:underline;font-size:1rem;font-weight:500;transition:opacity .2s ease}.cart-link:hover{opacity:.7}.gift-detail-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.gift-gallery{display:flex;flex-direction:column;gap:1rem}.gift-main-image-container{width:100%;aspect-ratio:1;background:#f5f5f5;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.applied-badge-large{position:absolute;top:15px;right:15px;background-color:var(--keio-red, #C63527);color:#fff;padding:8px 16px;border-radius:4px;font-size:.9rem;font-weight:700;z-index:1}.gift-main-image{width:100%;height:100%;object-fit:cover}.gift-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);color:#999;font-size:1rem}.gift-thumbnails{display:flex;gap:.75rem;overflow-x:auto;padding:.5rem 0}.gift-details{display:flex;flex-direction:column;gap:1.5rem}.gift-detail-name{font-size:1.75rem;font-weight:700;color:var(--keio-navy);margin:0;line-height:1.3}.gift-detail-description{background:#f9f9f9;padding:1rem;border-radius:6px;border-left:4px solid var(--keio-yellow)}.gift-detail-description p{margin:0;color:#555;line-height:1.6;white-space:pre-wrap}.gift-basic-info{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:#f5f5f5;border-radius:6px}.info-label{font-size:.85rem;color:#666;font-weight:500;margin-bottom:.5rem;text-align:center}.info-value{font-size:1.75rem;font-weight:700;color:var(--keio-navy)}.gift-stock-info{display:flex;flex-direction:column;gap:.5rem}.stock-available-large{padding:.75rem 1rem;background:#e8f5e9;color:#2e7d32;border-radius:4px;font-weight:500;text-align:center}.stock-unavailable-large{padding:.75rem 1rem;background:#ffebee;color:#c62828;border-radius:4px;font-weight:500;text-align:center}.gift-detail-row{display:flex;flex-direction:column;gap:.25rem}.info-text{color:#333;line-height:1.5}.gift-sku-section{padding:1rem;background:#fafafa;border-radius:6px;border:1px solid #eee}.sku-stock{background:var(--keio-yellow);color:var(--keio-navy);padding:.25rem .5rem;border-radius:3px;font-weight:700;font-size:.85rem}.gift-caution-section{padding:1rem;background:#fff3e0;border-radius:6px;border-left:4px solid #ff9800}.gift-exchange-section{padding:1.5rem;background:#f8f9fa;border-radius:8px;border:2px solid var(--keio-yellow)}.form-control{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;background-color:#fff;transition:border-color .3s ease}.gift-actions{display:flex;gap:1rem;margin-top:1rem}@media(max-width:768px){.gift-detail-page{padding:1.5rem 1rem}.gift-detail-container{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem}.gift-detail-name{font-size:1.5rem}.info-grid{grid-template-columns:1fr 1fr}.sku-details{grid-template-columns:1fr}.gift-thumbnails{max-width:100%}.gift-actions{flex-direction:column}.user-status-info{grid-template-columns:1fr;gap:.5rem}.gift-exchange-section{padding:1rem}}@media(max-width:480px){.gift-detail-container{padding:1rem}.gift-detail-name{font-size:1.25rem}.info-grid{grid-template-columns:1fr}.info-item,.gift-detail-description{padding:.75rem}.gift-basic-info{gap:.75rem;padding:.75rem}.gift-sku-section,.gift-caution-section{padding:.75rem}.btn{padding:.75rem;font-size:.95rem}}.event-list-page{padding:2rem 1rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-title{font-size:1.5rem;font-weight:700;margin:0;color:var(--keio-navy)}.empty-state{text-align:center;padding:3rem 1rem;background:#f9f9f9;border-radius:8px}.event-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.event-card-link{text-decoration:none;color:inherit}.event-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;display:flex;flex-direction:column;height:100%}.event-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-2px)}.event-image-container{width:100%;height:180px;overflow:hidden;background:#f0f0f0;display:flex;align-items:center;justify-content:center;position:relative}.event-image{width:100%;height:100%;object-fit:cover}.event-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);color:#999;font-size:.9rem}.application-status-badge{position:absolute;top:10px;right:10px;padding:.4rem .8rem;border-radius:4px;font-size:.75rem;font-weight:700}.applied-badge{position:absolute;top:10px;left:10px;background-color:var(--keio-red, #C63527);color:#fff;padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:700;z-index:1}.event-info{padding:1.25rem;flex-grow:1;display:flex;flex-direction:column;gap:.75rem}.event-name{font-size:1rem;font-weight:700;color:var(--keio-navy);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.event-tags{display:flex;flex-wrap:wrap;gap:.5rem}.event-tag{padding:.2rem .5rem;background:var(--keio-yellow);color:var(--keio-navy);border-radius:3px;font-size:.7rem;font-weight:600}.event-datetime{display:flex;flex-direction:column;gap:.4rem;padding:.75rem;background:#f9f9f9;border-radius:6px}.datetime-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#555}.datetime-icon{font-size:.9rem}.datetime-text{flex:1}.event-requirement{display:flex;gap:1rem;padding:.75rem;background:#f5f5f5;border-radius:6px}.requirement-item{display:flex;flex-direction:column;align-items:center;flex:1;text-align:center}.requirement-label{font-size:.75rem;color:#666;font-weight:500}.requirement-value{font-size:1.25rem;font-weight:700;color:var(--keio-navy);margin-top:.25rem}.event-capacity{display:flex;justify-content:center}.capacity-available{padding:.5rem 1rem;background:#e8f5e9;color:#2e7d32;border-radius:4px;font-size:.9rem;font-weight:500}.capacity-full{padding:.5rem 1rem;background:#ffebee;color:#c62828;border-radius:4px;font-size:.9rem;font-weight:500}.event-skus{padding:.75rem;background:#fafafa;border-radius:6px;border:1px solid #eeeeee}.sku-label{font-size:.75rem;color:#999;font-weight:500;margin-bottom:.5rem;text-transform:uppercase}.sku-list{display:flex;flex-wrap:wrap;gap:.5rem}.sku-item{padding:.25rem .5rem;background:#fff;border:1px solid #ddd;border-radius:3px;font-size:.75rem;color:#666}.event-footer{padding:1rem 1.25rem;border-top:1px solid #f0f0f0;text-align:center}.event-detail-link{color:var(--keio-navy);font-weight:500;font-size:.9rem;transition:color .3s ease}.event-card:hover .event-detail-link{color:var(--keio-yellow)}@media(max-width:768px){.event-list-page{padding:1.5rem 1rem}.event-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.event-image-container{height:150px}.event-info{padding:1rem;gap:.5rem}.event-name{font-size:.95rem}.requirement-value{font-size:1.1rem}.event-footer{padding:.75rem 1rem}}@media(max-width:480px){.event-list{grid-template-columns:1fr}.event-image-container{height:180px}.event-requirement{gap:.5rem}}.event-detail-page{padding:2rem 1rem;max-width:1000px;margin:0 auto}.detail-page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.back-button{display:inline-block}.alert-error{background-color:#fee;color:#c00;border:1px solid #fcc}.alert-warning{background-color:#fff3e0;color:#e65100;border:1px solid #ffcc80}.alert-info{background-color:#e3f2fd;color:#1565c0;border:1px solid #90caf9}.event-detail-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.event-gallery{display:flex;flex-direction:column;gap:1rem}.event-main-image-container{width:100%;aspect-ratio:16 / 10;background:#f5f5f5;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center;position:relative}.event-main-image{width:100%;height:100%;object-fit:cover}.event-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);color:#999;font-size:1rem}.application-status-badge-large{position:absolute;top:15px;right:15px;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:700}.status-before{background:#fff3e0;color:#e65100}.status-open{background:#e8f5e9;color:#2e7d32}.status-closed{background:#fafafa;color:#999}.applied-badge-large{position:absolute;top:15px;left:15px;background-color:var(--keio-red, #C63527);color:#fff;padding:8px 16px;border-radius:4px;font-size:.9rem;font-weight:700;z-index:1}.event-thumbnails{display:flex;gap:.75rem;overflow-x:auto;padding:.5rem 0}.thumbnail{width:70px;height:70px;border:2px solid transparent;border-radius:4px;padding:0;background:#f5f5f5;cursor:pointer;transition:all .3s ease;overflow:hidden;flex-shrink:0}.thumbnail:hover{border-color:var(--keio-yellow)}.thumbnail.active{border-color:var(--keio-navy);box-shadow:0 0 0 2px #001e621a}.event-details{display:flex;flex-direction:column;gap:1.5rem}.event-detail-name{font-size:1.75rem;font-weight:700;color:var(--keio-navy);margin:0;line-height:1.3}.event-detail-tags{display:flex;flex-wrap:wrap;gap:.5rem}.event-tag-large{padding:.3rem .75rem;background:var(--keio-yellow);color:var(--keio-navy);border-radius:4px;font-size:.85rem;font-weight:600}.event-detail-description{background:#f9f9f9;padding:1rem;border-radius:6px;border-left:4px solid var(--keio-yellow)}.event-detail-description p{margin:0;color:#555;line-height:1.6;white-space:pre-wrap}.event-basic-info{display:flex;flex-direction:column;gap:1rem;padding:1rem;background:#f5f5f5;border-radius:6px}.info-section{padding:1rem;background:#fff;border-radius:4px;border:1px solid #ddd}.info-section-title{font-size:.9rem;font-weight:700;color:var(--keio-navy);margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.info-list{display:flex;flex-direction:column;gap:.5rem}.info-row{display:flex;align-items:center;gap:.75rem}.info-icon{font-size:1rem;width:24px;text-align:center}.info-label{font-size:.85rem;color:#666;font-weight:500;min-width:80px}.info-value{font-size:.95rem;color:#333;font-weight:500}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.info-item{display:flex;flex-direction:column;align-items:center;padding:1rem;background:#fff;border-radius:4px;border:1px solid #ddd}.info-item .info-label{margin-bottom:.5rem;text-align:center}.info-item .info-value{font-size:1.75rem;font-weight:700;color:var(--keio-navy)}.event-capacity-info{display:flex;flex-direction:column;gap:.5rem}.capacity-available-large{padding:.75rem 1rem;background:#e8f5e9;color:#2e7d32;border-radius:4px;font-weight:500;text-align:center}.capacity-full-large{padding:.75rem 1rem;background:#ffebee;color:#c62828;border-radius:4px;font-weight:500;text-align:center}.info-badge-large{padding:.75rem 1rem;background:#e1f5fe;color:#0277bd;border-radius:4px;font-weight:500;text-align:center}.event-detail-row{display:flex;flex-direction:column;gap:.25rem}.application-period{display:flex;flex-direction:column;gap:.5rem}.period-item{display:flex;gap:.5rem}.period-label{font-weight:500;color:#666;min-width:50px}.period-value{color:#333}.section-title{font-size:1.1rem;font-weight:700;color:var(--keio-navy);margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:2px solid var(--keio-yellow)}.event-sku-section{padding:1rem;background:#fafafa;border-radius:6px;border:1px solid #eee}.sku-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}.sku-detail-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border:1px solid #ddd;border-radius:4px}.sku-code{font-weight:500;color:#333;font-size:.9rem}.sku-capacity{background:var(--keio-yellow);color:var(--keio-navy);padding:.25rem .5rem;border-radius:3px;font-weight:700;font-size:.85rem}.event-url-section{padding:1rem;background:#f9f9f9;border-radius:6px}.event-url-link{color:var(--keio-navy);font-weight:500;text-decoration:underline;transition:color .3s ease}.event-url-link:hover{color:var(--keio-red)}.event-caution-section{padding:1rem;background:#fff3e0;border-radius:6px;border-left:4px solid #ff9800}.caution-text p{margin:0;color:#e65100;line-height:1.6;white-space:pre-wrap;font-size:.95rem}.event-apply-section{padding:1.5rem;background:#f8f9fa;border-radius:8px;border:2px solid var(--keio-yellow)}.user-status-info{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.5rem}.status-item{display:flex;flex-direction:column;align-items:center;padding:.75rem;background:#fff;border-radius:4px;border:1px solid #ddd}.status-label{font-size:.8rem;color:#666;margin-bottom:.25rem}.status-value{font-size:1.25rem;font-weight:700;color:var(--keio-navy)}.form-group label{display:block;font-size:.9rem;font-weight:500;color:#333;margin-bottom:.5rem}.form-control{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s ease}.form-control:focus{outline:none;border-color:var(--keio-navy);box-shadow:0 0 0 3px #001e621a}.event-actions{display:flex;gap:1rem;margin-top:1rem}.btn{flex:1;padding:1rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary:hover:not(:disabled){background-color:#002a7d;box-shadow:0 4px 12px #001e6233}.btn-outline{background-color:transparent;border:2px solid var(--keio-navy);color:var(--keio-navy);padding:.5rem 1rem;font-weight:500}.btn-disabled{background-color:#ccc;color:#666;cursor:not-allowed}.btn-disabled:hover{background-color:#ccc}@media(max-width:768px){.event-detail-page{padding:1.5rem 1rem}.event-detail-container{grid-template-columns:1fr;gap:1.5rem;padding:1.5rem}.event-detail-name{font-size:1.5rem}.info-grid{grid-template-columns:1fr 1fr}.sku-details{grid-template-columns:1fr}.event-thumbnails{max-width:100%}.event-actions{flex-direction:column}.user-status-info{grid-template-columns:1fr;gap:.5rem}.event-apply-section{padding:1rem}}@media(max-width:480px){.event-detail-container{padding:1rem}.event-detail-name{font-size:1.25rem}.info-grid{grid-template-columns:1fr}.info-item,.event-detail-description{padding:.75rem}.event-basic-info{gap:.75rem;padding:.75rem}.event-sku-section,.event-caution-section{padding:.75rem}.btn{padding:.75rem;font-size:.95rem}}.cart-page{padding:2rem 1rem;max-width:1200px;margin:0 auto}.cart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.cart-header h1{font-size:2rem;font-weight:700;color:var(--keio-navy);margin:0}.loading{text-align:center;padding:2rem;color:#666}.cart-empty{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.cart-empty p{font-size:1.25rem;color:#666;margin-bottom:2rem}.cart-container{display:grid;grid-template-columns:2fr 1fr;gap:2rem}.cart-items{display:flex;flex-direction:column;gap:1rem}.cart-item{display:grid;grid-template-columns:120px 1fr auto;gap:1.5rem;padding:1.5rem;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;transition:box-shadow .3s ease}.cart-item:hover{box-shadow:0 4px 12px #00000026}.cart-item-image{width:120px;height:120px;border-radius:6px;overflow:hidden;background:#f5f5f5;display:flex;align-items:center;justify-content:center}.cart-item-image img{width:100%;height:100%;object-fit:cover}.image-placeholder{color:#999;font-size:.85rem;text-align:center}.cart-item-details{display:flex;flex-direction:column;gap:.5rem}.cart-item-name{font-size:1.25rem;font-weight:700;color:var(--keio-navy);margin:0}.cart-item-sku{font-size:.9rem;color:#666;margin:0}.cart-item-requirements{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.5rem}.requirement-badge{padding:.5rem .75rem;background:#f0f0f0;border-radius:4px;font-size:.9rem;color:#333;font-weight:500}.cart-item-actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-end}.quantity-control{display:flex;align-items:center;gap:.5rem}.quantity-control label{font-size:.9rem;color:#666}.quantity-control input{width:70px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;text-align:center}.quantity-control input:focus{outline:none;border-color:var(--keio-navy);box-shadow:0 0 0 3px #001e621a}.cart-summary{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a;height:fit-content;position:sticky;top:1rem}.cart-summary h2{font-size:1.5rem;font-weight:700;color:var(--keio-navy);margin:0 0 1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--keio-yellow)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid #eee}.summary-row:last-of-type{border-bottom:none;padding-bottom:1rem;margin-bottom:1rem;border-bottom:2px solid #ddd}.summary-label{font-size:1rem;color:#666;font-weight:500}.summary-value{font-size:1.25rem;font-weight:700;color:var(--keio-navy)}.shipping-note{font-size:.85rem;color:#2e7d32;background:#e8f5e9;padding:.75rem;border-radius:4px;margin:1rem 0;text-align:center}.cart-actions{display:flex;flex-direction:column;gap:1rem;margin-top:1.5rem}.btn{padding:1rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;text-align:center;text-decoration:none;display:block}.btn-primary:hover{background-color:#002a7d;box-shadow:0 4px 12px #001e6233}.btn-outline-danger{background-color:transparent;border:2px solid var(--keio-red);color:var(--keio-red);padding:.75rem 1.5rem;font-size:.95rem}.btn-outline-danger:hover{background-color:var(--keio-red);color:#fff}.btn-danger{background-color:var(--keio-red);color:#fff;padding:.5rem 1rem;font-size:.9rem}.btn-danger:hover{background-color:#a02820}@media(max-width:768px){.cart-page{padding:1.5rem 1rem}.cart-header{flex-direction:column;gap:1rem;align-items:flex-start}.cart-header h1{font-size:1.5rem}.cart-container{grid-template-columns:1fr}.cart-item{grid-template-columns:100px 1fr;gap:1rem;padding:1rem}.cart-item-image{width:100px;height:100px}.cart-item-actions{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center}.cart-summary{position:static}.cart-item-requirements{flex-direction:column;gap:.5rem}}@media(max-width:480px){.cart-item{grid-template-columns:80px 1fr;gap:.75rem;padding:.75rem}.cart-item-image{width:80px;height:80px}.cart-item-name{font-size:1rem}.cart-summary{padding:1.5rem}.quantity-control input{width:60px}}.checkout-page{max-width:800px;margin:0 auto;padding:20px}.checkout-steps{display:flex;justify-content:space-between;margin-bottom:30px;border-bottom:1px solid #ddd;padding-bottom:10px}.step{font-weight:700;color:#aaa}.step.active{color:#007bff}.address-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:15px;margin-bottom:20px}.address-card{border:1px solid #ddd;padding:15px;border-radius:8px;cursor:pointer;transition:all .2s}.address-card:hover{border-color:#007bff;background-color:#f8f9fa}.address-card.selected{border-color:#007bff;background-color:#e7f1ff;box-shadow:0 0 0 2px #007bff40}.address-header{display:flex;align-items:center;margin-bottom:10px;font-weight:700}.address-header input{margin-right:10px}.badge-main{background-color:#28a745;color:#fff;font-size:.8em;padding:2px 6px;border-radius:4px;margin-left:auto}.new-address-form{background-color:#f8f9fa;padding:20px;border-radius:8px;margin-bottom:20px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:700}.form-group input[type=text]{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}.form-group input.error{border-color:#dc3545}.error-msg{color:#dc3545;font-size:.85em;margin-top:4px;display:block}.form-actions{display:flex;gap:10px;justify-content:flex-end}.checkout-actions{display:flex;justify-content:space-between;margin-top:30px;border-top:1px solid #ddd;padding-top:20px}.order-summary{background:#fff;border:1px solid #ddd;border-radius:8px;padding:20px;margin-bottom:20px}.summary-section{margin-bottom:20px}.summary-section h3{border-bottom:1px solid #eee;padding-bottom:10px;margin-bottom:15px}.confirm-items .item-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #f0f0f0}.confirm-totals{background:#f8f9fa;padding:15px;border-radius:8px}.total-row{display:flex;justify-content:space-between;margin-bottom:5px}.total-row.grand-total{font-weight:700;font-size:1.2em;margin-top:10px;padding-top:10px;border-top:1px solid #ddd}.payment-section{margin-top:30px;border:1px solid #ddd;padding:20px;border-radius:8px}.profile-page{padding:1rem;max-width:800px;margin:0 auto}.profile-section{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000001a}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #001E62}.section-header h2{font-size:1.25rem;color:#001e62;margin:0}.section-header .btn{flex-shrink:0;max-width:120px;padding:.5rem 1rem;font-size:1rem}.profile-page .info-list{margin:0}.profile-page .info-item{display:flex;padding:.4rem 0;border-bottom:1px solid #eee}.profile-page .info-item:last-child{border-bottom:none}.profile-page .info-item dt{width:120px;flex:none;font-weight:500;font-size:.875rem;color:#666}.profile-page .info-item dd{flex:1;margin:0;color:#333}.edit-form,.address-form{margin-top:1rem}.address-form{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1rem}.address-form h3{font-size:1rem;margin:0 0 1rem;color:#333}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:#333}.form-group .required{color:#c63527}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#001e62;box-shadow:0 0 0 2px #001e621a}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.address-list{display:flex;flex-direction:column;gap:1rem}.address-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;position:relative}.address-card.main{border-color:#f1c400;background:#fffef5}.main-badge{position:absolute;top:.5rem;right:.5rem;background:#f1c400;color:#001e62;font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:4px}.address-content{margin-bottom:1rem}.address-actions{display:flex;flex-wrap:wrap;gap:.5rem}.empty-message{text-align:center;color:#666;padding:2rem}.danger-zone{border:1px solid #C63527}.danger-zone h2{color:#c63527}.warning-text{color:#666;margin-bottom:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;border-radius:4px;border:none;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#001e62;color:#fff}.btn-primary:hover:not(:disabled){background:#002b8f}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-danger{background:#c63527;color:#fff}.btn-danger:hover:not(:disabled){background:#a52b1f}.btn-outline{background:transparent;border:1px solid #001E62;color:#001e62}.btn-outline:hover:not(:disabled){background:#001e62;color:#fff}.btn-danger-outline{background:transparent;border:1px solid #C63527;color:#c63527}.btn-danger-outline:hover:not(:disabled){background:#c63527;color:#fff}.btn-sm{padding:.5rem .75rem;font-size:.875rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#fff;border-radius:8px;padding:1.5rem;max-width:400px;width:100%}.modal h3{margin:0 0 1rem;color:#c63527}.modal p{color:#666;margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}@media(max-width:600px){.form-row{flex-direction:column;gap:0}.profile-page .info-item{flex-direction:column;padding:.3rem 0}.profile-page .info-item dt{width:auto;flex:none;font-size:.75rem;margin-bottom:.1rem}.profile-page .info-item dd{font-size:.9rem}.address-actions{justify-content:flex-start}}.gift-exchange-history{padding:1rem;max-width:800px;margin:0 auto}.exchange-list{display:flex;flex-direction:column;gap:1rem}.exchange-card-link{text-decoration:none;color:inherit}.exchange-card{display:flex;gap:1rem;background:#fff;border-radius:8px;padding:1rem;box-shadow:0 1px 3px #0000001a;transition:box-shadow .2s}.exchange-card:hover{box-shadow:0 4px 12px #00000026}.exchange-image{flex:0 0 100px;height:100px;border-radius:4px;overflow:hidden;background:#f0f0f0}.exchange-image img{width:100%;height:100%;object-fit:cover}.exchange-info{flex:1;min-width:0}.exchange-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.exchange-year{font-size:.75rem;color:#666;background:#f0f0f0;padding:.125rem .5rem;border-radius:4px}.delivery-status{font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:4px}.exchange-name{font-size:1rem;font-weight:600;color:#333;margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.exchange-sku{font-size:.875rem;color:#666;margin:0 0 .5rem}.exchange-details{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:.5rem}.exchange-date{font-size:.75rem;color:#999;margin:0}.exchange-arrow{display:flex;align-items:center;color:#ccc;font-size:1.25rem}@media(max-width:600px){.filter-section,.exchange-card{flex-direction:column}.exchange-image{flex:0 0 auto;width:100%;height:150px}.exchange-arrow{display:none}}.gift-exchange-detail{padding:1rem;max-width:800px;margin:0 auto}.exchange-year{font-size:.875rem;color:#666;background:#f0f0f0;padding:.25rem .5rem;border-radius:4px}.delivery-status{font-size:.875rem;font-weight:500;padding:.25rem .75rem;border-radius:4px}.gift-name{font-size:1.5rem;color:#001e62;margin:0 0 .5rem}.gift-sku{font-size:1rem;color:#666;margin:0 0 1.5rem}.address-box{background:#f8f9fa;padding:1rem;border-radius:4px}.address-name{font-weight:600;margin:0 0 .5rem;color:#333}.address-postal{font-size:.875rem;color:#666;margin:0 0 .25rem}.address-detail{margin:0 0 .25rem;color:#333}.address-phone{font-size:.875rem;color:#666;margin:0}.event-history{padding:1rem;max-width:800px;margin:0 auto}.page-title{font-size:1.5rem;color:#001e62;margin-bottom:1.5rem}.filter-section{display:flex;gap:1rem;margin-bottom:1.5rem;background:#fff;padding:1rem;border-radius:8px;box-shadow:0 1px 3px #0000001a}.filter-group{flex:1}.filter-group label{display:block;font-size:.875rem;font-weight:500;color:#666;margin-bottom:.5rem}.filter-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;background:#fff}.filter-group select:focus{outline:none;border-color:#001e62}.participant-list{display:flex;flex-direction:column;gap:1rem}.participant-card-link{text-decoration:none;color:inherit}.participant-card{display:flex;gap:1rem;background:#fff;border-radius:8px;padding:1rem;box-shadow:0 1px 3px #0000001a;transition:box-shadow .2s}.participant-card:hover{box-shadow:0 4px 12px #00000026}.participant-image{flex:0 0 100px;height:100px;border-radius:4px;overflow:hidden;background:#f0f0f0}.participant-image img{width:100%;height:100%;object-fit:cover}.image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#999}.participant-info{flex:1;min-width:0}.participant-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.participant-year{font-size:.75rem;color:#666;background:#f0f0f0;padding:.125rem .5rem;border-radius:4px}.participant-status{font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:4px}.event-name{font-size:1rem;font-weight:600;color:#333;margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-sku{font-size:.875rem;color:#666;margin:0 0 .5rem}.participant-details{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.5rem}.detail-item{font-size:.75rem}.detail-item .label{color:#666}.detail-item .value{color:#333;font-weight:500}.participant-date{font-size:.75rem;color:#999;margin:0}.participant-arrow{display:flex;align-items:center;color:#ccc;font-size:1.25rem}.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.empty-state p{color:#666;margin:0}@media(max-width:600px){.filter-section,.participant-card{flex-direction:column}.participant-image{flex:0 0 auto;width:100%;height:150px}.participant-arrow{display:none}}.event-detail-page{padding:1rem;max-width:800px;margin:0 auto}.back-link{display:inline-block;color:#001e62;text-decoration:none;font-size:.875rem;margin-bottom:1rem}.back-link:hover{text-decoration:underline}.detail-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.participant-year{font-size:.875rem;color:#666;background:#f0f0f0;padding:.25rem .5rem;border-radius:4px}.participant-status{font-size:.875rem;font-weight:500;padding:.25rem .75rem;border-radius:4px}.status-complete{background:#d4edda;color:#155724}.status-confirmed{background:#cce5ff;color:#004085}.status-pending{background:#fff3cd;color:#856404}.status-cancelled{background:#f8d7da;color:#721c24}.event-name{font-size:1.5rem;color:#001e62;margin:0 0 .5rem}.event-sku{font-size:1rem;color:#666;margin:0 0 1.5rem}.image-section{margin-bottom:1.5rem}.main-image{width:100%;max-height:400px;border-radius:8px;overflow:hidden;background:#f0f0f0;margin-bottom:.5rem}.main-image img{width:100%;height:100%;object-fit:contain}.image-thumbnails{display:flex;gap:.5rem;overflow-x:auto;padding:.25rem 0}.thumbnail{flex:0 0 60px;width:60px;height:60px;padding:0;border:2px solid transparent;border-radius:4px;overflow:hidden;cursor:pointer;background:#f0f0f0}.thumbnail.active{border-color:#001e62}.thumbnail img{width:100%;height:100%;object-fit:cover}.detail-section{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 1px 3px #0000001a}.detail-section h2{font-size:1.125rem;color:#001e62;margin:0 0 1rem;padding-bottom:.5rem;border-bottom:2px solid #001E62}.info-list{margin:0}.info-item{display:flex;padding:.5rem 0;border-bottom:1px solid #eee}.info-item:last-child{border-bottom:none}.info-item dt{flex:0 0 120px;font-weight:500;color:#666}.info-item dd{flex:1;margin:0;color:#333}.info-item dd a{color:#001e62;text-decoration:none;word-break:break-all}.info-item dd a:hover{text-decoration:underline}.description{line-height:1.8;color:#333}.detail-section.attention{border-left:4px solid #F1C400}.attention-text{line-height:1.8;color:#666}.notes{margin:0;line-height:1.8;color:#666}.alert{padding:1rem;border-radius:4px;margin-bottom:1rem}.alert-error{background:#fde8e8;color:#c63527;border:1px solid #f5c6c6}.loading{text-align:center;padding:3rem;color:#666}@media(max-width:600px){.info-item{flex-direction:column}.info-item dt{font-size:.875rem;margin-bottom:.25rem}}.links-page{padding:16px 16px 80px}.page-header{margin-bottom:20px}.page-title{font-size:1.5rem;font-weight:700;color:#001e62;margin:0}.loading{text-align:center;padding:40px;color:#666}.empty-state{text-align:center;padding:40px;color:#666;background:#f8f9fa;border-radius:8px}.alert-error{background-color:#f8d7da;color:#721c24;padding:12px 16px;border-radius:8px;margin-bottom:16px}.links-list{display:flex;flex-direction:column;gap:12px}.link-item{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.link-anchor{display:flex;align-items:center;justify-content:space-between;padding:16px;color:#001e62;text-decoration:none;font-weight:500;transition:background-color .2s}.link-anchor:hover{background-color:#f8f9fa}.link-anchor:active{background-color:#e9ecef}.external-icon{color:#6c757d;font-size:1rem;margin-left:8px}:root{--keio-yellow: #F1C400;--keio-navy: #001E62;--keio-red: #C63527;--max-width: 900px;--header-height: 60px;--bottom-nav-height: 60px;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fff;color:#333}#root{min-height:100vh;display:flex;flex-direction:column}.container{max-width:var(--max-width);margin:0 auto;width:100%;padding:0 var(--spacing-md)}.btn{display:inline-block;padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;font-weight:500;text-decoration:none;text-align:center;cursor:pointer;transition:all .3s ease}.btn-primary{background-color:var(--keio-navy);color:#fff}.btn-primary:hover{background-color:#002a7d}.btn-secondary{background-color:var(--keio-yellow);color:#333}.btn-secondary:hover{background-color:#d9ae00}.btn-outline{background-color:transparent;border:2px solid var(--keio-navy);color:var(--keio-navy)}.btn-outline:hover{background-color:var(--keio-navy);color:#fff}a{color:var(--keio-navy);text-decoration:none}a:hover{text-decoration:underline}.card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:var(--spacing-lg);box-shadow:0 2px 4px #0000001a}@media(max-width:768px){:root{--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem}.container{padding:0 var(--spacing-sm)}}.text-center{text-align:center}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}.py-1{padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.py-2{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.py-3{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}.py-4{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.px-1{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}.px-2{padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.px-3{padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}.px-4{padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}
