
:root{
  --green:#174f33; --green2:#28764c; --cream:#f7f2e7; --red:#a83232;
  --text:#17241c; --muted:#55645b; --line:#dfe7e1; --white:#fff;
}
*{box-sizing:border-box}
body{
  margin:0; background:var(--cream); color:var(--text);
  font-family:Arial,Helvetica,sans-serif; padding-bottom:92px;
}
.top{
  position:sticky; top:0; z-index:5; background:#fff; display:flex; gap:14px;
  align-items:center; padding:12px 16px; border-bottom:2px solid var(--line);
}
.logo{width:72px;height:72px;object-fit:contain}
.title{font-size:25px;font-weight:900;letter-spacing:.03em}
.sub{font-size:18px;font-weight:700;color:var(--green2)}
.wrap{max-width:680px;margin:auto;padding:16px}
.hello{
  background:var(--green); color:#fff; border-radius:24px; padding:22px; text-align:center;
}
.hello-text{font-size:22px;font-weight:800}
.name{font-size:36px;font-weight:900;margin-top:4px}
.date{font-size:22px;margin-top:12px;font-weight:700}
.time{font-size:44px;font-weight:900;margin-top:2px}
.status{
  margin-top:16px; background:#fff; border-radius:20px; padding:18px;
  border:2px solid var(--line); text-align:center;
}
.status-title{font-size:20px;font-weight:900}
.status-main{font-size:24px;font-weight:900;margin:10px 0}
.grid{display:grid;grid-template-columns:1fr;gap:14px;margin-top:16px}
.big{
  min-height:86px; border:0; border-radius:22px; background:#fff; color:var(--text);
  font-size:28px; font-weight:900; text-align:left; padding:18px 22px;
  box-shadow:0 6px 18px rgba(0,0,0,.08); display:flex; align-items:center; gap:18px;
}
.big span{font-size:25px}
.big.primary{background:var(--green);color:#fff}
.big.voice{background:#235f94;color:#fff}
.big.warn{background:#fff2f2;border:2px solid #efcccc}
.big.success{background:#e9f7ee;border:2px solid #c7e7d1}
.secondary{
  width:100%; min-height:62px; border-radius:16px; border:2px solid var(--green);
  background:#fff;color:var(--green);font-size:22px;font-weight:900;padding:10px;
}
.sync{
  margin-top:16px;background:#fff;border-radius:18px;padding:16px;border:2px dashed var(--line)
}
.sync strong{display:block;font-size:20px}
.sync span{display:block;font-size:18px;color:var(--muted);margin-top:4px}
.bottom{
  position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:2px solid var(--line);
  display:grid;grid-template-columns:repeat(5,1fr);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:10
}
.bottom button{
  border:0;background:none;font-size:25px;font-weight:900;color:var(--green);min-height:72px
}
.bottom span{display:block;font-size:13px;margin-top:2px}
.modal{
  position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:50; display:flex;
  align-items:flex-end; justify-content:center;
}
.modal.hidden{display:none}
.modal-card{
  position:relative;background:#fff;width:min(100%,680px);max-height:94vh;overflow:auto;
  border-radius:28px 28px 0 0;padding:24px 18px 28px;
}
.close{
  position:absolute;right:16px;top:14px;border:0;background:#eee;border-radius:50%;
  width:48px;height:48px;font-size:24px;font-weight:900
}
.modal h2{font-size:32px;margin:8px 55px 18px 0}
.modal label{display:block;font-size:21px;font-weight:900;margin:16px 0 6px}
.modal input,.modal select,.modal textarea{
  width:100%;min-height:64px;border:2px solid #cfd8d1;border-radius:16px;
  font-size:24px;padding:12px;background:#fff
}
.modal textarea{min-height:120px}
.action{
  width:100%;min-height:72px;border:0;border-radius:18px;background:var(--green);color:#fff;
  font-size:24px;font-weight:900;margin-top:18px
}
.action.alt{background:#fff;color:var(--green);border:2px solid var(--green)}
.action.red{background:var(--red)}
.confirm{
  background:#f2f8f4;border:2px solid #d6eadd;border-radius:18px;padding:16px;margin-top:14px
}
.confirm .row{font-size:23px;font-weight:900;padding:8px 0;border-bottom:1px solid #dbe8df}
.task{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 0;border-bottom:1px solid var(--line)
}
.task span{font-size:22px;font-weight:900}
.task button{min-height:56px;border:0;border-radius:14px;background:var(--green);color:#fff;font-size:18px;font-weight:900;padding:10px 14px}
.note{
  font-size:18px;color:var(--muted);background:#f6f6f6;border-radius:14px;padding:12px;margin-top:10px
}
@media(min-width:650px){
  .grid{grid-template-columns:1fr 1fr}
  .grid .big:first-child,.grid .big:nth-child(2){grid-column:span 2}
}
