:root{color:#1f2933;background:#f3f1eb;font-family:Hiragino Sans,Yu Gothic,Meiryo,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f3f1eb}button,input,textarea,select{font:inherit}.app-shell{min-height:100vh;display:grid;place-items:start center;padding:24px 18px 40px}.home-panel{width:min(100%,720px);padding:32px;border:1px solid #d7d0c4;border-radius:8px;background:#fffdf8;box-shadow:0 16px 40px #40362714}.home-header{padding-bottom:22px;border-bottom:1px solid #e3ddd3}.eyebrow{margin:0 0 12px;color:#35635b;font-size:1.05rem;font-weight:700}h1{margin:0;color:#17324d;font-size:clamp(2.35rem,8vw,3.8rem);line-height:1.12;letter-spacing:0}.status-list{display:grid;gap:14px;margin:24px 0 0}.status-list div{display:grid;gap:6px;padding:16px;border:1px solid #e0d9ce;border-radius:8px;background:#fbf8f1}.status-list dt{color:#5d6a77;font-size:1rem;font-weight:700}.status-list dd{margin:0;color:#1f2933;font-size:1.3rem;font-weight:800;line-height:1.45}.status-badge{display:inline-flex;align-items:center;min-height:42px;padding:6px 14px;border-radius:8px;border:2px solid #b96b2c;background:#fff1df;color:#7c3d13}.target-day{display:grid;gap:8px;margin:24px 0 0;padding:18px;border:1px solid #d7e1de;border-radius:8px;background:#f2faf7}.target-day span{color:#4c6670;font-size:1rem;font-weight:700}.target-day strong{color:#17324d;font-size:1.45rem;line-height:1.35}.lead{margin:26px 0 0;color:#344454;font-size:1.22rem;line-height:1.85}.shortage-calendar-hero{display:grid;gap:16px;margin:26px 0 0;padding:20px;border:2px solid #3a756d;border-radius:8px;background:#f2faf7;color:#244642}.shortage-calendar-hero p{margin:0;font-size:1.04rem;font-weight:750;line-height:1.7;overflow-wrap:anywhere}.shortage-calendar-hero p:first-child{color:#35635b;font-size:.98rem;font-weight:850;line-height:1.35}.shortage-calendar-hero h2{margin:4px 0 8px;color:#17324d;font-size:1.45rem;line-height:1.35}.shortage-calendar-hero-button{width:100%;min-height:64px;padding:16px 18px;border:2px solid #174b65;border-radius:8px;background:#1f6b8a;color:#fff;font-size:1.12rem;font-weight:850;line-height:1.35;text-align:center;cursor:pointer}.shortage-calendar-hero-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.action-list{display:grid;gap:14px;margin:30px 0 0}.action-button{width:100%;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border:2px solid #174b65;border-radius:8px;background:#1f6b8a;color:#fff;font-size:1.22rem;font-weight:700;line-height:1.35;text-align:left;cursor:pointer}.action-button strong{flex:0 0 auto;padding:5px 10px;border-radius:8px;background:#fff1df;color:#7c3d13;font-size:.95rem;line-height:1.3}.action-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.action-button:nth-child(2),.action-button:nth-child(3),.action-button:nth-child(4){background:#fff;color:#174b65}.primary-action-list .action-button{background:#1f6b8a;color:#fff}.menu-toggle-button{width:100%;min-height:56px;margin:18px 0 0;padding:14px 18px;border:2px solid #174b65;border-radius:8px;background:#fff;color:#174b65;font-size:1.08rem;font-weight:800;line-height:1.35;text-align:center;cursor:pointer}.menu-toggle-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.collapsible-menu{margin:12px 0 0;padding:16px;border:1px solid #d7d0c4;border-radius:8px;background:#fbf8f1}.collapsible-menu .status-list{margin:0}.collapsible-menu .secondary-action-button:first-child,.collapsible-menu .clear-draft-button:first-child{margin-top:0}.request-options .choice-button,.request-options .choice-button:first-child{background:#fff;color:#174b65}.request-options .choice-button.is-selected{border-color:#b96b2c;background:#fff8ec;color:#17324d}.shortage-nudge-card{display:grid;gap:10px;margin:22px 0 0;padding:18px;border:1px solid #b8cac5;border-radius:8px;background:#f2faf7;color:#244642}.shortage-nudge-card h2{margin:0;color:#17324d;font-size:1.24rem;line-height:1.4}.shortage-nudge-card p{margin:0;font-size:1.05rem;font-weight:700;line-height:1.7}.request-expectation-card{display:grid;gap:9px;margin:22px 0 0;padding:18px;border:1px solid #d7e1de;border-radius:8px;background:#f7fbf8;color:#2d4945}.request-expectation-card h2{margin:0;color:#17324d;font-size:1.18rem;line-height:1.4}.request-expectation-card p{margin:0;font-size:1.03rem;font-weight:700;line-height:1.65}.selected-summary{margin:22px 0 0;padding:16px 18px;border:2px solid #d99b35;border-radius:8px;background:#fff8ec;color:#4d3510;font-size:1.15rem;font-weight:800;line-height:1.6}.calendar-block{margin:26px 0 0;overflow-x:auto;-webkit-overflow-scrolling:touch}.calendar-block h2{margin:0 0 16px;color:#17324d;font-size:1.45rem;line-height:1.3}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-width:352px}.calendar-weekdays{margin:0 0 8px}.calendar-weekdays span{color:#4c6670;font-size:1rem;font-weight:800;line-height:1.4;text-align:center}.calendar-cell{min-height:56px}.calendar-day{width:100%;min-height:62px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 4px;border:2px solid #174b65;border-radius:8px;background:#fff;color:#174b65;font-size:1.15rem;font-weight:800;line-height:1.2;cursor:pointer}.calendar-day strong{color:#7c3d13;font-size:.7rem;line-height:1.2}.calendar-status-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:3px;width:100%}.calendar-status-badge{max-width:100%;padding:2px 5px;border:1px solid #b8cac5;border-radius:6px;background:#f2faf7;color:#28534d;font-size:.62rem;font-weight:850;line-height:1.15;overflow-wrap:anywhere}.calendar-day.is-selected{border-color:#b96b2c;background:#fff8ec;color:#17324d}.calendar-day:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.save-next-button{width:100%;min-height:64px;margin:24px 0 0;padding:16px 18px;border:2px solid #174b65;border-radius:8px;background:#1f6b8a;color:#fff;font-size:1.2rem;font-weight:800;line-height:1.35;text-align:center;cursor:pointer}.save-next-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.save-next-button:disabled{border-color:#8a938f;background:#e5e7e3;color:#4f5a56;cursor:not-allowed;opacity:.9}.mock-save-message{margin:16px 0 0;padding:16px 18px;border:2px solid #d99b35;border-radius:8px;background:#fff8ec;color:#4d3510;font-size:1.12rem;font-weight:800;line-height:1.6}.back-button{width:100%;min-height:58px;margin:22px 0 0;padding:14px 18px;border:2px solid #7b817f;border-radius:8px;background:#fff;color:#2f3a42;font-size:1.12rem;font-weight:700;line-height:1.35;text-align:center;cursor:pointer}.back-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.clear-draft-button{width:100%;min-height:52px;margin:16px 0 0;padding:12px 18px;border:2px solid #9f3f33;border-radius:8px;background:#fff;color:#7d241e;font-size:1.05rem;font-weight:800;line-height:1.35;text-align:center;cursor:pointer}.clear-draft-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.secondary-action-button{width:100%;min-height:56px;margin:16px 0 0;padding:14px 18px;border:2px solid #174b65;border-radius:8px;background:#fff;color:#174b65;font-size:1.08rem;font-weight:800;line-height:1.35;text-align:center;cursor:pointer}.secondary-action-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.secondary-action-button:disabled{border-color:#8a938f;background:#e5e7e3;color:#4f5a56;cursor:not-allowed;opacity:.95}.monthly-draft-list,.driver-cooperation-list{display:grid;gap:16px;margin:24px 0 0}.driver-cooperation-card{display:grid;gap:10px;padding:18px;border:1px solid #d7e1de;border-radius:8px;background:#f7fbf8;color:#2d4945}.driver-cooperation-card h2{margin:0;color:#17324d;font-size:1.35rem;line-height:1.35}.driver-cooperation-card p{margin:0;font-size:1.08rem;font-weight:700;line-height:1.65}.cooperation-request-button{width:100%;min-height:56px;margin:4px 0 0;padding:14px 18px;border:2px solid #174b65;border-radius:8px;background:#1f6b8a;color:#fff;font-size:1.08rem;font-weight:800;line-height:1.35;text-align:center;cursor:pointer}.cooperation-request-button:focus-visible,.replacement-day-button:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.cooperation-request-temp-panel{display:grid;gap:12px;margin:6px 0 0;padding:16px;border:1px solid #d7d0c4;border-radius:8px;background:#fffdf8}.cooperation-request-temp-panel h3{margin:0;color:#17324d;font-size:1.12rem;line-height:1.4}.replacement-day-options{display:grid;grid-template-columns:1fr;gap:8px}.replacement-day-button{min-width:0;min-height:52px;padding:10px 8px;border:2px solid #174b65;border-radius:8px;background:#fff;color:#174b65;font-size:1rem;font-weight:800;line-height:1.25;text-align:center;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;cursor:pointer}.replacement-day-button.is-selected{border-color:#b96b2c;background:#fff8ec;color:#17324d}.cooperation-request-note{margin:0;color:#4d3510;font-size:1rem;font-weight:800;line-height:1.55}@media(min-width:420px){.replacement-day-options{grid-template-columns:repeat(3,minmax(0,1fr))}}.monthly-draft-item{padding:18px;border:1px solid #d7d0c4;border-radius:8px;background:#fbf8f1}.monthly-draft-item h2{margin:0;color:#17324d;font-size:1.28rem;line-height:1.35}.monthly-draft-item dl{display:grid;gap:12px;margin:16px 0 0}.monthly-draft-item dl div{display:grid;gap:4px}.monthly-draft-item dt{color:#5d6a77;font-size:.95rem;font-weight:800}.monthly-draft-item dd{margin:0;color:#1f2933;font-size:1.05rem;font-weight:700;line-height:1.45;overflow-wrap:anywhere}.driver-metrics-panel,.shortage-navigation-panel,.shortage-calendar-panel{width:min(100%,920px)}.metrics-summary{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}.metrics-summary span{padding:8px 12px;border:1px solid #b8cac5;border-radius:8px;background:#f2faf7;color:#28534d;font-size:.98rem;font-weight:800;line-height:1.35}.driver-metrics-list{display:grid;gap:16px;margin:24px 0 0}.change-log-section{display:grid;gap:14px;margin:26px 0 0;padding:18px;border:1px solid #d7d0c4;border-radius:8px;background:#fffdf8}.cooperation-candidate-section{display:grid;gap:14px;margin:26px 0 0;padding:18px;border:1px solid #b8cac5;border-radius:8px;background:#f7fbf8}.tentative-assignment-section{display:grid;gap:14px;margin:26px 0 0;padding:18px;border:1px solid #d7d0c4;border-radius:8px;background:#fffdf8}.change-log-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.change-log-header p{margin:0 0 6px;color:#5d6a77;font-size:.95rem;font-weight:800;line-height:1.35}.change-log-header h2{margin:0;color:#17324d;font-size:1.45rem;line-height:1.35}.change-log-header span{flex:0 0 auto;padding:8px 12px;border:1px solid #b8cac5;border-radius:8px;background:#f2faf7;color:#28534d;font-size:.95rem;font-weight:800;line-height:1.35}.change-log-description,.change-log-empty{margin:0;color:#344454;font-size:1.02rem;font-weight:700;line-height:1.65}.change-log-list,.cooperation-candidate-list,.tentative-assignment-list{display:grid;gap:14px}.cooperation-candidate-group{min-width:0;padding:16px;border:1px solid #b8cac5;border-radius:8px;background:#f2faf7}.cooperation-candidate-group-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.cooperation-candidate-group-header p{margin:0 0 6px;color:#5d6a77;font-size:.9rem;font-weight:800;line-height:1.35}.cooperation-candidate-group-header h3{margin:0;color:#17324d;font-size:1.35rem;line-height:1.35;overflow-wrap:anywhere}.cooperation-candidate-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.cooperation-candidate-badges span{padding:7px 10px;border:1px solid #d99b35;border-radius:8px;background:#fff8ec;color:#6b4512;font-size:.9rem;font-weight:800;line-height:1.35;overflow-wrap:anywhere}.cooperation-candidate-group-note{margin:12px 0 0;color:#244642;font-size:1rem;font-weight:700;line-height:1.6;overflow-wrap:anywhere}.cooperation-candidate-group-list{display:grid;gap:12px;margin:14px 0 0}.change-log-card{min-width:0;padding:16px;border:1px solid #d7e1de;border-radius:8px;background:#f7fbf8}.cooperation-candidate-card{min-width:0;padding:16px;border:1px solid #d7d0c4;border-radius:8px;background:#fffdf8}.tentative-assignment-card{min-width:0;padding:16px;border:1px solid #d7e1de;border-radius:8px;background:#fff}.cooperation-candidate-card .secondary-action-button{white-space:normal;overflow-wrap:anywhere}.change-log-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.change-log-card-header p{margin:0 0 5px;color:#5d6a77;font-size:.9rem;font-weight:800;line-height:1.35}.change-log-card-header h3{margin:0;color:#17324d;font-size:1.18rem;line-height:1.35}.change-log-card-header span{flex:0 0 auto;padding:6px 10px;border:1px solid #d99b35;border-radius:8px;background:#fff8ec;color:#6b4512;font-size:.9rem;font-weight:800;line-height:1.3}.change-log-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}.change-log-grid div{min-width:0;padding:10px 12px;border:1px solid #e0d9ce;border-radius:8px;background:#fff}.change-log-grid dt{color:#5d6a77;font-size:.88rem;font-weight:800;line-height:1.35}.change-log-grid dd{margin:4px 0 0;color:#1f2933;font-size:.98rem;font-weight:750;line-height:1.45;overflow-wrap:anywhere}.change-log-note{margin:12px 0 0;padding:12px;border-left:5px solid #d99b35;border-radius:8px;background:#fff8ec;color:#594218;font-size:.98rem;font-weight:700;line-height:1.55}.driver-metrics-card{padding:18px;border:1px solid #d7d0c4;border-radius:8px;background:#fbf8f1}.driver-metrics-card.has-higher-load{border-color:#d99b35;background:#fffaf0}.driver-metrics-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.driver-metrics-card-header p{margin:0 0 6px;color:#5d6a77;font-size:.95rem;font-weight:800;line-height:1.35}.driver-metrics-card-header h2{margin:0;color:#17324d;font-size:1.45rem;line-height:1.35}.load-badge{flex:0 0 auto;max-width:210px;padding:8px 12px;border:1px solid #d99b35;border-radius:8px;background:#fff8ec;color:#6b4512;font-size:.95rem;font-weight:800;line-height:1.35}.driver-metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 0}.driver-metrics-grid div{display:grid;gap:4px;min-width:0;padding:12px;border:1px solid #e0d9ce;border-radius:8px;background:#fffdf8}.driver-metrics-grid dt{color:#5d6a77;font-size:.92rem;font-weight:800}.driver-metrics-grid dd{margin:0;color:#1f2933;font-size:1.04rem;font-weight:750;line-height:1.45;overflow-wrap:anywhere}.shortage-list{display:grid;gap:16px;margin:24px 0 0}.shortage-calendar-month{margin:26px 0 0}.shortage-calendar-month h2{margin:0 0 16px;color:#17324d;font-size:1.45rem;line-height:1.3}.shortage-calendar-legend{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.shortage-calendar-legend>span{min-width:0;display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #d7d0c4;border-radius:8px;background:#fffdf8;color:#344454;font-size:.82rem;font-weight:850;line-height:1.25}.shortage-calendar-legend-chip{width:14px;height:14px;flex:0 0 14px;border:2px solid #d7d0c4;border-radius:4px}.shortage-calendar-legend-chip.is-critical{border-color:#cf7a63;background:#ffe5dc}.shortage-calendar-legend-chip.is-warning{border-color:#d8a23c;background:#fff1c9}.shortage-calendar-legend-chip.is-candidate{border-color:#5c9b7c;background:#e5f5ec}.shortage-calendar-legend-chip.is-tentative{border-color:#7f70b3;background:#eee8ff}.shortage-calendar-weekdays,.shortage-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.shortage-calendar-weekdays{margin:0 0 8px}.shortage-calendar-weekdays span{color:#4c6670;font-size:.95rem;font-weight:850;line-height:1.4;text-align:center}.shortage-calendar-cell{min-width:0;min-height:72px}.shortage-calendar-day{width:100%;min-height:72px;display:grid;align-content:start;justify-items:center;gap:3px;padding:7px 3px 6px;border:2px solid #d7d0c4;border-radius:8px;background:#fff;color:#17324d;font-size:.76rem;font-weight:850;line-height:1.15;text-align:center;cursor:pointer}.shortage-calendar-day strong,.shortage-calendar-day span{max-width:100%;overflow-wrap:anywhere}.shortage-calendar-day strong{padding:1px 4px;border-radius:6px;background:#ffffff94;font-size:.72rem;line-height:1.15}.shortage-calendar-day-number{color:#17324d;font-size:1.05rem;font-weight:850;line-height:1.15}.shortage-calendar-day.is-critical{border-color:#cf7a63;background:#ffe5dc;color:#5d2e25}.shortage-calendar-day.is-warning{border-color:#d8a23c;background:#fff1c9;color:#5c4216}.shortage-calendar-day.is-candidate{border-color:#5c9b7c;background:#e5f5ec;color:#214c3a}.shortage-calendar-day.is-tentative{border-color:#7f70b3;background:#eee8ff;color:#3b315c}.shortage-calendar-day.is-selected{border-color:#174b65;box-shadow:0 0 0 3px #1f6b8a2e}.shortage-calendar-day:focus-visible{outline:4px solid #d99b35;outline-offset:3px}.shortage-calendar-detail{display:grid;gap:14px;margin:24px 0 0;padding:18px;border:1px solid #d7d0c4;border-radius:8px;background:#fffdf8}.shortage-calendar-note{margin:0;color:#344454;font-size:1.02rem;font-weight:700;line-height:1.65;overflow-wrap:anywhere}.shortage-card{padding:18px;border:1px solid #d7d0c4;border-radius:8px;background:#fbf8f1}.shortage-card.is-critical{border-color:#c7834a;background:#fff8ec}.shortage-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.shortage-card-header p{margin:0 0 6px;color:#5d6a77;font-size:.95rem;font-weight:800;line-height:1.35}.shortage-card-header h2{margin:0;color:#17324d;font-size:1.36rem;line-height:1.35}.shortage-level-badge{flex:0 0 auto;max-width:210px;padding:8px 12px;border:1px solid #d99b35;border-radius:8px;background:#fff8ec;color:#6b4512;font-size:.95rem;font-weight:800;line-height:1.35}.shortage-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 0}.shortage-stats div{display:grid;gap:4px;padding:12px;border:1px solid #e0d9ce;border-radius:8px;background:#fffdf8}.shortage-stats dt{color:#5d6a77;font-size:.92rem;font-weight:800}.shortage-stats dd{margin:0;color:#17324d;font-size:1.18rem;font-weight:850;line-height:1.35}.candidate-block{margin:18px 0 0;padding:14px;border:1px solid #d7e1de;border-radius:8px;background:#f2faf7}.candidate-block h3{margin:0;color:#28534d;font-size:1.05rem;line-height:1.35}.candidate-block ul{display:grid;gap:10px;margin:12px 0 0;padding:0;list-style:none}.candidate-block li{display:grid;gap:4px;padding:10px 12px;border-radius:8px;background:#fff}.candidate-block strong{color:#17324d;font-size:1rem;line-height:1.35}.candidate-block span{color:#344454;font-size:.98rem;font-weight:700;line-height:1.45}.admin-memo{display:grid;gap:6px;margin:16px 0 0;padding:14px;border-left:5px solid #d99b35;border-radius:8px;background:#fffdf8;color:#344454;font-size:1rem;font-weight:700;line-height:1.55}.admin-memo span{color:#6b4512;font-size:.95rem;font-weight:850}.shortage-cooperation-action{display:grid;gap:10px;margin:16px 0 0;padding:14px;border:1px solid #d7e1de;border-radius:8px;background:#f2faf7}.shortage-cooperation-action p{margin:0;color:#244642;font-size:1rem;font-weight:700;line-height:1.6;overflow-wrap:anywhere}.shortage-cooperation-action .secondary-action-button{margin-top:2px;white-space:normal;overflow-wrap:anywhere}.note{margin:30px 0 0;padding:18px 20px;border-left:6px solid #d99b35;background:#fff6e6;color:#594218;font-size:1.05rem;line-height:1.7}@media(max-width:560px){.app-shell{padding:18px 14px}.home-panel{padding:24px 18px}.lead,.action-button,.save-next-button,.back-button{font-size:1.12rem}.action-button{align-items:flex-start;flex-direction:column}.action-button strong{font-size:.9rem}.status-list dd{font-size:1.18rem}.target-day strong{font-size:1.26rem}.driver-metrics-card-header,.driver-metrics-grid,.change-log-grid,.shortage-card-header,.shortage-stats{grid-template-columns:1fr}.driver-metrics-card-header,.change-log-header,.cooperation-candidate-group-header,.change-log-card-header,.shortage-card-header{display:grid}.cooperation-candidate-badges{justify-content:flex-start}.load-badge,.change-log-header span,.change-log-card-header span,.shortage-level-badge{max-width:none}}
