@font-face{font-family:'Murs';src:url('/smm/murs.woff2') format('woff2');font-weight:400;font-display:swap}
:root{
  --bg:#0f0f10; --cell:#141415; --panel:#1a1a1c; --panel2:#202023; --line:#2a2a2d; --line2:#3a3a3f;
  --ink:#f4f4f5; --muted:#8e8e93; --amber:#F4BD38; --red:#EC5134;
  --idea:#6b7280; --draft:#a9812f; --ready:#F4BD38; --scheduled:#4b8bd4; --published:#4f9e5c; --skipped:#5a4040;
  --r:10px;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{max-width:100%;overflow-x:hidden}
body{margin:0;background:var(--bg);color:var(--ink);
     font:15px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
     -webkit-font-smoothing:antialiased}
a{color:var(--amber)}
.spacer{flex:1}
svg.i{width:16px;height:16px;fill:currentColor;display:block;flex:none}

button,select,input,textarea{font:inherit;color:var(--ink);background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r);padding:8px 12px;transition:.14s}
button{cursor:pointer}
button:hover{background:var(--panel2);border-color:var(--line2)}
button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--amber);outline-offset:1px}
input:focus,textarea:focus{border-color:var(--line2);outline:none}
button.primary{background:var(--amber);color:#121212;border-color:var(--amber);font-weight:600}
button.primary:hover{filter:brightness(1.08)}
button.danger{background:transparent;border-color:#4a2a26;color:#ff9c8f}
button.danger:hover{background:#2a1a18;border-color:#6a3a34}
button.ghost{background:transparent;border-color:transparent;color:var(--muted);padding:6px 10px}
button.ghost:hover{color:var(--ink);background:var(--panel)}
button.icon{padding:6px 11px;line-height:1;font-size:18px;color:var(--muted)}
button.icon:hover{color:var(--ink)}

header{display:flex;align-items:center;gap:14px;padding:16px 22px 14px;flex-wrap:wrap}
h1{font-family:'Murs',system-ui;font-size:19px;margin:0;letter-spacing:.03em;white-space:nowrap}
.nav{display:flex;align-items:center;gap:6px}
.month{font-family:'Murs',system-ui;font-size:16px;min-width:172px;text-align:center;letter-spacing:.02em}

.filters{display:flex;align-items:center;gap:8px;padding:0 22px 14px;flex-wrap:wrap;
         max-width:100%;overflow-x:auto;scrollbar-width:none}
.filters::-webkit-scrollbar{display:none}
.fgroup{display:flex;gap:4px;flex:none;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px}
.sep{width:1px;height:22px;background:var(--line)}
.count{font-size:12.5px;color:var(--muted)}
.tog{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid transparent;
     border-radius:8px;padding:6px 9px;color:var(--muted);font-size:12.5px;line-height:1}
.tog:hover{background:var(--panel2);border-color:transparent;color:var(--ink)}
.tog[aria-pressed="true"]{background:var(--panel2);color:var(--ink);border-color:var(--line2)}
.tog[aria-pressed="true"] svg.i{fill:var(--amber)}
.tog .n{font-variant-numeric:tabular-nums;opacity:.65;font-size:11px}
.tog .dot{width:8px;height:8px;border-radius:3px;flex:none}

.grid{display:grid;max-width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);
      border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.dow{background:var(--bg);padding:9px 12px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}
.day{background:var(--cell);min-height:132px;padding:7px 7px 9px;position:relative}
.day.other{background:#111112}
.day.other .num{opacity:.3}
.day.today .num{background:var(--amber);color:#121212;font-weight:700}
.num{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;
     min-width:22px;height:22px;border-radius:999px}
.day .add{position:absolute;top:6px;right:6px;opacity:0;border:0;background:var(--panel);color:var(--muted);
          font-size:15px;line-height:1;padding:3px 8px;border-radius:7px;transition:.12s}
.day:hover .add{opacity:1}
.day .add:hover{background:var(--panel2);color:var(--ink)}
@media (hover:none){.day .add{opacity:.5}}

.chip{display:block;width:100%;text-align:left;margin-top:5px;padding:8px 9px 7px 10px;border-radius:var(--r);
      background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--idea);
      position:relative;overflow:hidden}
.chip:hover{background:var(--panel2);border-color:var(--line2);transform:translateY(-1px)}
.chip .t{font-size:12.5px;line-height:1.34;color:var(--ink);font-weight:500;
         display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.chip .meta{display:flex;align-items:center;gap:7px;margin-top:6px;color:var(--muted)}
.chip .meta svg.i{width:13px;height:13px}
.chip .time{font-size:10.5px;font-variant-numeric:tabular-nums}
.chip .media{font-size:10px;margin-left:auto;display:flex;align-items:center;gap:3px}
.s-idea{border-left-color:var(--idea)} .s-draft{border-left-color:var(--draft)}
.s-ready{border-left-color:var(--ready)} .s-scheduled{border-left-color:var(--scheduled)}
.s-published{border-left-color:var(--published)} .s-published .t{color:#aebfb2}
.s-skipped{border-left-color:var(--skipped);opacity:.45} .s-skipped .t{text-decoration:line-through}

dialog{background:var(--panel);color:var(--ink);border:1px solid var(--line2);border-radius:16px;padding:0;
       width:min(640px,94vw);box-shadow:0 24px 70px rgba(0,0,0,.6)}
dialog::backdrop{background:rgba(0,0,0,.66);backdrop-filter:blur(2px)}
.dlg-head{display:flex;align-items:center;gap:10px;padding:16px 16px 12px;border-bottom:1px solid var(--line)}
.dlg-head input{flex:1;font-size:17px;font-weight:600;background:transparent;border:0;padding:6px 4px}
.dlg-head input::placeholder{color:#5c5c61;font-weight:500}
.close{font-size:22px;padding:2px 10px}
.dlg-body{padding:16px;display:grid;gap:14px;max-height:min(66vh,620px);overflow:auto}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field label{font-size:11.5px;color:var(--muted);display:block;margin-bottom:6px;letter-spacing:.02em}
.field input,.field textarea{width:100%;background:var(--bg);border-color:var(--line)}
textarea{min-height:92px;resize:vertical;line-height:1.5}
textarea.short{min-height:58px}
.picker{display:flex;flex-wrap:wrap;gap:6px}
.dlg-foot{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line);background:#151517;
          border-radius:0 0 16px 16px}
.hint{font-size:11.5px;color:#5c5c61}
.err{color:#ff9c8f;font-size:13px;min-height:16px}

#login{max-width:330px;margin:16vh auto;display:grid;gap:14px;padding:0 20px}
#login h1{margin-bottom:4px}
#login input{width:100%;background:var(--bg)}
@media (max-width:820px){
  .field-row{grid-template-columns:1fr}
  .day{min-height:96px}
  header,.filters{padding-left:14px;padding-right:14px}
}
.muted{color:var(--muted);font-size:12.5px;line-height:1.55}
#keysList{display:grid;gap:8px}
.kitem{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);
       border-radius:var(--r);padding:10px 12px;font-size:13px}
.kitem .when{color:var(--muted);font-size:11.5px}
#bioBtn{display:flex;align-items:center;justify-content:center;gap:8px}
.diag{display:grid;gap:4px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;font-size:12px}
.drow{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}
.drow b{color:var(--ink);font-weight:500;text-align:right}
.drow b.bad{color:#ff9c8f}
.pwwrap{position:relative}
#pwEye{position:absolute;right:6px;bottom:6px;background:transparent;border:0;color:var(--muted);
       font-size:12px;padding:6px 8px}
#pwEye:hover{color:var(--ink);background:transparent}
#pw{padding-right:86px}
#bioHint{margin:0}

/* стрічка прихована на широкому екрані; вмикається медіазапитом нижче */
.agenda{display:none}
.afab{display:none}

/* ── телефон ────────────────────────────────────────────────────────────────
   Сім колонок на 390px дають 55px на день — у таку клітинку не влазить нічого,
   заради чого календар існує. Тому на вузькому екрані показуємо не сітку,
   а стрічку днів, у яких щось є. */
@media (max-width:700px){
  .hint{display:none}
  header{gap:10px;padding:12px 14px 10px}
  h1{font-size:17px;width:100%}
  .nav{width:100%}
  .month{flex:1;min-width:0;font-size:15px}
  header .spacer{display:none}
  #keysBtn,#addBtn{flex:1}
  .filters{padding:0 14px 12px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}
  .fgroup{flex:none}
  .sep,.count{display:none}
  .grid{display:none}
  .agenda{display:block}
}
.agenda{padding:0 14px 28px}
.aday{border-top:1px solid var(--line);padding:12px 0 4px}
.aday:first-child{border-top:0}
.ahead{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.ahead .d{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;min-width:30px}
.ahead .w{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.aday.today .d{color:var(--amber)}
.agenda .chip{margin-top:0;margin-bottom:7px;padding:11px 12px}
.agenda .chip .t{-webkit-line-clamp:3;font-size:14px}
.aempty{color:var(--muted);font-size:13px;padding:26px 0;text-align:center}
.afab{position:fixed;right:16px;bottom:22px;width:54px;height:54px;border-radius:999px;font-size:26px;
      background:var(--amber);color:#121212;border:0;box-shadow:0 8px 24px rgba(0,0,0,.5);
      align-items:center;justify-content:center;padding:0;z-index:5}
@media (max-width:700px){.afab{display:flex}}

/* Те саме, що й медіазапит, але за виміряною шириною — на випадок, коли iOS
   роздув viewport і запит не спрацював. */
body.narrow header{gap:10px;padding:12px 14px 10px}
body.narrow h1{font-size:17px;width:100%}
body.narrow .nav{width:100%}
body.narrow .month{flex:1;min-width:0;font-size:15px}
body.narrow header .spacer{display:none}
body.narrow #keysBtn,body.narrow #addBtn{flex:1}
body.narrow .filters{padding:0 14px 12px;flex-wrap:nowrap}
body.narrow .sep,body.narrow .count{display:none}
body.narrow .grid{display:none}
body.narrow .agenda{display:block}
body.narrow .afab{display:flex}
/* Підказка про ⌘+Enter на телефоні безглузда — там немає такої клавіші. */
body.narrow .hint{display:none}
body.narrow .dlg-head input{font-size:16px}
body.narrow .dlg-foot{gap:8px}
