/* ============ 色（テーマ） ============ */
:root{
  --bg:#EEF3F6;--card:#fff;--ink:#1B2740;--sub:#5B6B82;--line:#D3DCE5;
  --ac:#0B6E79;--acink:#fff;--done:#2C7A4B;--donebg:#E3F3E9;--warn:#B45309;--warnbg:#FFF1DC;--hot:#12324F;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0F1724;--card:#182235;--ink:#EAF0F7;--sub:#9DB0C7;--line:#2B3A52;
    --ac:#5CC4CF;--acink:#06222A;--done:#7FD3A0;--donebg:#173325;--warn:#F2B368;--warnbg:#3A2A12;--hot:#0A3B4A
  }
}
:root[data-theme="light"]{--bg:#FFFFFF;--card:#FFFFFF;--ink:#111827;--sub:#4B5563;--line:#9CA3AF}
:root[data-theme="black"]{
  --bg:#000;--card:#111;--ink:#F5F5F5;--sub:#A3A3A3;--line:#3A3A3A;
  --ac:#5CC4CF;--acink:#06222A;--done:#7FD3A0;--donebg:#12291c;--warn:#F2B368;--warnbg:#2b1f0d;--hot:#0A3B4A
}
:root[data-theme="hc"]{
  --bg:#000;--card:#000;--ink:#fff;--sub:#FFE066;--line:#fff;
  --ac:#FFE600;--acink:#000;--done:#7CFF9B;--donebg:#0a3d0a;--warn:#FFB84D;--warnbg:#3d2a00;--hot:#222
}

/* ============ 基本 ============ */
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"BIZ UDPGothic","Hiragino Kaku Gothic ProN","Noto Sans JP",Meiryo,sans-serif;font-size:18px;line-height:1.6}
main{max-width:560px;margin:0 auto;padding:16px 16px 110px}
button{font:inherit;cursor:pointer;border-radius:14px;padding:12px 18px;background:var(--card);color:var(--ink);border:2px solid var(--line)}
button:focus-visible,input:focus-visible{outline:3px solid var(--ac);outline-offset:2px}
button:disabled{opacity:.5;cursor:default}
h2{font-size:1.25rem;margin:4px 0 6px}
label{display:block;font-size:.95rem;color:var(--sub);margin:10px 0 4px}
input[type=time],input[type=text]{width:100%;font:inherit;font-size:1.3rem;padding:10px 12px;border-radius:12px;border:2px solid var(--line);background:var(--bg);color:var(--ink)}
input:disabled{opacity:.4}
input[type=checkbox]{width:24px;height:24px;flex:none;margin:2px 0 0}
a.btn{display:inline-block;text-decoration:none;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:14px;padding:12px 18px}
.box{background:var(--card);border:2px solid var(--line);border-radius:18px;padding:16px;margin-bottom:16px}
.small{font-size:.9rem;color:var(--sub);margin:0 0 10px}
.note{margin:0 0 14px;color:var(--warn);font-size:.95rem}
.msg{min-height:1.5em;color:var(--warn);margin:8px 0 0;font-size:.95rem}
.row{display:flex;gap:10px;flex-wrap:wrap}
.ic{vertical-align:-.2em;margin-right:6px;flex:none}

/* ============ きょう ============ */
.head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.date{font-size:1.15rem;color:var(--sub)}
.clock{font-size:2.6rem;font-weight:700;letter-spacing:.02em}
.now{display:flex;flex-direction:column;justify-content:center;text-align:center;min-height:62vh;min-height:max(320px,calc(100svh - 270px));background:var(--ac);color:var(--acink);border-radius:22px;padding:28px 20px;margin:8px 0 18px}
.now.hot{background:var(--hot);color:#fff}
.now.fin{background:var(--done);color:var(--bg)}
.now.idle{background:var(--card);color:var(--sub);border:2px solid var(--line)}
.lab{margin:0;font-size:1rem;opacity:.85}
.now .lab{font-size:1.15rem}
.big{margin:4px 0 0;font-size:2rem;font-weight:700;line-height:1.35;word-break:break-all}
.big .ic{vertical-align:-.15em;margin-right:10px}
.now .big{font-size:clamp(2.2rem,10vw,3.4rem);line-height:1.3;margin:10px 0 0}
.now .big .ic{display:block;width:1.6em;height:1.6em;margin:0 auto 14px}
.ok{display:block;width:100%;margin-top:16px;padding:18px;font-size:1.5rem;font-weight:700;background:#fff;color:#12324F;border-color:#fff}
.now .ok{padding:24px;font-size:1.8rem;margin-top:28px}
.later{display:block;width:100%;margin-top:10px;background:transparent;color:#fff;border-color:#ffffff88}
.now .later{padding:16px;font-size:1.1rem}
.left{background:var(--warnbg);color:var(--warn);border-radius:16px;padding:14px 16px;margin-bottom:18px;border:2px solid var(--warn)}
.left ul{margin:6px 0 10px;padding-left:1.2em}
.left button{background:transparent;color:inherit;border-color:currentColor;padding:8px 14px}
ul.list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.list li{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;background:var(--card);border:2px solid var(--line);border-radius:16px;padding:10px 14px}
.list li.done{background:var(--donebg);border-color:transparent}
.list .t{font-weight:700;font-size:1.1rem}
.list .t.any{font-size:1rem}
.list .x{word-break:break-all;font-size:.95rem}
.list .tag,.list .und{grid-column:2;justify-self:start;font-size:.9rem;color:var(--sub)}
.list .mk{grid-column:2;justify-self:start;padding:6px 18px;border-color:var(--ac);font-weight:700}
.tag.d{color:var(--done);font-weight:700}
.tag.w{color:var(--warn);font-weight:700}
.tag.s{color:var(--ac);font-weight:700}
.und{padding:2px 10px;border-radius:10px}

/* ============ きろく ============ */
.monbar{display:flex;justify-content:space-between;align-items:center;margin:8px 0}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal .h{font-size:.85rem;color:var(--sub)}
.cal button{padding:4px 0;border-radius:10px;min-height:54px;font-size:.9rem;line-height:1.2;display:flex;flex-direction:column;align-items:center;justify-content:center}
.cal button b{font-size:1.2rem}
.cal .c1{background:var(--donebg)}
.cal .c0{background:var(--warnbg)}
.cal .td{border-color:var(--ac)}
.cal .sel{outline:3px solid var(--ink);outline-offset:1px}
.an{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin:10px 0}
.an .bar{grid-column:1/3}
.bar{height:12px;background:var(--line);border-radius:6px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--ink)}
.pre{white-space:pre-wrap;background:var(--bg);border:2px solid var(--line);border-radius:12px;padding:10px;font-size:.95rem}

/* ============ 設定 ============ */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips button{padding:8px 14px;min-width:44px}
.chips button.on{background:var(--ac);color:var(--acink);border-color:var(--ac)}
.chk{display:flex;gap:10px;align-items:flex-start;color:var(--ink);margin:12px 0 4px}
.icons{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:6px}
.icons button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 2px;font-size:.72rem;border-radius:12px}
.icons button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.add{width:100%;margin-top:16px;background:var(--ac);color:var(--acink);border-color:var(--ac);font-weight:700;font-size:1.15rem}
.reg{list-style:none;margin:0;padding:0}
.reg li{display:flex;gap:10px;align-items:center;padding:12px 0}
.reg .x{flex:1;word-break:break-all}
.reg small{color:var(--sub);display:block}
.reg button{padding:6px 12px}
.sw{display:inline-block;width:18px;height:18px;border-radius:50%;margin-right:6px;vertical-align:-4px;border:2px solid var(--ink)}
details{padding:8px 0}
summary{font-weight:700;cursor:pointer;padding:6px 0}
details p,details li{font-size:.95rem;margin:6px 0}
details ul{margin:4px 0;padding-left:1.2em}

/* ============ 下のタブ ============ */
.tabs{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--card);padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));gap:10px}
.tabs button{flex:1;border-color:transparent;font-weight:700;font-size:1.1rem}
.tabs button.on{background:var(--ac);color:var(--acink)}

/* ============ お知らせ（全画面） ============ */
.alert{position:fixed;inset:0;background:var(--hot);color:#fff;z-index:10;display:flex;flex-direction:column;justify-content:center;padding:24px;padding-top:calc(24px + env(safe-area-inset-top,0px));padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.alert .big{font-size:2.4rem;margin:8px 0 28px}
.alert .ok{margin-top:0}
.alert .ic{display:block;margin:0 0 12px}
@media (prefers-reduced-motion:no-preference){
  .alert:not([hidden]){animation:pop .25s ease-out}
  @keyframes pop{from{transform:scale(.97);opacity:0}}
}

/* ============ ライセンス認証 ============ */
.license{position:fixed;inset:0;z-index:20;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px}
.license .box{width:100%;max-width:440px;margin:0}
.license input{text-transform:uppercase;letter-spacing:.08em}
.license .add{margin-top:12px}
.lic-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
