:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#17231d;background:#edf3ef;font-synthesis:none;--green:#075b39;--green-2:#2f872d;--ink:#17231d;--muted:#68776f;--line:#dbe5df;--surface:#fff;--soft:#edf6f0;--warning:#fff1cc;--danger:#fde8e6;--shadow:0 16px 45px rgba(17,55,38,.11)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.icon{width:18px;height:18px;display:inline-grid;place-items:center}.icon svg{width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.button{border:0;border-radius:10px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600}.button.primary{background:var(--green);color:#fff}.button.secondary{background:var(--soft);color:var(--green);border:1px solid var(--line)}.button.ghost{background:transparent;color:var(--muted)}.button:hover{filter:brightness(.97)}.field{display:grid;gap:7px;margin-bottom:14px}.field label{font-size:12px;font-weight:600;color:var(--muted)}.field input,.field select,.field textarea,.search input{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:11px 12px;outline:none}.field input:focus,.field select:focus,.field textarea:focus,.search input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(7,91,57,.12)}
.login{min-height:100vh;display:grid;grid-template-columns:1.08fr .92fr;background:var(--surface)}.login-hero{padding:54px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(145deg,rgba(5,69,42,.96),rgba(9,113,70,.94)),url('../assets/logo.png') center/440px no-repeat}.brand{display:flex;align-items:center;gap:13px}.brand-logo{width:57px;height:57px;object-fit:contain;background:#fff;border-radius:14px;padding:4px}.brand strong{font-size:23px;display:block}.brand small{font-size:10px;letter-spacing:.13em;opacity:.76}.hero-copy{max-width:610px}.hero-copy h1{font-size:clamp(34px,4.3vw,58px);line-height:1.05;margin:0 0 18px;letter-spacing:-.035em}.hero-copy p{font-size:17px;line-height:1.65;max-width:600px;opacity:.85}.hero-tags{display:flex;gap:12px;flex-wrap:wrap}.hero-tag{display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 11px;font-size:12px}.login-side{padding:42px;display:grid;place-items:center}.login-card{width:min(410px,100%)}.login-card h2{font-size:28px;margin:0 0 6px}.login-card>p{color:var(--muted);margin:0 0 24px}.role-switch{display:grid;grid-template-columns:1fr 1fr;background:#f2f5f3;border:1px solid var(--line);border-radius:12px;padding:4px;margin-bottom:22px}.role-switch button{border:0;background:transparent;color:var(--muted);padding:10px;border-radius:9px}.role-switch button.active{background:#fff;color:var(--green);font-weight:700;box-shadow:0 2px 9px rgba(25,55,40,.09)}.login-help{font-size:12px;color:var(--muted);background:var(--soft);padding:11px;border-radius:9px;margin-top:14px}.login-error{min-height:18px;color:#af3932;font-size:12px}
.app-shell{min-height:100vh;display:grid;grid-template-columns:238px minmax(0,1fr)}.sidebar{padding:20px 14px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:22px}.sidebar.internal{background:#103d2c;color:#fff;border:0}.sidebar .brand strong{color:var(--green)}.sidebar.internal .brand strong{color:#fff}.navigation{display:grid;gap:5px}.nav-button{border:0;background:transparent;color:var(--muted);border-radius:10px;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left}.nav-button.active,.nav-button:hover{background:var(--soft);color:var(--green)}.sidebar.internal .nav-button{color:rgba(255,255,255,.7)}.sidebar.internal .nav-button.active,.sidebar.internal .nav-button:hover{color:#fff;background:rgba(255,255,255,.12)}.user-box{margin-top:auto;padding:14px 8px 0;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.sidebar.internal .user-box{border-color:rgba(255,255,255,.16)}.avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:12px;font-weight:800;flex:0 0 auto}.user-box strong{font-size:12px;display:block}.user-box small{font-size:10px;color:var(--muted)}.sidebar.internal .user-box small{color:rgba(255,255,255,.62)}.workspace{min-width:0}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 25px;position:sticky;top:0;z-index:3}.search{position:relative;flex:1;max-width:580px}.search input{padding-left:39px;background:#f7f9f8}.search .icon{position:absolute;left:12px;top:11px;color:var(--muted)}.icon-button{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);display:grid;place-items:center}.content{padding:26px;display:grid;gap:20px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:15px}.page-head h1{margin:0 0 5px;font-size:25px}.page-head p{margin:0;color:var(--muted);font-size:13px}.page{display:none;gap:20px}.page.active{display:grid}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.stat-head,.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.stat-head{font-size:12px;color:var(--muted)}.stat-icon{width:32px;height:32px;border-radius:9px;background:var(--soft);color:var(--green);display:grid;place-items:center}.stat-value{font-size:26px;font-weight:800;margin-top:9px}.stat-note{font-size:11px;color:var(--muted)}.grid-main{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,.75fr);gap:15px}.card h2{font-size:15px;margin:0}.link-button{border:0;background:transparent;color:var(--green);font-size:12px}.service-row,.activity-row,.client-row{display:grid;gap:11px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.service-row{grid-template-columns:38px minmax(0,1fr) auto}.activity-row{grid-template-columns:30px minmax(0,1fr)}.client-row{grid-template-columns:38px minmax(0,1fr) auto}.service-row:first-of-type,.activity-row:first-of-type,.client-row:first-of-type{border-top:0}.row-icon{width:36px;height:36px;border-radius:10px;background:var(--soft);color:var(--green);display:grid;place-items:center}.row-copy strong{font-size:13px}.row-copy p{font-size:11px;color:var(--muted);margin:4px 0}.progress{height:5px;background:var(--line);border-radius:99px;overflow:hidden}.progress span{height:100%;display:block;background:var(--green-2)}.badge{font-size:10px;padding:5px 8px;border-radius:999px;background:var(--soft);color:var(--green);white-space:nowrap}.badge.warning{background:var(--warning);color:#825500}.badge.danger{background:var(--danger);color:#a13a33}.quick-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-action{padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ink)}.quick-action:hover{background:var(--soft);color:var(--green)}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{text-align:left;padding:12px 9px;border-bottom:1px solid var(--line)}.data-table th{color:var(--muted);font-weight:600}.empty{padding:42px 20px;text-align:center;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 13px}.form-grid .full{grid-column:1/-1}.modal-backdrop{position:fixed;inset:0;background:rgba(5,23,14,.47);display:grid;place-items:center;padding:20px;z-index:20}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:21px;box-shadow:var(--shadow)}.modal h2{margin:0 0 5px}.modal>p{margin:0 0 18px;color:var(--muted);font-size:12px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.toast{position:fixed;right:20px;bottom:20px;background:#104c32;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow);font-size:12px;z-index:30}.chat-layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:480px;padding:0;overflow:hidden}.chat-list{border-right:1px solid var(--line);padding:13px}.chat-person{padding:10px;border-radius:10px;display:flex;gap:9px;align-items:center}.chat-person.active{background:var(--soft)}.chat-window{display:grid;grid-template-rows:auto 1fr auto}.chat-head{padding:15px;border-bottom:1px solid var(--line)}.messages{padding:18px;display:flex;flex-direction:column;gap:9px}.message{max-width:74%;background:var(--soft);border-radius:12px;padding:10px 12px;font-size:12px}.message.mine{align-self:flex-end;background:var(--green);color:#fff}.chat-form{padding:13px;border-top:1px solid var(--line);display:flex;gap:8px}.chat-form input{flex:1;border:1px solid var(--line);border-radius:9px;padding:10px}.chart{height:160px;display:flex;align-items:flex-end;gap:9px;padding:16px 0 22px}.chart span{flex:1;background:#cfe4d7;border-radius:7px 7px 2px 2px;position:relative}.chart span:last-child{background:var(--green)}.chart span::after{content:attr(data-label);position:absolute;bottom:-19px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted)}
@media(max-width:900px){.login{grid-template-columns:1fr}.login-hero{display:none}.app-shell{grid-template-columns:72px minmax(0,1fr)}.sidebar{align-items:center;padding-inline:8px}.sidebar .brand div,.sidebar .nav-button span,.sidebar .user-box div{display:none}.nav-button{justify-content:center}.stats{grid-template-columns:repeat(2,1fr)}.grid-main{grid-template-columns:1fr}.chat-layout{grid-template-columns:1fr}.chat-list{display:none}}
@media(max-width:600px){.login-side{padding:28px 18px}.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:5;display:block;padding:8px 10px;border:0;border-bottom:1px solid var(--line)}.sidebar .brand,.sidebar .user-box{display:none}.navigation{display:flex;overflow:auto}.nav-button{min-width:47px}.topbar{padding:0 13px}.topbar .button span{display:none}.content{padding:18px 13px}.page-head{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr 1fr}.card{padding:14px}.grid-main{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.service-row,.client-row{grid-template-columns:38px 1fr}.service-row .badge,.client-row .badge{grid-column:2}.chat-layout{min-height:520px}}
