.cm-page{padding:4px 2px 28px;color:var(--text-primary);font-family:Inter,"Noto Sans Thai",sans-serif}.cm-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:14px}.cm-header h1{margin:2px 0 4px;font-size:1.65rem}.cm-header p{margin:0;color:#64748b;font-size:.9rem}.cm-eyebrow{font-size:.7rem;font-weight:800;letter-spacing:.12em;color:#0f766e}.cm-head-actions{display:flex;align-items:center;gap:10px}.cm-sync{border:1px solid #dbe3ea;background:#fff;border-radius:11px;padding:8px 12px;display:grid;gap:2px}.cm-sync small{color:#64748b;font-size:.68rem}.cm-sync b{font-size:.78rem}.cm-btn{border:1px solid #cbd5e1;background:#fff;border-radius:9px;padding:9px 13px;font-weight:750;cursor:pointer;color:#334155}.cm-btn.primary{background:#0f766e;color:#fff;border-color:#0f766e}.cm-btn.ghost{align-self:end;background:#f8fafc}.cm-source-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cm-source-strip span{padding:7px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.75rem;border:1px solid #e2e8f0}.cm-source-strip .uat{background:#f5f3ff;color:#6d28d9;border-color:#ddd6fe}.cm-inline-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:9px 12px;border-radius:9px;margin:8px 0;font-size:.78rem}.cm-filter{display:grid;grid-template-columns:minmax(280px,1.7fr) repeat(3,minmax(150px,.8fr)) auto;gap:10px;background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:12px;margin-bottom:12px}.cm-filter label{display:grid;gap:5px}.cm-filter label span{font-size:.68rem;color:#64748b;font-weight:700}.cm-filter input,.cm-filter select,.cm-tor-cell select{width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;background:#fff;color:#0f172a;font-size:.78rem}.cm-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px}.cm-kpi{appearance:none;width:100%;text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:13px 14px;display:grid;gap:5px;min-height:94px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.cm-kpi:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.08)}.cm-kpi.active{box-shadow:0 0 0 3px rgba(37,99,235,.13),0 8px 20px rgba(15,23,42,.08);border-color:#60a5fa}.cm-kpi span{font-size:.73rem;font-weight:750;color:#475569}.cm-kpi b{font-size:1.65rem;line-height:1}.cm-kpi small{font-size:.67rem;color:#64748b}.cm-kpi.blue{background:#eff6ff;border-color:#bfdbfe}.cm-kpi.red{background:#fef2f2;border-color:#fecaca}.cm-kpi.red b{color:#dc2626}.cm-kpi.orange{background:#fff7ed;border-color:#fed7aa}.cm-kpi.orange b{color:#ea580c}.cm-kpi.green{background:#f0fdf4;border-color:#bbf7d0}.cm-kpi.green b{color:#16a34a}.cm-kpi.purple{background:#f5f3ff;border-color:#ddd6fe}.cm-kpi.purple b{color:#7c3aed}.cm-kpi.cyan{background:#ecfeff;border-color:#a5f3fc}.cm-kpi.cyan b{color:#0891b2}.cm-overview{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.cm-overview article{background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:13px}.cm-overview article>header{display:grid;gap:2px}.cm-overview article>header b{font-size:.86rem}.cm-overview article>header span{font-size:.68rem;color:#64748b}.cm-chart{height:190px;margin-top:8px}.cm-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.cm-rules div{border:1px solid #e2e8f0;border-radius:9px;padding:9px;text-align:center;background:#f8fafc}.cm-rules div b{display:block;font-size:.9rem;color:#0f766e}.cm-rules div span{font-size:.66rem;color:#64748b}.cm-rules .expired b{color:#dc2626}.cm-alert-rules>small{display:block;color:#64748b;font-size:.67rem;margin-top:8px}.cm-table-card{background:#fff;border:1px solid #e2e8f0;border-radius:13px;overflow:hidden}.cm-table-card>header{padding:12px 14px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;gap:14px;align-items:end}.cm-table-card>header div{display:grid;gap:3px}.cm-table-card>header b{font-size:.9rem}.cm-table-card>header span,.cm-table-card>header small{font-size:.69rem;color:#64748b}.cm-table-wrap{overflow:auto;max-height:590px}.cm-table-card table{width:100%;border-collapse:collapse;min-width:1280px;font-size:.72rem}.cm-table-card th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#475569;text-align:left;padding:9px 8px;border-bottom:1px solid #e2e8f0;white-space:nowrap}.cm-table-card td{padding:9px 8px;border-bottom:1px solid #eef2f7;vertical-align:top}.cm-table-card td.project{min-width:220px}.cm-table-card td b{display:block;font-size:.74rem}.cm-table-card td small{display:block;color:#64748b;font-size:.64rem;margin-top:3px}.cm-status,.cm-alert{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:.63rem;font-weight:800;white-space:nowrap}.cm-status.done,.cm-alert.healthy{background:#dcfce7;color:#166534}.cm-status.progress{background:#dbeafe;color:#1d4ed8}.cm-status.cancel,.cm-alert.danger{background:#fee2e2;color:#b91c1c}.cm-status.neutral,.cm-alert.neutral,.cm-alert.closed{background:#f1f5f9;color:#475569}.cm-alert.warn{background:#fef3c7;color:#92400e}.cm-alert.watch{background:#ecfccb;color:#3f6212}.cm-table-card td.days.risk{color:#dc2626;font-weight:850}.cm-table-card td.money{white-space:nowrap;text-align:right}.cm-tor-cell{min-width:180px}.cm-tor-cell small{color:#7c3aed!important}.cm-actions{display:flex;gap:5px}.cm-actions button{border:1px solid #cbd5e1;background:#fff;border-radius:7px;padding:6px 8px;font-size:.65rem;font-weight:750;cursor:pointer}.cm-actions button.alert{border-color:#c4b5fd;background:#f5f3ff;color:#6d28d9}.cm-actions button:disabled{opacity:.4;cursor:not-allowed}.cm-empty{text-align:center!important;color:#64748b;padding:28px!important}.cm-table-card>footer{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;background:#f8fafc;font-size:.7rem;color:#64748b}.cm-pages{display:flex;gap:8px;align-items:center}.cm-pages button{width:30px;height:28px;border:1px solid #cbd5e1;background:#fff;border-radius:7px;cursor:pointer}.cm-loading,.cm-error{min-height:420px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:16px}.cm-loading h2,.cm-error h2{margin:12px 0 6px}.cm-loading p,.cm-error p{margin:0;color:#64748b}.cm-loading small{margin-top:7px;color:#94a3b8}.cm-spinner{width:34px;height:34px;border:4px solid #dbeafe;border-top-color:#0f766e;border-radius:50%;animation:cm-spin .8s linear infinite}@keyframes cm-spin{to{transform:rotate(360deg)}}.cm-modal-backdrop{position:fixed;inset:0;z-index:100000;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:18px}.cm-modal{background:#fff;border-radius:16px;width:min(880px,96vw);max-height:90vh;overflow:auto;box-shadow:0 24px 80px rgba(15,23,42,.3)}.cm-modal>header{padding:17px 20px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between}.cm-modal>header span{font-size:.66rem;color:#0f766e;font-weight:800}.cm-modal>header h2{margin:3px 0 0;font-size:1.15rem}.cm-modal>header button{border:0;background:#f1f5f9;width:34px;height:34px;border-radius:8px;font-size:20px;cursor:pointer}.cm-modal-grid{padding:16px 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.cm-modal-grid div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;padding:10px}.cm-modal-grid small{display:block;color:#64748b;font-size:.65rem}.cm-modal-grid b{display:block;margin-top:4px;font-size:.75rem}.cm-modal-note{margin:0 20px 10px;border:1px solid #e2e8f0;border-radius:9px;padding:11px 13px}.cm-modal-note b{font-size:.72rem}.cm-modal-note p{font-size:.75rem;color:#475569;margin:6px 0 0;white-space:pre-wrap}.cm-modal>footer{padding:12px 20px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end}@media(max-width:1250px){.cm-kpis{grid-template-columns:repeat(3,1fr)}.cm-overview{grid-template-columns:1fr 1fr}.cm-alert-rules{grid-column:1/-1}.cm-filter{grid-template-columns:1fr 1fr 1fr}.cm-filter .search{grid-column:1/-1}.cm-modal-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.cm-header{display:grid}.cm-head-actions{justify-content:space-between}.cm-kpis{grid-template-columns:repeat(2,1fr)}.cm-overview{grid-template-columns:1fr}.cm-filter{grid-template-columns:1fr}.cm-filter .search{grid-column:auto}.cm-modal-grid{grid-template-columns:1fr}}

/* V99.0345 - Contract Monitor UAT alert type picker */
.cm-alert-picker{width:min(760px,96vw);overflow:hidden}.cm-alert-picker>header{align-items:flex-start}.cm-alert-picker>header p{margin:5px 0 0;color:#64748b;font-size:.76rem}.cm-alert-picker-summary{display:grid;grid-template-columns:.7fr .9fr 1.5fr;gap:8px;padding:14px 20px 8px}.cm-alert-picker-summary>div{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:10px 12px}.cm-alert-picker-summary small{display:block;color:#64748b;font-size:.65rem}.cm-alert-picker-summary b{display:block;margin-top:4px;font-size:.78rem;overflow-wrap:anywhere}.cm-alert-picker-summary b.risk{color:#dc2626}.cm-alert-choice-list{display:grid;gap:8px;padding:10px 20px}.cm-alert-choice{position:relative;display:grid;grid-template-columns:auto 48px 1fr auto;gap:10px;align-items:center;border:1px solid #dbe3ea;border-radius:12px;padding:11px 12px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.cm-alert-choice:hover{border-color:#94a3b8;background:#f8fafc}.cm-alert-choice:has(input:checked){border-color:#7c3aed;box-shadow:0 0 0 2px rgba(124,58,237,.1);background:#faf7ff}.cm-alert-choice input{width:16px;height:16px;accent-color:#7c3aed}.cm-alert-code{width:44px;height:36px;border-radius:9px;display:grid;place-items:center;background:#eff6ff;color:#1d4ed8;font-weight:850;font-size:.75rem}.cm-alert-choice.a2 .cm-alert-code{background:#fff7ed;color:#c2410c}.cm-alert-choice.a3 .cm-alert-code{background:#fefce8;color:#a16207}.cm-alert-choice.weekly .cm-alert-code{background:#ecfccb;color:#3f6212}.cm-alert-choice.daily .cm-alert-code{background:#fee2e2;color:#b91c1c}.cm-alert-choice-copy{display:grid;gap:2px}.cm-alert-choice-copy b{font-size:.78rem}.cm-alert-choice-copy small{font-size:.68rem;color:#64748b}.cm-alert-choice-copy em{font-style:normal;font-size:.62rem;font-weight:800;color:#475569}.cm-alert-choice>strong{font-size:.61rem;color:#6d28d9;background:#ede9fe;border-radius:999px;padding:5px 8px;white-space:nowrap}.cm-alert-schedule-note{margin:4px 20px 14px;border:1px solid #c7d2fe;background:#eef2ff;border-radius:11px;padding:11px 13px;display:grid;gap:4px}.cm-alert-schedule-note b{font-size:.72rem;color:#3730a3}.cm-alert-schedule-note span{font-size:.72rem;font-weight:750;color:#312e81}.cm-alert-schedule-note small{font-size:.64rem;color:#6366f1}.cm-alert-picker>footer{gap:8px}.cm-alert-picker>footer .primary{min-width:150px}@media(max-width:720px){.cm-alert-picker-summary{grid-template-columns:1fr}.cm-alert-choice{grid-template-columns:auto 42px 1fr}.cm-alert-choice>strong{grid-column:3;justify-self:start}.cm-alert-code{width:38px}}

/* V99.0346 - Contract Monitor email preview, auto schedule and secure Owner workflow */
.cm-email-composer-backdrop{padding:12px}.cm-email-composer{width:min(1320px,98vw);max-height:96vh;overflow:hidden;display:flex;flex-direction:column}.cm-email-composer>header{flex:0 0 auto;align-items:flex-start}.cm-email-composer>header p{margin:4px 0 0;color:#64748b;font-size:.76rem}.cm-email-compose-grid{display:grid;grid-template-columns:minmax(390px,.78fr) minmax(560px,1.22fr);min-height:0;flex:1;overflow:hidden}.cm-email-compose-form{padding:16px 18px;overflow:auto;border-right:1px solid #e2e8f0;background:#fbfdff}.cm-email-compose-form h3{margin:15px 0 8px;font-size:.78rem;color:#334155}.cm-recipient-box{border-radius:11px;padding:11px 13px;display:grid;gap:4px;border:1px solid #bfdbfe;background:#eff6ff}.cm-recipient-box.prd{border-color:#bbf7d0;background:#f0fdf4}.cm-recipient-box b{font-size:.75rem;color:#1d4ed8}.cm-recipient-box.prd b{color:#15803d}.cm-recipient-box span{font-size:.68rem;color:#475569;line-height:1.55;overflow-wrap:anywhere}.cm-compose-alerts{display:grid;gap:7px}.cm-compose-alerts label{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;border:1px solid #dbe3ea;border-radius:10px;background:#fff;padding:9px 10px;cursor:pointer}.cm-compose-alerts label:has(input:checked){border-color:#0f766e;box-shadow:0 0 0 2px rgba(15,118,110,.08);background:#f0fdfa}.cm-compose-alerts input{margin-top:2px;accent-color:#0f766e}.cm-compose-alerts label span{display:grid;gap:2px}.cm-compose-alerts b{font-size:.72rem}.cm-compose-alerts small{font-size:.64rem;color:#64748b;line-height:1.4}.cm-compose-alerts .daily:has(input:checked){border-color:#ef4444;background:#fef2f2}.cm-compose-schedule{display:grid;grid-template-columns:1fr 130px;gap:8px}.cm-compose-schedule label{display:grid;gap:5px}.cm-compose-schedule span{font-size:.65rem;font-weight:750;color:#64748b}.cm-compose-schedule input{border:1px solid #cbd5e1;border-radius:8px;padding:8px 9px;background:#fff;color:#0f172a}.cm-compose-flow{margin-top:12px;padding:10px 12px;border-radius:9px;border:1px solid #ddd6fe;background:#f5f3ff;color:#5b21b6;font-size:.67rem;line-height:1.5}.cm-email-preview-pane{min-width:0;overflow:auto;background:#eef2f7;padding:14px}.cm-email-preview-pane>header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:0 0 8px}.cm-email-preview-pane>header b{font-size:.78rem}.cm-email-preview-pane>header small{font-size:.64rem;color:#64748b}.cm-email-preview-pane [data-cm-email-preview]{transform-origin:top left}.cm-email-preview-pane [data-cm-email-preview]>html,.cm-email-preview-pane [data-cm-email-preview]>body{max-width:100%}.cm-email-composer>footer{flex:0 0 auto;justify-content:space-between;align-items:center;gap:10px}.cm-email-composer>footer>[data-cm-compose-status]{font-size:.68rem;color:#b45309;max-width:45%;overflow-wrap:anywhere}.cm-email-composer>footer>div{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.cm-email-composer>footer .primary{background:#0f766e;color:#fff;border-color:#0f766e}.cm-owner-loading,.cm-owner-error,.cm-owner-login{position:fixed;inset:0;z-index:999999;background:#f1f5f9;display:grid;place-items:center;padding:24px;font-family:Inter,"Noto Sans Thai",sans-serif}.cm-owner-loading{align-content:center;gap:12px;color:#334155}.cm-owner-loading span{width:38px;height:38px;border:4px solid #cbd5e1;border-top-color:#0f766e;border-radius:50%;animation:cm-spin .8s linear infinite}.cm-owner-error>*,.cm-owner-login>section{width:min(560px,94vw);background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:28px;box-shadow:0 20px 60px rgba(15,23,42,.12);text-align:center}.cm-owner-error h2{color:#b91c1c}.cm-owner-login img{max-width:150px;max-height:74px;object-fit:contain}.cm-owner-login span{display:block;margin-top:16px;font-size:.67rem;font-weight:850;letter-spacing:.12em;color:#0f766e}.cm-owner-login h1{margin:6px 0 8px}.cm-owner-login p{color:#64748b}.cm-owner-login button{margin-top:14px;border:0;border-radius:10px;background:#0f766e;color:#fff;padding:12px 18px;font-weight:800;cursor:pointer}.cm-owner-page{min-height:100vh;background:#f1f5f9;color:#0f172a;font-family:Inter,"Noto Sans Thai",sans-serif;padding-bottom:42px}.cm-owner-page>header{background:#0f766e;color:#fff;padding:20px max(22px,calc((100vw - 1120px)/2));display:flex;justify-content:space-between;align-items:center;gap:18px}.cm-owner-page>header span{font-size:.64rem;font-weight:850;letter-spacing:.1em;opacity:.9}.cm-owner-page>header h1{margin:4px 0 2px;font-size:1.45rem}.cm-owner-page>header p{margin:0;font-size:.85rem;opacity:.95}.cm-owner-page>header>div:last-child{text-align:right;display:grid;gap:2px}.cm-owner-page>header small{font-size:.65rem;opacity:.8}.cm-owner-main{width:min(1120px,calc(100vw - 32px));margin:18px auto;display:grid;gap:12px}.cm-owner-state{border:1px solid #bfdbfe;background:#eff6ff;border-radius:13px;padding:14px 16px;display:grid;gap:3px}.cm-owner-state b{color:#1d4ed8}.cm-owner-state span{font-size:.72rem;color:#475569}.cm-owner-state.wait{border-color:#fde68a;background:#fffbeb}.cm-owner-state.wait b{color:#a16207}.cm-owner-state.done{border-color:#bbf7d0;background:#f0fdf4}.cm-owner-state.done b{color:#15803d}.cm-owner-uat{border:1px solid #fdba74;background:#fff7ed;color:#9a3412;border-radius:10px;padding:9px 12px;font-size:.7rem}.cm-owner-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.cm-owner-kpis>div,.cm-owner-detail>div{background:#fff;border:1px solid #e2e8f0;border-radius:11px;padding:11px 13px;min-width:0}.cm-owner-kpis small,.cm-owner-detail small{display:block;color:#64748b;font-size:.63rem}.cm-owner-kpis b,.cm-owner-detail b{display:block;margin-top:4px;font-size:.76rem;overflow-wrap:anywhere}.cm-owner-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.cm-owner-action-card,.cm-owner-complete{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:18px}.cm-owner-action-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.cm-owner-action-card>header span{font-size:.62rem;color:#0f766e;font-weight:850;letter-spacing:.08em}.cm-owner-action-card>header h2{font-size:1rem;margin:3px 0 0}.cm-owner-action-card>header>b{font-size:.66rem;color:#b45309;background:#fff7ed;border-radius:999px;padding:6px 9px}.cm-owner-action-card>label{display:grid;gap:6px;margin:10px 0}.cm-owner-action-card>label>span{font-size:.69rem;font-weight:750;color:#475569}.cm-owner-action-card input[type=text],.cm-owner-action-card input[type=file]{border:1px solid #cbd5e1;border-radius:9px;background:#fff;padding:10px}.cm-owner-action-card label.file small{font-size:.62rem;color:#64748b}.cm-owner-rule{margin:12px 0;border:1px solid #c7d2fe;background:#eef2ff;color:#3730a3;border-radius:9px;padding:10px 12px;font-size:.68rem;line-height:1.5}.cm-owner-action-card>button,.cm-owner-award-buttons button{border:0;border-radius:9px;padding:11px 15px;font-weight:850;cursor:pointer}.cm-owner-action-card>button{background:#0f766e;color:#fff}.cm-owner-action-card>[data-cm-owner-result]{font-size:.7rem;color:#475569;margin:9px 0 0}.cm-owner-action-card .success{color:#15803d}.cm-owner-action-card .error{color:#b91c1c}.cm-owner-award-buttons{display:flex;gap:9px;margin:14px 0 8px}.cm-owner-award-buttons .yes{background:#16a34a;color:#fff}.cm-owner-award-buttons .no{background:#fff7ed;color:#c2410c;border:1px solid #fdba74}.cm-owner-action-card.award>p{color:#475569;font-size:.75rem;line-height:1.65}.cm-owner-action-card.award>small{color:#64748b;font-size:.64rem}.cm-owner-complete{border-color:#bbf7d0;background:#f0fdf4;display:grid;gap:4px}.cm-owner-complete b{color:#15803d}.cm-owner-complete span{color:#475569;font-size:.7rem}@media(max-width:900px){.cm-email-compose-grid{grid-template-columns:1fr;overflow:auto}.cm-email-compose-form{border-right:0;border-bottom:1px solid #e2e8f0}.cm-email-preview-pane{min-height:420px}.cm-owner-kpis{grid-template-columns:repeat(2,1fr)}.cm-owner-detail{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.cm-email-composer{max-height:98vh}.cm-compose-schedule{grid-template-columns:1fr}.cm-email-composer>footer{align-items:flex-start;flex-direction:column}.cm-email-composer>footer>[data-cm-compose-status]{max-width:100%}.cm-owner-page>header{align-items:flex-start;flex-direction:column}.cm-owner-page>header>div:last-child{text-align:left}.cm-owner-kpis,.cm-owner-detail{grid-template-columns:1fr}.cm-owner-action-card>header{display:grid}.cm-owner-award-buttons{display:grid}}
.cm-owner-action-card .cm-owner-ack{background:#2563eb;color:#fff}.cm-owner-ack-done{padding:10px 12px;border-radius:9px;background:#eff6ff;border:1px solid #bfdbfe;color:#1d4ed8;font-size:.72rem;font-weight:800}.cm-owner-divider{border:0;border-top:1px solid #e2e8f0;margin:18px 0}
.cm-email-preview-pane [data-cm-email-preview] a{pointer-events:none}

/* V99.0350 - clickable KPI filters + two-panel overview + Project Detail Contract/Asset enrichment */
.cm-tor-readonly{display:flex;flex-direction:column;gap:3px;min-width:260px;padding:8px 10px;border:1px solid #dbe5ef;border-radius:9px;background:#f8fafc;overflow-wrap:anywhere}.cm-tor-readonly b{font-size:12px;color:#0f172a}.cm-tor-readonly small{font-size:10px;color:#64748b}.cm-tor-readonly.has-value{border-color:#bbf7d0;background:#f0fdf4}.cm-tor-readonly.missing{border-style:dashed;color:#94a3b8}.cm-owner-state.ack{background:#eff6ff;border-color:#93c5fd;color:#1e3a8a}.cm-owner-locked{margin-top:12px;padding:12px 14px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#64748b;font-size:12px}.cm-owner-storage{display:grid;gap:6px;padding:14px 16px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a8a}.cm-owner-storage b{font-size:13px}.cm-owner-storage span{font-size:11px}.cm-owner-history{margin-top:14px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;overflow:hidden}.cm-owner-history header{display:flex;justify-content:space-between;padding:12px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.cm-owner-history header span{font-size:11px;color:#64748b}.cm-owner-history>div{display:grid;grid-template-columns:150px 160px 1fr;gap:5px 12px;padding:10px 14px;border-bottom:1px solid #eef2f7;font-size:11px}.cm-owner-history>div:last-child{border-bottom:0}.cm-owner-history time{color:#64748b}.cm-owner-history b{color:#0f766e}.cm-owner-history span{font-weight:700}.cm-owner-history small{grid-column:2 / -1;color:#64748b}


/* V99.0350 - Contract Monitor Project Detail asset enrichment + clickable KPI filters */
.cm-no-alert{color:#2563eb!important;font-weight:800}.cm-project-detail{width:min(1180px,97vw)}.cm-project-detail .cm-modal-grid em{display:block;margin-top:5px;font-size:10px;font-style:normal;font-weight:800;color:#1d4ed8}.cm-contract-assets{margin:12px 20px 18px;border:1px solid #dbe4ef;border-radius:12px;background:#fff;overflow:hidden}.cm-contract-assets>header{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 14px;border-bottom:1px solid #e2e8f0;background:#f8fafc}.cm-contract-assets>header div{display:grid;gap:3px}.cm-contract-assets>header b{font-size:13px}.cm-contract-assets>header span{font-size:10px;color:#64748b}.cm-contract-assets>header strong{font-size:12px;color:#0f766e}.cm-contract-assets-wrap{overflow:auto;max-height:330px}.cm-contract-assets table{width:100%;min-width:980px;border-collapse:collapse;font-size:11px}.cm-contract-assets th{position:sticky;top:0;background:#f8fafc;color:#475569;text-align:left;padding:9px 8px;border-bottom:1px solid #dbe4ef}.cm-contract-assets td{padding:9px 8px;border-bottom:1px solid #eef2f7;vertical-align:top}.cm-contract-assets td b{display:block;font-size:11px}.cm-contract-assets td small{display:block;margin-top:2px;color:#64748b;font-size:9px}.cm-contract-assets-empty{padding:22px;text-align:center;color:#64748b;font-size:12px}.cm-contract-assets>small{display:block;padding:8px 12px;color:#64748b;font-size:10px;background:#f8fafc}.cm-kpi:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}

/* V99.0351 - SUM Project -> DATA Contract/Asset -> DB_Contract_All Company enrichment */
.cm-data-link-note{margin:12px 20px 0;padding:10px 12px;border-radius:10px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;font-size:11px;font-weight:750}.cm-data-link-note.smart{border-color:#fde68a;background:#fffbeb;color:#92400e}.cm-data-link-note.unmatched{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.cm-project-detail{width:min(1420px,98vw)}.cm-contract-assets table{min-width:1460px}.cm-contract-assets-wrap{max-height:420px}.cm-contract-assets td:nth-child(5) small:first-of-type{font-weight:750}.cm-contract-assets td:nth-child(5) small+small{color:#7c3aed}.cm-project-detail .cm-modal-grid>div:nth-last-child(-n+5){background:#f8fbff}

/* V99.0352 - secure workflow polish: centered login logo, white header text, gated Award/PR/final-document steps */
.cm-owner-login img{display:block!important;margin:0 auto!important;float:none!important}
.cm-owner-page>header,.cm-owner-page>header *{color:#fff!important}
.cm-owner-page>header h1,.cm-owner-page>header p,.cm-owner-page>header b,.cm-owner-page>header small,.cm-owner-page>header span{color:#fff!important}
.cm-owner-action-card select,.cm-owner-action-card textarea{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;background:#fff;padding:10px;font:inherit;color:#0f172a}
.cm-owner-action-card select:disabled{background:#f1f5f9;color:#94a3b8}
.cm-owner-action-card label small{display:block;margin-top:4px;color:#64748b;font-size:.62rem}
.cm-owner-action-card label small.error{color:#b91c1c}
.cm-owner-waiting{display:grid;gap:6px;padding:18px;border:1px solid #bfdbfe;border-radius:14px;background:#eff6ff}
.cm-owner-waiting b{color:#1d4ed8}.cm-owner-waiting span{font-size:.76rem;color:#334155}.cm-owner-waiting small{font-size:.66rem;color:#64748b}
.cm-owner-award-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:8px 0 16px}.cm-owner-award-summary>div{padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}.cm-owner-award-summary small{display:block;color:#64748b;font-size:.62rem}.cm-owner-award-summary b{display:block;margin-top:4px;font-size:.75rem}
.cm-owner-close-page{min-height:100vh;display:grid;place-items:center;background:#eef2f7;padding:24px;font-family:Inter,"Noto Sans Thai",sans-serif}.cm-owner-close-page>section{width:min(520px,94vw);background:#fff;border:1px solid #bbf7d0;border-radius:20px;padding:34px;text-align:center;box-shadow:0 20px 60px rgba(15,23,42,.12)}.cm-owner-close-page .ok{width:58px;height:58px;margin:0 auto 14px;display:grid;place-items:center;border-radius:50%;background:#dcfce7;color:#15803d;font-size:28px;font-weight:900}.cm-owner-close-page h1{margin:0 0 8px;color:#0f172a}.cm-owner-close-page p{color:#475569;line-height:1.6}.cm-owner-close-page b{display:block;margin-top:10px;color:#15803d}.cm-owner-close-page button{margin-top:16px;border:0;border-radius:9px;padding:10px 16px;background:#0f766e;color:#fff;font-weight:800;cursor:pointer}
@media(max-width:800px){.cm-owner-award-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.cm-owner-award-summary{grid-template-columns:1fr}}

/* V99.0468 - Contract Renewal secure page refinements */
.cm-email-preview-pane [data-cm-email-preview]{width:700px;min-width:700px;max-width:700px;margin:0 auto}
.cm-owner-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.cm-owner-state.cancelled{border-color:#fecaca;background:#fef2f2}
.cm-owner-state.cancelled b{color:#b91c1c}
.cm-owner-cancelled{background:#fff;border:1px solid #fecaca;border-radius:14px;padding:18px;display:grid;gap:4px}
.cm-owner-cancelled b{color:#b91c1c}
.cm-owner-cancelled span{font-size:.7rem;color:#64748b}
.cm-owner-confirm-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.cm-owner-confirm-actions button{border-radius:9px;padding:11px 16px;font-weight:850;cursor:pointer}
.cm-owner-confirm-actions .confirm{border:0;background:#16835f;color:#fff}
.cm-owner-confirm-actions .cancel{border:1px solid #fca5a5;background:#fff;color:#b91c1c}
.cm-owner-assets{margin:10px 0 14px;border:1px solid #dbe5e0;border-radius:10px;background:#f8fbf9;overflow:hidden}
.cm-owner-assets summary{cursor:pointer;padding:10px 12px;font-size:.72rem;font-weight:850;color:#166534;list-style:none}
.cm-owner-assets summary::-webkit-details-marker{display:none}
.cm-owner-assets summary:before{content:'▸';display:inline-block;margin-right:7px;transition:transform .15s ease}
.cm-owner-assets[open] summary:before{transform:rotate(90deg)}
.cm-owner-assets-wrap{overflow:auto;border-top:1px solid #dbe5e0;background:#fff}
.cm-owner-assets table{width:100%;border-collapse:collapse;font-size:.68rem;min-width:860px}
.cm-owner-assets th,.cm-owner-assets td{padding:8px 9px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}
.cm-owner-assets th{background:#edf7f1;color:#355b4c;font-size:.63rem;white-space:nowrap}
.cm-owner-assets-empty{padding:12px;border-top:1px solid #dbe5e0;color:#64748b;font-size:.68rem;background:#fff}
@media(max-width:900px){.cm-owner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cm-email-preview-pane [data-cm-email-preview]{width:700px;min-width:700px}}
@media(max-width:600px){.cm-owner-kpis{grid-template-columns:1fr}.cm-owner-confirm-actions{display:grid}.cm-email-preview-pane{overflow:auto}}


/* V99.0359 - Auto Schedule layout, diagnostics and controls */
.cm-email-composer{width:min(1480px,calc(100vw - 28px));max-height:calc(100vh - 24px)}
.cm-email-compose-grid{grid-template-columns:minmax(520px,560px) minmax(0,1fr)}
.cm-email-compose-form{min-width:0;overflow-x:hidden;padding:16px 20px 22px}
.cm-compose-schedule{grid-template-columns:minmax(0,1fr) minmax(180px,.58fr);gap:10px;align-items:start}
.cm-compose-schedule label{min-width:0}
.cm-compose-schedule input{width:100%;min-width:0;box-sizing:border-box}
.cm-compose-schedule label small{font-size:.61rem;color:#64748b;line-height:1.3}
.cm-auto-control{margin-top:12px;border:1px solid #cbd5e1;border-radius:11px;background:#fff;padding:11px 12px;display:grid;gap:9px}
.cm-auto-control.on{border-color:#86efac;background:#f7fef9}.cm-auto-control.off{border-color:#fdba74;background:#fffaf3}
.cm-auto-control>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.cm-auto-control>header>div{display:grid;gap:2px}.cm-auto-control>header b{font-size:.72rem;color:#0f172a}.cm-auto-control>header span{font-size:.64rem;color:#64748b}.cm-auto-control.on strong{color:#15803d}.cm-auto-control.off strong{color:#c2410c}
.cm-auto-control>header .cm-btn{padding:6px 9px;font-size:.64rem;white-space:nowrap}
.cm-auto-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.cm-auto-control-grid>div{min-width:0;border:1px solid #e2e8f0;border-radius:8px;background:#fff;padding:8px 9px}.cm-auto-control-grid small{display:block;font-size:.59rem;color:#64748b}.cm-auto-control-grid b{display:block;margin-top:3px;font-size:.64rem;overflow-wrap:anywhere}
.cm-auto-control p{margin:0;font-size:.63rem;color:#475569;line-height:1.45}.cm-auto-control .cm-auto-warning{color:#9a3412;font-weight:700}
.cm-auto-control-actions{display:flex;gap:7px;flex-wrap:wrap}.cm-auto-control-actions .cm-btn{padding:7px 10px;font-size:.64rem}
.cm-auto-saved{display:none;border:1px solid #86efac;background:#ecfdf5;border-radius:8px;padding:8px 10px;color:#166534}.cm-auto-saved:not(:empty){display:grid;gap:2px}.cm-auto-saved b{font-size:.67rem}.cm-auto-saved span,.cm-auto-saved small{font-size:.6rem;line-height:1.4;overflow-wrap:anywhere}
.cm-email-composer>footer{position:relative;z-index:3;background:#fff}.cm-email-composer>footer .cm-btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:1180px){.cm-email-compose-grid{grid-template-columns:minmax(460px,520px) minmax(0,1fr)}}
@media(max-width:900px){.cm-email-compose-grid{grid-template-columns:1fr}.cm-compose-schedule{grid-template-columns:minmax(0,1fr) minmax(170px,.55fr)}.cm-auto-control-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.cm-compose-schedule,.cm-auto-control-grid{grid-template-columns:1fr}.cm-auto-control>header{align-items:flex-start;flex-direction:column}.cm-auto-control>header .cm-btn{width:100%}}


/* V99.0360 - Owner Data completion badge / workflow verification */
.cm-owner-data-badge{min-width:190px;display:grid;gap:5px;padding:8px 10px;border:1px solid #dbe5ef;border-radius:10px;background:#f8fafc}.cm-owner-data-badge>b{font-size:11px;letter-spacing:.02em}.cm-owner-data-badge>span{display:flex;flex-wrap:wrap;gap:4px}.cm-owner-data-badge i{font-style:normal;font-size:9px;font-weight:800;padding:3px 5px;border-radius:999px;background:#eef2f7;color:#475569}.cm-owner-data-badge small{font-size:9px!important;margin:0!important;color:#64748b!important}.cm-owner-data-badge.complete{background:#f0fdf4;border-color:#86efac}.cm-owner-data-badge.complete>b{color:#15803d}.cm-owner-data-badge.complete i{background:#dcfce7;color:#166534}.cm-owner-data-badge.incomplete{background:#fff7ed;border-color:#fed7aa}.cm-owner-data-badge.incomplete>b{color:#c2410c}.cm-owner-data-badge.check{background:#fffbeb;border-color:#fcd34d}.cm-owner-data-badge.check>b{color:#a16207}.cm-owner-data-badge.detail{min-width:0;padding:12px 14px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px 16px}.cm-owner-data-badge.detail>b{font-size:13px}.cm-owner-data-badge.detail>span{justify-content:center}.cm-owner-data-badge.detail i{font-size:10px;padding:4px 7px}.cm-owner-data-badge.detail small{font-size:11px!important}.cm-owner-data-badge.detail em{grid-column:1/-1;font-style:normal;font-size:10px;color:#a16207}.cm-owner-data-panel{padding:12px 20px 0}.cm-table-card table{min-width:1480px}@media(max-width:720px){.cm-owner-data-badge.detail{grid-template-columns:1fr}.cm-owner-data-badge.detail>span{justify-content:flex-start}}

/* V99.0361 - UAT fast full-loop test */
.cm-auto-control-actions .cm-btn.uat-fast{border-color:#8b5cf6;background:#f5f3ff;color:#6d28d9;font-weight:900}.cm-auto-saved b{color:#6d28d9}.cm-owner-uat b{letter-spacing:.03em}


/* V99.0362 - explicit workflow closure visibility */
.cm-filter{grid-template-columns:minmax(250px,1.55fr) repeat(4,minmax(135px,.72fr)) auto}
.cm-kpis{grid-template-columns:repeat(7,minmax(0,1fr))}
.cm-kpi.emerald{background:#ecfdf5;border-color:#86efac}.cm-kpi.emerald b{color:#047857}
.cm-workflow-badge{min-width:116px;display:grid;gap:3px}.cm-workflow-badge b{display:inline-flex!important;width:max-content;max-width:100%;align-items:center;padding:4px 7px;border-radius:999px;font-size:9px!important;letter-spacing:.02em;white-space:nowrap}.cm-workflow-badge small{margin:0!important;font-size:9px!important;color:#64748b!important}.cm-workflow-badge.monitoring b{background:#dbeafe;color:#1d4ed8}.cm-workflow-badge.wait-award b{background:#fef3c7;color:#92400e}.cm-workflow-badge.wait-pr b{background:#ede9fe;color:#6d28d9}.cm-workflow-badge.wait-document b{background:#e0f2fe;color:#0369a1}.cm-workflow-badge.completed b{background:#dcfce7;color:#166534}.cm-workflow-badge.cancelled b{background:#fee2e2;color:#b91c1c}.cm-workflow-badge.check b{background:#fffbeb;color:#a16207;border:1px solid #fcd34d}.cm-workflow-badge.detail{margin:0;min-width:0;grid-template-columns:auto 1fr;align-items:center;gap:8px}.cm-workflow-badge.detail b{font-size:12px!important;padding:7px 10px}.cm-workflow-badge.detail small{font-size:11px!important}.cm-project-workflow-panel{padding:12px 20px 0}
.cm-closure-summary{margin:12px 20px 4px;border:1px solid #86efac;border-radius:13px;overflow:hidden;background:#f0fdf4}.cm-closure-summary.cancelled{border-color:#fecaca;background:#fef2f2}.cm-closure-summary>header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(22,101,52,.15)}.cm-closure-summary>header span{font-size:10px;font-weight:850;letter-spacing:.1em;color:#15803d}.cm-closure-summary.cancelled>header span{color:#b91c1c}.cm-closure-summary>header h3{margin:2px 0 0;font-size:16px;color:#166534}.cm-closure-summary.cancelled>header h3{color:#b91c1c}.cm-closure-summary>header>b{font-size:11px;color:#475569}.cm-closure-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#dbe5df}.cm-closure-summary.cancelled .cm-closure-grid{background:#f3dada}.cm-closure-grid>div{background:#fff;padding:10px 12px;min-height:58px}.cm-closure-grid small{display:block;font-size:9px;color:#64748b}.cm-closure-grid b{display:block;margin-top:4px;font-size:11px;overflow-wrap:anywhere}.cm-closure-grid b.ok{color:#15803d}.cm-closure-grid b.warn{color:#dc2626}.cm-closure-grid a{color:#047857;text-decoration:underline}.cm-table-card table{min-width:1580px}
@media(max-width:1500px){.cm-kpis{grid-template-columns:repeat(4,1fr)}.cm-filter{grid-template-columns:1fr 1fr 1fr}.cm-filter .search{grid-column:1/-1}.cm-closure-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.cm-closure-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.cm-closure-grid{grid-template-columns:1fr}}

.cm-owner-readonly{display:grid;gap:8px}.cm-owner-readonly>div{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:center;margin-top:6px;padding:10px;border-radius:10px;background:#f8fafc}.cm-owner-readonly small{color:#64748b}.cm-owner-readonly strong{color:#0f172a;overflow-wrap:anywhere}.cm-owner-readonly a{grid-column:1/-1;color:#047857;font-weight:800}.cm-owner-readonly em{font-style:normal;color:#64748b;font-size:11px}

/* V99.0426 Contract Monitor Manager/Admin Owner Data editor */
.cm-actions button.edit{border-color:#86efac;background:#f0fdf4;color:#15803d}.cm-owner-edit-modal{width:min(900px,96vw)}.cm-owner-edit-modal>header{align-items:flex-start}.cm-owner-edit-modal>header p{margin:4px 0 0;color:#64748b;font-size:.75rem}.cm-owner-edit-body{padding:16px 20px;display:grid;gap:12px}.cm-owner-edit-source{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.cm-owner-edit-source>div,.cm-owner-edit-readonly>div{border:1px solid #e2e8f0;background:#f8fafc;border-radius:10px;padding:10px 12px;min-width:0}.cm-owner-edit-source small,.cm-owner-edit-readonly small{display:block;color:#64748b;font-size:.64rem}.cm-owner-edit-source b,.cm-owner-edit-readonly b{display:block;margin-top:4px;font-size:.76rem;overflow-wrap:anywhere}.cm-owner-edit-source span{display:block;margin-top:3px;color:#64748b;font-size:.64rem}.cm-owner-edit-body>label{display:grid;gap:6px}.cm-owner-edit-body>label>span{font-size:.7rem;font-weight:800;color:#334155}.cm-owner-edit-body>label input{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;background:#fff;padding:10px 11px;font-size:.78rem;color:#0f172a}.cm-owner-edit-body>label small{font-size:.63rem;color:#64748b}.cm-owner-edit-readonly{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.cm-owner-edit-readonly a{color:#0f766e;text-decoration:none}.cm-owner-edit-warning{border:1px solid #fbbf24;background:#fffbeb;color:#92400e;border-radius:10px;padding:10px 12px;display:grid;gap:3px}.cm-owner-edit-warning b{font-size:.72rem}.cm-owner-edit-warning span{font-size:.68rem;overflow-wrap:anywhere}.cm-owner-edit-warning small{font-size:.62rem}.cm-owner-edit-note{border:1px solid #c7d2fe;background:#eef2ff;border-radius:10px;padding:11px 12px;display:grid;grid-template-columns:auto 1fr;gap:5px 10px;font-size:.67rem;color:#3730a3;line-height:1.5}.cm-owner-edit-note b{white-space:nowrap}.cm-owner-edit-body>[data-cm-owner-edit-status]{min-height:18px;margin:0;font-size:.69rem;color:#b45309}.cm-owner-edit-body>[data-cm-owner-edit-status] b{color:#b91c1c}.cm-owner-edit-modal>footer{justify-content:space-between;align-items:center;gap:12px}.cm-owner-edit-modal>footer>div{display:flex;gap:7px}.cm-btn.danger{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.cm-btn.danger:disabled{opacity:.4;cursor:not-allowed}@media(max-width:720px){.cm-owner-edit-source,.cm-owner-edit-readonly{grid-template-columns:1fr}.cm-owner-edit-note{grid-template-columns:1fr}.cm-owner-edit-modal>footer{align-items:stretch;flex-direction:column}.cm-owner-edit-modal>footer>div{justify-content:flex-end}}
