/* プラネット電工 作業管理フォーム 共通スタイル */
*{box-sizing:border-box}
body{margin:0;background:#eef3f8;color:#2b3a4a;-webkit-text-size-adjust:100%;
  font-family:-apple-system,BlinkMacSystemFont,'Hiragino Sans','Yu Gothic',sans-serif}
.wrap{max-width:480px;margin:0 auto;padding:22px 16px 48px}
.logo{text-align:center;margin:4px 0 2px}
.logo img{width:84px;height:auto}
h1{text-align:center;font-size:19px;color:#15406b;letter-spacing:.06em;margin:10px 0 18px;font-weight:700}
.card{background:#fff;border-radius:14px;padding:20px 16px;border-top:5px solid #1b6ca8;
  box-shadow:0 6px 20px rgba(21,64,107,.12)}
label{display:block;font-size:13px;font-weight:600;color:#41566b;margin:16px 0 6px}
label:first-child{margin-top:0}
.req{color:#fff;background:#1b6ca8;font-size:10px;border-radius:8px;padding:2px 8px;margin-left:8px;vertical-align:middle}
.opt{color:#7c8aa0;background:#eef2f6;font-size:10px;border-radius:8px;padding:2px 8px;margin-left:8px;vertical-align:middle}
select,input,textarea{width:100%;padding:13px 12px;font-size:16px;border:1.5px solid #d3e0ec;border-radius:10px;
  background:#fbfdff;-webkit-appearance:none;font-family:inherit}
/* チェックボックスは自前描画（ネイティブ appearance に依存せず、どの端末でもチェックを表示） */
input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;min-width:22px;
  padding:0;margin:0;border:2px solid #b9c8d8;border-radius:6px;background:#fff;position:relative;flex:0 0 auto;
  vertical-align:middle;cursor:pointer;box-shadow:none}
input[type=checkbox]:checked{background:#1b6ca8;border-color:#1b6ca8}
input[type=checkbox]:checked::after{content:'';position:absolute;left:6px;top:2px;width:6px;height:11px;box-sizing:border-box;
  border:solid #fff;border-width:0 3px 3px 0;transform:rotate(45deg)}
textarea{min-height:76px;resize:vertical}
select:focus,input:focus,textarea:focus{outline:none;border-color:#1b6ca8;background:#fff;
  box-shadow:0 0 0 3px rgba(27,108,168,.15)}
.row2{display:flex;gap:10px}
.row2>div{flex:1}
.seg{display:flex;gap:8px;margin-top:2px}
.seg label{flex:1;margin:0}
.seg input{display:none}
.seg span{display:block;text-align:center;padding:12px 6px;border:1.5px solid #d3e0ec;border-radius:10px;
  background:#fbfdff;font-size:15px;font-weight:600;color:#41566b}
.seg input:checked+span{background:#1b6ca8;border-color:#1b6ca8;color:#fff}
button.primary{width:100%;margin-top:24px;padding:15px;font-size:16px;font-weight:700;color:#fff;border:none;border-radius:12px;
  background:linear-gradient(135deg,#3a93cf,#15517f);box-shadow:0 5px 14px rgba(21,81,127,.32)}
button.primary:active{opacity:.85}
button.primary:disabled{opacity:.5}
.hint{font-size:12px;color:#7c8aa0;line-height:1.6;margin:6px 0 0}
.center{text-align:center}
.loading{text-align:center;padding:48px 0;color:#7c8aa0}
.spinner{width:38px;height:38px;border:4px solid #d3e0ec;border-top-color:#1b6ca8;border-radius:50%;
  margin:0 auto 14px;animation:spin .9s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.result{text-align:center}
.result .big{font-size:23px;font-weight:700;color:#1b8a5a;margin:6px 0 8px}
.result.err .big{color:#d23f3f}
.btnline{display:block;text-align:center;margin-top:22px;padding:14px;border-radius:12px;background:#06C755;color:#fff;
  font-weight:700;text-decoration:none;box-shadow:0 4px 12px rgba(6,199,85,.3)}
.btnline:active{opacity:.85}
.btnagain{display:block;text-align:center;margin-top:22px;padding:14px;border-radius:12px;color:#fff;font-weight:700;
  text-decoration:none;background:linear-gradient(135deg,#3a93cf,#15517f);box-shadow:0 4px 12px rgba(21,81,127,.3)}
.btnagain:active{opacity:.85}
.btnagain+.btnline{margin-top:12px}
.note{font-size:13px;color:#7c8aa0;line-height:1.7;margin-top:12px}
.err-msg{color:#d23f3f;font-weight:600;font-size:14px;text-align:center;padding:30px 10px}
.greet{font-size:13px;color:#1b6ca8;background:#e9f3fb;border-radius:10px;padding:10px 12px;margin-bottom:4px}
.foot{text-align:center;font-size:11px;color:#9aa7b6;margin-top:22px}
.menu-link{display:block;text-align:center;margin:10px 0;padding:15px;border-radius:12px;color:#fff;font-weight:700;
  text-decoration:none;background:linear-gradient(135deg,#3a93cf,#15517f);box-shadow:0 5px 14px rgba(21,81,127,.3)}
.menu-link:active{opacity:.85}

/* ===== ヘルプ（応援）タグ方式 ===== */
.chips{display:flex;flex-wrap:wrap;gap:0;margin-top:2px}
.chip-add{margin:0 8px 8px 0;padding:9px 14px;border:1.5px solid #d3e0ec;border-radius:999px;background:#fbfdff;
  font-size:14px;font-weight:600;color:#41566b}
.chip-add.on{background:#1b6ca8;border-color:#1b6ca8;color:#fff}
.chip-add:active{opacity:.85}
.helper-add{display:flex;gap:8px;margin-top:8px}
.helper-add input{flex:1}
.addbtn{flex:0 0 auto;padding:0 18px;border:none;border-radius:10px;background:#1b6ca8;color:#fff;font-weight:700;font-size:14px}
.addbtn:active{opacity:.85}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;min-height:8px}
.tag{display:inline-flex;align-items:center;gap:8px;padding:8px 10px 8px 13px;border-radius:999px;background:#e9f3fb;color:#15517f;
  font-size:14px;font-weight:700;touch-action:manipulation;cursor:pointer}
.tag:active{opacity:.7}
.tag,.tag *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}
.tag i{font-style:normal;font-size:14px;line-height:1;color:#fff;background:#9aafc2;border-radius:50%;width:20px;height:20px;
  display:inline-flex;align-items:center;justify-content:center}
.tags-empty{font-size:12px;color:#9aa7b6}
.seg3 label{flex:1}
.seg4 label{flex:1}
.tmpl-list{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}
.tmpl-card{background:#f4f8fc;border:1.5px solid #d3e0ec;border-radius:10px;padding:10px 12px;
  cursor:pointer;flex:0 0 calc(50% - 4px);min-width:120px;transition:border-color .15s,background .15s}
.tmpl-card:active,.tmpl-card.on{background:#e0edfa;border-color:#1b6ca8}
.tmpl-time{font-size:15px;font-weight:800;color:#15406b;line-height:1.2;letter-spacing:.02em}
.tmpl-site{font-size:11px;color:#6b7d8e;margin-top:4px;line-height:1.4}
.sechead{margin:20px 0 4px;font-size:13px;font-weight:800;color:#15406b;border-left:4px solid #1b6ca8;padding-left:8px}
.ninku-box{margin:8px 0 4px;font-size:15px;color:#2b3a4a;background:#eef3f8;border-radius:10px;padding:10px 12px}
.ninku-box b{font-size:20px;color:#15406b;margin:0 2px}
.total-box{margin-top:12px;padding:14px 12px;border-radius:12px;background:#fff2cc;border:1.5px solid #f0c419;
  font-size:16px;font-weight:800;color:#15406b;display:flex;justify-content:space-between;align-items:center}
.total-box span{font-size:22px}
.optblock{margin-top:14px;border-top:1px solid #e8eef4;padding-top:8px}
.optblock>summary{list-style:none;cursor:pointer;color:#1b6ca8;font-size:14px;font-weight:700;padding:8px 2px}
.optblock>summary::-webkit-details-marker{display:none}
.optblock[open]>summary{color:#41566b}

/* ===== 確認モーダル（ドメイン名を出さない自前ダイアログ）===== */
.pd-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(20,40,60,.45);display:flex;align-items:center;
  justify-content:center;z-index:9999;padding:24px}
.pd-modal-box{background:#fff;border-radius:14px;padding:22px 18px 16px;max-width:340px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.pd-modal-msg{margin:0 0 18px;font-size:15px;line-height:1.6;color:#2b3a4a;text-align:center;white-space:pre-wrap}
.pd-modal-btns{display:flex;gap:10px}
.pd-modal-btns button{flex:1;padding:13px;border:none;border-radius:10px;font-size:15px;font-weight:700}
.pd-modal-ok{background:#1b6ca8;color:#fff}
.pd-modal-cancel{background:#eef2f6;color:#41566b}

/* ===== 管理ダッシュボード ===== */
.dwrap{max-width:560px;margin:0 auto;padding:14px 12px 96px}
.dhead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:2px 0 12px}
.dhead h1{margin:0;font-size:18px}
.datebar{display:flex;align-items:center;gap:8px;justify-content:center;margin:0 0 12px}
.datebar button{width:42px;height:42px;border:none;border-radius:10px;background:#fff;color:#15406b;font-size:20px;font-weight:700;
  box-shadow:0 3px 10px rgba(21,64,107,.12)}
.datebar button:active{opacity:.7}
.datebar .dlabel{flex:1;text-align:center;font-size:15px;font-weight:700;color:#15406b}
.datebar input[type=date]{display:none}
.today-link{display:block;text-align:center;font-size:12px;color:#1b6ca8;margin:-6px 0 12px;text-decoration:underline}
.sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.sum .s{background:#fff;border-radius:12px;padding:10px 6px;text-align:center;box-shadow:0 4px 12px rgba(21,64,107,.1)}
.sum .s .n{font-size:24px;font-weight:800;line-height:1.1;color:#15406b}
.sum .s .t{font-size:11px;color:#7c8aa0;margin-top:3px}
.sum .s.alert .n{color:#d23f3f}
.sum .s.good .n{color:#1b8a5a}
.wcard{background:#fff;border-radius:13px;padding:13px 14px;margin-bottom:10px;box-shadow:0 4px 14px rgba(21,64,107,.1);
  border-left:5px solid #c9d6e3}
.wcard.s-late,.wcard.s-miss,.wcard.s-overdue{border-left-color:#e0533d}
.wcard.s-work{border-left-color:#3a93cf}
.wcard.s-done{border-left-color:#1b8a5a}
.wcard .wtop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.wcard .wname{font-size:17px;font-weight:800;color:#1c2c3c}
.wcard .wsite{font-size:13px;color:#5a6c80;margin-top:3px;line-height:1.5}
.wcard .whelp{font-size:12px;color:#1b6ca8;margin-top:4px}
.wcard .wtimes{display:flex;gap:8px;margin-top:10px}
.wcard .wt{flex:1;background:#f5f8fb;border-radius:9px;padding:8px 9px}
.wcard .wt .k{font-size:10px;color:#8a97a8}
.wcard .wt .v{font-size:14px;font-weight:700;color:#2b3a4a;margin-top:2px}
.wcard .wt .v .sch{font-weight:500;color:#9aa7b6;font-size:12px}
.bdg{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap}
.b-ok{background:#e3f5ea;color:#1b8a5a}
.b-late{background:#fde7e3;color:#d23f3f}
.b-miss{background:#d23f3f;color:#fff}
.b-work{background:#e5f0fa;color:#1b6ca8}
.b-wait{background:#eef2f6;color:#7c8aa0}
.b-done{background:#e3f5ea;color:#1b8a5a}
.b-overdue{background:#d23f3f;color:#fff}
.dempty{text-align:center;color:#7c8aa0;padding:40px 10px;font-size:14px}
.dfoot{text-align:center;font-size:11px;color:#9aa7b6;margin-top:8px}

/* ===== 予定カレンダー（月/週） ===== */
.calwrap{margin-top:6px}
.calhead{font-size:14px;font-weight:800;color:#15406b;margin:18px 2px 10px;border-left:4px solid #1b6ca8;padding-left:8px}
.calbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.calbar>button{width:38px;height:38px;border:none;border-radius:9px;background:#fff;color:#15406b;font-size:18px;font-weight:700;box-shadow:0 3px 10px rgba(21,64,107,.1)}
.calbar>button:active{opacity:.7}
.callabel{flex:1;text-align:center;font-size:15px;font-weight:800;color:#15406b}
.calview{display:flex;gap:4px}
.calview button{width:40px;height:38px;border:1.5px solid #d3e0ec;border-radius:9px;background:#fff;color:#41566b;font-size:13px;font-weight:700}
.calview button.on{background:#1b6ca8;border-color:#1b6ca8;color:#fff}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.calhdr{margin-bottom:3px}
.cwd{text-align:center;font-size:11px;font-weight:700;color:#7c8aa0;padding:2px 0}
.cwd.sun{color:#d23f3f}.cwd.sat{color:#1b6ca8}
.cday{min-height:58px;background:#fff;border-radius:7px;padding:3px;cursor:pointer;box-shadow:0 1px 4px rgba(21,64,107,.06);overflow:hidden}
.cday.other{background:#f3f6f9;opacity:.55}
.cday.today{box-shadow:0 0 0 2px #1b6ca8 inset}
.cday.sel{background:#eaf3fb;box-shadow:0 0 0 2px #3a93cf inset}
.cnum{font-size:11px;font-weight:700;color:#41566b;text-align:right;line-height:1.2}
.cday.other .cnum{color:#9aa7b6}
.cents{margin-top:1px}
.cent{display:block;font-size:9px;line-height:1.4;padding:0 3px;border-radius:3px;margin-top:1px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.st-ok{background:#e3f5ea;color:#1b8a5a}
.st-plan{background:#eef2f6;color:#7c8aa0}
.cmore{display:block;font-size:9px;color:#8a97a8;padding:0 3px}
.caldetail{margin-top:14px}
.cdet-date{font-size:13px;font-weight:800;color:#15406b;margin:4px 0 8px}
.cdet-row{background:#fff;border-radius:9px;padding:10px 12px;margin-bottom:7px;box-shadow:0 2px 8px rgba(21,64,107,.07)}
.cdet-w{font-size:15px;font-weight:800;color:#1c2c3c}
.cdet-s{font-size:13px;color:#5a6c80;margin-top:3px;line-height:1.5}
.calweek{margin-top:2px}
.cwrow{display:flex;gap:10px;background:#fff;border-radius:9px;padding:10px;margin-bottom:7px;box-shadow:0 2px 8px rgba(21,64,107,.07)}
.cwrow.today{box-shadow:0 0 0 2px #1b6ca8 inset,0 2px 8px rgba(21,64,107,.07)}
.cwdate{flex:0 0 50px;text-align:center;font-size:15px;font-weight:800;color:#15406b;border-right:1px solid #e8eef4}
.cwdate small{display:block;font-size:11px;color:#7c8aa0;font-weight:700}
.cwents{flex:1;min-width:0}
.cwent{font-size:13px;color:#2b3a4a;padding:3px 0;line-height:1.5;word-break:break-all}
.cwent.st-ok{background:none}.cwent.st-plan{background:none}
.cwent.st-ok b{color:#1b8a5a}.cwent.st-plan b{color:#7c8aa0}
.cwempty{color:#b9c4d1;font-size:13px}

/* ===== 予定管理 ===== */
.selrow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px;padding:8px 12px;background:#fff;border-radius:10px;
  box-shadow:0 3px 10px rgba(21,64,107,.08);font-size:13px;font-weight:700;color:#41566b}
.selopt{display:flex;align-items:center;gap:8px;margin:0}
.selopt input{flex:0 0 auto}
.selplan{padding:7px 13px;border:1.5px solid #1b6ca8;border-radius:999px;background:#fff;color:#1b6ca8;font-size:12px;font-weight:700}
.selplan:active{opacity:.8}
.detailbtn{display:inline-block;margin-top:9px;padding:5px 14px;border:1px solid #d3e0ec;border-radius:999px;background:#fbfdff;color:#5a6c80;font-size:12px;font-weight:700}
.detailbtn:active{opacity:.8}
.sdetail{display:none;margin-top:10px;padding:10px 12px;background:#f5f8fb;border-radius:9px}
.dl{display:flex;gap:8px;font-size:13px;padding:4px 0;border-bottom:1px solid #e8eef4}
.dl:last-child{border-bottom:none}
.dk{flex:0 0 72px;color:#8a97a8;font-weight:700}
.dv{flex:1;color:#2b3a4a;word-break:break-all}
.reqbtns{display:flex;gap:8px;margin-top:10px}
.rb{flex:1;padding:10px;border:none;border-radius:9px;font-size:13px;font-weight:700;color:#fff}
.rb:disabled{opacity:.5}
.rb-ok{background:#1b8a5a}
.rb-ng{background:#9aa7b6}
.sdate{font-size:13px;font-weight:800;color:#15406b;margin:14px 2px 8px;border-left:4px solid #1b6ca8;padding-left:8px}
.srow{display:flex;align-items:flex-start;gap:12px;background:#fff;border-radius:11px;padding:14px 13px;margin-bottom:8px;
  box-shadow:0 3px 10px rgba(21,64,107,.08);cursor:pointer}
.srow.sel{background:#eaf3fb;box-shadow:0 0 0 2px #1b6ca8 inset,0 3px 10px rgba(21,64,107,.08)}
.srow input.spick{margin-top:1px}
.sinfo{flex:1;min-width:0}
.sname{display:block;font-size:15px;font-weight:800;color:#1c2c3c}
.ssite{display:block;font-size:13px;color:#5a6c80;margin-top:3px;line-height:1.5}
.shelp{font-size:12px;color:#1b6ca8;margin-top:3px}
.actionbar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);box-shadow:0 -4px 16px rgba(21,64,107,.12);max-width:560px;margin:0 auto}
.ab-btn{flex:1;padding:14px;border:none;border-radius:12px;font-size:15px;font-weight:700;color:#fff}
.ab-btn:disabled{opacity:.5}
.ab-confirm{background:linear-gradient(135deg,#3a93cf,#15517f)}
.ab-cancel{background:linear-gradient(135deg,#e0644f,#c0392b)}
.reslist{margin-top:14px;text-align:left}
.resitem{padding:10px 12px;border-radius:9px;background:#f5f8fb;margin-bottom:8px;font-size:14px;font-weight:700;color:#2b3a4a}

/* ===== 予定登録 モード切替 / 一括追加 ===== */
.mode-bar{display:flex;gap:8px;margin-bottom:14px}
.mode-tab{flex:1;padding:11px;border:1.5px solid #d3e0ec;border-radius:10px;background:#fff;font-size:14px;font-weight:700;color:#41566b;cursor:pointer}
.mode-tab.on{background:#1b6ca8;color:#fff;border-color:#1b6ca8}
.mode-tab:active{opacity:.8}
.bulk-row-card{background:#fff;border-radius:14px;padding:16px 14px;border:1.5px solid #d3e0ec;border-top:4px solid #3a93cf;margin-bottom:14px}
.brow-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.brow-num{font-size:14px;font-weight:800;color:#15406b}
.brow-del{background:none;border:1.5px solid rgba(224,83,61,.5);color:#e0533d;border-radius:8px;padding:5px 14px;font-size:12px;font-weight:700;cursor:pointer}
.brow-del:active{opacity:.8}
.bchip{display:inline-block;background:#eef3f8;border:1.5px solid #d3e0ec;border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600;color:#41566b;margin:3px;cursor:pointer;-webkit-user-select:none;user-select:none}
.bchip.on{background:#1b6ca8;color:#fff;border-color:#1b6ca8}
.bchip:active{opacity:.8}
button.secondary-btn{width:100%;margin-top:4px;padding:13px;font-size:15px;font-weight:700;color:#1b6ca8;border:2px dashed #1b6ca8;border-radius:12px;background:#eef3f8;cursor:pointer}
button.secondary-btn:active{opacity:.8}

/* ===== 編集オーバーレイ / 一括出勤パネル ===== */
.edit-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(20,40,60,.5);display:flex;align-items:flex-end;justify-content:center;z-index:9998;padding:0}
.edit-box{background:#fff;border-radius:18px 18px 0 0;padding:20px 18px calc(24px + env(safe-area-inset-bottom));width:100%;max-width:480px;max-height:85vh;overflow-y:auto}
.edit-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:16px;font-weight:800;color:#15406b}
.edit-close{background:none;border:none;font-size:20px;color:#9aa7b6;padding:4px 8px;cursor:pointer}
.edit-close:active{opacity:.7}
.edit-label{display:block;font-size:13px;font-weight:700;color:#41566b;margin:12px 0 5px}
.srow-btns{display:flex;gap:6px;margin-top:6px}
.editbtn{padding:5px 13px;border:1.5px solid #1b6ca8;border-radius:999px;background:#fff;color:#1b6ca8;font-size:12px;font-weight:700;cursor:pointer}
.editbtn:active{opacity:.8}
.batch-row{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #e8eef4}
.batch-row:last-child{border-bottom:none}
.batch-info{flex:1;font-size:14px;line-height:1.5}
