:root{--green:#0e5b51;--mint:#e9f6f2;--ink:#102522;--muted:#62736f;--line:#d7e5e1;--danger:#a33a3a;--white:#fff;--shadow:0 16px 40px rgba(8,55,49,.1)}*{box-sizing:border-box}html{background:#f4f8f7;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}body{margin:0;overflow-x:hidden}.wrap{width:min(1080px,calc(100% - 32px));margin:auto}.hero{background:linear-gradient(135deg,#073e38,#0e6f63);color:#fff;padding:22px 0 70px;position:relative}.hero.compact{padding-bottom:38px}.brand{display:flex;gap:12px;align-items:center}.brand strong,.brand small{display:block}.brand small{opacity:.75}.mark{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#fff;color:var(--green);font-weight:900;font-size:24px}.hero-copy{padding-top:56px}.eyebrow{font-size:12px;letter-spacing:.18em;font-weight:800;color:#9ce2d6}.hero h1{font-size:clamp(36px,8vw,72px);line-height:1.08;margin:.2em 0}.hero p{max-width:650px}.main{padding:28px 0 72px}.grid,.dashboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;margin:0 0 18px;box-shadow:var(--shadow)}.num{font-weight:900;color:#58a99e}.btn{border:0;border-radius:14px;padding:13px 18px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center}.primary{background:var(--green);color:#fff}.secondary{background:var(--mint);color:var(--green)}.danger{background:#fff0f0;color:var(--danger);border:1px solid #f0caca}.buttons{display:flex;gap:10px;flex-wrap:wrap}.field{margin:0 0 14px}.field label{display:block;font-weight:750;margin-bottom:7px}.control{width:100%;min-height:48px;border:1px solid #bfd3ce;border-radius:12px;padding:10px 12px;background:#fff;font:inherit}textarea.control{min-height:100px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.status{display:none;padding:14px 16px;border-radius:14px;margin-bottom:16px}.status.show{display:block}.status.ok{background:#e8f7ef;color:#17643e}.status.error{background:#fff0f0;color:#9b3030}.hidden{display:none!important}.profile,.section-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.badge,.pill{display:inline-flex;padding:5px 10px;border-radius:999px;background:var(--mint);color:var(--green);font-size:12px;font-weight:800}.muted,.hint{color:var(--muted)}.child-card{border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:12px}.plan{display:grid;grid-template-columns:100px 1fr auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.plan:first-of-type{border-top:0}.alert{padding:10px 12px;border-radius:12px;background:#fff4dd;color:#775100;font-weight:700}.item{border-bottom:1px solid var(--line);padding:13px 0}.item:last-child{border-bottom:0}.item h3{margin:0 0 5px}.mini{border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px}.checks{display:flex;gap:8px;flex-wrap:wrap}.checks label{background:var(--mint);padding:9px 11px;border-radius:10px}.footer{text-align:center;padding:24px;color:var(--muted)}@media(max-width:760px){.grid,.two{grid-template-columns:1fr}.profile{align-items:flex-start}.plan{grid-template-columns:1fr}.buttons .btn{width:100%}.hero h1{font-size:40px}.card{padding:18px;border-radius:18px}}
/* GAKUDO-5 staff operations */
.staff-page{background:#eef5f3}.staff-profile{display:flex;justify-content:space-between;align-items:center}.summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.summary-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.summary-card span{display:block;color:var(--muted);font-size:12px;font-weight:700}.summary-card strong{font-size:30px}.summary-alert{background:#fff4dd;border-color:#efca72}.compact-control{width:auto;min-width:150px}.staff-child-list{display:grid;gap:14px}.staff-child-card{border:1px solid var(--line);border-left:7px solid #8ca8a2;border-radius:18px;padding:16px;background:#fff}.staff-child-card.state-arrived,.staff-child-card.state-pickup_waiting{border-left-color:#19866f}.staff-child-card.state-overdue_arrival,.staff-child-card.state-overdue_departure{border-left-color:#d07814;background:#fffbf2}.staff-child-card.state-departed{opacity:.7}.staff-child-card.state-absent{border-left-color:#999;background:#f7f7f7}.staff-child-main{display:flex;justify-content:space-between;gap:14px}.staff-child-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.staff-child-title h3{margin:0}.state-badge,.allergy-badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.state-badge{background:var(--mint);color:var(--green)}.allergy-badge{background:#fff0d5;color:#754d00}.pickup-note,.guardian-note{border-radius:10px;padding:9px 11px}.pickup-note{background:#eef8ff}.guardian-note{background:#f6f0ff}.operation-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.subform{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}.handoff-item{display:flex;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:13px 0}.handoff-item.priority-urgent,.handoff-item.priority-high{background:#fff8ee;padding:13px;border-radius:12px;margin:8px 0}.staff-dialog{width:min(680px,calc(100% - 24px));border:0;border-radius:22px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.3)}.staff-dialog::backdrop{background:rgba(0,28,25,.5)}.dialog-close{float:right;border:0;background:#eee;border-radius:999px;width:36px;height:36px;font-size:24px}.allergy-panel{background:#fff1d9;border:1px solid #efc46f;border-radius:14px;padding:14px;margin:12px 0}.check-line{display:flex;gap:8px;align-items:center;margin:12px 0;font-weight:750}
@media(max-width:900px){.summary-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:620px){.summary-grid{grid-template-columns:repeat(2,1fr)}.staff-profile,.staff-child-main,.handoff-item{align-items:flex-start;flex-direction:column}.compact-control{width:100%}.operation-buttons .btn{flex:1}.staff-dialog{padding:18px}}

.holiday-date-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.holiday-date{display:grid;gap:4px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#f8fbfa}.holiday-date input{width:20px;height:20px}.holiday-date small{color:var(--muted)}.holiday-date.disabled{opacity:.55;background:#f3f3f3}@media(max-width:760px){.holiday-date-grid{grid-template-columns:repeat(2,1fr)}}
