/* CHOSASHI-7-R1 IPAD LAYOUT OPTIMIZE 20260717 */
:root{
  --navy-950:#0f2336;--navy-900:#17324d;--navy-800:#244660;
  --teal-750:#0f6f70;--teal-700:#147d7e;--teal-600:#199395;--teal-100:#dff2f0;
  --sand-100:#f7f1e4;--paper:#fff;--surface:#f2f6f7;--line:#d3dee3;
  --line-dark:#b7c7ce;--text:#1d2b35;--muted:#5b6b76;
  --success:#17643b;--success-bg:#e6f5ec;--warning:#8a5800;--warning-bg:#fff4d7;
  --danger:#a3272e;--danger-bg:#fdebed;--info:#185a89;--info-bg:#e7f2fa;
  --shadow:0 13px 34px rgba(15,35,54,.12);
  --font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Yu Gothic UI","Hiragino Kaku Gothic ProN",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;min-width:320px;color:var(--text);font-family:var(--font);font-size:18px;line-height:1.65;
  background:
    radial-gradient(circle at 100% 0,rgba(20,125,126,.14),transparent 28rem),
    linear-gradient(180deg,#edf3f5 0,#f8f5ee 27rem,#f3f6f7 100%);
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
a{color:inherit}
.top-note{
  padding:max(10px,env(safe-area-inset-top)) 15px 10px;color:#fff;background:var(--navy-950);
  text-align:center;font-size:14px;font-weight:700
}
.hero{color:#fff;background:linear-gradient(135deg,var(--navy-950),var(--navy-900) 58%,var(--teal-700))}
.hero-inner{width:min(1260px,calc(100% - 24px));margin:auto;padding:22px 0 30px}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{display:grid;place-items:center;width:51px;height:51px;flex:0 0 51px;border-radius:15px;color:var(--navy-950);background:var(--sand-100);font-size:23px;font-weight:900}
.brand strong{display:block;font-size:21px}.brand small{display:block;color:rgba(255,255,255,.72);font-size:13px}
.hero-row{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-top:22px}
.hero h1{margin:0;font-size:clamp(29px,5vw,43px);line-height:1.3}
.hero p{margin:7px 0 0;color:rgba(255,255,255,.84);font-size:16px}
.mode-chip{padding:10px 14px;border:1px solid rgba(255,255,255,.25);border-radius:14px;background:rgba(255,255,255,.08);font-size:14px;font-weight:850}
.main{width:min(1260px,calc(100% - 20px));margin:-17px auto 75px;position:relative;z-index:2}
.control-bar{
  display:grid;grid-template-columns:minmax(170px,.7fr) minmax(220px,1fr) auto auto;gap:11px;align-items:end;
  padding:16px;border:1px solid var(--line);border-radius:19px;background:rgba(255,255,255,.97);box-shadow:var(--shadow)
}
.field label{display:block;margin-bottom:6px;color:var(--navy-950);font-size:14px;font-weight:850}
input,select,textarea{
  width:100%;min-height:51px;padding:10px 13px;border:2px solid #c4d0d6;border-radius:12px;color:var(--text);background:#fff;
  font-size:17px;outline:none
}
textarea{min-height:115px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--teal-700);box-shadow:0 0 0 4px rgba(20,125,126,.13)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:51px;padding:11px 17px;border:0;border-radius:13px;
  font-size:16px;font-weight:850;text-decoration:none;transition:.15s
}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn-primary{color:#fff;background:linear-gradient(135deg,var(--teal-700),var(--teal-600));box-shadow:0 8px 18px rgba(20,125,126,.23)}
.btn-navy{color:#fff;background:var(--navy-900)}
.btn-secondary{color:var(--navy-900);border:2px solid var(--line-dark);background:#fff}
.btn-danger{color:var(--danger);border:2px solid #e4b6bb;background:#fff}
.btn-success{color:#fff;background:var(--success)}
.btn-warning{color:#654100;background:var(--warning-bg);border:2px solid #eccb82}
.btn-small{min-height:42px;padding:8px 12px;font-size:14px}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.metric{padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 7px 18px rgba(15,35,54,.06)}
.metric b{display:block;color:var(--navy-950);font-size:29px;line-height:1.2}
.metric span{display:block;margin-top:6px;color:var(--muted);font-size:13px;font-weight:700}
.content-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);gap:16px;margin-top:16px;align-items:start}
.panel{padding:20px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow)}
.panel+.panel{margin-top:16px}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.panel-head h2,.panel-head h3{margin:0;color:var(--navy-950);line-height:1.4}
.panel-head h2{font-size:25px}.panel-head h3{font-size:20px}
.panel-head p{margin:4px 0 0;color:var(--muted);font-size:14px}
.card-list{display:grid;gap:12px}
.appointment-card{
  padding:17px;border:2px solid var(--line);border-radius:17px;background:#fff;cursor:pointer;transition:.16s
}
.appointment-card:hover{border-color:#8ec3bf;box-shadow:0 6px 17px rgba(15,35,54,.07)}
.appointment-card.current{border-color:var(--teal-700);background:#f1faf9}
.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:13px}
.time{color:var(--navy-950);font-size:23px;font-weight:900;line-height:1.2}
.type{margin-top:4px;color:var(--teal-700);font-size:13px;font-weight:900;letter-spacing:.04em}
.title{margin-top:3px;color:var(--navy-950);font-size:19px;font-weight:900}
.meta{margin-top:5px;color:var(--muted);font-size:14px}
.status{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.status.teal{color:#0b5d5e;background:var(--teal-100)}
.status.green{color:var(--success);background:var(--success-bg)}
.status.yellow{color:var(--warning);background:var(--warning-bg)}
.status.red{color:var(--danger);background:var(--danger-bg)}
.status.blue{color:var(--info);background:var(--info-bg)}
.status.gray{color:#53636d;background:#e8edef}
.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.task-card,.compact-card{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}
.task-card+.task-card,.compact-card+.compact-card{margin-top:9px}
.task-title{color:var(--navy-950);font-weight:850}.task-sub{margin-top:3px;color:var(--muted);font-size:13px}
.empty{padding:24px;border:1px dashed #a8bac3;border-radius:15px;color:var(--muted);background:var(--surface);text-align:center;font-size:14px}
.notice{margin-top:14px;padding:13px 15px;border-left:5px solid var(--teal-700);border-radius:8px 13px 13px 8px;color:var(--navy-900);background:var(--teal-100);font-size:14px}
.notice.warning{border-left-color:#b87600;color:#694500;background:var(--warning-bg)}
.drawer-backdrop{position:fixed;inset:0;z-index:80;background:rgba(15,35,54,.52);backdrop-filter:blur(3px)}
.drawer{position:fixed;z-index:81;right:0;top:0;width:min(790px,100vw);height:100vh;overflow:auto;padding:18px;background:#f1f5f6;box-shadow:-18px 0 50px rgba(0,0,0,.22)}
.drawer-head{
  position:sticky;top:-18px;z-index:5;display:flex;justify-content:space-between;align-items:flex-start;gap:13px;
  margin:-18px -18px 15px;padding:16px 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97);backdrop-filter:blur(9px)
}
.drawer-head h2{margin:0;color:var(--navy-950);font-size:24px}.drawer-head p{margin:3px 0 0;color:var(--muted);font-size:13px}
.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.summary-box{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.summary-box span{display:block;color:var(--muted);font-size:12px;font-weight:750}.summary-box strong{display:block;margin-top:3px;color:var(--navy-950);font-size:15px;overflow-wrap:anywhere}
.action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}
.action-grid .btn{min-height:63px;font-size:16px}
.section{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:17px;background:#fff}
.section h3{margin:0;color:var(--navy-950);font-size:20px}.section-lead{margin:4px 0 0;color:var(--muted);font-size:13px}
.neighbor-grid,.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.neighbor,.photo{padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.neighbor strong,.photo strong{display:block;color:var(--navy-950)}
.neighbor span,.photo span{display:block;margin-top:3px;color:var(--muted);font-size:12px}
.photo{cursor:pointer}.photo:hover{border-color:#8ec3bf}
.modal-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:18px;background:rgba(15,35,54,.58)}
.modal{width:min(820px,100%);max-height:94vh;overflow:auto;padding:22px;border-radius:22px;background:#fff;box-shadow:0 22px 65px rgba(0,0,0,.28)}
.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:13px;margin-bottom:15px}
.modal-head h2{margin:0;color:var(--navy-950);font-size:25px}.modal-head p{margin:3px 0 0;color:var(--muted);font-size:13px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.field.full{grid-column:1/-1}
.check-row{display:flex;align-items:flex-start;gap:11px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.check-row input{width:24px;height:24px;min-height:24px;flex:0 0 24px;margin:3px 0 0;accent-color:var(--teal-700)}
.help{margin:5px 0 0;color:var(--muted);font-size:12px}.error{min-height:1.4em;margin:6px 0 0;color:var(--danger);font-size:13px;font-weight:800}
.file-box{margin-top:14px;padding:15px;border:2px dashed #9eb7c0;border-radius:16px;background:var(--surface)}
.file-row{display:grid;grid-template-columns:1fr 180px;gap:10px}.file-list{margin-top:10px}
.file-item{display:flex;justify-content:space-between;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:13px}
.progress{height:11px;margin-top:13px;border-radius:999px;background:#dbe5e9;overflow:hidden}.progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--teal-700),var(--teal-600));transition:width .2s}
.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}
.login-screen{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,var(--navy-950),var(--navy-900) 58%,var(--teal-700))}
.login-card{width:min(530px,100%);padding:29px;border-radius:23px;background:#fff;box-shadow:0 22px 65px rgba(0,0,0,.28)}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:19px}.login-brand strong{color:var(--navy-950);font-size:20px}
.login-card h2{margin:0;color:var(--navy-950);font-size:28px}.login-card p{margin:7px 0 0;color:var(--muted);font-size:14px}
.code-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:18px}
.loading{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:rgba(15,35,54,.68);backdrop-filter:blur(4px)}
.loading-card{width:min(350px,calc(100% - 30px));padding:25px;border-radius:20px;background:#fff;text-align:center}
.spinner{width:44px;height:44px;margin:0 auto 12px;border:5px solid #d8e8e7;border-top-color:var(--teal-700);border-radius:50%;animation:spin .85s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.toast{position:fixed;z-index:400;left:50%;bottom:max(18px,env(safe-area-inset-bottom));width:min(620px,calc(100% - 28px));transform:translate(-50%,30px);padding:14px 17px;border-radius:13px;color:#fff;background:var(--navy-950);box-shadow:0 15px 40px rgba(0,0,0,.28);opacity:0;pointer-events:none;transition:.25s;text-align:center;font-size:15px;font-weight:800}
.toast.show{transform:translate(-50%,0);opacity:1}.toast.error{background:var(--danger)}
.demo-badge{position:fixed;right:11px;bottom:max(11px,env(safe-area-inset-bottom));z-index:40;padding:7px 10px;border-radius:999px;color:#fff;background:#9a6400;font-size:12px;font-weight:850}
.footer{padding:27px 16px calc(27px + env(safe-area-inset-bottom));color:#d7e1e7;background:var(--navy-950);text-align:center;font-size:13px}
body[data-mode="ipad"] .main{width:min(1450px,calc(100% - 26px))}
body[data-mode="ipad"] .appointment-card{min-height:178px}
body[data-mode="ipad"] .card-list.appointments{grid-template-columns:repeat(2,minmax(0,1fr))}
body[data-mode="ipad"] .card-list.appointments.single{grid-template-columns:1fr}
body[data-mode="ipad"] .content-grid{grid-template-columns:minmax(0,1.5fr) minmax(360px,.5fr)}
@media(max-width:900px){
  body{font-size:17px}.hero-row{align-items:flex-start;flex-direction:column}
  .control-bar{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr 1fr}
  .content-grid{grid-template-columns:1fr}body[data-mode="ipad"] .card-list.appointments{grid-template-columns:1fr}
  .action-grid{grid-template-columns:1fr 1fr}.neighbor-grid,.photo-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
  .main{width:min(100% - 14px,1260px)}.control-bar{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}
  .panel{padding:15px}.card-top,.panel-head,.drawer-head,.modal-head{flex-direction:column}
  .drawer{padding:12px}.drawer-head{top:-12px;margin:-12px -12px 13px;padding:14px}
  .summary-grid,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.action-grid{grid-template-columns:1fr 1fr}
  .file-row{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}
  .code-row{grid-template-columns:1fr}
}
@media(max-width:420px){.metric-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr}.time{font-size:21px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
/* CHOSASHI-7-R2 CACHE-BUST + IPAD SINGLE CARD FIX 20260717 */
.content-grid > *{align-self:start}
body[data-mode="ipad"] #appointmentList > .appointment-card:only-child{
  grid-column:1 / -1;
  width:100%;
}
body[data-mode="ipad"] #appointmentList:has(> .appointment-card:only-child){
  grid-template-columns:1fr;
}
