*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f5f7;color:#1a1a2e}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:54px;background:#1a2744;display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:2px;flex-shrink:0;z-index:10}.sb-logo{width:34px;height:34px;border-radius:9px;background:#3b5bdb;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:600;margin-bottom:14px;cursor:pointer}.sb-item{width:38px;height:38px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#7a8db3;font-size:19px;transition:all .15s}.sb-item:hover{background:#ffffff14;color:#fff}.sb-item.active{background:#3b5bdb;color:#fff}.sb-spacer{flex:1}.topbar{height:50px;background:#fff;border-bottom:1px solid #eaecf0;display:flex;align-items:center;padding:0 20px;gap:12px;flex-shrink:0}.tb-title{font-size:14px;font-weight:500;flex:1}.tb-badge{font-size:11px;padding:3px 10px;border-radius:20px;border:1px solid #d0d5dd;cursor:pointer;color:#344054;background:#fff}.tb-avatar{width:30px;height:30px;border-radius:50%;background:#e6f1fb;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:#185fa5}.main{flex:1;display:flex;flex-direction:column;overflow:hidden}.content{flex:1;overflow-y:auto;padding:20px}.card{background:#fff;border:1px solid #eaecf0;border-radius:12px;padding:16px}.card+.card{margin-top:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.metric{background:#f8f9fb;border-radius:8px;padding:12px;text-align:center}.metric-label{font-size:11px;color:#667085;margin-bottom:4px}.metric-value{font-size:22px;font-weight:500;color:#1a1a2e}.sec{font-size:11px;font-weight:500;color:#667085;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.badge{display:inline-block;font-size:11px;padding:2px 9px;border-radius:20px;font-weight:500}.b-blue{background:#e6f1fb;color:#185fa5}.b-green{background:#eaf3de;color:#3b6d11}.b-amber{background:#faeeda;color:#854f0b}.b-gray{background:#f1efe8;color:#5f5e5a}.b-red{background:#fcebeb;color:#a32d2d}.b-purple{background:#eeedfe;color:#534ab7}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;border:1px solid #d0d5dd;background:#fff;font-size:13px;cursor:pointer;font-weight:500;color:#344054}.btn:hover{background:#f8f9fb}.btn-primary{background:#3b5bdb;border-color:#3b5bdb;color:#fff}.btn-primary:hover{background:#2f4dc7}.btn-sm{padding:4px 10px;font-size:12px}input,select,textarea{width:100%;padding:8px 10px;border:1px solid #d0d5dd;border-radius:8px;font-size:13px;color:#1a1a2e;outline:none;background:#fff}input:focus,select:focus,textarea:focus{border-color:#3b5bdb;box-shadow:0 0 0 3px #3b5bdb1f}label{display:block;font-size:12px;font-weight:500;color:#344054;margin-bottom:4px}.form-row{margin-bottom:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cust-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #f2f4f7;cursor:pointer}.cust-row:last-child{border-bottom:none}.cust-row:hover .cust-name{color:#3b5bdb}.avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0}.av0{background:#e6f1fb;color:#185fa5}.av1{background:#e1f5ee;color:#0f6e56}.av2{background:#faeeda;color:#854f0b}.av3{background:#eeedfe;color:#534ab7}.av4{background:#fbeaf0;color:#993556}.cust-name{font-size:13px;font-weight:500}.cust-sub{font-size:11px;color:#667085}.prog{height:4px;background:#f2f4f7;border-radius:2px;margin-top:4px;width:90px}.prog-fill{height:4px;border-radius:2px}.mod-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mod-item{border:1px solid #eaecf0;border-radius:8px;padding:8px 10px;display:flex;align-items:center;gap:8px;cursor:pointer}.mod-item:hover{border-color:#3b5bdb}.mod-item.active-mod{border-color:#3b5bdb;background:#f0f4ff}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.d-green{background:#639922}.d-blue{background:#3b5bdb}.d-amber{background:#ba7517}.d-gray{background:silver}.d-red{background:#e24b4a}.rg-table{width:100%;border-collapse:collapse;font-size:12px}.rg-table th{padding:7px 10px;text-align:center;font-weight:500;font-size:11px;color:#667085;border-bottom:1px solid #eaecf0}.rg-table th.left{text-align:left}.rg-table td{padding:6px 8px;border:1px solid #f2f4f7;text-align:center;vertical-align:middle}.rg-label{font-weight:500;text-align:left!important;background:#f8f9fb;white-space:nowrap}.rg-cell{position:relative;min-width:60px}.rg-ist,.rg-soll{border-radius:5px;padding:3px 8px;font-size:11px;font-weight:500;cursor:pointer;display:inline-block}.rg-ist{background:#e6f1fb;color:#185fa5}.rg-soll{border:2px dashed #3b5bdb;color:#185fa5;background:transparent}.rg-empty{width:28px;height:20px;border-radius:4px;background:#f8f9fb;border:1px dashed #eaecf0;cursor:pointer;display:inline-block}.dl-wrap{overflow-x:auto}.dl-table{border-collapse:collapse;min-width:700px;font-size:12px}.dl-table th{padding:7px 10px;font-size:11px;font-weight:500;color:#667085;border-bottom:1px solid #eaecf0;text-align:left;white-space:nowrap}.dl-table td{padding:6px 8px;border:1px solid #f2f4f7;vertical-align:top}.dl-year{font-size:11px;font-weight:500;color:#667085;white-space:nowrap;background:#f8f9fb}.chip{display:inline-block;border-radius:5px;padding:2px 7px;font-size:10px;margin:2px;font-weight:500;cursor:default}.chip-green{background:#eaf3de;color:#3b6d11}.chip-amber{background:#faeeda;color:#854f0b}.chip-blue{background:#e6f1fb;color:#185fa5}.chip-gray{background:#f1efe8;color:#5f5e5a}.login-wrap{display:flex;align-items:center;justify-content:center;height:100vh;background:#f4f5f7}.login-card{background:#fff;border-radius:16px;padding:40px;width:380px;box-shadow:0 4px 24px #00000014}.login-logo{display:flex;align-items:center;gap:10px;margin-bottom:28px;justify-content:center}.login-logo-box{width:40px;height:40px;border-radius:10px;background:#3b5bdb;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700}.login-title{font-size:18px;font-weight:600;color:#1a1a2e}.error-msg{background:#fcebeb;color:#a32d2d;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px}.tabs{display:flex;gap:2px;border-bottom:1px solid #eaecf0;margin-bottom:16px}.tab{padding:8px 14px;font-size:13px;cursor:pointer;color:#667085;border-bottom:2px solid transparent;font-weight:500}.tab.active{color:#3b5bdb;border-bottom-color:#3b5bdb}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:14px;padding:24px;width:460px;max-height:80vh;overflow-y:auto}.modal-title{font-size:15px;font-weight:600;margin-bottom:16px}.activity-item{border-left:3px solid;padding:7px 12px;border-radius:0 7px 7px 0;background:#f8f9fb;margin-bottom:8px}.sep{height:1px;background:#f2f4f7;margin:14px 0}.version-tag{font-size:10px;color:silver;text-align:center;padding:6px 0}.avatar-menu{position:relative;display:flex;align-items:center;gap:6px;cursor:pointer}.avatar-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid #eaecf0;border-radius:10px;box-shadow:0 4px 16px #0000001a;min-width:180px;z-index:200;overflow:hidden}.avatar-dropdown .dd-header{padding:10px 14px;border-bottom:1px solid #f2f4f7}.avatar-dropdown .dd-name{font-size:13px;font-weight:500;color:#1a1a2e}.avatar-dropdown .dd-role{font-size:11px;color:#667085}.avatar-dropdown .dd-item{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:13px;color:#344054;cursor:pointer}.avatar-dropdown .dd-item:hover{background:#f8f9fb}.avatar-dropdown .dd-item.danger{color:#a32d2d}.avatar-dropdown .dd-sep{height:1px;background:#f2f4f7}.user-table{width:100%;border-collapse:collapse;font-size:13px}.user-table th{text-align:left;padding:8px 10px;font-size:11px;font-weight:500;color:#667085;border-bottom:1px solid #eaecf0}.user-table td{padding:8px 10px;border-bottom:1px solid #f2f4f7;vertical-align:middle}.user-table tr:last-child td{border-bottom:none}
