/* Rycal Test Planner styles (2026-09-29) — slate/emerald system. */

/* ---------- header time-budget widget ---------- */
.rycal-site-header .time-budget{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--rycal-slate-200,#e1e9e4);
  background:var(--rycal-emerald-50,#eaf3ed);
  color:var(--rycal-emerald-700,#214d3a);
  font-size:13px;font-weight:700;
  border-radius:999px;padding:7px 13px;cursor:pointer;white-space:nowrap;
}
.rycal-site-header .time-budget:hover{background:#fff;}

/* ---------- planner screen ---------- */
.tp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:26px;flex-wrap:wrap;}
.tp-title{font-size:30px;color:var(--rycal-slate-900,#0f172a);margin:6px 0 8px;letter-spacing:-.5px;}
.tp-sub{color:var(--rycal-slate-500,#64748b);font-size:14px;line-height:1.6;margin:0;max-width:640px;}

.tp-empty{background:#fff;border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:16px;padding:40px 28px;text-align:center;color:var(--rycal-slate-500,#64748b);}
.tp-empty strong{display:block;font-size:18px;color:var(--rycal-slate-900,#0f172a);margin-bottom:8px;}
.tp-empty p{margin:0 0 18px;line-height:1.6;}
.tp-past-title{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--rycal-slate-400,#94a3b8);margin:28px 0 12px;}

/* ---------- test cards ---------- */
.tp-card{background:#fff;border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:0 1px 3px rgba(15,23,42,.05);}
.tp-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px;}
.tp-card-head strong{display:block;font-size:17px;color:var(--rycal-slate-900,#0f172a);margin-bottom:4px;}
.tp-card-head span{display:block;font-size:13px;color:var(--rycal-slate-500,#64748b);line-height:1.5;}
.tp-countdown{flex:0 0 auto;background:var(--rycal-emerald-600,#059669);color:#fff;font-size:13px;font-weight:800;border-radius:999px;padding:7px 14px;white-space:nowrap;}
.tp-countdown.urgent{background:#b45309;}

/* ---------- study runway ---------- */
.tp-runway{margin:4px 0 16px;}
.tp-runway-track{position:relative;height:10px;background:var(--rycal-slate-100,#f1f5f9);border-radius:999px;overflow:visible;margin-bottom:8px;}
.tp-runway-work{position:absolute;left:0;top:0;bottom:0;background:var(--rycal-emerald-500,#10b981);border-radius:999px;transition:width .3s;}
.tp-runway-time{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--rycal-slate-400,#94a3b8);}
.tp-runway-meta{display:flex;justify-content:space-between;font-size:12px;color:var(--rycal-slate-500,#64748b);}
.tp-runway-label{font-weight:800;}
.tp-runway-label.onpace{color:var(--rycal-emerald-600,#059669);}
.tp-runway-label.behind{color:#b45309;}
.tp-runway-label.done{color:var(--rycal-emerald-700,#047857);}

/* ---------- today's plan ---------- */
.tp-today{background:var(--rycal-slate-50,#f8fafc);border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:12px;padding:16px 18px;margin-bottom:12px;}
.tp-today-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap;}
.tp-today-head strong{font-size:14px;color:var(--rycal-slate-900,#0f172a);}
.tp-today p{margin:0 0 10px;font-size:14px;color:var(--rycal-slate-600,#475569);line-height:1.6;}
.tp-today p:last-child{margin-bottom:0;}
.tp-done-btn{background:var(--rycal-emerald-600,#059669);color:#fff;border:0;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:700;cursor:pointer;}
.tp-done-btn:hover{background:var(--rycal-emerald-700,#047857);}
.tp-unit-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.tp-study-btn{background:#fff;border:1px solid var(--rycal-slate-200,#e1e9e4);color:var(--rycal-emerald-700,#047857);border-radius:9px;padding:8px 13px;font-size:13px;font-weight:650;cursor:pointer;}
.tp-study-btn:hover{border-color:var(--rycal-emerald-500,#10b981);background:var(--rycal-emerald-50,#ecfdf5);}
.tp-sweep{background:#fffbeb;border:1px solid #fcd34d;border-radius:10px;padding:12px 14px;margin-bottom:10px;}
.tp-sweep strong{display:block;font-size:14px;color:#92400e;margin-bottom:4px;}
.tp-sweep p{margin:0;font-size:13px;color:#92400e;}
.tp-hint{font-size:12px;color:var(--rycal-slate-400,#94a3b8);line-height:1.5;}

/* ---------- 7-day preview ---------- */
.tp-preview{margin:4px 0 12px;border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:12px;padding:10px 16px;background:#fff;}
.tp-preview summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--rycal-emerald-700,#047857);padding:4px 0;}
.tp-preview ol{margin:10px 0 6px;padding-left:20px;font-size:13px;color:var(--rycal-slate-600,#475569);}
.tp-preview li{margin-bottom:8px;line-height:1.5;}
.tp-preview li strong{color:var(--rycal-slate-900,#0f172a);}

.tp-card-actions{display:flex;gap:10px;}
.tp-action-btn{background:transparent;border:1px solid var(--rycal-slate-200,#e1e9e4);color:var(--rycal-slate-600,#475569);border-radius:9px;padding:8px 14px;font-size:13px;font-weight:650;cursor:pointer;}
.tp-action-btn:hover{border-color:var(--rycal-slate-300,#cbd5e1);color:var(--rycal-slate-900,#0f172a);}
.tp-action-btn.danger{color:#b91c1c;}
.tp-action-btn.danger:hover{border-color:#fca5a5;background:#fef2f2;}

/* ---------- form ---------- */
.tp-form-wrap{background:#fff;border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:16px;padding:26px;margin-bottom:22px;}
.tp-form-wrap h2{margin:0 0 18px;font-size:20px;color:var(--rycal-slate-900,#0f172a);}
.tp-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.tp-form-wrap label{display:block;font-size:13px;font-weight:700;color:var(--rycal-slate-600,#475569);}
.tp-form-wrap input[type=text],.tp-form-wrap input[type=date],.tp-form-wrap select,.tp-form-wrap textarea{
  display:block;width:100%;margin-top:6px;padding:10px 12px;font-size:14px;font-weight:400;
  border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:10px;background:#fff;color:var(--rycal-slate-900,#0f172a);
  box-sizing:border-box;
}
.tp-form-wrap textarea{resize:vertical;}
.tp-field-label{display:block;font-size:13px;font-weight:700;color:var(--rycal-slate-600,#475569);margin-bottom:8px;}
.tp-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin-bottom:6px;}
.tp-check{display:flex!important;align-items:center;gap:9px;font-size:14px!important;font-weight:500!important;color:var(--rycal-slate-700,#334155)!important;background:var(--rycal-slate-50,#f8fafc);border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:10px;padding:9px 12px;cursor:pointer;}
.tp-check input{accent-color:var(--rycal-emerald-600,#059669);width:16px;height:16px;}
.tp-loading{font-size:13px;color:var(--rycal-slate-400,#94a3b8);}
.tp-status{font-size:13px;color:#b45309;min-height:18px;margin:10px 0;}
.tp-form-actions{display:flex;gap:10px;margin-top:6px;}

/* ---------- dashboard widget ---------- */
.utility-tests-section{margin:0 0 34px;}
.tp-dash-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--rycal-slate-200,#e1e9e4);border-radius:14px;padding:14px 18px;margin-bottom:10px;}
.tp-dash-row .tp-countdown{font-size:12px;padding:6px 12px;}
.tp-dash-main{flex:1;min-width:0;}
.tp-dash-main strong{display:block;font-size:14px;color:var(--rycal-slate-900,#0f172a);}
.tp-dash-main span{font-size:12px;color:var(--rycal-slate-500,#64748b);}
.tp-dash-empty{background:#fff;border:1px dashed var(--rycal-slate-200,#e1e9e4);border-radius:14px;padding:18px;color:var(--rycal-slate-500,#64748b);font-size:14px;}
.tp-link-btn{background:none;border:0;color:var(--rycal-emerald-700,#047857);font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;padding:6px 4px;}
.tp-link-btn:hover{text-decoration:underline;}

@media (max-width:640px){
  .tp-form-grid{grid-template-columns:1fr;}
  .tp-card-head{flex-direction:column;}
  .tp-head{flex-direction:column;}
}
