/* V99.0625 Contract All Assets Disposed: page-scoped read-only UI */
.cad-root{--cad-border:#dbe6e9;--cad-green:#008a61;color:#15283e;font-family:inherit;max-width:100%;padding:4px 0 28px}
.cad-root *{box-sizing:border-box}.cad-root button{font:inherit;cursor:pointer}.cad-title{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px;flex-wrap:wrap}.cad-title h1{font-size:29px;font-weight:800;margin:0 0 4px;color:#102d3f}.cad-title p{margin:0;color:#61758b;font-size:14px}.cad-actions{display:flex;gap:9px}.cad-actions button,.cad-control>button{padding:11px 17px;border-radius:10px;border:1px solid #d1dfe6;background:#fff;color:#224155;font-weight:700}.cad-actions button.cad-export{background:#00976c;color:#fff;border-color:#00976c}.cad-actions button:disabled{opacity:.58;cursor:wait}
.cad-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:11px;margin-bottom:19px}.cad-kpi{display:flex;gap:9px;align-items:center;min-width:0;min-height:106px;border:1px solid var(--cad-border);background:#fff;border-radius:14px;padding:12px 9px;box-shadow:0 4px 15px #103b5010;border-top:3px solid var(--k,#60a5fa)}.cad-kpi small{display:block;font-size:11px;color:#55677d;font-weight:700;line-height:1.3}.cad-kpi strong{display:block;margin:7px 0 0;font-size:26px;line-height:1.15;color:var(--k,#1e40af);font-weight:800}.cad-kpi em{font-size:11px;color:#81919d;font-style:normal}.cad-kpi-icon{background:#f1f5f9;padding:9px;border-radius:12px;flex-shrink:0;font-size:18px}.cad-blue{--k:#2469dc}.cad-green{--k:#07965d}.cad-amber{--k:#dc850c}.cad-red{--k:#d33434}.cad-slate{--k:#334155}
.cad-filters{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;flex-wrap:wrap}.cad-tabs{display:flex;gap:6px;align-items:center;flex-wrap:wrap;flex:1 1 600px}.cad-tab{padding:10px 13px;border:0;border-radius:10px;background:#edf2f6;font-size:13px;font-weight:750;color:#31516f;white-space:nowrap}.cad-tab.selected{background:#e4f8ed;color:#05774b;border:1px solid #14b477;padding:9px 12px}.cad-control{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.cad-control label{font-size:11px;color:#61718a;font-weight:700;display:flex;flex-direction:column;gap:5px}.cad-control input,.cad-control select{padding:10px 11px;border:1px solid #d6e0ea;border-radius:10px;background:#fff;color:#21354e;max-width:100%;font-size:13px;min-height:40px}.cad-search-label{min-width:210px}.cad-search-label input{width:240px}.cad-control>button{min-height:40px}
.cad-report,.cad-card{background:#fff;border:1px solid var(--cad-border);border-radius:15px;overflow:hidden;box-shadow:0 5px 15px #1e293b08}.cad-report-head{padding:16px 20px;background:linear-gradient(100deg,#e6f8ee,#f4fffa);display:flex;justify-content:space-between;align-items:center;gap:10px}.cad-report-head h2{font-size:18px;color:#046647;margin:0 0 6px}.cad-report-head p{font-size:12px;color:#4e6875;margin:0}.cad-report-head span{color:#086b4a;background:#fff;border:1px solid #bde8ce;padding:7px 10px;border-radius:99px;white-space:nowrap;font-weight:700;font-size:12px}.cad-table-scroll{overflow:auto;scrollbar-color:#a5e2b4 #eef8f1;scrollbar-width:auto}.cad-table{border-collapse:collapse;width:100%;font-size:12px;min-width:1170px}.cad-table thead{background:#f4f8fb}.cad-table th,.cad-table td{padding:12px 10px;text-align:left;border-bottom:1px solid #e7ebf0;vertical-align:middle}.cad-table th{color:#51637e;white-space:nowrap;font-weight:750}.cad-table tr:hover td{background:#f6fffb}.cad-row-selected td{background:#f0faf5}.cad-center{text-align:center!important}.cad-bold{font-weight:800;color:#104d77}.cad-redtext{color:#db242e;font-weight:800}.cad-badge{display:inline-block;font-weight:800;font-size:11px;padding:5px 7px;border-radius:999px;white-space:nowrap}.cad-badge.active{background:#dcfce7;color:#166534}.cad-badge.soon{background:#fef3c7;color:#a26306}.cad-badge.expired{background:#fee2e2;color:#b91c1c}.cad-badge.unknown{background:#f1f5f9;color:#64748b}.cad-view-btn{border:1px solid #c4d4e4;background:#f8fbfd;color:#2267a8;border-radius:8px;padding:7px 10px;font-weight:700;white-space:nowrap}.cad-empty{padding:35px!important;text-align:center!important;color:#64748b!important}.cad-pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 19px;gap:12px;flex-wrap:wrap;color:#64748b;font-size:13px}.cad-pagination>div{display:flex;align-items:center;gap:12px}.cad-pagination button{border:1px solid #d4dfe8;background:#fff;padding:7px 12px;border-radius:7px;color:#2f4f63}.cad-pagination button:disabled{opacity:.35;cursor:default}
.cad-detail-grid{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:13px;margin-top:13px}.cad-card{padding:15px 15px 13px;min-width:0}.cad-card h3{font-size:15px;color:#17384e;margin:0 0 14px;font-weight:800}.cad-card dl{display:grid;grid-template-columns:minmax(100px,.7fr) 1fr;gap:12px 8px;margin:0;font-size:13px}.cad-card dt{color:#65758b}.cad-card dd{margin:0;font-weight:700;color:#233d55;overflow-wrap:anywhere}.cad-ring-wrap{display:flex;align-items:center;justify-content:center;gap:15px;padding:10px 0}.cad-ring{width:165px;height:165px;min-width:165px;display:flex;align-items:center;justify-content:center;border-radius:50%}.cad-ring>div{width:105px;height:105px;background:white;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column}.cad-ring b{font-size:30px}.cad-ring small{color:#718096;font-size:12px}.cad-legend{flex:1;font-size:12px}.cad-legend>div{display:flex;gap:7px;align-items:center;margin:12px 0}.cad-legend strong{margin-left:auto}.cad-dot{border-radius:100px;width:9px;height:9px;flex:0 0 9px}.cad-green-dot{background:#16a34a}.cad-red-dot{background:#ef4444}.cad-grey-dot{background:#94a3b8}.cad-result{font-size:12px;border-radius:9px;padding:11px;margin:12px 0 0}.cad-result.passed{background:#e9faf0;color:#075e42}.cad-result.warn{background:#fffae9;color:#87550e}.cad-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.cad-small-table{min-width:570px;font-size:11px}.cad-small-table th,.cad-small-table td{padding:9px 7px}.cad-link{border:0;background:transparent;color:#0b65c1;font-size:12px;font-weight:800;text-decoration:underline}.cad-footer,.cad-source-note{color:#718198;font-size:11px;line-height:1.5;margin:13px 3px}.cad-warning{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b;padding:13px 17px;border-radius:10px;margin-bottom:15px;font-weight:700}.cad-detail-empty{margin-top:15px;border:1px dashed #cbd5e1;border-radius:12px;background:#fff}
@media(max-width:1550px){.cad-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.cad-detail-grid{grid-template-columns:1fr 1fr}.cad-assets{grid-column:1/-1}}@media(max-width:900px){.cad-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cad-detail-grid{grid-template-columns:1fr}.cad-assets{grid-column:auto}.cad-filters{display:block}.cad-control{margin-top:12px}.cad-control .cad-search-label{flex-grow:1}.cad-control .cad-search-label input{width:100%}}@media(max-width:520px){.cad-kpis{gap:7px}.cad-kpi{min-height:90px;padding:9px 7px}.cad-kpi strong{font-size:21px}.cad-kpi-icon{font-size:15px;padding:6px}.cad-title h1{font-size:24px}.cad-control label{flex-grow:1}.cad-root{padding:2px}.cad-report-head{flex-wrap:wrap}.cad-ring-wrap{flex-wrap:wrap}.cad-ring{width:145px;height:145px;min-width:145px}}

/* V99.0625: contract detail popup; used only by the All Assets DISPOSED page. */
body.cad-modal-open{overflow:hidden}
.cad-modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.66);z-index:20050;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}
.cad-modal-overlay *{box-sizing:border-box}
.cad-modal{width:min(1320px,100%);max-height:calc(100vh - 40px);background:#f7fafc;border:1px solid #cce9df;border-radius:18px;box-shadow:0 24px 75px rgba(5,26,46,.4);display:flex;flex-direction:column;min-height:0;overflow:hidden;font-family:inherit;color:#19334b}
.cad-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 22px;background:linear-gradient(115deg,#087657,#10b981);color:#fff;flex-shrink:0}
.cad-modal-head h2{margin:0 0 5px;font-size:21px;line-height:1.3;color:#fff;font-weight:800;overflow-wrap:anywhere}
.cad-modal-head p{margin:0;font-size:12px;color:#dcfce7}
.cad-modal-close{border:1px solid #ffffff82;background:#ffffff30;color:#fff;border-radius:10px;min-width:43px;min-height:43px;font-size:19px;cursor:pointer;flex-shrink:0}
.cad-modal-content{padding:14px 18px 20px;overflow-y:auto;min-height:0;overscroll-behavior:contain}
.cad-modal-content .cad-detail-grid{margin-top:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.cad-modal-content .cad-assets{grid-column:1/-1}
.cad-modal-content .cad-table-scroll{max-height:none}
.cad-modal-foot{border-top:1px solid #e1e9ef;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;background:#fff;color:#64748b;font-size:12px}
.cad-modal-foot button{background:#059669;color:#fff;border:0;border-radius:9px;padding:10px 18px;min-height:42px;font-weight:750;cursor:pointer}
.cad-modal button:focus-visible{outline:3px solid #a7f3d0;outline-offset:2px}
@media(max-width:850px){.cad-modal-content .cad-detail-grid{grid-template-columns:1fr}.cad-modal-content .cad-assets{grid-column:auto}.cad-modal-overlay{padding:9px}.cad-modal{max-height:calc(100vh - 18px)}.cad-modal-head{padding:15px}.cad-modal-head h2{font-size:17px}.cad-modal-content{padding:12px}.cad-modal-foot{padding:10px 14px}}

/* V99.0625 · Card-driven contract / asset filters. Contract counts and device counts are visually separated. */
.cad-explainer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
.cad-explainer>div{min-width:0;border:1px solid #cfdfeb;background:#f1f8fc;padding:13px 17px;border-radius:13px}
.cad-explainer>div:last-child{background:#eafaf3;border-color:#bae8d2}
.cad-explainer b{color:#194971;font-size:14px}.cad-explainer>div:last-child b{color:#096747}
.cad-explainer p{margin:5px 0 0;font-size:12px;line-height:1.6;color:#3a526c}
.cad-kpi-groups{display:flex;flex-direction:column;gap:17px;margin-bottom:18px}
.cad-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.cad-group-head h2{font-size:17px;font-weight:800;margin:0;color:#143148}
.cad-group-head p{font-size:12px;margin:0;color:#64748b}
.cad-kpi-groups .cad-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:0}
.cad-kpi-group:nth-child(2) .cad-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.cad-kpi-groups .cad-kpi{width:100%;text-align:left;position:relative;display:flex;align-items:flex-start;min-height:125px;padding:13px 12px;transition:background-color .13s,border-color .13s,box-shadow .13s;cursor:pointer}
.cad-kpi-groups .cad-kpi.selected{background:#edfff5;border:2px solid #00996a;border-top-width:4px;box-shadow:0 0 0 2px #bcf7d5; padding:11px 11px 12px}
.cad-kpi-groups .cad-kpi:focus-visible{outline:3px solid #007abb;outline-offset:3px}
.cad-kpi-groups .cad-kpi.selected::after{content:'✓ กำลังกรอง';font-size:10px;position:absolute;top:3px;right:8px;color:#046c48;font-weight:800}
.cad-kpi-groups .cad-kpi-body{min-width:0;display:block}
.cad-kpi-groups .cad-kpi-desc{display:block;font-size:10px;line-height:1.45;color:#62738b;font-weight:400;margin-top:5px}
.cad-kpi-groups .cad-kpi strong{font-size:27px}
.cad-kpi-groups .cad-kpi small{font-size:11px}
.cad-teal{--k:#047d66}
.cad-filters{justify-content:flex-end}
.cad-control{width:100%;justify-content:flex-end}
.cad-search-label{flex:1 1 280px}
.cad-search-label input{width:100%;min-width:0}
@media(hover:hover){.cad-kpi-groups .cad-kpi:hover{background:#f0fbf7;border-color:#12a47c;box-shadow:0 6px 19px #085e4e18}}
@media(max-width:1250px){.cad-kpi-groups .cad-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.cad-kpi-groups .cad-kpi.selected::after{display:none}.cad-explainer{grid-template-columns:1fr}.cad-kpi-groups .cad-kpis,.cad-kpi-group:nth-child(2) .cad-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cad-kpi-groups .cad-kpi{min-height:135px}.cad-group-head p{width:100%}}
@media(max-width:390px){.cad-kpi-groups .cad-kpi{padding:10px 8px;gap:6px}.cad-kpi-groups .cad-kpi strong{font-size:24px}.cad-kpi-icon{padding:6px}.cad-kpi-groups .cad-kpi.selected{padding:8px 7px}.cad-kpi-groups .cad-kpi-desc{font-size:10px}}
