@import"https://fonts.googleapis.com/css2?family=Ubuntu:wght@400;500;700&display=swap";:root{--bg-soft: #f5f7fb;--panel-white: #ffffff;--line: #e6e9f2;--text-900: #20304c;--text-600: #6d7990;--brand: #2e936f;--brand-soft: #def7ee}*{box-sizing:border-box}body{margin:0;min-width:320px;font-family:Ubuntu,sans-serif;color:var(--text-900);background:#f0f3f8}#root{min-height:100vh}button,input{font:inherit}.brand-logo{display:inline-flex;align-items:center;justify-content:flex-start;color:var(--brand);font-family:Ubuntu,sans-serif;width:100%;min-height:84px}.brand-icon{width:38px;height:38px;border:4px solid currentColor;border-radius:12px;display:grid;place-items:center;font-weight:800}.brand-text{letter-spacing:.5px;font-weight:800;font-size:42px}.brand-image{width:auto;height:84px;max-width:100%;border-radius:8px;object-fit:contain;border:none;background:transparent;display:block}.login-screen{display:grid;grid-template-columns:2fr 1fr;min-height:100vh;background:#fff}.login-art-panel{position:relative;background:#d9f1f1;overflow:hidden;display:grid;place-items:center;padding:60px}.bg-orb{position:absolute;border-radius:999px;background:radial-gradient(circle at 35% 35%,#8cf0df,#57bdb1 50%,#57bdb11a);filter:blur(1px)}.orb-top-right{width:420px;height:420px;right:20px;top:70px}.orb-left{width:390px;height:390px;left:-90px;bottom:250px}.orb-bottom{width:250px;height:250px;bottom:-60px;left:46%;transform:translate(-50%)}.art-glass{position:relative;width:min(920px,92%);min-height:520px;border:3px solid rgba(255,255,255,.28);border-radius:40px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:linear-gradient(170deg,#ffffff3d,#ffffff1a);z-index:2;padding:80px 80px 40px}.cloud-wrap{position:relative;width:240px;margin:0 auto 35px}.cloud{width:170px;height:72px;background:#2f936f;border-radius:60px;margin:0 auto;position:relative}.cloud:before,.cloud:after{content:"";position:absolute;background:#2f936f;border-radius:999px}.cloud:before{width:82px;height:82px;top:-34px;left:20px}.cloud:after{width:58px;height:58px;right:16px;top:-22px}.wire{position:absolute;border-right:4px dotted #2f936f;height:120px}.wire-left{left:62px;top:62px}.wire-mid{left:117px;top:62px}.wire-right{right:60px;top:62px}.devices{display:flex;align-items:flex-end;justify-content:center;gap:44px}.monitor{width:320px;height:210px;border-radius:12px 12px 18px 18px;background:#1b2228;padding:12px}.screen{width:100%;height:160px;border-radius:8px;background:#f8fcfa;border:2px solid #86c4ad;display:grid;place-items:center}.folder-shape{width:78px;height:54px;border:4px solid #5aa785;border-radius:4px;position:relative}.folder-shape:before{content:"";position:absolute;width:28px;height:10px;border:4px solid #5aa785;border-bottom:none;border-radius:4px 4px 0 0;left:-4px;top:-14px}.tablet{width:200px;height:140px;border-radius:10px;background:#1b2228;padding:12px}.avatar-ring{width:100%;height:100%;border-radius:8px;background:#f1fbf8;border:2px solid #7dbf9f;position:relative}.avatar-ring:before{content:"";width:56px;height:56px;border-radius:999px;border:4px solid #2f936f;position:absolute;left:50%;top:20px;transform:translate(-50%)}.avatar-ring:after{content:"";width:110px;height:46px;border-radius:22px;border:4px solid #2f936f;position:absolute;left:50%;bottom:14px;transform:translate(-50%)}.login-form-panel{background:#fff;display:grid;place-items:center;padding:40px}.form-wrap{width:min(460px,100%)}.login-form{margin-top:46px;display:grid;gap:14px}.login-form label{color:#66758e;font-size:15px}.login-form input{border:1px solid #e5e8ef;border-radius:12px;padding:14px 16px;outline:none;transition:border-color .2s ease}.login-form input:focus{border-color:#89d7c4}.login-links{display:flex;justify-content:space-between;margin-top:2px}.text-link{border:none;background:transparent;color:#2f936f;padding:0;font-size:15px;cursor:pointer}.login-btn{border:none;border-radius:8px;background:#2e936f;color:#fff;font-weight:600;padding:11px 16px;cursor:pointer}.login-btn:disabled{opacity:.7;cursor:wait}.error-text{color:#d13f52;margin:2px 0}.ok-text{color:#2f936f;margin:2px 0}.dashboard-page{min-height:100vh;background:var(--bg-soft);display:grid;grid-template-columns:260px 1fr}.sidebar{padding:24px 20px;background:var(--panel-white);border-right:1px solid var(--line)}.sidebar nav{margin-top:28px;display:grid;gap:8px}.menu-item{text-align:left;border:none;background:transparent;color:#596882;padding:11px 14px;border-radius:8px;cursor:pointer}.menu-item.active{background:#edf8f3;color:#2a8d6a;font-weight:600}.submenu-wrap{padding-left:20px;display:grid;gap:6px;margin-top:4px}.submenu-item{border:none;background:transparent;text-align:left;color:#6a7991;padding:8px 10px;border-radius:8px;cursor:pointer}.submenu-item.active{background:#f2fbf7;color:#2a8d6a;font-weight:600}.dashboard-main{padding:16px 22px 22px}.topbar{background:var(--panel-white);border-radius:12px;border:1px solid var(--line);padding:10px 14px;display:flex;justify-content:space-between;align-items:center}.top-actions{display:flex;gap:10px}.top-actions button{border:1px solid var(--line);background:#fff;border-radius:10px;width:36px;height:36px;cursor:pointer}.profile-chip{border:none;background:#eff7f3;border-radius:12px;padding:8px 14px;cursor:pointer;text-align:right}.profile-wrap{position:relative}.profile-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:10px;min-width:170px;box-shadow:0 10px 24px #1e385a1a;z-index:1200}.profile-menu button{width:100%;border:none;background:transparent;text-align:left;padding:10px 12px;color:#53647f;cursor:pointer}.profile-menu button:hover{background:#f6faf8}.profile-name{display:block;font-weight:700;color:#1b3153}.profile-role{display:block;font-size:12px;color:#76859c}.dashboard-title{margin:18px 0 12px;font-family:Ubuntu,sans-serif;font-size:36px;color:#243652}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.dashboard-pending-panel{margin-top:14px;min-height:420px}.summary-card{background:var(--panel-white);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;align-items:center;gap:14px}.summary-card p{margin:0;color:#74829a;font-size:14px}.summary-card h2{margin:4px 0 0;font-size:29px;color:#1e3250}.status-dot{width:42px;height:42px;border-radius:999px}.orange{background:#ff8135}.green{background:#29916b}.blue{background:#387de2}.violet{background:#6453c7}.analytics-grid{margin-top:14px;display:grid;gap:14px;grid-template-columns:2fr 1fr}.analytics-grid.lower{grid-template-columns:1fr 1fr}.panel{background:var(--panel-white);border:1px solid var(--line);border-radius:12px;padding:16px;min-height:280px}.panel-large{min-height:360px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.panel-header h3{margin:0;font-size:28px;font-family:Ubuntu,sans-serif}.panel-header button{border:1px solid var(--line);background:#fdfdfe;color:#66758e;padding:7px 12px;border-radius:8px;cursor:pointer}.line-chart-mock{height:280px;border-radius:10px;background:linear-gradient(to right,transparent 0 16.66%,#edf0f7 16.66% 16.86%,transparent 16.86% 33.33%,#edf0f7 33.33% 33.53%,transparent 33.53% 50%,#edf0f7 50% 50.2%,transparent 50.2% 66.66%,#edf0f7 66.66% 66.86%,transparent 66.86% 83.33%,#edf0f7 83.33% 83.53%,transparent 83.53%),repeating-linear-gradient(to top,#edf0f7 0 1px,transparent 1px 42px);position:relative}.line-chart-mock:before{content:"";position:absolute;inset:18% 4% 16%;border-radius:100px;border:4px solid transparent;border-top-color:#2f936f;border-left-color:#2f936f}.line-chart-mock:after{content:"";position:absolute;inset:42% 14% 38%;border-radius:100px;border:4px solid transparent;border-top-color:#ef4652;border-left-color:#ef4652}.donut-wrap{display:grid;place-items:center;margin-top:22px}.donut-chart{width:280px;height:280px;border-radius:999px;background:conic-gradient(#2f936f 0 44%,#f5a700 44% 100%);display:grid;place-items:center}.donut-inner{width:170px;height:170px;border-radius:999px;background:#fff;display:grid;place-items:center;text-align:center}.donut-inner small{color:#7f8ba2}.donut-inner strong{font-size:36px}.legend{color:#697a93;margin:14px 0 0}.bars{margin-top:16px;display:grid;gap:14px}.progress-row{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:12px}.progress-row span{color:#63728b}.track{height:11px;border-radius:999px;background:#ecf0f5;overflow:hidden}.track>span{display:block;height:100%;background:#2f936f}.track.yellow>span{background:#f1b210}.track.red>span{background:#de4455}.bar-chart-mock{margin-top:16px;height:190px;border-bottom:1px solid #e1e6ef;display:flex;align-items:flex-end;justify-content:space-around}.bar-chart-mock span{width:28px;border-radius:8px 8px 0 0}.bar-chart-mock span:nth-child(1){background:#316de6}.bar-chart-mock span:nth-child(2){background:#1d9b83}.bar-chart-mock span:nth-child(3){background:#fd7d3e}.bar-chart-mock span:nth-child(4){background:#dde2ee}.bar-chart-mock span:nth-child(5){background:#efbf60}.services-view{margin-top:4px}.service-form-panel{min-height:auto}.service-form-grid{display:grid;grid-template-columns:1.3fr .7fr 1.4fr auto auto;gap:10px}.service-form-grid input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none}.primary-btn{border:none;border-radius:10px;background:#2e936f;color:#fff;padding:10px 16px;cursor:pointer}.secondary-btn{border:1px solid var(--line);border-radius:10px;background:#fff;color:#5e6d86;padding:10px 16px;cursor:pointer}.secondary-btn.active{border-color:#8ecdb8;color:#2f936f}.service-list-panel{margin-top:14px;min-height:420px}.service-list-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.search-input{width:min(340px,100%);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.service-table-wrap{width:100%;overflow:visible;position:relative}.service-table{width:100%;border-collapse:collapse}.service-table th,.service-table td{text-align:left;padding:13px 12px;border-bottom:1px solid #e9edf4;color:#53647f}.service-table thead th{color:#355173;font-weight:700}.service-table tbody tr:hover{background:#f6faf8}.action-cell{position:relative;width:130px}.kebab-btn{border:1px solid var(--line);background:#fff;border-radius:8px;width:36px;height:30px;cursor:pointer;color:#60718b}.row-action-menu{position:absolute;right:42px;top:8px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 24px #1e385a1a;min-width:110px;z-index:1000}.row-action-menu button{width:100%;border:none;background:transparent;text-align:left;padding:9px 12px;cursor:pointer;color:#53647f}.row-action-menu button:hover{background:#f6faf8}.placeholder-panel p{color:#687892}.customer-list-panel{min-height:620px}.customer-list-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.list-actions{display:flex;gap:10px}.customer-name-cell{display:flex;align-items:center;gap:10px}.avatar-pill{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;color:#fff;background:#2f936f;font-weight:700;text-transform:uppercase;font-size:12px}.status-badge{display:inline-block;border-radius:999px;padding:5px 10px;background:#dff3e9;color:#2a916d;font-size:12px;font-weight:600}.modal-overlay{position:fixed;inset:0;background:#1d273673;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;z-index:20;padding:20px}.customer-modal{width:min(980px,95vw);background:#fff;border-radius:10px;border:1px solid var(--line);overflow:hidden}.customer-modal-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.customer-modal-head h3{margin:0;font-size:32px;font-family:Ubuntu,sans-serif}.icon-close{border:1px solid var(--line);background:#fff;width:30px;height:30px;border-radius:999px;cursor:pointer}.customer-form-grid{padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}.customer-form-grid label{display:grid;gap:6px;color:#5d6d87;font-size:14px}.customer-form-grid input,.customer-form-grid select,.customer-form-grid textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;outline:none}.full-col{grid-column:1 / -1}.customer-modal-actions{grid-column:1 / -1;border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:flex-end;gap:8px}.invoice-view{margin-top:4px}.invoice-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.invoice-switch{display:flex;gap:8px}.invoice-panel{min-height:auto}.invoice-grid{display:grid;gap:12px}.invoice-grid.top{grid-template-columns:1fr 1fr 1fr}.invoice-grid.mid{grid-template-columns:1fr 1fr;margin-top:12px}.invoice-grid.bottom{grid-template-columns:1fr 1fr}.invoice-grid label{display:grid;gap:7px;color:#5e6d86}.invoice-grid input,.invoice-grid select,.invoice-grid textarea,.invoice-product-row select,.invoice-item-table input,.summary-row input,.summary-row select{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.template-btn{border:none;border-radius:8px;background:#2e936f;color:#fff;width:fit-content;padding:9px 14px}.invoice-product-row{margin-top:12px;display:grid;grid-template-columns:1fr 340px;gap:12px}.invoice-item-table .qty-wrap{display:flex;align-items:center;gap:8px}.qty-wrap button{width:28px;height:28px;border:1px solid #7fc7af;border-radius:999px;background:#fff;color:#2e936f}.qty-wrap input{width:90px}.delete-row-btn{border:none;background:transparent;color:#d34154;cursor:pointer}.invoice-bottom-grid{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:14px}.invoice-summary-panel{min-height:auto}.summary-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9edf4;padding:10px 0;color:#3d4f6e}.summary-row strong{color:#1f3352}.summary-row.with-input input,.summary-row.with-input select{width:220px}.invoice-actions{margin-top:12px;display:flex;gap:10px}.primary-btn.alt{background:#267f5f}.invoice-preview-card{margin-top:16px}.invoice-preview-head{display:flex;justify-content:space-between;align-items:flex-start}.preview-title{letter-spacing:6px;margin-bottom:4px}.invoice-preview-head h2{margin:0}.invoice-preview-parties{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.invoice-preview-parties h4{margin:0 0 6px}.invoice-preview-parties p{margin:0;line-height:1.5}.tenant{text-align:right}.preview-table th,.preview-table td{font-size:20px}.preview-totals{margin-top:16px;margin-left:auto;width:320px}.preview-totals p{margin:5px 0;display:flex;justify-content:space-between}.preview-totals .final{font-size:24px}.preview-note{margin-top:22px;font-size:33px}.invoice-history-panel{margin-top:14px;min-height:540px}.invoice-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.row-action-menu-wide{min-width:180px}.payment-modal{width:min(760px,95vw)}.settings-view{margin-top:4px}.settings-layout{display:grid;grid-template-columns:260px 1fr;gap:14px}.settings-side-panel{min-height:320px;display:grid;gap:8px;align-content:start}.settings-nav-btn{border:none;background:transparent;text-align:left;border-radius:10px;padding:11px 12px;color:#5f6e87;cursor:pointer}.settings-nav-btn.active{background:#edf8f3;color:#2a8d6a;font-weight:600}.settings-main-panel{min-height:420px}.settings-form{display:grid;gap:12px}.settings-form h3,.settings-payment-methods h3{margin:0;font-family:Ubuntu,sans-serif;font-size:30px}.settings-form label{display:grid;gap:7px;color:#5e6d86}.settings-form input,.settings-form textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.settings-logo-preview-wrap{display:flex;align-items:center;gap:12px}.settings-logo-preview{width:88px;height:88px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.settings-actions{display:flex;justify-content:flex-end}.reports-view{margin-top:4px}.reports-tabs-panel{min-height:auto}.reports-tabs{display:flex;gap:10px;flex-wrap:wrap}.report-tab-btn{border:none;background:transparent;color:#5f6e87;padding:10px 12px;border-radius:10px;cursor:pointer}.report-tab-btn.active{background:#eaf7f1;color:#2b916d;font-weight:600}.reports-table-panel{margin-top:14px;min-height:560px}.reports-table-header{border-bottom:1px solid #e9edf4;margin-bottom:12px}.reports-table-header h3{margin:0 0 12px;font-size:30px;font-family:Ubuntu,sans-serif;color:#2b3d59}.transactions-view{margin-top:4px}.transactions-filter-panel{min-height:auto}.transactions-label{display:grid;gap:8px;color:#5e6d86}.transactions-label select{max-width:420px;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.transaction-cards{margin-top:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.transaction-table-panel{margin-top:14px;min-height:420px}.transaction-tab-row{display:flex;gap:8px;margin-bottom:12px}.expenses-view{margin-top:4px}.expense-table-panel{min-height:560px}.expense-modal{width:min(860px,95vw)}.attachment-preview-list{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px}.attachment-preview-item{border:1px solid var(--line);border-radius:10px;padding:8px;display:grid;gap:6px;width:110px}.attachment-preview-item img{width:92px;height:92px;object-fit:cover;border-radius:8px}.attachment-file-label{width:92px;height:92px;border-radius:8px;background:#f5f8fc;display:grid;place-items:center;color:#64758f;font-size:12px}.attachment-preview-item button{border:1px solid #e5bac0;background:#fff;color:#c63e50;border-radius:8px;font-size:12px;padding:4px 6px;cursor:pointer}@media(max-width:1300px){.brand-text{font-size:32px}.summary-grid{grid-template-columns:repeat(2,1fr)}.analytics-grid,.analytics-grid.lower{grid-template-columns:1fr}.service-form-grid{grid-template-columns:1fr 1fr}.customer-form-grid,.invoice-grid.top,.invoice-grid.mid,.invoice-grid.bottom,.invoice-bottom-grid,.invoice-product-row,.settings-layout,.transaction-cards{grid-template-columns:1fr}}@media(max-width:980px){.login-screen{grid-template-columns:1fr}.login-art-panel{min-height:360px;padding:20px}.art-glass{min-height:300px;padding:28px}.monitor{width:220px;height:150px}.screen{height:110px}.tablet{width:140px;height:98px}.dashboard-page{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--line)}.service-form-grid{grid-template-columns:1fr}.service-list-head,.customer-list-head,.invoice-header-row,.invoice-list-head{flex-direction:column;align-items:stretch}.summary-row.with-input input,.summary-row.with-input select{width:150px}.preview-table th,.preview-table td{font-size:15px}.preview-note{font-size:20px}.service-table-wrap{overflow-x:auto}}
