*{box-sizing:border-box}
:root{
  --bg:#fafafa;
  --fg:#111;
  --muted:#666;
  --border:#e6e6e6;
  --outer-border:#c6c6c6;
  --card:#fff;
  --radius:14px;
  --day-height:clamp(330px, 70vh, 630px);
  --btn:#0b6a6a;
}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.35;background:var(--bg);color:var(--fg)}
.wrap{max-width:1500px;margin:0 auto;padding:18px}
.top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
h1{margin:0;font-size:24px;color:var(--btn)}
.hint{color:var(--muted);margin:6px 0 0}
.top-actions{display:flex;gap:10px;align-items:center}
.btn-link{display:inline-block;padding:8px 12px;border-radius:10px;background:var(--btn);color:#fff;text-decoration:none;font-size:13px}
.btn-link:hover{opacity:.92}
.link{color:var(--fg);text-decoration:underline}
.panel{margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}
.row{display:grid;grid-template-columns:1fr;gap:10px}
@media (min-width: 980px){.row{grid-template-columns:1fr 1fr}}
.col label{display:block;margin-bottom:6px}
textarea{width:100%;min-height:150px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;padding:10px;border:1px solid var(--border);border-radius:12px}
input[type=file]{width:100%}
.meta{margin-top:6px;color:var(--muted);font-size:13px}
.tri-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:10px}
@media (min-width: 1100px){.tri-grid{grid-template-columns:repeat(3, 1fr)}}
.tri-grid .panel{margin-top:0}

.actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:10px}
.action-buttons{display:flex;align-items:center;gap:8px}
.checkbox{display:flex;align-items:center;gap:8px}
.checkbox input{transform:translateY(1px)}
.small{color:var(--muted);font-size:13px}
button{padding:10px 14px;border:0;border-radius:12px;background:var(--btn);color:#fff;cursor:pointer}
button:hover{opacity:.92}
.error-banner{margin-bottom:10px;padding:8px 10px;border:1px solid #e0a3a3;background:#fff4f4;color:#8a1f1f;border-radius:10px;font-size:13px}

.planner-wrap{margin-top:14px;overflow:hidden}
body.print{background:#fff}
.print .planner-wrap{margin-top:0}
.print .wrap{max-width:none;padding:0}
.print-actions{margin-top:10px}
.tri-grid > .panel{display:flex;flex-direction:column}
.chatgpt-actions{padding:12px}
.chatgpt-actions .copy-row{margin-top:auto}
.panel .actions{margin-top:auto;width:100%}
.chatgpt-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.prompt{width:100%;min-height:140px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;padding:8px;border:1px solid var(--border);border-radius:10px;background:#fff;color:#222;resize:vertical}
.copy-btn{margin-top:8px}
.copy-row{display:flex;align-items:center;gap:10px;margin-top:8px}
.copy-row .copy-btn{margin-top:0}
.footer-note{margin-top:24px;color:#9a9a9a;font-size:12px}
.footer-note a{color:inherit;text-decoration:underline}

.grid{display:grid;grid-template-columns:repeat(7, 1fr);gap:0;width:100%}

.day:last-child{border-right:1px solid var(--outer-border)}

.day:first-child{border-top-left-radius:var(--radius);border-bottom-left-radius:var(--radius);border-left:1px solid var(--outer-border)}
.day:last-child{border-top-right-radius:var(--radius);border-bottom-right-radius:var(--radius)}

.day{
  background:var(--card);
  border-top:1px solid var(--outer-border);
  border-bottom:1px solid var(--outer-border);
  border-left:1px solid var(--border);
  padding:10px;
  display:flex;
  flex-direction:column;
  height:var(--day-height);
  min-height:0;
}
.day.weekend{background:#fbfbfb}
.day h2{
  margin:0 0 8px;
  font-size:13px;
  font-weight:500;
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:baseline;
  padding-bottom:6px;
  border-bottom:1px solid var(--border);
  background:#fff7cc;
  border-radius:8px;
  padding:6px 8px;
}

.date{color:#777;font-weight:600;font-size:12px}

.section{margin-top:10px}
.section-title{
  margin:0 0 6px;
  font-size:12px;
  font-weight:600;
  color:#222;
  letter-spacing:.4px;
  text-transform:uppercase;
}

.section{
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding-top:6px;
  min-height:0;
  position:relative;
}

.section + .section{border-top:1px solid var(--border)}
.section-afternoon::before,
.section-evening::before{
  position:absolute;
  top:0;
  left:50%;
  transform:translate(-50%, -50%);
  font-size:10px;
  letter-spacing:0.6px;
  color:var(--border);
  background:var(--card);
  padding:0 6px;
}
.section-afternoon::before{content:"LUNCH"}
.section-evening::before{content:"DINNER"}

.lines{
  position:relative;
  flex:1;
  min-height:0;
  padding-right:2px;
}

.line{
  margin:0;
  font-size:13px;
  color:#111;
  display:flex;
  gap:3px;
  align-items:baseline;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  position:absolute;
  left:0;
  right:0;
  top:calc(var(--pos, 0.12) * 100%);
  transform:translateY(-50%);
}
.time{
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:11px;
  color:#777;
  min-width:44px;
  letter-spacing:0.1px;
}
.item{
  overflow:hidden;
  text-overflow:ellipsis;
}

.section-evening .line{opacity:0.95}

.empty{color:#999;margin:0;font-size:13px}
