:root { --bg-primary: #313338; --bg-secondary: #2b2d31; --bg-tertiary: #1e1f22; --bg-card: #383a40; --bg-hover: #404249; --accent-green: #57f287; --accent-blue: #5865f2; --accent-yellow: #fee75c; --accent-red: #ed4245; --text-primary: #dbdee1; --text-muted: #949ba4; --text-white: #ffffff; --border: #404249; --radius-sm: 6px; --radius-md: 10px; --radius-lg: 16px; --shadow: 0 2px 10px rgba(0,0,0,0.4); --transition: 0.18s ease; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: var(--bg-primary); color: var(--text-primary); min-height: 100vh; line-height: 1.6; } a { color: inherit; text-decoration: none; } /* HEADER */ .site-header { background: var(--bg-tertiary); border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 100; padding: 0 1.5rem; } .header-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; height: 64px; gap: 1rem; } .logo { display: flex; align-items: center; gap: 0.75rem; } .logo-icon { font-size: 2rem; } .logo h1 { font-size: 1.1rem; font-weight: 700; color: var(--text-white); line-height: 1.2; } .logo-sub { font-size: 0.72rem; color: var(--text-muted); } .top-nav { display: flex; gap: 0.5rem; } .nav-link { padding: 0.4rem 0.9rem; border-radius: var(--radius-sm); font-size: 0.9rem; font-weight: 500; color: var(--text-muted); transition: var(--transition); } .nav-link:hover, .nav-link.active { background: var(--bg-hover); color: var(--text-white); } /* MAIN */ .content { max-width: 1200px; margin: 0 auto; padding: 2rem 1.5rem 4rem; } /* HERO */ .hero { text-align: center; padding: 2.5rem 1rem 2rem; } .hero h2 { font-size: 2rem; font-weight: 700; color: var(--text-white); margin-bottom: 0.5rem; } .hero p { color: var(--text-muted); } .hero strong { color: var(--accent-green); } /* MONTH GRID */ .month-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; margin: 1.5rem 0 2.5rem; } .month-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 1.75rem 1.5rem; text-align: center; transition: var(--transition); display: block; } .month-card:hover { background: var(--bg-hover); border-color: var(--accent-green); transform: translateY(-3px); box-shadow: var(--shadow); } .month-emoji { font-size: 2.2rem; margin-bottom: 0.5rem; } .month-name { font-size: 1.1rem; font-weight: 600; color: var(--text-white); margin-bottom: 0.6rem; } .count-badge { display: inline-block; background: var(--accent-green); color: #000; font-size: 0.78rem; font-weight: 700; padding: 0.2rem 0.7rem; border-radius: 100px; } .count-badge.empty { background: var(--bg-secondary); color: var(--text-muted); } /* INFO STRIP */ .info-strip { display: flex; flex-wrap: wrap; gap: 1rem; background: var(--bg-secondary); border-radius: var(--radius-lg); padding: 1.25rem 1.5rem; border: 1px solid var(--border); } .info-item { display: flex; align-items: center; gap: 0.75rem; flex: 1; min-width: 160px; } .info-icon { font-size: 1.6rem; } .info-item strong { display: block; color: var(--text-white); font-size: 0.95rem; } .info-item small { color: var(--text-muted); font-size: 0.8rem; } /* BREADCRUMB */ .breadcrumb { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; color: var(--text-muted); margin-bottom: 1.5rem; flex-wrap: wrap; } .breadcrumb a { color: var(--accent-green); } .breadcrumb a:hover { text-decoration: underline; } .breadcrumb .sep { color: var(--border); } /* MONTH NAV */ .month-nav { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; gap: 1rem; flex-wrap: wrap; } .month-title { font-size: 1.8rem; font-weight: 700; color: var(--text-white); text-align: center; flex: 1; } .month-nav-btn { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.5rem 1rem; font-size: 0.9rem; color: var(--text-muted); transition: var(--transition); white-space: nowrap; } .month-nav-btn:hover { background: var(--bg-hover); color: var(--text-white); border-color: var(--accent-green); } /* FILTER BAR */ .month-summary { color: var(--text-muted); font-size: 0.9rem; margin-bottom: 1rem; } .filter-bar { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; } .filter-btn { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.35rem 0.85rem; font-size: 0.82rem; color: var(--text-muted); cursor: pointer; transition: var(--transition); font-family: inherit; } .filter-btn:hover { background: var(--bg-hover); color: var(--text-white); } .filter-btn.active { background: var(--accent-green); color: #000; border-color: var(--accent-green); font-weight: 600; } /* PLANT GRID */ .plant-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; } .plant-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 1.2rem; display: flex; flex-direction: column; gap: 0.4rem; transition: var(--transition); } .plant-card:hover { background: var(--bg-hover); border-color: var(--accent-green); transform: translateY(-2px); box-shadow: var(--shadow); } .plant-card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.25rem; } .plant-icon { font-size: 1.5rem; } .plant-name { font-size: 1.05rem; font-weight: 600; color: var(--text-white); } .plant-aliases { font-size: 0.78rem; color: var(--text-muted); } .plant-action-text { font-size: 0.8rem; color: var(--text-muted); font-style: italic; margin-top: 0.2rem; } .pot-badge { font-size: 0.75rem; color: var(--accent-green); margin-top: 0.25rem; } /* PLANT THUMBNAILS */ .plant-thumb { width: 52px; height: 52px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); flex-shrink: 0; } .plant-hero-img { width: 120px; height: 120px; object-fit: cover; border-radius: var(--radius-md); border: 2px solid var(--border); flex-shrink: 0; } .az-plant-thumb { width: 36px; height: 36px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); flex-shrink: 0; } .az-plant-no-img { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; flex-shrink: 0; } /* ACTION BADGES */ .action-badge { display: inline-block; font-size: 0.72rem; font-weight: 700; padding: 0.15rem 0.55rem; border-radius: 100px; text-transform: uppercase; letter-spacing: 0.03em; } .badge-sow { background: rgba(87,242,135,0.15); color: #57f287; border: 1px solid rgba(87,242,135,0.35); } .badge-tray { background: rgba(88,101,242,0.15); color: #7983f5; border: 1px solid rgba(88,101,242,0.35); } .badge-transplant { background: rgba(35,165,90,0.15); color: #3ba55d; border: 1px solid rgba(35,165,90,0.35); } .badge-tuber { background: rgba(245,124,0,0.15); color: #f57c00; border: 1px solid rgba(245,124,0,0.35); } .badge-crown { background: rgba(254,231,92,0.15); color: #f0c920; border: 1px solid rgba(254,231,92,0.35); } .badge-clove { background: rgba(180,142,80,0.15); color: #c49a3c; border: 1px solid rgba(180,142,80,0.35); } .badge-general { background: rgba(148,155,164,0.15);color: #949ba4; border: 1px solid #404249; } /* PLANT HERO */ .plant-hero { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 2rem; margin-bottom: 2rem; display: flex; gap: 1.5rem; align-items: flex-start; flex-wrap: wrap; } .plant-hero-info { flex: 1; min-width: 200px; } .plant-hero-name { font-size: 2rem; font-weight: 700; color: var(--text-white); margin-bottom: 0.4rem; } .plant-hero-aliases { color: var(--text-muted); font-size: 0.9rem; margin-bottom: 0.75rem; } .plant-hero-badges { display: flex; gap: 0.5rem; flex-wrap: wrap; } .hero-badge { font-size: 0.8rem; font-weight: 600; padding: 0.3rem 0.75rem; border-radius: var(--radius-sm); } .badge-pot { background: rgba(87,242,135,0.15); color: var(--accent-green); border: 1px solid rgba(87,242,135,0.3); } .badge-zone { background: rgba(88,101,242,0.15); color: #7983f5; border: 1px solid rgba(88,101,242,0.3); } /* PLANT SECTIONS */ .plant-section { margin-bottom: 2rem; } .section-title { font-size: 1.1rem; font-weight: 600; color: var(--text-white); margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--border); } .plant-description { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 1.1rem 1.3rem; line-height: 1.7; } /* STATS GRID */ .stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); gap: 1rem; } .stat-card { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 1.1rem; text-align: center; } .stat-icon { font-size: 1.5rem; margin-bottom: 0.4rem; } .stat-label { font-size: 0.78rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.3rem; } .stat-value { font-size: 1rem; font-weight: 600; color: var(--text-white); } .no-data-msg { color: var(--text-muted); font-style: italic; font-size: 0.9rem; } /* MONTH BAR */ .month-bar-container { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 1rem; } .month-bar-cell { flex: 1; min-width: 58px; background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius-sm); text-align: center; padding: 0.55rem 0.2rem; transition: var(--transition); } .month-bar-cell.active.badge-sow { background: rgba(87,242,135,0.12); border-color: rgba(87,242,135,0.4); } .month-bar-cell.active.badge-tray { background: rgba(88,101,242,0.12); border-color: rgba(88,101,242,0.4); } .month-bar-cell.active.badge-transplant { background: rgba(35,165,90,0.12); border-color: rgba(35,165,90,0.4); } .month-bar-cell.active.badge-tuber { background: rgba(245,124,0,0.12); border-color: rgba(245,124,0,0.4); } .month-bar-cell.active.badge-crown { background: rgba(254,231,92,0.12); border-color: rgba(254,231,92,0.4); } .month-bar-cell.active.badge-clove { background: rgba(180,142,80,0.12); border-color: rgba(180,142,80,0.4); } .month-bar-cell.active.badge-general { background: rgba(87,242,135,0.12); border-color: rgba(87,242,135,0.4); } .mbc-name { font-size: 0.72rem; font-weight: 600; color: var(--text-muted); } .month-bar-cell.active .mbc-name { color: var(--accent-green); } .mbc-icon { font-size: 1rem; margin-top: 0.2rem; } .calendar-legend { display: flex; gap: 1.5rem; font-size: 0.8rem; color: var(--text-muted); flex-wrap: wrap; margin-top: 0.5rem; } .legend-item { display: flex; align-items: center; gap: 0.4rem; } .legend-dot { width: 12px; height: 12px; border-radius: 50%; display: inline-block; } .active-dot { background: var(--accent-green); } .inactive-dot { background: var(--border); } /* ACTION LIST */ .action-list { display: flex; flex-direction: column; gap: 0.5rem; } .action-item { display: flex; align-items: center; gap: 0.75rem; background: var(--bg-secondary); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.6rem 1rem; flex-wrap: wrap; } .action-month { font-weight: 600; color: var(--text-white); min-width: 90px; font-size: 0.9rem; } .action-desc { font-size: 0.82rem; color: var(--text-muted); font-style: italic; } /* NOTES */ .notes-box { background: var(--bg-secondary); border-left: 3px solid var(--accent-green); border-radius: 0 var(--radius-md) var(--radius-md) 0; padding: 1rem 1.25rem; line-height: 1.7; font-size: 0.92rem; } /* COMPANION PLANTING */ .companion-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 1rem; } .companion-card { border-radius: var(--radius-md); padding: 1rem 1.25rem; border: 1px solid var(--border); } .companion-card.good { background: rgba(87,242,135,0.07); border-color: rgba(87,242,135,0.25); } .companion-card.bad { background: rgba(237,66,69,0.07); border-color: rgba(237,66,69,0.25); } .companion-card h4 { font-size: 0.9rem; font-weight: 600; color: var(--text-white); margin-bottom: 0.6rem; } .companion-card ul { list-style: none; } .companion-card li { font-size: 0.85rem; color: var(--text-muted); padding: 0.15rem 0; } .companion-card.good li::before { content: "✓ "; color: var(--accent-green); } .companion-card.bad li::before { content: "✗ "; color: #ed4245; } /* BACK BUTTON */ .back-btn-wrap { margin-top: 2rem; } .btn-back { display: inline-block; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.6rem 1.25rem; font-size: 0.9rem; color: var(--text-muted); transition: var(--transition); } .btn-back:hover { background: var(--bg-hover); color: var(--text-white); border-color: var(--accent-green); } /* ALL PLANTS PAGE */ .page-title { font-size: 1.8rem; font-weight: 700; color: var(--text-white); margin-bottom: 0.3rem; } .page-sub { color: var(--text-muted); font-size: 0.9rem; margin-bottom: 1.5rem; } .search-wrap { margin-bottom: 1.25rem; } .search-input { width: 100%; max-width: 460px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 0.65rem 1rem; color: var(--text-primary); font-family: inherit; font-size: 0.95rem; transition: var(--transition); } .search-input:focus { outline: none; border-color: var(--accent-green); box-shadow: 0 0 0 2px rgba(87,242,135,0.15); } .letter-bar { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-bottom: 2rem; } .letter-link { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.3rem 0.65rem; font-size: 0.85rem; font-weight: 700; color: var(--text-muted); transition: var(--transition); } .letter-link:hover { background: var(--accent-green); color: #000; border-color: var(--accent-green); } .letter-group { margin-bottom: 2rem; } .letter-heading { font-size: 1.2rem; font-weight: 700; color: var(--accent-green); margin-bottom: 0.5rem; padding-bottom: 0.4rem; border-bottom: 1px solid var(--border); } .az-plant-list { display: flex; flex-direction: column; gap: 0.3rem; } .az-plant-item { display: flex; align-items: center; gap: 0.75rem; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 0.5rem 1rem; transition: var(--transition); } .az-plant-item:hover { background: var(--bg-hover); border-color: var(--accent-green); } .az-plant-name { font-weight: 600; color: var(--text-white); min-width: 180px; } .az-plant-alias { font-size: 0.8rem; color: var(--text-muted); flex: 1; font-style: italic; } .az-plant-months { font-size: 0.78rem; background: rgba(87,242,135,0.12); color: var(--accent-green); padding: 0.15rem 0.6rem; border-radius: 100px; font-weight: 600; white-space: nowrap; } /* NOTICES */ .notice { border-radius: var(--radius-md); padding: 1rem 1.25rem; margin-bottom: 1.5rem; font-size: 0.9rem; } .notice.warning { background: rgba(254,231,92,0.1); border: 1px solid rgba(254,231,92,0.3); color: #f0c920; } .notice.info { background: rgba(88,101,242,0.1); border: 1px solid rgba(88,101,242,0.3); color: #7983f5; } .notice code { background: rgba(0,0,0,0.25); padding: 0.1rem 0.4rem; border-radius: 3px; font-size: 0.88em; } /* FOOTER */ .site-footer { background: var(--bg-tertiary); border-top: 1px solid var(--border); text-align: center; padding: 1.25rem; font-size: 0.82rem; color: var(--text-muted); } .site-footer a { color: var(--accent-green); } .site-footer a:hover { text-decoration: underline; } /* RESPONSIVE */ @media (max-width: 768px) { .header-inner { height: auto; padding: 0.75rem 0; flex-direction: column; align-items: flex-start; gap: 0.5rem; } .hero h2 { font-size: 1.4rem; } .month-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } .month-nav { flex-direction: column; align-items: stretch; text-align: center; } .month-title { order: -1; } .plant-grid { grid-template-columns: 1fr; } .stats-grid { grid-template-columns: repeat(2,1fr); } .month-bar-container { gap: 0.2rem; } .month-bar-cell { min-width: 42px; } .mbc-name { font-size: 0.62rem; } .action-item { flex-direction: column; align-items: flex-start; } .plant-hero { flex-direction: column; } .plant-hero-name { font-size: 1.5rem; } .plant-hero-img { width: 80px; height: 80px; } .az-plant-item { flex-wrap: wrap; } } @media (max-width: 480px) { .content { padding: 1rem 1rem 3rem; } .month-grid { grid-template-columns: repeat(3,1fr); } .month-card { padding: 1rem 0.5rem; } .month-name { font-size: 0.9rem; } .stats-grid { grid-template-columns: 1fr 1fr; } }