/* Transiva Karya Digital Indonesia — one responsive system for every admin module. */
:root{--blue:#0878f9;--blue2:#0759bc;--navy:#102b48;--bg:#f3f7fc;--text:#18324d;--muted:#61758b;--line:#dfE8f2;--shadow:0 4px 22px #143c6810;--card:#fff;color-scheme:light}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.5}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #6fafff;outline-offset:3px}img{max-width:100%}.app-shell{grid-template-columns:264px minmax(0,1fr)}.sidebar{padding:20px 14px;background:linear-gradient(170deg,#102f51,#071d35);height:100dvh}.sidebar-head{padding:4px 7px 17px;gap:10px}.sidebar-head .kdi-brand-logo{width:52px;height:52px;object-fit:contain;border-radius:15px;flex:none}.sidebar-head b{font-size:21px;letter-spacing:-.5px}.sidebar-head .kdi-brand-caption{font-size:8px;letter-spacing:1.1px;color:#b3d6fa;margin-top:5px}.nav-search{display:flex;gap:9px;align-items:center;border:1px solid #ffffff22;border-radius:12px;background:#ffffff0a;padding:8px 11px;margin:0 4px 15px;color:#a8c6e4}.nav-search input{width:100%;min-width:0;border:0;background:none;color:white;outline:none;font-size:12px;padding:3px}.nav-search input::placeholder{color:#a8c6e4}.sidebar nav{min-height:0;display:block;scrollbar-width:thin;scrollbar-color:#355878 transparent}.nav-group{margin:18px 12px 7px;font-size:9px;text-transform:uppercase;letter-spacing:1.8px;font-weight:800;color:#8aaace}.nav-item{min-height:43px;padding:10px 12px;margin:3px 0;border-radius:11px;font-size:12px;position:relative}.nav-item.active{background:#0878f9;box-shadow:0 5px 14px #0002}.nav-item .ico{font-size:16px}.sidebar-foot{padding-top:9px;margin-top:12px}.admin-mini b{font-size:12px}.main{min-width:0}.topbar{min-height:84px;height:auto;padding:17px 28px;gap:12px;box-shadow:0 3px 15px #15395d04}.topbar>div:first-of-type{min-width:0}.topbar h1{font-size:21px;letter-spacing:-.5px;overflow-wrap:anywhere}.topbar p{max-width:680px;font-size:12px;line-height:1.5}.online-dot{white-space:nowrap;font-size:11px}.content{width:100%;max-width:1560px;padding:24px 28px 40px;overflow-wrap:anywhere}.content>*{min-width:0}.panel,.stat-card,.quick-card{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px}.panel{padding:20px;margin-top:18px;min-width:0}.panel:first-child{margin-top:0}.panel-head{align-items:flex-start;flex-wrap:wrap;gap:13px}.panel-head h3{font-size:16px;letter-spacing:-.2px}.panel-head small,.panel small{color:var(--muted);font-size:12px}.toolbar{max-width:100%;align-items:center}.toolbar .field{min-width:150px;width:220px;max-width:100%}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat-card{padding:19px}.stat-card span{display:block;font-weight:600}.stat-card b{font-size:clamp(21px,2vw,30px);font-variant-numeric:tabular-nums;line-height:1.2;letter-spacing:-.7px;overflow-wrap:anywhere}.stat-card small{display:block;margin-top:7px;color:var(--muted);font-size:11px}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px}.quick-card{display:flex;flex-direction:column;gap:7px;padding:19px;text-align:left;color:var(--text);background:white;transition:transform .15s,border-color .15s}.quick-card:hover{transform:translateY(-2px);border-color:#9bcaff}.quick-card b{font-size:14px}.quick-card span{font-size:12px;color:var(--muted)}.btn,.row-actions button{min-height:40px;border-radius:11px;font-size:12px;font-weight:750;white-space:normal;line-height:1.4;padding:10px 13px}.btn.blue{background:linear-gradient(135deg,#0878f9,#0864d0)}.row-actions{display:flex;flex-wrap:wrap;gap:7px;max-width:340px}.row-actions button{border:1px solid #dbe9fa;background:#f0f6ff;color:#0759b8;box-shadow:none}.row-actions button.danger{border-color:#ffd8d4;background:#fff4f3;color:#b83027}.field,input.field,select.field{min-height:44px;height:auto;border-radius:11px;padding:10px 12px;font-size:13px;min-width:0;max-width:100%}textarea.field{padding:12px;min-height:104px;resize:vertical}.form-grid{gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label{min-width:0;font-size:12px;line-height:1.6;font-weight:700}.form-grid small{display:block;font-weight:400;margin-top:5px}.full{grid-column:1/-1}.detail-grid,.rank-grid{min-width:0}.detail-grid>div{min-width:0}.detail-grid b{overflow-wrap:anywhere;font-size:14px}.table-wrap{border-radius:13px;max-width:100%;overflow:auto;scrollbar-width:thin}table{min-width:680px;table-layout:auto;background:white}th{font-size:10px;letter-spacing:.5px;text-transform:uppercase;background:#f6f9fd;color:#697c91;white-space:nowrap;padding:13px 14px}td{padding:14px;font-size:12px;vertical-align:top;border-bottom:1px solid #edf2f8;max-width:360px;overflow-wrap:anywhere}td b,td strong{font-size:12px}td small{display:block;font-size:11px;line-height:1.5;margin-top:3px}tbody tr:last-child td{border-bottom:0}.badge{font-size:10px;padding:5px 9px;border-radius:8px;line-height:1.4;white-space:normal}.modal{padding:24px 16px;overflow-y:auto;background:#071a3480;backdrop-filter:blur(4px)}.modal-card{width:min(760px,100%);max-height:calc(100dvh - 48px);overflow-y:auto;padding:26px;border-radius:22px;margin:auto;position:relative;box-shadow:0 25px 90px #06162f40}.modal h2{font-size:21px;margin:0 35px 22px 0;letter-spacing:-.5px}.modal-x{position:absolute;top:15px;right:15px;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);background:#f4f7fb;color:#546a82;font-size:24px;line-height:1}.toast{max-width:calc(100vw - 32px);font-size:13px;z-index:300}.empty{padding:30px!important;color:var(--muted);text-align:center}.kdi-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 30px;margin-bottom:20px;border-radius:22px;background:linear-gradient(115deg,#0b3159,#0878f9);color:white;overflow:hidden;position:relative}.kdi-hero:after{content:"";position:absolute;width:260px;height:260px;border:45px solid #ffffff0b;border-radius:50%;right:-75px;bottom:-170px;pointer-events:none}.kdi-hero h2{font-size:clamp(23px,3vw,34px);letter-spacing:-1px;line-height:1.2;margin:10px 0}.kdi-hero p{font-size:12px;max-width:620px;color:#dcecff;margin:0}.kdi-eyebrow{font-size:9px;font-weight:800;letter-spacing:2px}.kdi-hero img{width:94px;height:94px;border-radius:24px;object-fit:contain;background:#ffffff0d;padding:8px}.kdi-callout{padding:14px 16px;border:1px solid #cfe4ff;background:#f0f7ff;border-radius:13px;color:#335b85;font-size:12px;line-height:1.7;margin:16px 0}.kdi-callout.warning{background:#fff9eb;border-color:#ffe6af;color:#805b13}.kdi-callout.good{background:#effcf6;border-color:#c6efdc;color:#196348}.kdi-section-head{display:flex;align-items:center;justify-content:space-between;margin:25px 0 0;gap:12px}.kdi-section-head h3{font-size:15px;margin:0}.kdi-section-head span{font-size:11px;color:var(--muted)}.kdi-pager{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}.kdi-audit-json{white-space:pre-wrap;word-break:break-word;font-size:11px;background:#f5f8fc;border:1px solid var(--line);border-radius:10px;padding:12px;max-height:280px;overflow:auto}.login-logo{width:82px;height:82px;object-fit:contain;border-radius:22px;margin-bottom:28px}.login-brand .kdi-eyebrow{color:#bbd8ff}.login-brand h1{font-size:41px;letter-spacing:-1.5px;line-height:1.18;margin:14px 0 18px}.login-shell{border:1px solid #ffffff22;border-radius:25px}.login-card{padding:40px}.login-brand{background:linear-gradient(145deg,#0c3158,#0878f9);padding:45px}.kdi-access-badge{font-size:10px;letter-spacing:.3px;border:1px solid #dbe8f6;padding:5px 9px;border-radius:9px;background:#f7faff;color:#426487}
@media(min-width:1500px){.content{padding:28px 36px 48px}.sidebar{padding-left:17px;padding-right:17px}}
@media(max-width:1100px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.sidebar-head .kdi-brand-logo{width:43px;height:43px}.sidebar-head .kdi-brand-caption{font-size:7px}.content{padding:20px}.topbar{padding:16px 20px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rank-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:800px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:280px;transform:translateX(-100%);transition:transform .2s;z-index:110}.sidebar.show{transform:translateX(0)}.close-side,.menu-btn{display:block}.overlay.show{display:block;position:fixed;inset:0;background:#071d3380;z-index:100}.content{padding:18px 14px 32px}.topbar{padding:13px 14px;min-height:77px;gap:10px}.topbar h1{font-size:18px}.topbar p{font-size:10px}.top-actions{gap:6px}.online-dot{display:none}.icon-btn,.menu-btn{width:37px;height:37px;min-width:37px;border-radius:11px}.kdi-access-badge{display:none}.kdi-hero{padding:23px 20px;gap:13px}.kdi-hero img{width:64px;height:64px;border-radius:17px}.kdi-hero p{font-size:11px}.kdi-eyebrow{font-size:8px;letter-spacing:1.4px}.panel{padding:16px;border-radius:16px}.panel-head h3{font-size:15px}.toolbar{width:100%}.toolbar .field{flex:1;width:100%;min-width:120px}.stat-card{padding:16px}.stat-card b{font-size:24px}.stat-card span{font-size:11px}.quick-card{padding:16px}.quick-card b{font-size:12px}.quick-card span{font-size:11px}.form-grid{gap:13px}.server-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.login-shell{grid-template-columns:1fr;max-width:470px}.login-brand{padding:28px}.login-brand h1{font-size:31px;margin:10px 0}.login-brand p{font-size:13px}.login-logo{width:58px;height:58px;margin-bottom:14px}.login-brand .secure-note{display:none}.login-card{padding:27px}.login-card h2{margin-top:15px}}
@media(max-width:600px){.table-wrap{border:0;overflow:visible;background:transparent}.table-wrap table{display:block;min-width:0!important;width:100%;background:transparent}.table-wrap thead{display:none}.table-wrap tbody{display:grid;gap:12px}.table-wrap tr{display:block;background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.table-wrap td{display:grid;grid-template-columns:100px minmax(0,1fr);gap:4px 10px;padding:10px 12px;max-width:none;font-size:12px;border-bottom:1px solid #edf2f8}.table-wrap td:before{content:attr(data-label);grid-column:1;grid-row:1;font-size:10px;font-weight:700;color:var(--muted);padding-top:2px}.table-wrap td>*{grid-column:2;min-width:0}.table-wrap td[colspan]{display:block;text-align:center}.table-wrap td[colspan]:before{display:none}.table-wrap .row-actions{max-width:none;gap:6px}.table-wrap .row-actions button{min-height:38px;padding:8px 11px}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .full{grid-column:1}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel-head{gap:10px}.kdi-section-head{align-items:flex-start;flex-direction:column;gap:3px}.modal{padding:12px}.modal-card{padding:22px 17px;max-height:calc(100dvh - 24px);border-radius:18px}.modal h2{font-size:19px}.stat-grid{gap:10px}.quick-grid{gap:10px}.quick-card{min-height:130px}.kdi-hero img{display:none}.kdi-hero h2{font-size:26px}.kdi-pager{justify-content:stretch}.kdi-pager .btn{flex:1}.content .table-wrap table td[colspan]{padding:22px!important}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.nav-item .ico{display:grid;place-items:center;flex:none}.quick-card>div:first-child{color:var(--blue);display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#edf5ff}.kdi-all-menus{display:block;margin:18px auto 0}.rank-grid table{min-width:0}.rank-grid th{white-space:normal}
@media(min-width:801px){.app-shell{display:grid}.sidebar{position:sticky;transform:none;left:auto;top:0}.sidebar.show{transform:none}.menu-btn,.close-side{display:none}.overlay.show{display:none}}
