*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#1a56a0;--color-primary-light:#e8f0fb;--color-setsumeikai:#2563eb;--color-open-campus:#059669;--color-joint:#d97706;--color-pretest:#dc2626;--color-personal:#7c3aed;--bg-app:#f1f5f9;--bg-card:#fff;--border:#e2e8f0;--text-main:#1e293b;--text-sub:#64748b;--text-sm:.8125rem;--radius:8px;--shadow:0 1px 3px rgba(0,0,0,.08) , 0 1px 2px rgba(0,0,0,.05)}.hidden{display:none!important}body{font-family:"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;background:var(--bg-app);color:var(--text-main);font-size:.9375rem;line-height:1.6}img{display:block}button{cursor:pointer}.site-header{background:#606;color:#fff;padding:.875rem 1.5rem;display:flex;align-items:center;gap:1rem}.site-header h1{font-size:1.125rem;font-weight:700;letter-spacing:.02em}.site-header .subtitle{font-size:var(--text-sm);opacity:.8;margin-left:auto}.app-layout{display:grid;grid-template-columns:1fr 420px;gap:1rem;padding:1rem;max-width:1280px;margin:0 auto;align-items:start}.calendar-section{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.calendar-toolbar{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.calendar-toolbar .legend{display:flex;gap:.75rem;flex-wrap:wrap;margin-left:auto}.legend-item{display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-sub)}.legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.btn-add{background:var(--color-primary);color:#fff;border:none;border-radius:6px;padding:.4rem .875rem;font-size:var(--text-sm);font-weight:600;transition:background .15s}.btn-add:hover{background: #1446880;filter:brightness(1.1)}.fc .fc-toolbar-title{font-size:1rem;font-weight:700}.fc .fc-button{font-size:.8125rem!important}.fc .fc-button-primary{background-color:var(--color-primary)!important;border-color:var(--color-primary)!important}.fc .fc-button-primary:hover{filter:brightness(1.1)!important}.fc .fc-day-today{background:var(--color-primary-light)!important}.fc .fc-event{border:none!important;font-size:.75rem;padding:1px 4px;border-radius:3px;cursor:pointer;color:#fff!important;font-weight:400!important}.fc .fc-event:hover{filter:brightness(1.1)}.fc-daygrid-event-dot{display:none}.fc .fc-daygrid-day-top{align-items:center}.holiday-name{font-size:.6rem;color:#dc2626;line-height:1.2;padding-left:4px}.fc .fc-col-header-cell.fc-day-sat a{color:#1d4ed8}.fc .fc-col-header-cell.fc-day-sun a{color:#dc2626}.fc .fc-day-sat .fc-daygrid-day-number{color:#1d4ed8}.fc .fc-day-sun .fc-daygrid-day-number,.fc .fc-day-holiday .fc-daygrid-day-number{color:#dc2626}.fc .fc-event.ev-personal{opacity:.85;border-left:3px dashed rgba(255,255,255,.6)!important}.cat-説明会{background-color:var(--color-setsumeikai)!important}.cat-オープンキャンパス{background-color:var(--color-open-campus)!important}.cat-合同説明会{background-color:var(--color-joint)!important}.cat-プレテスト{background-color:var(--color-pretest)!important}.cat-個人メモ{background-color:var(--color-personal)!important}.map-section{display:flex;flex-direction:column;gap:.75rem}.map-card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.map-card-header{padding:.625rem 1rem;font-size:var(--text-sm);font-weight:600;color:var(--text-sub);background:#f8fafc;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.map-tabs{display:flex;overflow-x:auto;border-bottom:1px solid var(--border);background:#f8fafc}.map-tab{flex-shrink:0;padding:.4rem .875rem;font-size:.8125rem;font-weight:600;color:var(--text-sub);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .15s , border-color .15s}.map-tab:hover{color:var(--color-primary)}.map-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.map-card iframe{width:100%;height:320px;border:none;display:block}.btn-map-reset{font-size:.75rem;color:var(--color-primary);background:none;border:none;padding:0;text-decoration:underline}.event-detail{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.event-detail.hidden{display:none}.event-detail-header{display:flex;align-items:flex-start;gap:.625rem;margin-bottom:.75rem}.event-detail-header .category-badge{font-size:.6875rem;font-weight:700;padding:2px 8px;border-radius:12px;color:#fff;white-space:nowrap;margin-top:2px;flex-shrink:0}.event-detail-header h2{font-size:1rem;font-weight:700;line-height:1.4}.event-meta{display:flex;flex-direction:column;gap:.375rem;font-size:var(--text-sm);color:var(--text-sub);margin-bottom:.75rem}.event-meta span{display:flex;align-items:center;gap:.375rem}.event-description{font-size:var(--text-sm);color:var(--text-main);padding:.5rem .75rem;background:#f8fafc;border-radius:4px;margin-bottom:.75rem;line-height:1.6}.event-description:empty{display:none}.event-actions{display:flex;gap:.5rem;flex-wrap:wrap}.btn-map-view{background:var(--color-primary);color:#fff;border:none;border-radius:6px;padding:.4rem .875rem;font-size:var(--text-sm);font-weight:600}.btn-map-view:hover{filter:brightness(1.1)}.btn-map-view.hidden{display:none}.btn-edit-event{background:none;border:1px solid var(--border);border-radius:6px;padding:.4rem .875rem;font-size:var(--text-sm);color:var(--text-main)}.btn-edit-event:hover{background:#f8fafc}.btn-edit-event.hidden{display:none}.btn-delete-event{background:none;border:1px solid #fecaca;border-radius:6px;padding:.4rem .875rem;font-size:var(--text-sm);color:var(--color-nyushi)}.btn-delete-event:hover{background:#fff5f5}.btn-delete-event.hidden{display:none}.storage-note{font-size:.75rem;color:var(--text-sub);padding:.5rem .75rem;border-left:2px solid var(--border);line-height:1.5}.event-placeholder{text-align:center;padding:1.5rem 1rem;color:var(--text-sub);font-size:var(--text-sm)}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-overlay.hidden{display:none}.modal-box{background:var(--bg-card);border-radius:var(--radius);box-shadow:0 20px 40px rgba(0,0,0,.2);width:100%;max-width:440px;padding:1.5rem}.modal-box h2{font-size:1.0625rem;font-weight:700;margin-bottom:1.125rem}.form-group{margin-bottom:.875rem}.form-group label{display:block;font-size:.8125rem;font-weight:600;color:var(--text-sub);margin-bottom:.25rem}.form-group input,.form-group select,.form-group textarea{width:100%;border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;font-size:.9375rem;font-family:inherit;color:var(--text-main);background:#fff;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(26,86,160,.12)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.form-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.125rem}.btn-cancel{background:none;border:1px solid var(--border);border-radius:6px;padding:.5rem 1.25rem;font-size:.9375rem;color:var(--text-main)}.btn-cancel:hover{background:#f8fafc}.btn-save{background:var(--color-primary);color:#fff;border:none;border-radius:6px;padding:.5rem 1.25rem;font-size:.9375rem;font-weight:600}.btn-save:hover{filter:brightness(1.1)}.share-panel{display:none}.share-panel-title{font-size:.8125rem;font-weight:700;color:var(--text-sub);margin-bottom:.875rem;letter-spacing:.03em}.btn-generate-code{width:100%;background:var(--color-primary);color:#fff;border:none;border-radius:6px;padding:.5rem 1rem;font-size:var(--text-sm);font-weight:600;text-align:center}.btn-generate-code:hover{filter:brightness(1.1)}.share-or{text-align:center;font-size:.75rem;color:var(--text-sub);margin:.625rem 0;position:relative}.share-or::before,.share-or::after{content:"";position:absolute;top:50%;width:30%;height:1px;background:var(--border)}.share-or::before{left:0}.share-or::after{right:0}.share-join-row{display:flex;gap:.5rem}.input-room-code{flex:1;border:1px solid var(--border);border-radius:6px;padding:.45rem .75rem;font-size:var(--text-sm);font-family:"SF Mono","Fira Code",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--text-main)}.input-room-code:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(26,86,160,.12)}.btn-join-room{background:#f1f5f9;border:1px solid var(--border);border-radius:6px;padding:.45rem .875rem;font-size:var(--text-sm);font-weight:600;color:var(--text-main);white-space:nowrap}.btn-join-room:hover{background:#e2e8f0}.share-code-row{display:flex;align-items:center;gap:.5rem;background:var(--color-primary-light);border-radius:6px;padding:.5rem .75rem;margin-bottom:.625rem}.share-code-label{font-size:.75rem;color:var(--text-sub);white-space:nowrap}.share-code-value{font-family:"SF Mono","Fira Code",monospace;font-size:1rem;font-weight:700;letter-spacing:.15em;color:var(--color-primary);flex:1}.btn-copy-code{background:var(--color-primary);color:#fff;border:none;border-radius:4px;padding:.2rem .625rem;font-size:.75rem;white-space:nowrap}.btn-copy-code:hover{filter:brightness(1.1)}.share-active-note{font-size:.75rem;color:var(--text-sub);margin-bottom:.625rem;line-height:1.5}.btn-leave-room{background:none;border:1px solid #fecaca;border-radius:6px;padding:.375rem .875rem;font-size:.75rem;color:var(--color-nyushi);width:100%}.btn-leave-room:hover{background:#fff5f5}.ev-detail-modal{display:none}@media (max-width:820px){.ev-detail-modal{position:fixed;inset:0;background:rgba(15,23,42,.5);display:flex;align-items:center;justify-content:center;z-index:900;padding:1rem}.ev-detail-modal.hidden{display:none!important}.ev-detail-modal-box{background:#fff;border-radius:var(--radius);box-shadow:0 20px 40px rgba(0,0,0,.2);width:100%;max-height:80vh;overflow-y:auto;padding:1.25rem;position:relative}.ev-detail-close{position:absolute;top:.75rem;right:.75rem;background:none;border:none;font-size:1.25rem;color:var(--text-sub);line-height:1;padding:.25rem .5rem}.app-layout{grid-template-columns:1fr}.map-card iframe{height:260px}.site-header .subtitle{display:none}}@media (max-width:560px){.site-header{padding:.75rem 1rem}.site-header h1{font-size:1rem}.app-layout{padding:.75rem;gap:.75rem}.calendar-section{padding:.75rem}.calendar-toolbar .legend{display:none}.map-card iframe{height:220px}.form-row{grid-template-columns:1fr}}