@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap');
:root{--ink:#17231f;--muted:#718079;--green:#1c513f;--deep:#102f26;--light:#eef6f1;--lime:#a8ce75;--cream:#faf9f5;--white:#fff;--border:#e3e8e5;--danger:#b5443e;--warn:#b26c1c;--shadow:0 18px 50px #15372b1a;--radius:18px}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--green)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Manrope',sans-serif;letter-spacing:-.04em}.hidden{display:none!important}.muted{color:var(--muted)}.brand{display:flex;align-items:center;gap:11px;font-size:18px}.brand span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--lime);color:var(--deep);font-size:13px}.brand.light{color:#fff}.eyebrow{margin-bottom:8px;color:#2f7a5d;font-size:10px;font-weight:800;letter-spacing:.14em}.btn{min-height:42px;padding:0 17px;border:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:700;text-decoration:none;transition:.16s}.btn:hover{transform:translateY(-1px)}.btn.primary{color:#fff;background:var(--green);box-shadow:0 8px 18px #1c513f2e}.btn.soft{color:var(--green);background:var(--light)}.btn.plain{color:var(--muted);border:1px solid var(--border);background:#fff}.btn.danger{color:#fff;background:var(--danger)}.btn.block{width:100%}.btn.big{min-height:52px}.btn.small{min-height:34px;padding:0 11px;font-size:11px}
/* login */.login-view{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:#fff}.login-story{position:relative;overflow:hidden;min-height:100vh;padding:54px clamp(42px,6vw,92px);display:flex;flex-direction:column;color:#fff;background:var(--deep)}.login-story:before{content:"";position:absolute;width:520px;height:520px;right:-220px;top:-190px;border:80px solid #a8ce7510;border-radius:50%}.login-story>div{position:relative;margin:auto 0 55px;max-width:620px}.login-story>div>small{color:var(--lime);font-size:10px;font-weight:800;letter-spacing:.15em}.login-story h1{margin:18px 0 24px;font-size:clamp(42px,4.3vw,67px);line-height:1.03;letter-spacing:-.06em}.login-story p{max-width:520px;color:#ffffffad;font-size:17px;line-height:1.7}.login-story footer{position:relative;padding-top:28px;border-top:1px solid #ffffff1f;display:grid;grid-template-columns:repeat(3,1fr)}.login-story footer b{color:var(--lime);font-size:20px}.login-story footer small{display:block;margin-top:5px;color:#ffffff80;font-size:10px;font-weight:400}.login-panel{min-height:100vh;padding:40px clamp(40px,8vw,120px);display:grid;place-items:center}.login-panel form{width:min(100%,410px);display:flex;flex-direction:column;gap:20px}.login-panel h2{margin:0;font-size:34px}.login-panel>form>p{margin-bottom:0;font-size:14px}.login-panel label,.form-grid label,.modal-form>label{display:flex;flex-direction:column;gap:7px;color:#52625b;font-size:12px;font-weight:700}.login-panel input{min-height:48px}.pass{position:relative}.pass button{position:absolute;right:8px;top:50%;translate:0 -50%;border:0;background:transparent;color:var(--green);font-size:11px}.pass input{padding-right:55px}.form-error{color:var(--danger);font-size:11px}.form-error:not(:empty){padding:11px;border-radius:10px;background:#fae9e7}.login-help{text-align:center;color:#94a19c}.mobile-brand{display:none}
/* shell */.app{min-height:100vh}.app>aside{position:fixed;z-index:30;inset:0 auto 0 0;width:255px;padding:25px 17px 18px;display:flex;flex-direction:column;color:#fff;background:var(--deep)}.side-head{height:51px;padding:0 8px;display:flex;justify-content:space-between}.side-head>button{display:none;border:0;background:none;color:#fff;font-size:24px}.app aside nav{margin-top:31px;display:flex;flex-direction:column;gap:5px}.app aside nav button{position:relative;min-height:46px;padding:0 13px;border:0;border-radius:12px;display:flex;align-items:center;gap:13px;color:#ffffff9e;background:transparent;font-size:13px;font-weight:600;text-align:left}.app aside nav button:hover,.app aside nav button.active{color:#fff;background:#a8ce7524}.app aside nav button.active:before{content:"";position:absolute;left:0;width:3px;height:22px;border-radius:5px;background:var(--lime)}.app aside nav i{width:20px;font-style:normal;text-align:center}.app aside nav em{margin-left:auto;min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:20px;color:var(--deep);background:#e5a058;font-style:normal;font-size:10px}.side-bottom{margin-top:auto}.tip{padding:13px;margin-bottom:12px;border:1px solid #ffffff14;border-radius:13px;background:#ffffff0a;display:flex;gap:9px}.tip>b{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;color:var(--lime);background:#a8ce752b}.tip p{margin:0;color:#ffffff7a;font-size:9px;line-height:1.5}.tip strong{display:block;color:#ffffffc4}.profile{padding:11px 8px;border-top:1px solid #ffffff14;display:flex;align-items:center;gap:10px}.profile>span{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;color:var(--deep);background:var(--lime);font-size:10px;font-weight:800}.profile p{margin:0;display:flex;flex-direction:column;font-size:11px}.profile small{color:#ffffff73;font-size:9px}.logout{margin-left:50px;border:0;background:none;color:#ffffff70;font-size:10px}.side-backdrop{display:none}.workspace{min-height:100vh;margin-left:255px}.workspace>header{position:sticky;z-index:20;top:0;min-height:88px;padding:16px 33px;display:flex;align-items:center;justify-content:space-between;background:#faf9f5e8;backdrop-filter:blur(16px);border-bottom:1px solid #e3e8e5cc}.title{display:flex;align-items:center;gap:12px}.title small{display:block;margin-bottom:5px;color:#94a19c;font-size:8px;font-weight:800;letter-spacing:.12em}.title h1{margin:0;font-size:24px}.menu{display:none;width:40px;height:40px;border:0;border-radius:12px;background:transparent}.head-actions{display:flex;align-items:center;gap:14px}.head-actions>span{color:var(--muted);font-size:11px}.content{max-width:1600px;margin:0 auto;padding:28px 33px 50px}.loading{min-height:60vh;display:grid;place-content:center;justify-items:center;color:var(--muted);font-size:12px}.loading i,.spinner{width:30px;height:30px;border:3px solid #dceae2;border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{rotate:1turn}}
/* common views */.view-head{margin-bottom:21px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.view-head h2{margin:0 0 4px;font-size:20px}.view-head p{margin:0;color:var(--muted);font-size:12px}.view-actions,.filters{display:flex;gap:8px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.metric{position:relative;min-height:129px;padding:18px;border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow:hidden}.metric.featured{color:#fff;border:0;background:var(--green)}.metric>header{display:flex;align-items:center;justify-content:space-between}.metric small{color:var(--muted);font-size:9px;font-weight:700;text-transform:uppercase}.metric.featured small,.metric.featured p{color:#ffffff8f}.metric header i{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;color:var(--green);background:var(--light);font-style:normal}.metric.featured header i{color:var(--lime);background:#ffffff1f}.metric>b{display:block;margin:18px 0 4px;font:800 24px 'Manrope'}.metric p{margin:0;color:#94a19c;font-size:9px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.8fr);gap:17px}.stack{display:flex;flex-direction:column;gap:17px}.panel,.table-panel,.farm-card,.analysis-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;box-shadow:0 5px 20px #15372b08;overflow:hidden}.panel-head{min-height:60px;padding:15px 18px;border-bottom:1px solid #edf0ee;display:flex;align-items:center;justify-content:space-between}.panel-head h3{margin:0;font-size:14px}.panel-head p{margin:3px 0 0;color:#94a19c;font-size:9px}.panel-link{border:0;background:none;color:var(--green);font-size:10px;font-weight:700}.panel-body{padding:17px 18px}.balance{padding:18px;color:#fff;background:var(--deep);border:0}.balance .panel-head{padding:0 0 14px;border-color:#ffffff1a}.balance .panel-head p{color:#ffffff73}.balance .panel-body{padding:17px 0 0}.balance-total{margin-bottom:18px}.balance-total b{display:block;color:var(--lime);font-size:23px}.balance-total small{color:#ffffff80}.partner{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:11px;font-size:10px}.partner small{display:block;color:#ffffff73;font-size:8px}.partner i{grid-column:1/-1;height:5px;border-radius:8px;background:#ffffff1a}.partner i b{display:block;height:100%;border-radius:inherit;background:var(--lime)}.chart-list{display:flex;flex-direction:column;gap:13px}.chart-row{display:grid;grid-template-columns:110px 1fr 82px;gap:12px;align-items:center;font-size:10px}.chart-row>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted)}.chart-row>i{height:7px;border-radius:10px;background:var(--light);overflow:hidden}.chart-row>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--lime))}.chart-row>strong{text-align:right}.activity-row{padding:12px 0;border-bottom:1px solid #eff2f0;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px}.activity-row:last-child{border:0}.activity-row time{width:38px;height:38px;display:grid;place-items:center;align-content:center;border-radius:11px;color:var(--green);background:var(--light);font-size:8px}.activity-row time b{font-size:14px}.activity-row p{min-width:0;margin:0}.activity-row p b,.activity-row p small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-row p b{font-size:11px}.activity-row p small{color:#94a19c;font-size:9px}.tag{display:inline-flex;padding:5px 8px;border-radius:99px;color:var(--green);background:var(--light);font-size:8px;font-style:normal;font-weight:800;text-transform:uppercase}.tag.warn{color:var(--warn);background:#fff2d8}.tag.off{color:var(--muted);background:#eff1f0}.alert-row{padding:11px 0;border-bottom:1px solid #eff2f0;display:flex;align-items:center;gap:10px}.alert-row>i{width:8px;height:8px;border-radius:50%;background:#e7a44f;box-shadow:0 0 0 4px #fff2d8}.alert-row p{flex:1;margin:0}.alert-row b,.alert-row small{display:block}.alert-row b{font-size:10px}.alert-row small{color:#94a19c;font-size:8px}.empty{min-height:220px;padding:30px;display:grid;place-content:center;justify-items:center;text-align:center}.empty>i{width:50px;height:50px;display:grid;place-items:center;border-radius:16px;color:var(--green);background:var(--light);font-style:normal}.empty h3{margin:12px 0 5px;font-size:14px}.empty p{max-width:330px;color:var(--muted);font-size:10px;line-height:1.5}.toolbar{margin-bottom:15px;display:flex;align-items:center;justify-content:space-between;gap:10px}.search{position:relative;width:min(320px,100%)}.search input{padding-left:36px}.search:before{content:'⌕';position:absolute;left:12px;top:10px;color:#94a19c}.toolbar>small{color:var(--muted)}.filters select{min-width:140px}.farm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.farm-cover{position:relative;height:142px;display:grid;place-items:center;color:#1c513f70;background:linear-gradient(145deg,#dceade,#9dbb98);font-size:45px}.farm-cover img{width:100%;height:100%;object-fit:cover}.farm-cover button{position:absolute;right:9px;top:9px;width:32px;height:32px;border:0;border-radius:9px;color:#fff;background:#102f2694}.farm-body{padding:16px}.farm-title{display:flex;justify-content:space-between;gap:12px}.farm-title h3{margin:0;font-size:15px}.farm-title p{margin:3px 0 0;color:var(--muted);font-size:9px}.farm-title>strong{color:var(--green);text-align:right}.farm-title>strong small{display:block;color:#94a19c;font-size:8px}.farm-meta{margin-top:15px;padding-top:13px;border-top:1px solid #edf0ee;display:grid;grid-template-columns:1fr 1fr;color:var(--muted);font-size:9px}.farm-meta b{display:block;color:var(--ink);font-size:11px}.plot-tags{margin-top:12px;display:flex;gap:5px;flex-wrap:wrap}.plot-tags button{min-height:25px;padding:0 8px;border:0;border-radius:8px;color:var(--green);background:var(--light);font-size:8px}.farm-actions{margin-top:13px;display:flex;gap:7px}.farm-actions>*{flex:1}.table-panel{overflow:auto}.data-table{width:100%;min-width:780px;border-collapse:collapse}.data-table th{padding:12px 14px;border-bottom:1px solid var(--border);color:#94a19c;background:#fbfcfb;font-size:8px;text-align:left;letter-spacing:.07em}.data-table td{padding:13px 14px;border-bottom:1px solid #edf0ee;color:#51615a;font-size:10px}.data-table td strong,.data-table td small{display:block}.data-table td strong{color:var(--ink);font-size:11px}.data-table td small{margin-top:3px;color:#94a19c;font-size:8px}.row-actions{display:flex;justify-content:flex-end;gap:5px}.row-actions button{width:30px;height:30px;border:1px solid var(--border);border-radius:9px;background:#fff}.row-actions button:hover{color:var(--green);background:var(--light)}.tabs{display:inline-flex;padding:3px;margin-bottom:15px;border:1px solid var(--border);border-radius:12px;background:#fff}.tabs button{min-height:34px;padding:0 14px;border:0;border-radius:9px;color:var(--muted);background:transparent;font-size:10px;font-weight:700}.tabs button.active{color:var(--green);background:var(--light)}.finance-cards{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;margin-bottom:16px}.finance-cards article{padding:17px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.finance-cards article.dark{color:#fff;border-color:var(--green);background:var(--green)}.finance-cards small{display:block;color:#94a19c;font-size:9px;font-weight:700}.finance-cards b{display:block;margin-top:9px;font-size:20px}.finance-cards p{margin:7px 0 0;color:var(--muted);font-size:9px}.finance-cards .dark small,.finance-cards .dark p{color:#ffffff94}.finance-cards .dark b{color:var(--lime)}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.analysis-card{padding:17px}.analysis-card>header{display:flex;align-items:center;gap:10px}.analysis-card>header>i{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:var(--green);background:var(--light);font-style:normal;font-weight:800}.analysis-card header p{margin:0}.analysis-card header b,.analysis-card header small{display:block}.analysis-card header b{font-size:13px}.analysis-card header small{color:var(--muted);font-size:9px}.analysis-card header button{margin-left:auto;border:0;background:none}.analysis-card section{margin-top:15px;padding-top:13px;border-top:1px solid #edf0ee;display:grid;grid-template-columns:1fr 1fr;gap:12px}.analysis-card section small,.analysis-card section b{display:block}.analysis-card section small{color:#94a19c;font-size:8px}.analysis-card section b{font-size:10px}.analysis-card footer{margin-top:14px;display:flex;justify-content:space-between}
/* modal/form */input,select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #dce3df;border-radius:11px;outline:none;color:var(--ink);background:#fff;font-size:12px}input:focus,select:focus,textarea:focus{border-color:#2f7a5d;box-shadow:0 0 0 3px #2f7a5d1a}textarea{min-height:90px;resize:vertical}.modal{position:fixed;z-index:100;inset:0;padding:20px;display:grid;place-items:center}.modal-bg{position:absolute;inset:0;border:0;background:#0a1f1894;backdrop-filter:blur(4px)}.modal-card{position:relative;width:min(680px,100%);max-height:90vh;border-radius:22px;background:#fff;box-shadow:0 30px 90px #0a1f184d;overflow:hidden}.modal-card>header{min-height:74px;padding:17px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-card>header small{color:var(--green);font-size:8px;font-weight:800;letter-spacing:.12em}.modal-card>header h2{margin:4px 0 0;font-size:19px}.modal-card>header button{width:38px;height:38px;border:0;border-radius:12px;background:var(--light);font-size:21px}.modal-card #modal-body{max-height:calc(90vh - 74px);padding:20px;overflow:auto}.modal-form{display:flex;flex-direction:column;gap:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.form-section{padding-top:4px}.form-section+.form-section{padding-top:18px;border-top:1px solid var(--border)}.form-section-head{margin-bottom:12px;display:flex;justify-content:space-between;align-items:center}.form-section-head h3{margin:0;font-size:12px}.form-section-head p{margin:3px 0 0;color:var(--muted);font-size:9px}.form-actions{position:sticky;bottom:-20px;margin:3px -20px -20px;padding:14px 20px;border-top:1px solid var(--border);background:#fffffff0;display:flex;justify-content:flex-end;gap:8px}.check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.check-card{min-height:42px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;gap:9px;font-size:10px}.check-card input{width:17px;min-height:17px}.product-line{display:grid;grid-template-columns:1fr 110px 100px 34px;gap:8px;align-items:end;margin-top:8px}.product-line button{height:44px;border:0;border-radius:10px;color:var(--danger);background:#fae9e7}.split{padding:12px;border-radius:12px;background:var(--light);display:flex;justify-content:space-between;color:var(--green);font-size:10px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-grid button{min-height:100px;padding:16px;border:1px solid var(--border);border-radius:15px;background:#fff;display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:3px 12px;text-align:left}.quick-grid button i{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:var(--green);background:var(--light);font-style:normal;font-weight:800}.quick-grid button small{color:var(--muted);font-size:8px}.confirm-card{position:relative;width:min(410px,100%);padding:27px;border-radius:20px;background:#fff;text-align:center}.confirm-card>i{width:48px;height:48px;margin:auto;display:grid;place-items:center;border-radius:15px;color:var(--danger);background:#fae9e7;font-style:normal;font-weight:800}.confirm-card h2{font-size:18px}.confirm-card p{color:var(--muted);font-size:11px}.confirm-card>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toasts{position:fixed;z-index:200;right:18px;bottom:18px;width:min(360px,calc(100% - 36px))}.toast{margin-top:8px;padding:13px 15px;border-radius:13px;color:#fff;background:var(--deep);box-shadow:var(--shadow);font-size:11px}.toast.error{background:#702e2a}
/* installer */.install-page{min-height:100vh;padding:40px 18px;display:grid;place-items:center;background:var(--light)}.install-card{width:min(700px,100%);padding:40px;border:1px solid var(--border);border-radius:25px;background:#fff;box-shadow:var(--shadow)}.install-card>.brand{margin-bottom:32px}.install-form{display:flex;flex-direction:column;gap:20px}.install-form fieldset{padding:17px;border:1px solid var(--border);border-radius:15px}.install-form legend{font-weight:800}.alert{margin:15px 0;padding:12px;border-radius:11px;font-size:11px}.alert.success{color:#267657;background:var(--light)}.alert.error{color:var(--danger);background:#fae9e7}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>.stack{display:grid;grid-template-columns:repeat(2,1fr)}.farm-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.login-view{grid-template-columns:1fr}.login-story{display:none}.mobile-brand{display:flex;position:absolute;top:25px}.app>aside{transform:translateX(-105%);transition:.24s}.app>aside.open{transform:none}.side-head>button{display:block}.side-backdrop:not(.hidden){display:block;position:fixed;z-index:29;inset:0;border:0;background:#0a1f1870}.workspace{margin-left:0}.menu{display:block}.workspace>header{padding:13px 20px}.content{padding:22px 20px 42px}}@media(max-width:620px){.head-actions>span{display:none}.head-actions .btn{width:42px;padding:0}.head-actions .btn span{display:none}.content{padding-inline:14px}.metrics,.farm-grid,.analysis-grid,.finance-cards{grid-template-columns:1fr}.dashboard-grid>.stack{display:flex}.view-head{align-items:flex-start;flex-direction:column}.view-actions,.view-actions .btn{width:100%}.toolbar{align-items:stretch;flex-direction:column}.search{width:100%}.form-grid,.check-grid,.quick-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.product-line{grid-template-columns:1fr 90px 34px}.product-line label:first-child{grid-column:1/-1}.product-line label:nth-child(3){display:none}.modal{padding:0;place-items:end}.modal-card{width:100%;max-height:94vh;border-radius:21px 21px 0 0}.modal-card #modal-body{max-height:calc(94vh - 74px)}}
