:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#172019;background:#f4f5ef}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,a{font:inherit}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#dfe9d4,transparent 36%),radial-gradient(circle at 90% 80%,#f1d9b9,transparent 34%),#f4f5ef}.login-card{width:min(460px,100%);padding:48px;border:1px solid #d9ddd2;border-radius:28px;background:#ffffffdc;box-shadow:0 24px 80px #27392a1c}.mark{width:58px;height:58px;display:grid;place-items:center;border-radius:17px;background:#1f4b37;color:#fff;font-weight:800}.eyebrow{margin:28px 0 8px;color:#63806c;font-size:12px;font-weight:800;letter-spacing:.16em}h1{margin:0;font-size:clamp(32px,5vw,52px);line-height:1.06;letter-spacing:-.045em}.login-card h1{font-size:38px}.subtle{color:#6d766f;line-height:1.65}.field{display:grid;gap:7px;margin-top:18px;color:#506057;font-size:13px;font-weight:700}.field input{width:100%;border:1px solid #ccd3c9;border-radius:11px;padding:13px 14px;background:#fff;color:#172019;outline:none}.field input:focus{border-color:#52725e;box-shadow:0 0 0 3px #dbe8dc}.password-input{position:relative;display:block}.password-input input{padding-right:66px}.password-input input::-ms-reveal,.password-input input::-ms-clear{display:none}.password-toggle{position:absolute;top:50%;right:8px;display:grid;width:34px;height:34px;place-items:center;transform:translateY(-50%);border:0;border-radius:7px;padding:0;background:transparent;color:#31583d;cursor:pointer}.password-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.password-toggle:hover{background:#edf4ed}.password-toggle:focus-visible{outline:2px solid #52725e;outline-offset:1px}.primary{width:100%;margin-top:24px;border:0;border-radius:11px;padding:14px;background:#1f4b37;color:#fff;font-weight:800;cursor:pointer}.primary:disabled{opacity:.6;cursor:wait}nav button{border:1px solid #d9ddd2;background:#fff;border-radius:10px;padding:10px;cursor:pointer}nav button:disabled{opacity:.6;cursor:wait}.hint{color:#7d887f;font-size:12px;line-height:1.5}.error{color:#a23a3a;font-size:14px}.text-button{border:0;padding:0;background:transparent;color:#31583d;font-weight:700;cursor:pointer}.forgot-link{display:block;margin:12px 0 0 auto;font-size:13px}.back-link{margin-top:22px}.result-panel{margin-top:24px;padding:18px;border-radius:14px;background:#edf4ed;color:#31583d;line-height:1.6}.result-panel p:first-child{margin-top:0}.result-panel p:last-child{margin-bottom:0}.reset-link{display:inline-block;color:#1f4b37;font-weight:800}.portal{min-height:100vh;display:flex;flex-direction:column}.site-header{min-height:76px;display:flex;justify-content:space-between;align-items:center;padding:12px clamp(24px,6vw,84px);border-bottom:1px solid #dde1d7;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.brand-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:#1f4b37;color:#fff;font-size:14px;font-weight:900;letter-spacing:-.03em}.brand-copy{display:grid;gap:2px}.brand-copy strong{font-size:17px}.brand-copy small,footer{color:#7d887f;font-size:11px}.header-actions{display:flex;align-items:center;gap:22px}.header-home{color:#31583d;font-size:13px;font-weight:800}.account-menu{position:relative}.account-trigger{display:flex;align-items:center;gap:10px;min-width:210px;border:1px solid #d9ddd2;border-radius:13px;padding:7px 10px;background:#fff;color:#172019;text-align:left;cursor:pointer}.account-trigger:hover{border-color:#aebbae;background:#f8faf6}.avatar{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#dbe8dc;color:#31583d;font-size:13px;font-weight:900}.account-summary{min-width:0;display:grid;gap:2px;flex:1}.account-summary strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.account-summary small{overflow:hidden;color:#7d887f;font-size:10px;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}.chevron{color:#7d887f}.account-dropdown{position:absolute;z-index:15;top:calc(100% + 9px);right:0;width:250px;overflow:hidden;border:1px solid #d9ddd2;border-radius:15px;background:#fff;box-shadow:0 18px 48px #27392a24}.account-detail{display:grid;gap:5px;padding:17px;border-bottom:1px solid #edf0e9}.account-detail strong{font-size:14px}.account-detail>span:not(.role){overflow:hidden;color:#7d887f;font-size:11px;text-overflow:ellipsis}.account-detail .role{justify-self:start;margin-top:3px}.account-dropdown button{width:100%;border:0;border-radius:0;padding:12px 17px;background:#fff;color:#27392a;text-align:left;cursor:pointer}.account-dropdown button:hover{background:#f4f7f1}.account-dropdown .logout-item{border-top:1px solid #edf0e9;color:#a23a3a}.role{padding:4px 9px;border-radius:99px;background:#dbe8dc;color:#31583d;font-size:11px;text-transform:uppercase;font-weight:800}.portal main{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:38px 0 28px;flex:1}.portal main>.eyebrow{margin-top:0}.app-grid{margin-top:28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:18px}.app-card{min-height:306px;display:flex;flex-direction:column;padding:24px;border:1px solid #d9ddd2;border-radius:22px;background:#fff;transition:.2s}.app-card:hover{transform:translateY(-3px);box-shadow:0 22px 48px #27392a1a}.app-card.is-unavailable{background:#fafaf7}.app-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.app-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:16px;background:#dfeada;color:#224632;font-size:22px;font-weight:900}.icon-1{background:#e3e0f1;color:#514b78}.icon-2{background:#f3dfc5;color:#704b22}.app-status{padding:5px 9px;border-radius:99px;font-size:11px;font-weight:800}.status-ready{background:#e4f1e4;color:#2c633b}.status-soon{background:#efedf5;color:#625b7d}.app-card-copy{flex:1}.app-card h2{margin:22px 0 6px;font-size:24px}.app-card p{margin:0;color:#737e76;line-height:1.55}.app-card-meta{display:flex;align-items:center;justify-content:space-between;margin:20px 0 13px;padding-top:14px;border-top:1px solid #edf0e9;color:#7d887f;font-size:11px}.app-entry{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;border-radius:11px;padding:12px 14px;background:#1f4b37;color:#fff;font-weight:800;text-decoration:none;cursor:pointer}.app-entry:hover{background:#173d2c}.secondary-entry{background:#ebece7;color:#626b64}.secondary-entry:hover{background:#e1e3dd}footer{padding:14px 24px;text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:24px;background:#17201980;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.password-dialog{width:min(480px,100%);padding:32px;border:1px solid #d9ddd2;border-radius:22px;background:#fff;box-shadow:0 28px 90px #17201940}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dialog-head .eyebrow{margin-top:0}.dialog-head h2{margin:0;font-size:28px}.icon-button{border:0;background:transparent;color:#6d766f;font-size:28px;line-height:1;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.secondary{border:1px solid #ccd3c9;border-radius:11px;padding:12px 18px;background:#fff;color:#27392a;cursor:pointer}.primary.compact{width:auto;margin-top:0;padding:12px 18px}.toast{position:fixed;z-index:30;top:82px;left:50%;transform:translate(-50%);padding:12px 18px;border-radius:12px;background:#1f4b37;color:#fff;box-shadow:0 12px 32px #17201930}.coming-soon{width:min(440px,100%);padding:34px;border:1px solid #ead8ba;border-radius:26px;background:linear-gradient(145deg,#fffdf7,#fff7e9);text-align:center;box-shadow:0 28px 90px #17201940}.coming-soon .eyebrow{margin-top:16px;color:#a36b2c}.coming-soon h2{margin:0;font-size:27px;color:#52381f}.coming-icon{font-size:52px;animation:bob 1.8s ease-in-out infinite}.admin-shell{min-height:100vh;background:#f4f5ef}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:34px clamp(24px,5vw,72px) 26px;border-bottom:1px solid #d9ddd2;background:#fff}.admin-header .eyebrow,.form-title .eyebrow{margin-top:0}.admin-header h1{font-size:40px}.admin-header .subtle{margin-bottom:0}.admin-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:22px;padding:24px clamp(24px,5vw,72px) 48px}.department-memberships{display:grid;gap:9px;margin:0;padding:14px;border:1px solid #d9ddd2;border-radius:12px}.department-memberships legend{padding:0 6px;color:#27392a;font-size:12px;font-weight:700}.department-memberships>small{color:#7d887f;font-size:10px}.department-admin{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:7px;padding-bottom:9px;border-bottom:1px solid #edf0e9}.department-admin select{min-width:0;border:1px solid #d9ddd2;border-radius:8px;padding:8px;background:#fff}.department-admin button{border:1px solid #ccd3c9;border-radius:8px;padding:7px 9px;background:#fff;color:#31583d;font-size:11px;font-weight:700;cursor:pointer}.department-admin button:disabled{opacity:.5;cursor:not-allowed}.department-admin .delete-department{border-color:#d8a5a5;color:#a23a3a}.membership-row{display:grid;grid-template-columns:minmax(0,1fr) 145px 30px;gap:7px}.membership-row input,.membership-row select{min-width:0;border:1px solid #d9ddd2;border-radius:8px;padding:8px;background:#fff}.remove-membership,.add-membership{border:0;background:transparent;cursor:pointer}.remove-membership{color:#a23a3a;font-size:18px}.add-membership{justify-self:start;padding:3px 0;color:#24734b;font-size:11px;font-weight:700}.membership-tags{display:grid;gap:5px}.membership-tags>span{display:flex;align-items:center;gap:6px;white-space:nowrap}.membership-tags small{padding:2px 6px;border-radius:999px;background:#edf4ec;color:#526456;font-size:9px}.user-list-panel,.user-form-panel{border:1px solid #d9ddd2;border-radius:20px;background:#fff;box-shadow:0 12px 40px #27392a0c}.list-toolbar{display:flex;align-items:center;gap:14px;padding:16px;border-bottom:1px solid #edf0e9}.list-toolbar input{flex:1;border:1px solid #ccd3c9;border-radius:10px;padding:11px 13px}.list-toolbar select{border:1px solid #ccd3c9;border-radius:10px;padding:10px 12px;background:#fff;color:#506057}.list-toolbar span{color:#7d887f;font-size:12px;white-space:nowrap}.department-summary{display:flex;align-items:center;gap:9px;padding:11px 16px;border-bottom:1px solid #edf0e9;background:#fbfcf9}.department-summary strong{color:#27392a;font-size:12px}.department-summary span{color:#7d887f;font-size:10px}.department-summary small{margin-left:auto;color:#24734b;font-size:10px;font-weight:800}.department-summary button{border:1px solid #b9c9ba;border-radius:8px;padding:6px 9px;background:#fff;color:#31583d;font-size:10px;font-weight:800;cursor:pointer}.department-dialog{width:min(620px,100%);padding:28px;border:1px solid #d9ddd2;border-radius:20px;background:#fff;box-shadow:0 28px 90px #17201940}.department-dialog .eyebrow{margin-top:0}.department-dialog h2{margin:0;font-size:28px}.department-dialog .department-admin{margin-top:20px;padding-bottom:0;border-bottom:0}.user-table-wrap{overflow:auto}.user-table{width:100%;border-collapse:collapse;font-size:12px}.user-table th{padding:12px;background:#f8faf6;color:#7d887f;text-align:left;font-size:10px;letter-spacing:.06em;white-space:nowrap}.user-table td{padding:13px 12px;border-top:1px solid #edf0e9;color:#506057;vertical-align:middle}.user-table td:first-child{min-width:190px}.user-table td strong,.user-table td small{display:block}.user-table td strong{color:#27392a;font-size:13px}.user-table td small{margin-top:3px;color:#8a938c}.user-table .department-group-row td{padding:9px 12px;border-top:1px solid #dce5d9;background:#edf4ec}.department-group-row td strong{display:inline;color:#244e33;font-size:12px}.department-group-row td span{margin-left:8px;color:#748178;font-size:10px}.position-badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#edf4ec;color:#31583d;font-size:10px;font-weight:700}.app-tags{display:flex;flex-wrap:wrap;gap:4px}.app-tags span{padding:3px 6px;border-radius:6px;background:#edf4ed;color:#31583d;font-size:9px}.active-state{color:#2c633b;font-weight:800}.inactive-state{color:#a23a3a;font-weight:800}.row-actions{display:flex;gap:5px}.row-actions button{border:1px solid #d9ddd2;border-radius:7px;padding:5px 7px;background:#fff;color:#506057;cursor:pointer;white-space:nowrap}.user-form-panel{position:sticky;top:20px;align-self:start;max-height:calc(100vh - 40px);overflow-y:auto;padding:24px;overscroll-behavior:contain}.form-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.form-title h2{margin:0;font-size:24px}.user-form-actions{display:flex;align-items:center;gap:10px;margin-top:24px}.user-form-actions .primary{flex:1;margin-top:0}.danger-button{border:1px solid #d8a5a5;border-radius:11px;padding:13px 14px;background:#fff;color:#a23a3a;font-weight:800;cursor:pointer}.danger-button:hover{border-color:#a23a3a;background:#fff3f3}.danger-button:disabled{opacity:.55;cursor:wait}.field select{width:100%;border:1px solid #ccd3c9;border-radius:11px;padding:13px 14px;background:#fff;color:#172019}.field small{color:#8a938c;font-weight:400}.app-permissions{display:grid;gap:9px;margin:20px 0 0;padding:14px;border:1px solid #d9ddd2;border-radius:12px}.app-permissions legend{padding:0 6px;color:#506057;font-size:12px;font-weight:800}.app-permissions label,.check-field{display:flex;align-items:center;gap:8px;color:#506057;font-size:13px}.app-permission-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:10px}.app-permission-row select{width:100%;border:1px solid #ccd3c9;border-radius:8px;padding:7px 9px;background:#fff;color:#33463a;font-size:12px}.check-field{margin-top:15px}@keyframes bob{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}@media(max-width:980px){.admin-layout{grid-template-columns:1fr}.user-form-panel{position:static;order:-1;max-height:none;overflow:visible}}@media(max-width:760px){.app-grid{grid-template-columns:1fr}.site-header{padding-inline:18px}.brand-copy small,.header-home,.account-summary{display:none}.account-trigger{min-width:0;padding:6px}.chevron{margin-right:3px}.account-dropdown{right:0}.portal main{width:min(100% - 32px,1180px);padding-top:30px}.login-card{padding:32px 24px}.admin-header,.admin-layout{padding-inline:16px}}
