:root { --sky-1: #59b8df; --sky-2: #f3d49a; --field-1: #87b52a; --field-2: #3f6620; --soil: #6f4e2d; --card: #ffffffee; --text: #1c2328; --muted: #55606a; --accent: #7eb61a; --accent-dark: #537b0f; --danger: #ac2f2f; } * { box-sizing: border-box; } body { margin: 0; font-family: "Bahnschrift", "Trebuchet MS", sans-serif; color: var(--text); background: radial-gradient(1100px 500px at 78% 14%, #fff6d6aa 0%, transparent 55%), linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 35%, #f2e4c0 55%, #d4c17f 68%, #8ea347 77%, var(--field-1) 100%); min-height: 100vh; } .top { position: relative; padding: 1.1rem 1rem; color: #fff; text-shadow: 0 2px 10px #1d2b33aa; background: linear-gradient(130deg, #2f6e89cc, #6ca741cc), repeating-linear-gradient(130deg, #00000011 0 10px, #ffffff10 10px 20px); border-bottom: 2px solid #ffffff44; } .top h1 { margin: 0; display: inline-flex; align-items: center; gap: .55rem; font-size: clamp(1.5rem, 2.8vw, 2.1rem); letter-spacing: .02em; } .brand-icon { width: 2rem; height: 2rem; border-radius: .4rem; box-shadow: 0 4px 14px #00000055; } .top p { margin: .25rem 0 0; font-weight: 600; opacity: .96; } .tabs { display: flex; gap: .5rem; flex-wrap: wrap; padding: .75rem 1rem; max-width: 1320px; margin: 0 auto; } .tabs a { text-decoration: none; color: #21331b; background: #f2f8e7d9; border: 1px solid #99bd5f; border-radius: 999px; padding: .36rem .85rem; font-weight: 700; box-shadow: 0 2px 8px #1b331111; } .tabs a.active { color: #fff; border-color: var(--accent-dark); background: linear-gradient(180deg, #8fcf22, #6d9f14); } .layout { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1rem; padding: 1rem; max-width: 1320px; margin: 0 auto; } .card { background: var(--card); border: 1px solid #ffffffc4; border-radius: 14px; padding: 1rem; box-shadow: 0 10px 28px #2b2d181e; backdrop-filter: blur(2px); } .card h2 { margin: 0 0 .7rem; font-size: 1.06rem; } .full-width { grid-column: 1 / -1; } .grid { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); } .full { grid-column: 1 / -1; } .mt { margin-top: .8rem; } .mt-xs { margin-top: .3rem; } label { display: grid; gap: .35rem; color: var(--muted); font-weight: 700; min-width: 0; } input, select, textarea { font: inherit; width: 100%; max-width: 100%; min-width: 0; padding: .52rem .65rem; border-radius: 9px; border: 1px solid #b7c7a2; background: #fff; color: var(--text); } button { font: inherit; border: none; border-radius: 9px; padding: .55rem .85rem; background: linear-gradient(180deg, #8fcf22, #6d9f14); color: #fff; cursor: pointer; font-weight: 800; width: auto; max-width: 100%; } button:hover { background: linear-gradient(180deg, #7cbc19, #5e8a12); } .btn-small { padding: .35rem .58rem; font-size: .9rem; } .danger { background: linear-gradient(180deg, #cc4747, #9a2e2e); } .danger:hover { background: linear-gradient(180deg, #b43d3d, #842626); } .secondary { background: linear-gradient(180deg, #7b8a97, #596673); } .secondary:hover { background: linear-gradient(180deg, #6d7b87, #4c5863); } .check { display: inline-flex; align-items: center; gap: .45rem; } .check input { width: 1.05rem; height: 1.05rem; } .hint { color: var(--muted); font-size: .9rem; } .actions { display: flex; gap: .45rem; align-items: center; flex-wrap: wrap; } .inline-inputs { display: inline-flex; gap: .35rem; align-items: center; flex-wrap: wrap; } .inline-inputs input { width: 5.2rem; } .tasks { margin: 0; padding-left: 1.1rem; } .tasks li { margin: .3rem 0; } .tasks li, .task-sublist li { display: flex; gap: .5rem; align-items: flex-start; justify-content: space-between; } .task-sublist { margin: .3rem 0 0; padding-left: 1rem; } .muted { color: var(--muted); } .done-task { opacity: .75; text-decoration: line-through; } .inline-form { margin: 0; display: inline-block; flex: 0 0 auto; } .calendar-grid { display: grid; gap: .75rem; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); } .month-card { border: 1px solid #cad5ad; border-radius: 11px; padding: .65rem; background: linear-gradient(180deg, #fbfff5, #f0f7de); } .month-card h3 { margin: 0 0 .45rem; font-size: .98rem; } .month-days { margin: 0; padding-left: 1rem; max-height: 260px; overflow: auto; } .month-days li { margin: .24rem 0; } .matrix-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; } .matrix-list li { border: 1px solid #d7decb; border-radius: 9px; background: #f9fdf2; padding: .5rem .6rem; display: grid; gap: .2rem; min-width: 0; } .matrix-body { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; } .matrix-image { display: block; max-width: 100%; height: auto; border-radius: 8px; border: 1px solid #d7decb; } .matrix-card { display: flex; flex-direction: column; min-height: 0; } .matrix-scroll { margin-top: .5rem; max-height: 320px; overflow-y: auto; overflow-x: hidden; padding-right: .25rem; } .table-wrap { overflow-x: auto; max-width: 100%; } table { width: 100%; border-collapse: collapse; min-width: 680px; } th, td { text-align: left; padding: .5rem; border-bottom: 1px solid #d7decb; vertical-align: top; } th { background: #edf5de; color: #2f3a24; } td form { min-width: 0; } td input, td select { max-width: 100%; } .toast { position: fixed; right: 1rem; bottom: 1rem; padding: .7rem .9rem; border-radius: 8px; color: #fff; max-width: 380px; box-shadow: 0 8px 18px #0000003f; } .toast.error { background: var(--danger); } .toast.info { background: #2f6d7a; } @media (max-width: 760px) { .layout { grid-template-columns: 1fr; } table { min-width: 540px; } }