| Server IP : 173.209.174.21 / Your IP : 216.73.216.89 Web Server : Apache/2.4.58 (Ubuntu) System : Linux wcfs-server 6.8.0-124-generic #124-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 13:00:45 UTC 2026 x86_64 User : nodor ( 1000) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/wcfs/pest/ |
Upload File : |
:root {
color-scheme: light;
--ink: #1f2520;
--muted: #5c665e;
--line: #cfd8d1;
--soft: #f3f6f0;
--panel: #ffffff;
--accent: #286140;
--accent-dark: #173d29;
--danger: #9f3026;
--focus: #86b993;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
background: #eef3ed;
color: var(--ink);
font-family: Arial, Helvetica, sans-serif;
}
button,
input,
select,
textarea {
font: inherit;
}
button {
cursor: pointer;
}
.app-shell {
min-height: 100vh;
}
.workspace {
width: min(1180px, 100%);
margin: 0 auto;
}
.topbar {
align-items: center;
background: var(--panel);
border-bottom: 1px solid var(--line);
display: flex;
gap: 16px;
justify-content: space-between;
min-height: 78px;
padding: 14px 18px;
position: sticky;
top: 0;
z-index: 2;
}
.eyebrow {
color: var(--accent);
font-size: 12px;
font-weight: 700;
letter-spacing: 0;
margin: 0 0 4px;
text-transform: uppercase;
}
h1,
h2 {
letter-spacing: 0;
margin: 0;
}
h1 {
font-size: clamp(22px, 3vw, 34px);
line-height: 1.05;
}
h2 {
font-size: 17px;
}
.actions,
.section-row,
.list-head,
.pesticide-card-head {
align-items: center;
display: flex;
gap: 8px;
justify-content: space-between;
}
.actions {
flex-wrap: wrap;
justify-content: flex-end;
}
.primary-button,
.secondary-button,
.danger-button,
.icon-button {
align-items: center;
border-radius: 7px;
border: 1px solid transparent;
display: inline-flex;
font-weight: 700;
justify-content: center;
min-height: 42px;
padding: 0 14px;
}
.primary-button {
background: var(--accent);
color: #fff;
}
.primary-button:hover,
.primary-button:focus-visible {
background: var(--accent-dark);
}
.secondary-button,
.icon-button {
background: #fff;
border-color: var(--line);
color: var(--ink);
}
.danger-button {
background: #fff;
border-color: #e0b7b2;
color: var(--danger);
}
.small {
min-height: 36px;
}
.icon-button {
aspect-ratio: 1;
font-size: 22px;
padding: 0;
width: 42px;
}
.layout {
display: grid;
gap: 14px;
grid-template-columns: 290px 1fr;
padding: 14px;
}
.record-list,
.record-form {
min-width: 0;
}
.record-list {
background: var(--panel);
border: 1px solid var(--line);
border-radius: 8px;
height: calc(100vh - 106px);
overflow: auto;
padding: 12px;
position: sticky;
top: 92px;
}
.records {
display: grid;
gap: 8px;
margin-top: 12px;
}
.search-label {
margin-top: 12px;
}
.storage-status {
color: var(--muted);
font-size: 12px;
margin: 10px 0 0;
}
.record-button {
background: #fff;
border: 1px solid var(--line);
border-radius: 7px;
color: var(--ink);
display: grid;
gap: 4px;
padding: 10px;
text-align: left;
}
.record-button.active {
border-color: var(--accent);
box-shadow: 0 0 0 2px rgba(40, 97, 64, 0.18);
}
.record-name-input {
border: 0;
border-radius: 4px;
color: var(--ink);
font-weight: 800;
min-height: 28px;
padding: 2px 4px;
}
.record-name-input:focus {
background: var(--soft);
}
.record-open-button {
background: transparent;
border: 0;
color: var(--muted);
min-height: 22px;
padding: 0 4px;
text-align: left;
}
.record-open-button span {
display: block;
}
.record-name-input,
.record-open-button span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.record-open-button {
font-size: 13px;
}
.record-group {
color: var(--accent-dark);
font-size: 12px;
font-weight: 800;
margin: 8px 2px -2px;
text-transform: uppercase;
}
.empty-state {
color: var(--muted);
font-size: 14px;
margin: 10px 0 0;
}
.record-form {
display: grid;
gap: 14px;
}
.form-section,
.pesticide-card {
background: var(--panel);
border: 1px solid var(--line);
border-radius: 8px;
padding: 14px;
}
.form-section {
display: grid;
gap: 14px;
}
.grid {
display: grid;
gap: 12px;
}
.grid.two {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid.three {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
label {
color: var(--muted);
display: grid;
gap: 6px;
font-size: 13px;
font-weight: 700;
}
.checkbox-label {
align-items: center;
color: var(--ink);
display: flex;
font-size: 14px;
gap: 8px;
}
.checkbox-label input {
min-height: auto;
width: auto;
}
input,
select,
textarea {
background: #fff;
border: 1px solid var(--line);
border-radius: 7px;
color: var(--ink);
min-height: 42px;
padding: 9px 10px;
width: 100%;
}
textarea {
resize: vertical;
}
input:focus,
select:focus,
textarea:focus,
button:focus-visible {
outline: 3px solid rgba(134, 185, 147, 0.7);
outline-offset: 1px;
}
.pesticide-rows {
display: grid;
gap: 12px;
}
.wide {
width: 100%;
}
.weather-lookup {
background: var(--soft);
border: 1px solid var(--line);
border-radius: 8px;
display: grid;
gap: 12px;
padding: 12px;
}
.weather-lookup[hidden] {
display: none;
}
.weather-actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.print-sheet {
display: none;
}
@media (max-width: 820px) {
.topbar {
align-items: flex-start;
flex-direction: column;
}
.actions {
display: grid;
grid-template-columns: 42px 1fr 1fr;
width: 100%;
}
.layout {
grid-template-columns: 1fr;
padding: 10px;
}
.record-list {
height: auto;
max-height: 220px;
position: static;
}
.grid.two,
.grid.three {
grid-template-columns: 1fr;
}
}
@media print {
@page {
margin: 0.35in;
size: letter;
}
body {
background: #fff;
}
.app-shell {
display: none;
}
.print-sheet {
color: #000;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-size: 10px;
}
.print-title {
align-items: start;
border-bottom: 2px solid #000;
display: grid;
gap: 10px;
grid-template-columns: 1fr auto;
padding-bottom: 6px;
}
.print-title h1 {
font-size: 18px;
margin: 0 0 3px;
}
.print-title p {
margin: 0;
}
.print-box {
border: 1px solid #000;
margin-top: 6px;
}
.print-row {
display: grid;
grid-template-columns: repeat(12, 1fr);
}
.print-cell {
border-bottom: 1px solid #000;
border-right: 1px solid #000;
min-height: 34px;
padding: 4px 5px;
}
.print-cell:last-child {
border-right: 0;
}
.print-row:last-child .print-cell {
border-bottom: 0;
}
.span-2 { grid-column: span 2; }
.span-3 { grid-column: span 3; }
.span-4 { grid-column: span 4; }
.span-5 { grid-column: span 5; }
.span-6 { grid-column: span 6; }
.span-8 { grid-column: span 8; }
.span-9 { grid-column: span 9; }
.span-12 { grid-column: span 12; }
.print-label {
display: block;
font-size: 8px;
font-weight: 700;
margin-bottom: 2px;
text-transform: uppercase;
}
.print-value {
white-space: pre-wrap;
}
.print-table {
border-collapse: collapse;
margin-top: 6px;
table-layout: fixed;
width: 100%;
}
.print-table th,
.print-table td {
border: 1px solid #000;
height: 30px;
padding: 3px;
text-align: left;
vertical-align: top;
word-break: break-word;
}
.print-table th {
font-size: 8px;
}
.print-note {
font-size: 9px;
margin-top: 6px;
}
}