:root { --bg: #f2f5ef; --card: #ffffff; --text: #1f2a1d; --muted: #5d6a5a; --accent: #365f2c; --accent-2: #93b877; --danger: #9b2f2f; } * { box-sizing: border-box; } body { margin: 0; font-family: "Segoe UI", Tahoma, sans-serif; background: radial-gradient(circle at top, #e8f1df, var(--bg)); color: var(--text); } .top { padding: 1.2rem 1rem; background: linear-gradient(90deg, #2f4f2a, #4d7a40); color: #fff; } .top h1 { margin: 0; } .top p { margin: .35rem 0 0; opacity: .9; } .tabs { display: flex; gap: .5rem; flex-wrap: wrap; padding: .7rem 1rem; max-width: 1280px; margin: 0 auto; } .tabs a { text-decoration: none; color: #234020; background: #e7efdf; border: 1px solid #cbd8c3; border-radius: 999px; padding: .35rem .75rem; font-weight: 600; } .tabs a.active { color: #fff; background: var(--accent); border-color: var(--accent); } .layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1rem; padding: 1rem; max-width: 1280px; margin: 0 auto; } .card { background: var(--card); border: 1px solid #dbe6d5; border-radius: 12px; padding: 1rem; box-shadow: 0 8px 20px rgba(0,0,0,0.05); } .card h2 { margin-top: 0; font-size: 1.05rem; } .full-width { grid-column: 1 / -1; } .grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); } .full { grid-column: 1 / -1; } .mt { margin-top: .8rem; } label { display: grid; gap: .35rem; font-weight: 600; color: var(--muted); } input, select, button { font: inherit; padding: .55rem .65rem; border-radius: 8px; border: 1px solid #c9d8c2; } button { background: var(--accent); color: #fff; border: none; cursor: pointer; font-weight: 700; } button:hover { background: #2d5124; } .btn-small { padding: .4rem .6rem; font-size: .9rem; } .danger { background: #a13939; } .danger:hover { background: #8f2f2f; } .check { display: inline-flex; align-items: center; gap: .45rem; } .check input { width: 1rem; height: 1rem; } .hint { color: var(--muted); font-size: .9rem; } .actions { display: flex; gap: .45rem; align-items: center; } .inline-inputs { display: inline-flex; gap: .35rem; align-items: center; } .inline-inputs input { width: 5rem; } .tasks { margin: 0; padding-left: 1.1rem; } .tasks li { margin: .35rem 0; } .task-sublist { margin: .3rem 0 0; padding-left: 1rem; } .muted { color: var(--muted); } .calendar-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); } .month-card { border: 1px solid #dbe6d5; border-radius: 10px; padding: .6rem; background: #f9fbf7; } .month-card h3 { margin: 0 0 .4rem; font-size: .98rem; } .month-days { margin: 0; padding-left: 1rem; max-height: 260px; overflow: auto; } .month-days li { margin: .25rem 0; } .table-wrap { overflow: auto; } table { width: 100%; border-collapse: collapse; } th, td { text-align: left; padding: .5rem; border-bottom: 1px solid #e2eadf; white-space: nowrap; } th { background: #eef5e8; color: #384534; } .toast { position: fixed; right: 1rem; bottom: 1rem; padding: .7rem .9rem; border-radius: 8px; color: #fff; max-width: 380px; } .toast.error { background: var(--danger); } .toast.info { background: #2f6d7a; } @media (max-width: 700px) { .layout { grid-template-columns: 1fr; } }