.rayplan-app{--rp:#1e40af;--rp2:#2563eb;--line:#dfe4ea;--muted:#667085;--bg:#f7f8fb;font-family:Arial,"Noto Sans Thai",Tahoma,sans-serif;color:#111827;max-width:1600px;margin:0 auto;background:#fff}.rayplan-app *{box-sizing:border-box}.rayplan-topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:22px 24px;border:1px solid #e6e8ec;border-radius:18px;margin-bottom:16px;background:linear-gradient(180deg,#fff,#fafbff)}.rayplan-brand{font-size:12px;font-weight:800;letter-spacing:.14em;color:var(--rp2);text-transform:uppercase}.rayplan-topbar h2{margin:4px 0 2px;font-size:25px}.rayplan-topbar p{margin:0;color:var(--muted)}.rayplan-top-actions{display:flex;gap:8px;flex-wrap:wrap}.rayplan-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(640px,1.5fr);gap:16px}.rayplan-card{border:1px solid #e4e7ec;border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 5px 20px rgba(16,24,40,.04)}.rayplan-card-head{display:flex;align-items:center;gap:10px;padding:15px 18px;border-bottom:1px solid #edf0f3;background:#fbfcfe}.rayplan-card-head span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#111827;color:#fff;font-weight:800}.rayplan-card-head h3{margin:0;font-size:17px}.rayplan-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px}.rayplan-form-grid label{font-size:12px;font-weight:700;color:#344054}.rayplan-form-grid input{width:100%;margin-top:6px;border:1px solid #d0d5dd;border-radius:9px;padding:10px 11px;font:inherit;background:#fff}.rp-span-2{grid-column:span 2}.rayplan-toolbar,.rayplan-preview-actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px 14px;border-bottom:1px solid #edf0f3}.rp-btn,.rp-import{border:1px solid #cfd4dc;background:#fff;color:#111827;border-radius:9px;padding:9px 12px;font-size:13px;font-weight:700;cursor:pointer;transition:.15s}.rp-btn:hover,.rp-import:hover{transform:translateY(-1px);border-color:#98a2b3}.rp-btn-primary{background:#111827;color:#fff;border-color:#111827}.rp-btn-ghost{background:#f8fafc}.rp-btn-warn{background:#fff7ed;border-color:#fed7aa}.rp-btn-soft{background:#f8fafc}.rp-import input{display:none}.rayplan-table-wrap{overflow:auto;max-height:610px}.rayplan-input-table{width:100%;border-collapse:collapse;min-width:870px}.rayplan-input-table th{position:sticky;top:0;z-index:3;background:#f7f8fa;font-size:11px;text-align:left;color:#475467;padding:9px 7px;border-bottom:1px solid #e4e7ec}.rayplan-input-table td{padding:6px 5px;border-bottom:1px solid #eef0f2;vertical-align:middle}.rayplan-input-table input,.rayplan-input-table select{width:100%;border:1px solid #d0d5dd;border-radius:7px;padding:7px 8px;font-size:12px;background:#fff}.rayplan-input-table .rp-type{min-width:105px}.rayplan-input-table .rp-name{min-width:245px}.rayplan-input-table .rp-group{min-width:72px;text-align:center;font-weight:800;color:#1d4ed8;background:#f8fbff}.rayplan-input-table .rp-group:disabled{background:#f3f4f6;color:#98a2b3}.rp-col-group{width:82px;text-align:center!important}.rayplan-input-table .rp-date{min-width:132px}.rayplan-input-table .rp-duration{min-width:86px}.rp-col-move{width:34px}.rp-row-phase td{background:#e6eef8;border-bottom-color:#d7e1ee}.rp-row-phase input,.rp-row-phase select{background:#f4f8fd;border-color:#bccade;font-weight:700;color:#18324f}.rp-row-phase .rp-name{color:#123b66;font-weight:700}.rp-row-phase .rp-duration{background:#eef4fb;font-weight:800;color:#123b66}.rp-row-phase:hover td{background:#e1ebf7}.rp-row-payment td{background:#fffaf2}.rp-row-holiday td{background:#fff6f6}.rp-handle{cursor:grab;color:#98a2b3;text-align:center;font-size:18px;user-select:none}.rp-remove{border:0;background:transparent;color:#b42318;font-size:17px;cursor:pointer}.rayplan-hint{padding:10px 14px;color:#667085;font-size:11px;background:#fbfcfd}.rayplan-preview-card{margin-top:16px}.rayplan-output-scroll{overflow:auto;padding:12px;background:#f0f2f5}.rayplan-output{min-width:1420px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12)}
.rp-sheet{width:1800px;background:#fff;color:#111;font-family:Arial,"Noto Sans Thai",Tahoma,sans-serif;padding:20px 18px 12px}.rp-sheet-head{display:grid;grid-template-columns:34% 66%;align-items:start;margin-bottom:9px}.rp-project-meta{font-size:11px;line-height:1.55}.rp-project-meta .title{font-size:13px;font-weight:700}.rp-sheet-title{text-align:center;font-size:12px;line-height:1.5}.rp-sheet-title strong{font-size:13px;text-decoration:underline}.rp-gantt-wrap{display:grid;grid-template-columns:615px 1fr;border-top:1px solid #333;border-left:1px solid #333}.rp-left,.rp-right{position:relative}.rp-left{border-right:1px solid #333}.rp-table{width:100%;border-collapse:collapse;table-layout:fixed}.rp-table th,.rp-table td{border-right:1px solid #444;border-bottom:1px solid #444;padding:0 4px;height:22px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:10px}.rp-table th{height:38px;text-align:left;vertical-align:bottom;font-weight:700;background:#fff}.rp-table .c-id{width:34px}.rp-table .c-task{width:305px}.rp-table .c-group{width:45px;text-align:center;font-weight:800;color:#1d4ed8}.rp-table .c-duration{width:72px;text-align:center}.rp-table .c-start,.rp-table .c-finish{width:79px;text-align:center}.rp-table td.c-id,.rp-table td.c-duration,.rp-table td.c-start,.rp-table td.c-finish{text-align:center}.rp-table tr.phase td{font-weight:700;color:#c2410c;background:#eef8e8}.rp-table tr.payment td{font-weight:700;color:#d61f1f}.rp-table tr.holiday td{color:#d92d20}.rp-timeline{position:relative;min-height:38px;border-bottom:1px solid #444;background:#fff}.rp-months{display:flex;height:20px;border-bottom:1px solid #777}.rp-month{display:flex;justify-content:center;align-items:center;border-right:1px solid #777;font-size:9px;overflow:hidden;white-space:nowrap}.rp-weeks{position:relative;height:18px}.rp-week-label{position:absolute;top:0;height:18px;border-right:1px solid #999;font-size:8px;text-align:center;padding-top:3px;overflow:hidden}.rp-chart-body{position:relative}.rp-chart-row{position:relative;height:22px;border-bottom:1px solid #444;background-image:linear-gradient(to right,rgba(0,0,0,.18) 1px,transparent 1px);background-size:var(--weekWidth) 100%}.rp-bar{position:absolute;height:8px;top:7px;background:#111;min-width:2px}.rp-bar.phase{height:5px;top:8px;background:#1d4ed8;border-radius:0}.rp-bar.phase:before,.rp-bar.phase:after{content:"";position:absolute;top:-2px;width:2px;height:9px;background:#1d4ed8}.rp-bar.phase:before{left:0}.rp-bar.phase:after{right:0}.rp-bar.payment{height:7px;background:#ef4444}.rp-bar.holiday{height:6px;background:#dc2626;opacity:.75}.rp-bar-label{position:absolute;top:-7px;font-size:8px;white-space:nowrap;color:#111}.rp-sheet-footer{display:flex;justify-content:space-between;align-items:flex-end;margin-top:8px;font-size:9px}.rp-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.rp-legend i{display:inline-block;width:48px;height:5px;background:#111;vertical-align:middle;margin-right:4px}.rp-legend i.blue{background:#1d4ed8}.rp-legend i.red{background:#ef4444}.rp-company-note{max-width:700px;text-align:center}.rp-page-no{text-align:center;font-size:9px;margin-top:6px}.rp-empty{padding:60px;text-align:center;color:#98a2b3;font-size:14px}.rp-toast{position:fixed;right:20px;bottom:20px;background:#111827;color:#fff;padding:11px 14px;border-radius:10px;z-index:99999;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
@media(max-width:1050px){.rayplan-grid{grid-template-columns:1fr}.rayplan-topbar{align-items:flex-start;flex-direction:column}}@media(max-width:640px){.rayplan-form-grid{grid-template-columns:1fr}.rp-span-2{grid-column:span 1}.rayplan-topbar{padding:17px}.rayplan-topbar h2{font-size:21px}}
@media print{body *{visibility:hidden!important}.rayplan-output,.rayplan-output *{visibility:visible!important}.rayplan-output{position:absolute;left:0;top:0;transform-origin:top left;box-shadow:none}.rayplan-output-scroll{padding:0;background:#fff;overflow:visible}@page{size:A3 landscape;margin:5mm}}

.rayplan-input-table input[readonly],.rayplan-form-grid input[readonly]{background:#f3f6fa;color:#344054;cursor:not-allowed}.rayplan-input-table tr.rp-phase-expanded td{background:#fff4e5!important}.rayplan-input-table tr.rp-phase-expanded .rp-duration{border-color:#f59e0b;background:#fffaf0;font-weight:800}.rayplan-input-table tr.rp-phase-expanded .rp-duration:focus{outline:2px solid rgba(245,158,11,.18)}

.rp-bar.rp-parallel{background:#0f766e}.rp-bar.rp-parallel .rp-bar-label b{color:#0f766e}.rp-parallel-help{font-size:11px;color:#475467}

/* =========================================================
   RAY101 v1.3.4 - SOFT COLOR ENHANCEMENT
   เพิ่มมิติสีให้ส่วนข้อมูลโครงการและหัวการ์ด โดยยังคงโทนสุภาพ
========================================================= */
.rayplan-topbar{
  border-color:#cfdbeb;
  background:linear-gradient(135deg,#f7faff 0%,#eef4fb 100%);
  box-shadow:0 8px 24px rgba(30,64,175,.06);
}
.rayplan-topbar h2{color:#102a56}
.rayplan-grid>.rayplan-card:first-child{
  border-color:#cbd8e8;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  box-shadow:0 7px 22px rgba(30,64,175,.07);
}
.rayplan-grid>.rayplan-card:first-child .rayplan-card-head{
  background:linear-gradient(135deg,#eef4fb 0%,#e4edf8 100%);
  border-bottom-color:#cfdbea;
}
.rayplan-grid>.rayplan-card:first-child .rayplan-card-head span{
  background:#173b6c;
  box-shadow:0 4px 10px rgba(23,59,108,.18);
}
.rayplan-grid>.rayplan-card:first-child .rayplan-card-head h3{
  color:#173b6c;
}
.rayplan-grid>.rayplan-card:first-child .rayplan-form-grid{
  background:linear-gradient(180deg,#fbfdff 0%,#f5f9fd 100%);
}
.rayplan-grid>.rayplan-card:first-child .rayplan-form-grid label{
  color:#294b72;
}
.rayplan-grid>.rayplan-card:first-child .rayplan-form-grid input{
  border-color:#c6d3e3;
  background:#ffffff;
  box-shadow:inset 0 1px 2px rgba(16,42,86,.025);
}
.rayplan-grid>.rayplan-card:first-child .rayplan-form-grid input:focus{
  outline:none;
  border-color:#6d91bd;
  box-shadow:0 0 0 3px rgba(37,99,235,.08);
}
.rayplan-grid>.rayplan-card:nth-child(2){
  border-color:#d5deea;
}
.rayplan-grid>.rayplan-card:nth-child(2) .rayplan-card-head{
  background:linear-gradient(135deg,#f5f8fc 0%,#edf3f9 100%);
}
.rayplan-grid>.rayplan-card:nth-child(2) .rayplan-card-head h3{color:#173b6c}
.rayplan-preview-card{
  border-color:#d3deeb;
  box-shadow:0 7px 22px rgba(30,64,175,.055);
}
.rayplan-preview-card .rayplan-card-head{
  background:linear-gradient(135deg,#f4f8fc 0%,#eaf1f8 100%);
}
