@charset "UTF-8";
:root{--fp-ink:#183046;--fp-deep:#0f2838;--fp-mid:#344b5f;--fp-muted:#81909d;--fp-sea:#18aa89;--fp-sea-dark:#0d836c;--fp-bg:#f3f6f8;--fp-line:#e9eef1;--fp-blue:#416ca7;--fp-radius:17px}
*{box-sizing:border-box}
html,body{min-height:100%}
body{font-family: "Pretendard Variable","Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",system-ui,sans-serif;color:var(--fp-ink);font-size:14px;background:var(--fp-bg)}
a{color:inherit}
.btn{font-weight:650;border-radius:9px;padding:.68rem 1.05rem}
.btn-primary{--bs-btn-bg:#128a73;--bs-btn-border-color:#128a73;--bs-btn-hover-bg:#0e6f5b;--bs-btn-hover-border-color:#0e6f5b;--bs-btn-active-bg:#0a6653;--bs-btn-active-border-color:#0a6653;--bs-btn-disabled-bg:#128a73;--bs-btn-disabled-border-color:#128a73}
.btn-outline-primary{--bs-btn-color:#128a73;--bs-btn-border-color:#bdddd4;--bs-btn-hover-bg:#128a73;--bs-btn-hover-border-color:#128a73}
.form-control,.form-select{border:1px solid #dce4e9;background:#fff;border-radius:9px;color:#193247;min-height:45px}
.form-control:focus,.form-select:focus{border-color:#43af96;box-shadow:0 0 0 .2rem rgba(18,138,115,.11)}
.form-label{color:#23384e;font-size:13px;font-weight:750;margin-bottom:8px}
.form-text{font-size:11.5px}
.form-check-input:checked{background-color:#168a73;border-color:#168a73}
.alert{border-radius:12px;border-width:1px}
.fp-required{color:#c66956}
.fp-login-bg{background:#f5f8fa}
.fp-login-layout{min-height:100vh;display:grid;grid-template-columns:1.04fr 1fr}
.fp-login-art{background:radial-gradient(circle at 80% 30%,rgba(47,208,158,.14),transparent 31%),radial-gradient(circle at 20% 80%,rgba(24,134,129,.17),transparent 38%),linear-gradient(140deg,#0b2738,#153e48 64%,#083a3e);color:white;padding:8% 12%;justify-content:space-between;flex-direction:column;position:relative;overflow:hidden}
.fp-login-art:after{content:"";width:550px;height:550px;position:absolute;right:-230px;top:8%;border:1px solid rgba(178,255,229,.12);border-radius:50%;box-shadow:0 0 0 75px rgba(178,255,229,.025),0 0 0 150px rgba(178,255,229,.02);pointer-events:none}
.fp-brand-mark,.fp-logo-icon,.fp-mobile-brand{font-weight:850;letter-spacing:-.09em}
.fp-brand-mark{font-size:43px}.fp-brand-mark span,.fp-logo-icon span,.fp-mobile-brand span,.fp-mobile-name span{color:#64d5ad}
.fp-login-kicker{font-size:12px;font-weight:700;letter-spacing:.24em;color:#7bd4b7;margin:85px 0 19px}
.fp-login-art h1{font-weight:800;letter-spacing:-.05em;font-size:clamp(36px,3.1vw,60px);line-height:1.28}
.fp-login-desc{font-size:16px;line-height:1.8;color:#b8d3d2;margin-top:24px;max-width:480px}
.fp-login-tag{margin-top:54px;display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(190,240,224,.18);border-radius:40px;padding:11px 17px;font-size:12px;letter-spacing:.11em}
.fp-pulse,.fp-welcome-dot,.fp-status-light{width:8px;height:8px;background:#58dfb8;border-radius:50%;box-shadow:0 0 0 5px rgba(69,220,163,.14);display:inline-block}
.fp-login-art-foot{font-size:11px;letter-spacing:.17em;color:#8daea9}
.fp-login-main{padding:36px}
.fp-login-panel{max-width:435px;width:100%}
.fp-eyebrow{letter-spacing:.2em;font-size:12px;color:#138a73;font-weight:850}
.fp-login-panel h2{font-size:33px;letter-spacing:-.05em}
.fp-login-panel .form-control-lg{min-height:53px;font-size:15px}
.fp-login-foot{border-top:1px solid #e4ebef;margin-top:38px;padding-top:18px;color:#99a4ab;font-size:12px}
.fp-mobile-brand{font-size:30px}.fp-mobile-brand small{font-size:21px;letter-spacing:-.04em;margin-left:9px}
.fp-sidebar{width:253px;position:fixed;z-index:1020;inset:0 auto 0 0;color:#d7e3e5;background:#102b39;display:flex;flex-direction:column;padding:32px 18px 18px;overflow-y:auto}
.fp-logo{display:flex;align-items:center;gap:14px;color:#fff;padding:0 10px 34px}
.fp-logo:hover{color:white}
.fp-logo-icon{font-size:34px;background:rgba(153,232,199,.075);border:1px solid rgba(153,232,199,.1);border-radius:13px;width:54px;height:54px;display:grid;place-items:center;padding-right:3px}
.fp-logo strong{font-size:21px;letter-spacing:-.03em;display:block;line-height:1.2}
.fp-logo small{font-size:9px;letter-spacing:.2em;color:#80aaa7;display:block;margin-top:6px;font-weight:700}
.fp-nav-section{font-size:10px;font-weight:750;color:#7897a3;letter-spacing:.2em;padding:7px 17px 14px}
.fp-navigation{display:flex;flex-direction:column;gap:6px}
.fp-nav-link{display:flex;align-items:center;gap:14px;text-decoration:none;padding:13px 14px;border-radius:11px;color:#a8c0c6;font-size:13.5px;font-weight:600;transition:.18s}
.fp-nav-link:hover{background:rgba(255,255,255,.06);color:white}
.fp-nav-link.active{color:#f4fffb;background:linear-gradient(95deg,rgba(31,160,132,.34),rgba(31,160,132,.1));border:1px solid rgba(107,218,185,.1)}
.fp-nav-icon{font-size:20px;width:24px;text-align:center;line-height:1}
.fp-sidebar-bottom{margin-top:auto;padding-top:24px}
.fp-server-status{background:rgba(255,255,255,.04);border-radius:12px;border:1px solid rgba(255,255,255,.07);padding:14px;display:flex;gap:13px;align-items:center;margin-bottom:17px}
.fp-server-status .fp-status-light{flex:none;width:8px;height:8px}
.fp-server-status strong,.fp-profile-link strong{font-size:12px;display:block;color:#ecf4f3}
.fp-server-status small,.fp-profile-link small{color:#91b0b2;font-size:10px;display:block;margin-top:3px}
.fp-profile-link{border-top:1px solid rgba(255,255,255,.08);padding:20px 10px 10px;display:flex;align-items:center;gap:11px;text-decoration:none;color:#bed4d9}
.fp-profile-link:hover{color:white}
.fp-avatar{background:#264f56;color:#b8ffdf;border-radius:50%;width:39px;height:39px;display:grid;place-items:center;flex:none;font-size:12px;font-weight:800}
.fp-logout{background:transparent;border:0;padding:12px 10px;color:#8fb3b7;text-align:left;font-size:12px;width:100%}
.fp-logout:hover{color:white}
.fp-main{margin-left:253px;min-height:100vh;display:flex;flex-direction:column}
.fp-topbar{padding:36px 43px 23px;border-bottom:1px solid #e8edf1;background:#fff}
.fp-breadcrumb{font-size:10px;font-weight:800;letter-spacing:.15em;color:#7c929b;margin-bottom:7px}
.fp-topbar h1{font-size:25px;letter-spacing:-.045em;font-weight:800;margin:0}
.fp-today{font-size:12px;color:#8b9ba8}
.fp-top-user{background:#f1f5f5;border:1px solid #e2e9e9;border-radius:26px;font-size:12px;font-weight:750;padding:10px 15px}
.fp-content{padding:28px 43px 48px;max-width:1760px;margin:0 auto;width:100%}
.fp-footer{margin-top:auto;color:#96a7b0;padding:18px 43px 28px;font-size:11px;display:flex;justify-content:space-between;gap:10px}
.fp-welcome{background:linear-gradient(115deg,#153c45 1%,#115657 70%,#176a58 100%);color:white;border-radius:var(--fp-radius);padding:35px 44px;display:flex;justify-content:space-between;align-items:center;overflow:hidden;position:relative;min-height:258px}
.fp-welcome-label{display:flex;align-items:center;gap:14px;letter-spacing:.16em;font-size:10px;font-weight:800;color:#b2e1d5}
.fp-welcome h2{font-size:clamp(24px,2.3vw,37px);font-weight:800;line-height:1.37;letter-spacing:-.06em;margin:14px 0 8px}
.fp-welcome p{font-size:12.8px;color:#c2dcda;margin-bottom:20px}
.fp-welcome .btn{background:#fff;border:0;color:#176d5d;font-size:12px}
.fp-welcome-orbit{width:235px;height:235px;flex:none;border-radius:50%;border:1px solid rgba(210,255,226,.16);display:grid;place-items:center;position:relative;margin-right:28px;box-shadow:0 0 0 34px rgba(172,255,211,.045),0 0 0 72px rgba(172,255,211,.035)}
.fp-welcome-orbit span{font-size:72px;font-weight:900;letter-spacing:-.1em;color:#ecfff6}
.fp-welcome-orbit span span{font-size:48px;color:#6ce0b4}
.fp-welcome-orbit i,.fp-welcome-orbit b{position:absolute;display:block;background:#7dffcb;border-radius:50%;width:12px;height:12px;top:17px;right:32px;box-shadow:0 0 0 8px rgba(126,255,203,.12)}
.fp-welcome-orbit b{top:auto;right:auto;left:16px;bottom:41px;width:8px;height:8px}
.fp-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-top:21px}
.fp-stat-card{background:white;border:1px solid var(--fp-line);border-radius:var(--fp-radius);padding:22px 23px 18px;min-width:0}
.fp-stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:23px;font-weight:650;margin-bottom:15px}
.stat-farms{background:#eaf2ff;color:#5178b0}
.stat-total{background:#e3f7ef;color:#108268}
.stat-online{background:#ecf5f9;color:#388d9a}
.stat-event{background:#fff3e6;color:#bd8845}
.fp-stat-title{font-size:12px;color:#677e8c;font-weight:700}
.fp-stat-num{font-size:36px;font-weight:850;letter-spacing:-.06em;color:#1a354b;line-height:1.25;margin-top:4px}
.fp-stat-num span{font-size:13px;font-weight:550;margin-left:4px;color:#9eabb4;letter-spacing:0}
.fp-stat-note{font-size:11px;color:#9babb5;margin-top:8px}
.fp-panel{background:white;border:1px solid var(--fp-line);border-radius:var(--fp-radius);padding:24px 0 6px;box-shadow:0 4px 18px rgba(25,57,77,.013)}
.fp-panel-head{padding:0 25px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.fp-panel-head h3{font-weight:780;letter-spacing:-.04em;font-size:17px;margin:0 0 5px}
.fp-panel-head p{margin:0;color:#8da1ac;font-size:12px}
.fp-text-link{font-size:12px;color:#178b75;font-weight:750;text-decoration:none;white-space:nowrap}
.fp-text-link:hover{text-decoration:underline}
.fp-table{--bs-table-color:#253d51;--bs-table-border-color:#edf1f4}
.fp-table thead th{font-size:11.5px;color:#8a9daa;background:#f8fafb;border-bottom:1px solid #ebeff2;font-weight:750;white-space:nowrap;padding:12px 17px}
.fp-table tbody td{font-size:12px;padding:17px;border-color:#edf1f4;vertical-align:middle}
.fp-table strong{font-size:12.5px}
.fp-table tbody tr:last-child td{border-bottom:0}
.fp-muted-small{font-size:11px;color:#91a2ae}
.fp-date{font-variant-numeric:tabular-nums;color:#627989;font-size:12px;white-space:nowrap}
.fp-badge-online{background:#dff8e9;color:#178360;font-weight:750;border-radius:20px;padding:7px 10px}
.fp-battery{min-width:100px;font-size:12px}
.fp-battery-track{width:75px;height:6px;border-radius:10px;background:#e7ecef;overflow:hidden;flex:none}
.fp-battery-progress{height:100%;border-radius:10px}
.fp-battery-low{background:#e56b5d}.fp-battery-mid{background:#e0ae5c}.fp-battery-good{background:#41b88c}
.fp-health-row{border-bottom:1px solid #eff2f4;padding:17px 26px;display:flex;align-items:center;gap:12px;font-size:12px}
.fp-health-row strong{margin-left:auto;font-size:12px;white-space:nowrap}
.fp-health-icon{border-radius:8px;background:#e7f7ef;color:#14916d;font-weight:900;font-size:12px;width:23px;height:23px;display:grid;place-items:center}
.fp-health-icon.fp-amber{background:#fff2dc;color:#c29a44}
.fp-green{color:#0d9770}
.fp-health-note{margin:21px 24px 0;background:#f6f9fa;padding:15px 16px;border-radius:12px;color:#7d919c;font-size:12px;line-height:1.8}
.fp-health-note+.btn{width:calc(100% - 48px)!important;margin-left:24px;margin-bottom:20px}
.fp-empty-cell{padding:40px 20px!important;text-align:center;color:#9bacb7;min-height:145px}
.fp-empty-cell strong{font-size:14px;display:block;color:#4c6473;margin:7px 0!important}
.fp-empty-cell span{display:block;font-size:12px;margin-top:5px}
.fp-empty-icon{font-size:35px!important;color:#a0cec2}
.fp-event-tag{display:inline-block;border-radius:30px;font-size:11px;font-weight:750;white-space:nowrap;padding:6px 10px}
.fp-tag-motion{background:#e9f4ff;color:#3172ae}
.fp-tag-action{background:#e0f5e9;color:#178461}
.fp-tag-alert{background:#ffebe5;color:#c36650}
.fp-tag-power{background:#fff3de;color:#b37d35}
.fp-tag-sim{background:#f1f2f5;color:#748595}
.fp-sensor-detail{font-size:12px;font-weight:650}
.fp-technical-note{border:1px solid #e7ecef;background:#edf2f5;color:#7d909e;border-radius:10px;padding:15px 18px;font-size:11.5px;line-height:1.7}
.fp-page-description{margin:0 0 22px;font-size:13px;color:#7b8f9d;line-height:1.8}
.fp-form-panel{padding-bottom:24px}
.fp-form-panel form{padding:2px 25px}
.fp-farm-row{display:flex;gap:16px;padding:20px 25px;border-top:1px solid #edf1f3;align-items:center}
.fp-farm-row strong{font-size:13px}
.fp-farm-icon{border-radius:12px;background:#e8f8f0;color:#168568;font-size:25px;width:42px;height:42px;display:grid;place-items:center;flex:none}
.fp-farm-count{font-size:23px!important;font-weight:850!important}
.fp-soft-detail{white-space:nowrap;font-size:12px!important}
.fp-token-panel{background:#f0faf7;color:#205e4c;border:1px solid #bedfd2;padding:20px}
.fp-token-panel p{font-size:12px;margin-top:6px}
.fp-token-line{display:flex;gap:10px;align-items:center;background:white;border:1px solid #cce8dc;border-radius:9px;padding:9px}
.fp-token-line code{font-size:11px;overflow-wrap:anywhere;flex:1}
.fp-account-info{display:flex;gap:15px;align-items:center;padding:10px 25px 22px;margin-bottom:16px;border-bottom:1px solid #edf2f4}
.fp-account-info strong{font-size:15px}
.fp-mobile-top{background:white;padding:15px 19px;border-bottom:1px solid var(--fp-line);align-items:center;justify-content:space-between}
.fp-mobile-name{text-decoration:none;font-size:20px;font-weight:850;color:#203849}
.fp-mobile-name span{color:#29ad83}
@media(max-width:1290px){.fp-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fp-welcome-orbit{margin-right:0}}
@media(max-width:991.98px){.fp-login-layout{grid-template-columns:1fr}.fp-sidebar{display:none}.fp-main{margin-left:0}.fp-topbar{padding:27px 25px 19px}.fp-content{padding:22px 25px 35px}.fp-footer{padding:16px 25px}.fp-welcome{padding:26px 28px}.fp-welcome-orbit{width:150px;height:150px}.fp-welcome-orbit>span{font-size:46px}.fp-welcome-orbit>span span{font-size:30px}}
@media(max-width:650px){.fp-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.fp-stat-card{padding:17px}.fp-stat-num{font-size:31px}.fp-content{padding:15px 14px 26px}.fp-topbar{padding:19px 16px}.fp-topbar h1{font-size:23px}.fp-welcome{min-height:230px;padding:26px 22px}.fp-welcome-orbit{display:none}.fp-panel-head{padding:0 18px 17px}.fp-form-panel form{padding:0 18px}.fp-farm-row{padding:18px}.fp-login-main{padding:26px}.fp-footer{flex-wrap:wrap;padding:18px 15px}.fp-battery-track{width:48px}.fp-battery{min-width:80px}}
