:root{
  --bg:#f7f7f5;
  --card:#ffffff;
  --text:#111;
  --muted:#555;
  --primary:#2f7d32;
  --danger:#b71c1c;
  --warn:#b26a00;
  --border:#e2e2de;
}
*{box-sizing:border-box;}
html,body{height:100%;}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
}
.page{padding:16px;}
.topbar{
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:space-between;
  position:sticky;
  top:0;
  background:var(--bg);
  padding:10px 0;
  z-index:10;
}
.title{
  font-weight:900;
  font-size:22px;
  letter-spacing:0.5px;
}
.content{display:grid;gap:16px;max-width:900px;margin:0 auto;}
.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  box-shadow:0 1px 0 rgba(0,0,0,0.03);
}
h1{font-size:28px;margin:0 0 8px 0;letter-spacing:0.5px;}
h2{font-size:22px;margin:0 0 10px 0;}
.big{font-size:18px;font-weight:800;letter-spacing:0.2px;}
.h1{font-size:26px;font-weight:900;}
.small{font-size:14px;color:var(--muted);}
label{display:block;font-size:14px;font-weight:900;margin:12px 0 6px;letter-spacing:0.4px;}
input,select,textarea{
  width:100%;
  font-size:20px;
  padding:14px 12px;
  border-radius:12px;
  border:2px solid var(--border);
  outline:none;
  background:#fff;
}
textarea{font-size:18px;}
input:focus,select:focus,textarea:focus{border-color:var(--primary);}
.row{display:flex;gap:12px;align-items:end;}
.grow{flex:1;}
hr{border:none;border-top:1px solid var(--border);margin:14px 0;}
.btn{
  display:inline-block;
  border:2px solid var(--border);
  background:#fff;
  color:var(--text);
  font-weight:900;
  font-size:18px;
  padding:14px 16px;
  border-radius:14px;
  text-decoration:none;
  cursor:pointer;
  text-align:center;
  user-select:none;
}
.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff;}
.btn.block{display:block;width:100%;font-size:22px;padding:18px 16px;border-radius:16px;}
.notice{padding:14px 14px;border-radius:14px;border:2px solid var(--border);font-weight:900;font-size:16px;}
.notice.ok{border-color:#bfe6c1;background:#eef9ef;}
.notice.bad{border-color:#f3b4b4;background:#fff0f0;}
.notice.warn{border-color:#f1d19b;background:#fff7e8;}
.list{display:grid;gap:12px;}
.listItem{
  display:flex;
  gap:12px;
  align-items:flex-start;
  justify-content:space-between;
  border:2px solid var(--border);
  border-radius:16px;
  padding:14px;
}
.liTitle{font-size:26px;font-weight:1000;letter-spacing:0.3px;}
.liSub{font-size:18px;font-weight:800;color:#1b1b1b;margin-top:2px;}
.liNote{font-size:16px;font-weight:700;color:var(--muted);margin-top:6px;}
.liMeta{font-size:13px;font-weight:800;color:var(--muted);margin-top:8px;}
.badge{display:inline-block;padding:6px 10px;border-radius:999px;font-weight:1000;font-size:13px;border:2px solid var(--border);}
.badge.open{background:#f3f3f0;}
.badge.in{background:#e8f3ff;border-color:#c9e2ff;}
.badge.paused{background:#fff7e8;border-color:#f1d19b;}
.badge.done{background:#eef9ef;border-color:#bfe6c1;}
.pre{background:#fafafa;border:1px solid var(--border);border-radius:12px;padding:12px;overflow:auto;font-size:13px;}
@media (max-width:520px){
  .row{flex-direction:column;align-items:stretch;}
  .topbar{flex-wrap:wrap;}
  .btn{flex:1;}
}

/* --- Tech flow v2 --- */
.fieldHeader{
  position:sticky;
  top:56px; /* below topbar */
  z-index:20;
  padding:14px 16px;
  border-radius:16px;
  border:3px solid var(--border);
  background:#f6f6f6;
}
.fieldHeader.run{
  border-color: var(--primary);
  background:#e7f7ed;
}
.fieldHeader.pause{
  border-color: var(--danger);
  background:#fde8ea;
}
.fhLine{
  font-size:18px;
  font-weight:900;
  margin:2px 0;
}
.fhLabel{opacity:0.85;}
.fhVal{font-weight:1000;}
.fhTimer{
  margin-top:10px;
  font-size:34px;
  font-weight:1100;
  letter-spacing:1px;
}
.bigInput{
  width:100%;
  font-size:34px;
  font-weight:1100;
  padding:16px 14px;
  border-radius:16px;
  border:3px solid var(--border);
  margin:10px 0 14px;
}
.bigInput:focus{border-color:var(--primary);}
