:root{--paper:#f4f2ed;--surface:#fff;--surface-sunk:#faf8f3;--ink:#23272a;--ink-2:#5c625f;--ink-3:#8f938f;--line:#e6e2d8;--line-strong:#d4cfc1;--accent:#3a5a78;--accent-deep:#2d4761;--accent-soft:#eaf0f4;--accent-line:#c2d2de;--danger:#a4453b;--ok:#3f6b4d;--warn:#9a7d2e;--today:#fbf4e3;--today-line:#e8d9b0;--r-sm:6px;--r-md:10px;--r-lg:14px;--shadow:0 1px 2px rgba(35,39,42,.04);font-family:Inter,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--paper);color:var(--ink);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;background:none}button,input,textarea{font-family:inherit}.pin-wrap{position:fixed;inset:0;z-index:90;background:var(--paper);display:flex;align-items:center;justify-content:center;padding:24px}.pincard{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:0 8px 30px rgba(35,39,42,.1);width:100%;max-width:340px;padding:30px 26px;text-align:center}.pincard .mark{width:48px;height:48px;border-radius:var(--r-md);background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.pin-logo{display:block;height:64px;width:auto;max-width:80%;margin:0 auto 18px;object-fit:contain}.pincard h1{font-size:16px;font-weight:650;letter-spacing:-.01em}.pincard p{font-size:12.5px;color:var(--ink-2);margin:5px 0 20px}.pin-notice{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-3);line-height:1.5}.pin-notice strong{color:var(--ink-2);font-weight:600}.pin-input{width:100%;text-align:center;font-size:22px;font-weight:600;letter-spacing:.32em;padding:12px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--ink)}.pin-input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.pin-input.bad{border-color:var(--danger);animation:shake .3s}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.pin-err{font-size:12px;color:var(--danger);min-height:16px;margin-top:8px}.pin-btn{width:100%;margin-top:14px;height:42px;border-radius:var(--r-md);background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;transition:background .12s}.pin-btn:hover{background:var(--accent-deep)}.pin-btn:disabled{opacity:.55;cursor:not-allowed}.wrap{max-width:1180px;margin:0 auto;padding:24px 20px 56px}header.app{justify-content:space-between;gap:16px;margin-bottom:18px}.brand,header.app{display:flex;align-items:center}.brand{gap:12px}.brand,.brand-info{min-width:0;flex:1 1}.brand-logo{height:38px;width:auto;display:block;flex:none;margin-left:6px;padding-left:14px;border-left:1px solid var(--line-strong);object-fit:contain}.brand .mk{width:40px;height:40px;border-radius:var(--r-md);background:var(--accent);color:#fff;flex:none;display:flex;align-items:center;justify-content:center}.brand .mk-btn{border:none;cursor:pointer;padding:0;transition:background .12s,transform .08s}.brand .mk-btn:hover{background:var(--accent-deep);transform:translateY(-1px)}.brand .mk-btn:active{transform:translateY(0)}.brand .mk-btn:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}.brand h1{font-size:17px;font-weight:650;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand p{font-size:12px;color:var(--ink-2)}.hdr-right{gap:12px;flex:none}.hdr-right,.sync{display:flex;align-items:center}.sync{gap:6px;font-size:11.5px;color:var(--ink-3);white-space:nowrap}.dot{width:7px;height:7px;border-radius:50%;background:var(--ink-3);flex:none}.dot.ok{background:var(--ok)}.dot.saving{background:var(--accent);animation:pulse 1s infinite}.dot.off{background:var(--warn)}@keyframes pulse{50%{opacity:.3}}.lock{width:32px;height:32px;border-radius:var(--r-sm);color:var(--ink-3);display:flex;align-items:center;justify-content:center;transition:background .12s}.lock:hover{background:var(--surface-sunk);color:var(--ink)}.toolbar{gap:9px;flex-wrap:wrap;margin-bottom:13px}.toolbar,.weeknav{display:flex;align-items:center}.weeknav{gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:3px;box-shadow:var(--shadow)}.weeknav .range{padding:0 12px;font-weight:600;font-size:13px;min-width:172px;text-align:center;letter-spacing:-.01em}.nbtn{width:32px;height:30px;border-radius:var(--r-sm);color:var(--ink-2);display:flex;align-items:center;justify-content:center;transition:background .12s}.nbtn:hover{background:var(--surface-sunk);color:var(--ink)}.btn{height:36px;padding:0 14px;border-radius:var(--r-md);font-size:13px;font-weight:550;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow);transition:background .12s,border-color .12s}.btn:hover{background:var(--surface-sunk);border-color:var(--line-strong)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-deep)}.spacer{flex:1 1}.summary{font-size:12px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;box-shadow:var(--shadow)}.summary b{color:var(--ink);font-weight:650}.counter-chip{border-color:var(--brand,#1d4ed8);color:var(--ink)}.counter-chip b{color:var(--brand,#1d4ed8);font-weight:750}.counter-chip .counter-base{color:var(--ink-3);font-weight:500}.daychips{display:none;gap:6px;margin-bottom:12px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.chip{flex:none;min-width:60px;padding:8px 6px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);text-align:center;box-shadow:var(--shadow);transition:background .12s}.chip .cn{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.chip .cd{font-size:15px;font-weight:650;letter-spacing:-.02em;margin-top:1px}.chip.sel{background:var(--accent);border-color:var(--accent)}.chip.sel .cn{color:#bcd0e0}.chip.sel .cd{color:#fff}.chip.today:not(.sel){border-color:var(--today-line);background:var(--today)}.chip.today:not(.sel) .cn{color:var(--warn)}.chip .badge{display:inline-block;margin-top:3px;font-size:9px;font-weight:600;color:var(--accent)}.chip.sel .badge{color:#bcd0e0}.board{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}.scroll{overflow-x:auto}.grid{display:grid;grid-template-columns:104px repeat(5,minmax(148px,1fr));min-width:840px}.cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.grid>.cell:nth-child(6n){border-right:none}.grid>.row-last{border-bottom:none}.corner{display:flex;align-items:flex-end;padding:10px 12px;font-size:10.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}.corner,.dayhead{background:var(--surface-sunk)}.dayhead{padding:11px 13px}.dayhead .dn{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.dayhead .dd{font-size:16px;font-weight:650;letter-spacing:-.02em;margin-top:1px}.dayhead.today{background:var(--today)}.dayhead.today .dn{color:var(--warn)}.dayhead.today .dd{color:#7a6220}.slotlab{background:var(--surface-sunk);display:flex;flex-direction:column;justify-content:center;padding:0 14px;min-height:96px}.slotlab .st{font-size:13.5px;font-weight:650;letter-spacing:-.01em}.slotlab .sp{font-size:11px;color:var(--ink-3);margin-top:2px}.slot{min-height:96px;padding:7px;position:relative;transition:background .1s}.slot.col-today{background:var(--today)}.slot.past{opacity:.55}.slot.empty{cursor:pointer}.slot.empty:hover{background:var(--accent-soft)}.slot.col-today.empty:hover{background:#f4ead0}.addhint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--ink-3);font-size:12px;font-weight:500;opacity:0;transition:opacity .1s}.slot.empty:hover .addhint{opacity:1}.booking{height:100%;min-height:82px;cursor:pointer;background:var(--accent-soft);border:1px solid var(--accent-line);border-left:3px solid var(--accent);border-radius:var(--r-sm);padding:8px 9px;display:flex;flex-direction:column;gap:2px;transition:transform .08s,box-shadow .12s}.booking:hover{box-shadow:0 2px 8px rgba(45,71,97,.16);transform:translateY(-1px)}.booking .inv{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.booking .apt,.booking .inv{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.booking .apt{font-size:14px;letter-spacing:-.01em;color:var(--ink)}.booking .buyer{font-size:12px;white-space:nowrap}.booking .buyer,.booking .uwagi{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}.booking .uwagi{font-size:11.5px;font-style:italic;line-height:1.32;margin-top:3px;padding-top:4px;border-top:1px dashed var(--accent-line);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word}.booking .foot{margin-top:auto;display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--ink-3);padding-top:3px}.booking .foot svg{flex:none}.dayview{display:none;flex-direction:column;gap:10px}.dcard{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow)}.dcard .dctop{display:flex;align-items:baseline;gap:8px;padding:11px 14px 9px;border-bottom:1px solid var(--line);background:var(--surface-sunk)}.dcard .dctop .t{font-size:14px;font-weight:650;letter-spacing:-.01em}.dcard .dctop .s{font-size:11px;color:var(--ink-3)}.dcard.past{opacity:.6}.dcbody{padding:12px 14px;cursor:pointer}.dcbody.empty{display:flex;align-items:center;gap:8px;color:var(--ink-3);font-size:13px;font-weight:500}.dcbody.empty svg{flex:none}.dcbody .inv{font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}.dcbody .apt{font-size:16px;font-weight:650;letter-spacing:-.01em;margin-top:1px}.dcbody .meta{font-size:13px;color:var(--ink-2);margin-top:3px}.dcbody .meta .lbl{color:var(--ink-3)}.dcbody .uw{font-size:12.5px;color:var(--ink-2);margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}.dcbody .by{font-size:11px;color:var(--ink-3);margin-top:6px}.scrim{position:fixed;inset:0;background:rgba(35,39,42,.42);display:none;align-items:center;justify-content:center;padding:18px;z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.scrim.show{display:flex}.modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:460px;max-height:92vh;overflow-y:auto;box-shadow:0 18px 48px rgba(35,39,42,.28);animation:rise .16s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.modal h2{font-size:15.5px;font-weight:650;padding:18px 20px 4px;letter-spacing:-.01em}.modal .when{font-size:12.5px;color:var(--accent);font-weight:550;padding:0 20px 14px;border-bottom:1px solid var(--line)}.form{padding:16px 20px 4px;flex-direction:column;gap:13px}.form,.frow{display:flex}.frow{gap:12px}.frow .field{flex:1 1}.field label{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:5px}.field label .req{color:var(--danger)}.field input,.field textarea{width:100%;font-size:13.5px;color:var(--ink);background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px;transition:border-color .12s,background .12s}.field input:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.field textarea{resize:vertical;min-height:58px}.errmsg{display:none;font-size:11.5px;color:var(--danger);margin-top:4px}.err input{border-color:var(--danger)}.err .errmsg{display:block}.audit{font-size:11.5px;color:var(--ink-3);padding:2px 20px 0}.actions{display:flex;gap:9px;padding:16px 20px 20px;align-items:center}.actions .spacer{flex:1 1}.btn.danger{color:var(--danger);border-color:#e7cdc9}.btn.danger:hover{background:#f8eeec;border-color:var(--danger)}.sms-actions{padding:14px 20px 0;margin-top:6px;border-top:1px solid var(--line)}.sms-actions-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}.sms-actions-row{display:flex;gap:9px;flex-wrap:wrap}.sms-actions-row .btn{flex:1 1;min-width:140px;justify-content:center}.settings-modal{max-width:520px}.settings-modal .muted{color:var(--ink-3);font-size:13px}.settings-modal .toggle{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink);padding:8px 10px;background:var(--surface-sunk);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer}.settings-modal .toggle input{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.settings-modal .chip-input{display:flex;gap:8px}.settings-modal .chip-input input{flex:1 1;font-size:13.5px;color:var(--ink);background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 11px;transition:border-color .12s,background .12s}.settings-modal .chip-input input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.settings-modal .chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.settings-modal .chip{gap:6px;background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:999px;padding:4px 6px 4px 11px;font-size:12.5px;font-weight:500}.settings-modal .chip,.settings-modal .chip-x{display:inline-flex;align-items:center;color:var(--accent-deep)}.settings-modal .chip-x{background:transparent;border:none;font-size:16px;line-height:1;width:20px;height:20px;border-radius:999px;cursor:pointer;justify-content:center;padding:0}.settings-modal .chip-x:hover{background:#d6e3ec}.settings-modal .warnmsg{margin-top:6px;font-size:11.5px;color:var(--warn)}.settings-modal .errmsg{margin-top:4px}.settings-modal.wide{max-width:680px}.settings-tabs{display:flex;gap:2px;padding:8px 16px 0;border-bottom:1px solid var(--line)}.settings-tabs .tab{padding:9px 12px;font-size:12.5px;font-weight:550;color:var(--ink-3);background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color .12s,border-color .12s}.settings-tabs .tab:hover{color:var(--ink-2)}.settings-tabs .tab.active{color:var(--accent-deep);border-bottom-color:var(--accent)}.settings-modal .when{padding-bottom:0;border-bottom:none}.settings-modal .tpl-field{display:flex;flex-direction:column;gap:6px}.settings-modal .tpl-field textarea{width:100%;font-size:13px;color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,monospace;background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:10px 11px;min-height:90px;resize:vertical;line-height:1.5}.settings-modal .tpl-field textarea:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.settings-modal .tpl-meta{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--ink-3)}.settings-modal .tpl-meta .seg-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;background:var(--accent-soft);color:var(--accent-deep);border-radius:999px;font-weight:600;font-size:11px}.settings-modal .tpl-meta .seg-badge.warn{background:#fbf3df;color:var(--warn)}.settings-modal .tpl-meta .seg-badge.bad{background:#f6e1de;color:var(--danger)}.settings-modal .var-chips{display:flex;flex-wrap:wrap;gap:4px}.settings-modal .var-chips button{background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--r-sm);padding:3px 7px;font-size:11.5px;color:var(--ink-2);font-family:ui-monospace,SF Mono,Menlo,monospace;cursor:pointer}.settings-modal .var-chips button:hover{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent-line)}.settings-modal .preview-box{margin-top:6px;padding:10px 12px;background:var(--surface-sunk);border:1px dashed var(--line-strong);border-radius:var(--r-sm);font-size:12.5px;color:var(--ink-2);white-space:pre-wrap;line-height:1.45}.inv-table{width:100%;border-collapse:collapse;font-size:13px}.inv-table td,.inv-table th{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.inv-table th{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.inv-table td input{width:100%;font-size:13px;padding:6px 8px;background:var(--surface-sunk);border:1px solid var(--line-strong);border-radius:var(--r-sm)}.inv-table td input:focus{outline:none;border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 2px var(--accent-soft)}.inv-table tr.dirty td{background:#fbf4e3}.inv-table .name-cell{font-weight:600;color:var(--ink);max-width:200px;word-break:break-word}.bulk-list{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface-sunk);font-size:12.5px}.bulk-list .row{display:grid;grid-template-columns:1fr 110px 90px;grid-gap:8px;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);align-items:center}.bulk-list .row:last-child{border-bottom:none}.bulk-list .row .meta{color:var(--ink-3);font-size:11.5px}.bulk-list .row .status{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;text-align:center}.bulk-list .row .status.ok{background:#dcecdf;color:var(--ok)}.bulk-list .row .status.skip{background:#f1efe6;color:var(--ink-3)}.bulk-list .row .status.err{background:#f6e1de;color:var(--danger)}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);background:var(--ink);color:#fff;font-size:12.5px;font-weight:500;padding:9px 16px;border-radius:var(--r-md);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:70}.toast.show{opacity:1;transform:translate(-50%)}footer.note{margin-top:20px;font-size:11.5px;color:var(--ink-3);display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap}footer.note .note-msg{display:flex;align-items:center;gap:7px;min-width:0}footer.note .note-brand{display:flex;align-items:center;gap:9px;color:var(--ink-3)}footer.note .note-brand strong{color:var(--ink-2);font-weight:600}footer.note .footer-logo{height:22px;width:auto;display:block;flex:none;opacity:.9}@media (max-width:759px){.wrap{padding:18px 12px 40px}.brand p{display:none}.brand-logo{height:28px;margin-left:4px;padding-left:10px}.board{display:none}.daychips,.dayview{display:flex}.summary{display:none}.summary.counter-chip{display:inline-flex;align-items:center;gap:4px}.frow{gap:13px}.frow,footer.note{flex-direction:column}footer.note{align-items:flex-start;gap:10px}footer.note .footer-logo{height:20px}}@media (min-width:760px){.daychips,.dayview{display:none!important}}@media print{body{background:#fff}.daychips,.lock,.sync,.toast,.toolbar,footer.note .note-msg{display:none}footer.note{border-top:none;justify-content:flex-end;margin-top:8px;padding-top:0}.board{box-shadow:none;display:block!important}.dayview{display:none!important}.slot.empty{cursor:default}.month-modal{display:none!important}}.btn.iconbtn{padding:0 12px}.btn.iconbtn .iconbtn-label{font-size:13px}@media (max-width:520px){.btn.iconbtn .iconbtn-label{display:none}.btn.iconbtn{width:36px;padding:0;justify-content:center}}.month-modal{background:var(--surface);border-radius:var(--r-lg);width:100%;max-width:680px;max-height:92vh;overflow-y:auto;box-shadow:0 18px 48px rgba(35,39,42,.28);animation:rise .16s ease-out;display:flex;flex-direction:column}.month-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--surface-sunk);border-radius:var(--r-lg) var(--r-lg) 0 0}.month-title{font-size:16px;font-weight:650;letter-spacing:-.01em;text-transform:capitalize}.month-title .mt-year{color:var(--ink-3);font-weight:500}.month-nav{display:flex;align-items:center;gap:6px}.month-nav .nbtn{width:34px;height:34px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface)}.month-nav .btn{height:34px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:6px;gap:6px;padding:16px 20px 12px}.month-grid .mwh{font-size:10.5px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);text-align:center;padding:4px 0 6px}.month-grid .mwh.we{color:#b58a4d}.mcell{position:relative;aspect-ratio:1/1;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:6px 4px 4px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);font-family:inherit;cursor:pointer;transition:transform .08s,box-shadow .12s,background .12s,border-color .12s}.mcell:hover{background:var(--surface-sunk);border-color:var(--line-strong);transform:translateY(-1px);box-shadow:0 2px 8px rgba(35,39,42,.07)}.mcell .mday{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em}.mcell .mcnt{margin-top:auto;font-size:11px;font-weight:650;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);padding:1px 6px;border-radius:999px;letter-spacing:-.01em}.mcell.out{background:var(--paper)}.mcell.out .mday{color:var(--ink-3);opacity:.55}.mcell.we{background:#fbf9f4}.mcell.we.out{background:var(--paper)}.mcell.past:not(.today){opacity:.62}.mcell.today{border-color:var(--today-line);background:var(--today)}.mcell.today .mday{color:#7a6220}.mcell.has{border-color:var(--accent-line);background:var(--accent-soft)}.mcell.has .mday{color:var(--accent-deep)}.mcell.has:hover{background:#dde8f0}.mcell.full{border-color:var(--accent);background:var(--accent)}.mcell.full .mday{color:#fff}.mcell.full .mcnt{background:hsla(0,0%,100%,.18);border-color:hsla(0,0%,100%,.35);color:#fff}.mcell.full:hover{background:var(--accent-deep)}.mcell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.month-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:center;padding:8px 20px 18px;font-size:11.5px;color:var(--ink-3)}.month-legend span{display:inline-flex;align-items:center;gap:5px}.lg-dot{width:11px;height:11px;border-radius:3px;display:inline-block;border:1px solid var(--line-strong);background:var(--surface)}.lg-dot.has{background:var(--accent-soft);border-color:var(--accent-line)}.lg-dot.full{background:var(--accent);border-color:var(--accent)}.lg-dot.today{background:var(--today);border-color:var(--today-line)}@media (max-width:560px){.month-grid{gap:4px;padding:12px}.mcell{min-height:46px;padding:4px 2px 3px}.mcell .mday{font-size:13px}.mcell .mcnt{font-size:10px;padding:0 5px}.month-head{padding:12px 14px}.month-title{font-size:15px}}