/* ==================================================================
   inmycalendar — the app itself: board, calendar, rail, modal
   Edited by hand; there is no build step. Load order matters:
   site.css first, app.css second, so app rules win where they overlap.
*/

.iso{width:var(--wIso);text-align:center;flex:none;font-family:"JetBrains Mono",monospace;
  font-size:13px;font-weight:700;letter-spacing:.02em;color:#e8c98a;
  background:transparent;border:0;border-bottom:1px dotted transparent;padding:0}
.iso:hover{border-bottom-color:#e8c98a}
.meta{width:var(--wMeta);flex:none;font-size:10.5px;color:#a9bdb2;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dpick{position:absolute;opacity:0;width:26px;height:26px}
main{padding:12px 0 0}
.shell{display:grid;grid-template-columns:minmax(0,1fr) var(--rail);gap:16px;align-items:start}
.pane{min-width:0}
.rail{min-width:0;display:flex;flex-direction:column;gap:10px}
.rbox{background:var(--card);border:1px solid var(--rule)}
.rbox>h3{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#f0e9d6;
  background:var(--pine);padding:4px 8px}
.rbody{padding:7px 8px}
.cat{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.cat i{width:12px;height:12px;border-radius:2px;border:1px solid rgba(0,0,0,.22);flex:none}
.cat input{flex:1;min-width:0;background:transparent;border:0;border-bottom:1px dotted var(--rule);
  font-size:11.5px;padding:1px 2px}
.cat input:focus{border-bottom-color:var(--pine)}
.tk{border-top:1px solid var(--rule2);padding:4px 0 4px 0;font-size:11px}
.tk:first-child{border-top:0}
.tk.next{border-left:2px solid var(--pine);padding-left:5px;margin-left:-7px}
.tkl{display:block;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkr{display:flex;align-items:center;gap:3px}
.tkc{flex:1;min-width:0;color:var(--pine);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tkc.fut{color:#8a5a1c}
.tk select{background:transparent;border:0;font-size:10px;color:var(--soft);max-width:56px}
.tk .x{background:transparent;border:0;color:#a06060;padding:0 1px;font-size:12px;line-height:1}
.tform{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--rule2);
  margin-top:6px;padding-top:7px}
.tform input[type=text],.tform select{width:100%;background:var(--card2);border:1px solid var(--rule);
  padding:2px 6px;font-size:11px;height:24px;border-radius:2px}
.tform label{font-size:10.5px;color:var(--soft);display:flex;align-items:center;gap:4px}
.go{background:var(--pine);border:1px solid var(--pine);color:#fdf8ec;height:24px;padding:0 10px;
  border-radius:2px;font-size:11.5px}
.go:hover{background:#365c4c}
.err{color:#8c2f2f;font-size:10.5px}
.none{font-size:11px;color:var(--soft);font-style:italic;padding:2px}
.kb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow-x:hidden}
.col{min-width:0;display:flex;flex-direction:column;background:rgba(253,248,236,.6);
  border:1px solid var(--rule2);border-radius:3px;padding:6px}
.ch{display:flex;align-items:center;gap:5px;height:24px;padding:0 8px;border-radius:2px;color:#fff;
  font-family:Oswald,sans-serif;font-size:12px;letter-spacing:.11em;text-transform:uppercase}
.ch .n{margin-left:auto;font-family:"JetBrains Mono",monospace;font-size:11px;opacity:.9}
.c-todo{background:var(--todo)}
.c-doing{background:var(--doing)}
.c-done{background:var(--done)}
.cadd{width:100%;margin:5px 0 6px;background:var(--card);border:1px solid var(--rule);
  border-radius:2px;padding:2px 6px;font-size:11.5px;height:24px;min-width:0}
.cadd::placeholder{color:#a89f88}
.lane{display:flex;flex-direction:column;gap:4px;min-width:0;min-height:24px}
.lane.over{outline:1.5px dashed var(--pine);outline-offset:2px}
.t{display:flex;align-items:center;gap:5px;min-width:0;min-height:25px;
  padding:3px 5px 3px 6px;border:1px solid;border-radius:2px;box-shadow:1px 1px 3px rgba(35,43,51,.13)}
.t.s-todo{background:var(--todoF);border-color:var(--todoE)}
.t.s-doing{background:var(--doingF);border-color:var(--doingE)}
.t.s-done{background:var(--doneF);border-color:var(--doneE)}
.t .grip{flex:none;color:rgba(35,43,51,.35);font-size:11px;cursor:grab;letter-spacing:-1px}
.t .txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}
.t.s-done .txt{text-decoration:line-through;opacity:.7}
.t .ops{display:flex;gap:2px;flex:none;visibility:hidden}
.t:hover .ops,.t:focus-within .ops{visibility:visible}
.t.dragging{opacity:.4}
.op{background:rgba(255,255,255,.7);border:1px solid rgba(35,43,51,.16);width:19px;height:18px;
  border-radius:2px;font-size:10.5px;line-height:1;padding:0;color:var(--ink)}
.op:hover:not(:disabled){background:#fff}
.op:disabled{opacity:.3;cursor:not-allowed}
.op.x:hover{background:#f6dede}
.t .edit{flex:1;min-width:0;font-size:12.5px;border:1px solid var(--pine);border-radius:2px;
  padding:1px 4px;background:#fff}
.ro{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow-x:hidden}
.rc{min-width:0;border:1px solid var(--rule);background:var(--card);border-radius:3px;overflow:hidden}
.rc>.rh{height:24px;display:flex;align-items:center;gap:5px;padding:0 8px;color:#fff;
  font-family:Oswald,sans-serif;font-size:12px;letter-spacing:.11em;text-transform:uppercase}
.rc>.rh .n{margin-left:auto;font-family:"JetBrains Mono",monospace;font-size:11px;opacity:.9}
.rr{display:flex;gap:7px;align-items:center;padding:2px 8px;border:0;border-top:1px solid var(--rule2);
  min-width:0;width:100%;background:transparent;text-align:left;font-size:12px}
.rr:hover{background:var(--card2)}
.rr .d{color:var(--soft);font-size:10.5px;white-space:nowrap;flex:none}
.rr .t2{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rr.now .d{color:var(--pine);font-weight:700}
.gridbox{border:1px solid var(--rule);background:var(--card);margin-top:14px}
.gridbox:first-child{margin-top:0}
.gtitle{display:flex;align-items:center;gap:8px;height:var(--hTitle);padding:0 6px;
  background:var(--navy);color:#f0e9d6}
.gtitle h2{font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;color:#f0e9d6}
.fold{background:transparent;border:1px solid #5d7089;color:#e6dcc4;border-radius:3px;
  width:20px;height:19px;font-size:10px;line-height:1;padding:0;flex:none}
.fold:hover{background:var(--navy2)}
.gridbox.folded .glance{display:none}
.gridbox.folded{border-bottom-width:1px}
.gtitle .yrs{width:var(--wYrs);text-align:center;flex:none;font-size:11px;font-weight:700;color:#e8c98a}
.gtitle .sp{flex:1}
.yarr{background:transparent;border:1px solid #5d7089;color:#e6dcc4;border-radius:3px;
  width:22px;height:19px;font-size:10px;line-height:1;padding:0;flex:none}
.yarr:hover:not(:disabled){background:var(--navy2)}
.yarr:disabled{opacity:.35;cursor:not-allowed}
.calbox{overflow:auto;max-height:66vh}
.calrail{display:flex;align-items:flex-start;justify-content:center;gap:12px;
  width:max-content;min-width:100%;padding:0 10px 8px}
.glance{display:flex;align-items:flex-start;justify-content:center;gap:12px;flex-wrap:wrap;
  padding:0 10px 8px}
.wg{display:grid;background:var(--card);border:1px solid var(--rule)}
.wg.full{grid-template-columns:34px repeat(7,40px)}
.wg.c{grid-template-columns:30px repeat(7,38px)}
.wg .yh{grid-column:1/-1;height:var(--hYear);position:sticky;top:0;z-index:6;background:var(--navy2);
  color:#f0e9d6;font-family:Oswald,sans-serif;font-size:11.5px;letter-spacing:.15em;
  display:flex;align-items:center;justify-content:center}
.wg.c .yh{position:static;font-size:10.5px;letter-spacing:.1em}
.wg .dh{height:var(--hDow);position:sticky;top:var(--hYear);z-index:5;background:var(--pine);
  color:#f2ede0;font-size:9px;display:flex;align-items:center;justify-content:center;
  border-right:1px solid rgba(255,255,255,.14)}
.wg.c .dh{position:static;font-size:8.5px}
.wg .wk{font-size:9.5px;color:var(--pine);background:var(--card2);border-top:1px solid var(--rule2);
  border-right:1px solid var(--rule);display:flex;align-items:center;justify-content:center;
  padding:0;font-family:"JetBrains Mono",monospace}
.wg .wk:hover{background:#eadfc0;color:var(--navy)}
.wg.c .wk{font-size:9px}
.wg .dc{height:22px;border-top:1px solid var(--rule2);border-right:1px solid var(--rule2);
  display:flex;align-items:center;justify-content:center;font-size:10px;background:transparent;
  padding:0;position:relative;font-family:"JetBrains Mono",monospace;color:var(--ink)}
.wg.c .dc{height:20px;font-size:9.5px}
.wg .dc:hover{outline:2px solid var(--pine);outline-offset:-2px;z-index:2}
.wg .dc.out{color:#c0b7a0;background:repeating-linear-gradient(45deg,transparent 0 3px,rgba(0,0,0,.03) 3px 6px)}
.wg .dc.now{box-shadow:inset 0 0 0 2px var(--navy);font-weight:700}
.wg .dc.k0{background:#f0cfca;color:#7a2f26}
.wg .dc.k1{background:#f7e0b4;color:#79520f}
.wg .dc.k2{background:#cfe6d3;color:#2b5537}
.wg .dc.k3{background:#cfdef2;color:#224878}
.wg .dc .task{position:absolute;right:1px;top:1px;width:4px;height:4px;background:var(--pine)}
.wg .dc .pen{position:absolute;left:1px;top:0;font-size:7px;color:var(--soft)}
.btn{background:var(--card2);border:1px solid var(--rule);color:var(--ink);padding:3px 9px;
  font-size:12px;border-radius:2px}
.btn:hover{background:#f2e7cd}
.btn.warn{color:#8c2f2f;border-color:#d3b3b3}
.btn:disabled{opacity:.4;cursor:not-allowed}
.ad{border:1px dashed var(--rule);background:rgba(253,248,236,.5);color:var(--soft);
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:10.5px;letter-spacing:.07em;text-transform:uppercase}
.ad-rail{min-height:600px}
.ad-foot{min-height:90px;margin-top:14px}
.ad-anchor{display:none;position:sticky;bottom:0;z-index:50;min-height:50px;background:var(--card)}
.ov{position:fixed;inset:0;background:rgba(27,42,65,.45);z-index:100;display:flex;
  align-items:flex-start;justify-content:center;padding:30px 12px;overflow:auto}
.md{width:min(900px,100%);background:var(--paper);border:1px solid var(--navy)}
.mh{display:flex;align-items:center;gap:9px;background:var(--navy);color:#f0e9d6;padding:7px 11px}
.mh .d{font-family:Oswald,sans-serif;font-size:15px;letter-spacing:.11em}
.mh .w{font-size:11px;color:#bfd0c6}
.mh button{margin-left:auto;background:transparent;border:1px solid #5d7089;color:#e6dcc4;
  width:25px;height:23px;border-radius:2px;line-height:1}
.mb{padding:11px}
.mrow{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.mnote{width:100%;min-height:46px;background:var(--card);border:1px solid var(--rule);padding:6px;
  font-size:12.5px;resize:vertical;margin:8px 0 10px}
.dab{width:22px;height:22px;border-radius:2px;border:1px solid rgba(0,0,0,.22);padding:0}
.dab.on{box-shadow:0 0 0 2px var(--navy)}
@media (max-width:1250px){
  .wg.full{grid-template-columns:32px repeat(7,36px)}
  .wg.full .dc{font-size:9.5px}
}
@media (max-width:1100px){
  .wg.full{grid-template-columns:28px repeat(7,32px)}
  .wg.c{grid-template-columns:28px repeat(7,34px)}
}
@media (max-width:900px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .rail{flex-direction:row;flex-wrap:wrap}
  .rbox{flex:1 1 240px}
  .ad-rail{display:none}
}
@media (max-width:700px){
  #gear{grid-column:3;grid-row:1}
  .meta{display:none}
  #dPick{display:none}
  .iso{font-size:12px}
  main{padding-top:8px}
  .kb,.ro{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .col{padding:4px;border-radius:2px}
  .ch{height:22px;padding:0 5px;font-size:10.5px;letter-spacing:.03em}
  .cadd{height:22px;font-size:11px;padding:1px 4px;margin:4px 0 5px}
  .rc>.rh{height:22px;padding:0 5px;font-size:10.5px;letter-spacing:.03em}
  .rr{padding:2px 5px;gap:4px;flex-wrap:wrap}
  .t{padding:3px 4px;gap:3px;flex-wrap:wrap}
  .t .grip{display:none}
  .t .txt{white-space:normal;overflow-wrap:anywhere;font-size:11.5px;line-height:1.25;max-height:2.5em}
  .t .ops{display:none;visibility:visible;width:100%;justify-content:flex-end;margin-top:3px}
  .t.open .ops{display:flex}
  .wg.full{grid-template-columns:28px repeat(7,32px)}
  .wg.c{grid-template-columns:26px repeat(7,32px)}
  .ad-foot{display:none}
  .ad-anchor{display:flex}
}
