/* public/css/portal.css */

:root {
    --main-blue: #0055FF;
    --off-white: #F9F9F9;
    --off-black: #1A1A1B;
    --blur-val: 5px;
}

/* 基本設定 */
body { 
    background-color: var(--off-white); 
    color: var(--off-black); 
    font-family: 'Montserrat', 'Noto Sans JP', sans-serif; 
}

/* ナビゲーション */
.nav-header {
    position: sticky; top: 0; width: 100%; padding: 15px 25px;
    background: rgba(249, 249, 249, 0.8); backdrop-filter: blur(var(--blur-val));
    -webkit-backdrop-filter: blur(var(--blur-val));
    border-bottom: 1px solid var(--off-black); z-index: 1000;
}
.separator { width: 1px; height: 1.5rem; background: var(--off-black); margin: 0 15px; }

/* アップロードドロップダウン */
.upload-wrapper:hover .upload-dropdown { display: block; }
.upload-dropdown { display: none; position: absolute; top: 100%; left: 0; background: white; border: 1px solid black; min-width: 140px; }

/* モバイルフルメニュー */
#full-menu {
    position: fixed; top: 0; left: 0; width: 100%; height: 100vh;
    background: var(--main-blue); z-index: 2000;
    display: none; flex-direction: column; align-items: center; justify-content: center;
}
.full-menu-link { font-size: 32px; font-weight: 900; color: white; letter-spacing: 0.2em; margin: 15px 0; text-decoration: none; }

/* スケジュールカード共通デザイン */
.schedule-card {
    background: rgba(249, 249, 249, 0.8); border-left: 5px solid var(--main-blue);
    padding: 15px; margin-bottom: 15px; color: var(--off-black);
    position: relative; overflow: hidden; min-height: 140px;
    border-top: 1px solid #eee; border-right: 1px solid #eee; border-bottom: 1px solid #eee;
    transition: all 0.3s ease;
    backdrop-filter: blur(var(--blur-val));
    -webkit-backdrop-filter: blur(var(--blur-val));
}
.bg-date {
    position: absolute; right: -5px; top: -5px;
    font-family: 'Montserrat'; font-weight: 900;
    color: rgba(26, 26, 27, 0.15); line-height: 0.9; text-align: right; pointer-events: none; z-index: 0;
}

/* カスタムスクロールバー */
.custom-scrollbar::-webkit-scrollbar { width: 3px; }
.custom-scrollbar::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); }
.custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.2); }

/* スライダー用アニメーション */
.animate-subtle-zoom {
    transform-origin: right center;
    animation: subtle-zoom-mobile 10s linear infinite alternate;
}
@keyframes subtle-zoom-mobile { 0% { transform: scale(1.0); } 100% { transform: scale(1.08); } }
@media (min-width: 1024px) {
    .animate-subtle-zoom {
        transform-origin: top left;
        animation: subtle-zoom-pc 10s linear infinite alternate;
    }
    @keyframes subtle-zoom-pc { 0% { transform: scale(1.0); } 100% { transform: scale(1.03); } }
}