/*
 * Wildfern Calendar v2 / Riverglass.
 * Only calendar presentation is affected; all source state and API actions remain unchanged.
 * Clear mineral-blue glass, real forest-water photography, typography untouched.
 */
.rv-calendar{
 --rv-sky:#e7f5fa;
 --rv-ink:#254654;
 --rv-fog:rgba(248,253,255,.72);
 --rv-line:rgba(175,207,220,.38);
 --rv-edge:rgba(255,255,255,.85);
 --rv-blue:#2a809b;
 --rv-glass-shadow:0 16px 39px rgba(28,69,91,.085);
 color:var(--text);
 display:flex;flex-direction:column;gap:20px;min-width:0;
 padding:0 0 28px;
}
.rv-calendar button{font-family:inherit}
.rv-calendar button:focus-visible,.rv-calendar a:focus-visible{outline:3px solid #197b9d;outline-offset:3px}
.rv-calendar .rv-eyebrow{
 color:#56818e;font-size:9px;letter-spacing:.16em;font-weight:800;line-height:1.5;
}
.rv-calendar-hero{
 position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(205px,.88fr);
 isolation:isolate;overflow:hidden;min-height:233px;border-radius:24px;
 border:1px solid rgba(255,255,255,.9);
 background:linear-gradient(114deg,rgba(252,255,255,.92),rgba(222,244,250,.75));
 box-shadow:0 15px 35px rgba(35,79,102,.095);
}
.rv-calendar-lede{padding:32px clamp(25px,3.1vw,40px);align-self:center;position:relative;z-index:2}
.rv-calendar-lede h1{
 font-family:'Plus Jakarta Sans',system-ui,sans-serif;
 font-weight:800;letter-spacing:-.077em;font-size:clamp(32px,3.8vw,51px);
 margin:7px 0 10px;line-height:1.08;color:#1b4658;
}
.rv-calendar-lede h1 em{font-style:normal;color:#2d899e}
.rv-calendar-lede>p{font-size:11px;max-width:480px;line-height:1.85;color:#648290;margin:0 0 18px}
.rv-calendar-legend{display:flex;flex-wrap:wrap;gap:9px 16px;align-items:center}
.rv-calendar-legend>span{display:flex;align-items:center;gap:6px;font-size:9px;color:#5d7d89;font-weight:750;white-space:nowrap}
.rv-legend-dot{display:inline-block;height:8px;width:8px;flex:none;border-radius:50%;background:var(--rv-kind,#80b8c9);box-shadow:0 0 0 2px rgba(255,255,255,.66)}
.rv-kind-personal{--rv-kind:#8c89c8;--rv-kind-bg:rgba(231,229,250,.91);--rv-kind-ink:#55528c}
.rv-kind-work{--rv-kind:#d38a6c;--rv-kind-bg:rgba(255,235,220,.93);--rv-kind-ink:#8a4d39}
.rv-kind-appointment{--rv-kind:#cb9c52;--rv-kind-bg:rgba(255,241,210,.91);--rv-kind-ink:#8b6531}
.rv-kind-commute{--rv-kind:#7b94a3;--rv-kind-bg:rgba(227,238,243,.92);--rv-kind-ink:#476c7c}
.rv-kind-class{--rv-kind:#459d87;--rv-kind-bg:rgba(216,245,231,.91);--rv-kind-ink:#216b57}
.rv-kind-focus{--rv-kind:#478fbb;--rv-kind-bg:rgba(216,239,251,.94);--rv-kind-ink:#286688}
.rv-calendar-art{position:relative;min-height:230px;background:#87b5bb;overflow:hidden;isolation:isolate}
.rv-calendar-art:before{
 content:"";position:absolute;inset:0;z-index:1;
 background:linear-gradient(90deg,rgba(218,242,249,.26),transparent 31%,rgba(23,72,82,.09));
 pointer-events:none;
}
.rv-calendar-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;filter:saturate(.96) contrast(1.01)}
.rv-calendar-art span{
 position:absolute;z-index:2;bottom:18px;right:21px;color:#f7ffff;
 font-size:9px;letter-spacing:.18em;font-weight:800;text-shadow:0 1px 6px rgba(17,52,66,.47);
}
.rv-calendar-panel{
 position:relative;overflow:hidden;isolation:isolate;
 border-radius:24px;border:1px solid rgba(255,255,255,.85);
 background:rgba(248,252,255,.75);
 box-shadow:var(--rv-glass-shadow),inset 0 1px rgba(255,255,255,.92);
 backdrop-filter:blur(15px) saturate(1.04);
 -webkit-backdrop-filter:blur(15px) saturate(1.04);
}
.rv-calendar-toolbar{
 display:flex;align-items:center;justify-content:space-between;gap:12px;
 padding:23px 23px 19px;border-bottom:1px solid var(--rv-line);
 flex-wrap:wrap;
}
.rv-calendar-range{min-width:0;flex:1}
.rv-calendar-range h2{color:#204858;letter-spacing:-.06em;font-weight:800;font-size:clamp(22px,2.7vw,30px);margin:3px 0 5px}
.rv-calendar-range small{display:inline-flex;align-items:center;gap:5px;color:#7694a1;font-size:10px}
.rv-calendar-range small .icon{width:13px;height:13px}
.rv-calendar-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.rv-calendar-pager,.rv-calendar-views{display:flex;align-items:center;gap:2px;border:1px solid rgba(194,222,231,.68);padding:4px;border-radius:12px;background:rgba(233,246,250,.62)}
.rv-calendar-pager button,.rv-calendar-views button{
 display:inline-flex;align-items:center;justify-content:center;
 min-width:33px;min-height:34px;padding:8px 11px;
 font-size:11px;font-weight:800;border:0;border-radius:9px;
 color:#57808f;background:transparent;box-shadow:none;
 transition:background-color .2s ease,color .2s ease,transform .2s ease;
}
.rv-calendar-pager button:hover,.rv-calendar-views button:hover{background:rgba(255,255,255,.61);color:#246f89}
.rv-calendar-pager .icon{width:17px;height:17px}
.rv-calendar-views button.active{color:#1e667e;background:rgba(255,255,255,.91);box-shadow:0 2px 8px rgba(39,85,108,.09)}
.rv-calendar-add,.rv-calendar-agenda-head>button{
 display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;
 min-height:42px;padding:9px 14px;border-radius:12px;border:1px solid #287d91;
 color:#fff;background:#287f96;font-weight:800;font-size:11px;
 box-shadow:0 5px 12px rgba(29,91,111,.12);
}
.rv-calendar-add:hover,.rv-calendar-agenda-head>button:hover{background:#216c86;color:#fff}
.rv-calendar-add .icon,.rv-calendar-agenda-head>button .icon{width:15px;height:15px}
.rv-month-overflow{overflow-x:auto;scrollbar-color:#bcd6df transparent}
.rv-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:705px}
.rv-weekday{
 padding:14px 10px;text-align:center;font-size:10px;
 letter-spacing:.09em;font-weight:800;color:#7293a0;
 border-bottom:1px solid var(--rv-line);
}
.rv-month-cell{
 position:relative;display:flex;flex-direction:column;gap:6px;
 min-width:0;min-height:122px;padding:10px 8px 10px;
 border-right:1px solid rgba(178,213,223,.32);
 border-bottom:1px solid rgba(178,213,223,.33);
 background:rgba(255,255,255,.1);
 transition:background-color .22s ease;
}
.rv-month-cell:nth-child(7n){border-right:0}
.rv-month-cell:hover,.rv-month-cell:focus-within{background:rgba(233,247,252,.65)}
.rv-month-cell.rv-other-month{background:rgba(226,238,243,.24)}
.rv-month-cell.rv-other-month .rv-cell-date{color:#9cb5be}
.rv-month-cell.rv-is-today{background:rgba(220,245,252,.36)}
.rv-month-cell.rv-selected{box-shadow:inset 0 0 0 1px rgba(48,142,171,.53)}
.rv-cell-top{display:flex;justify-content:space-between;align-items:center;gap:4px}
.rv-cell-date{
 display:inline-grid;place-items:center;flex:none;width:30px;height:30px;min-height:30px;
 padding:3px;border:0;border-radius:50%;background:transparent;
 color:#456e7b;font-size:11px;font-weight:800;
}
.rv-cell-date:hover{background:rgba(203,230,241,.66);color:#246a82}
.rv-is-today .rv-cell-date{color:#fff;background:#308c9e}
.rv-cell-add{display:inline-grid;place-items:center;width:24px;height:24px;min-height:24px;padding:5px;border-radius:50%;border:1px solid transparent;background:transparent;color:#7297a4;opacity:.55}
.rv-cell-add .icon{height:13px;width:13px}
.rv-month-cell:hover .rv-cell-add,.rv-cell-add:focus-visible{opacity:1;border-color:rgba(255,255,255,.8);background:rgba(239,250,255,.72)}
.rv-cell-items{display:flex;flex-direction:column;gap:3px;min-width:0}
.rv-item{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.81);border-left:3px solid var(--rv-kind,#478fbb);background:var(--rv-kind-bg,#e4f3fb);color:var(--rv-kind-ink,#1d5c75);font-family:inherit;font-weight:750;box-shadow:inset 0 1px rgba(255,255,255,.64);transition:filter .2s ease,transform .2s ease}
.rv-item:hover{filter:saturate(1.13) contrast(1.02)}
.rv-item[draggable=true]{cursor:grab}
.rv-item[draggable=true]:active{cursor:grabbing}
.rv-item-chip{
 display:flex;align-items:center;gap:5px;width:100%;min-height:28px;
 padding:4px 6px;border-radius:6px;text-align:left;font-size:9px;line-height:1.25;
}
.rv-chip-time{font-variant-numeric:tabular-nums;font-size:8px;white-space:nowrap;opacity:.79}
.rv-chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.rv-compact{padding:3px 5px}
.rv-more{display:inline-flex;align-items:center;min-height:23px;padding:4px 5px;border-radius:6px;border:0;background:transparent;color:#59869a;font-size:9px;font-weight:800;text-align:left}
.rv-more:hover{background:rgba(219,241,251,.48)}
.rv-overlap-dot{position:absolute;bottom:8px;right:8px;width:6px;height:6px;background:#d7975a;border-radius:50%;opacity:.78}
.rv-calendar-foot{
 display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
 padding:14px 22px;border-top:1px solid var(--rv-line);
}
.rv-calendar-counts{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.rv-calendar-counts>span{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:750;color:#587b8b}
.rv-calendar-counts .icon{width:16px;height:16px;color:#42879f}
.rv-calendar-counts .rv-overlap-note{color:#9d704b}
.rv-calendar-foot p{margin:0;max-width:400px;font-size:10px;line-height:1.5;color:#7694a0}
.rv-time-overflow{overflow:auto;max-height:min(72vh,830px);scrollbar-color:#b9d5de transparent}
.rv-timegrid{min-width:880px}
.rv-timegrid-day{min-width:300px}
.rv-time-header,.rv-time-main{display:grid;grid-template-columns:65px repeat(7,minmax(0,1fr))}
.rv-timegrid-day .rv-time-header,.rv-timegrid-day .rv-time-main{grid-template-columns:65px minmax(0,1fr)}
.rv-time-header{position:sticky;top:0;z-index:8;background:rgba(243,252,255,.97);border-bottom:1px solid #d5e5ed}
.rv-time-corner{align-self:center;text-align:center;color:#8ba8b5;font-size:8px;font-weight:800;letter-spacing:.08em;padding:10px 4px}
.rv-time-header-day{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;padding:11px 5px;min-height:55px;background:rgba(248,253,255,.88);border:0;border-left:1px solid var(--rv-line);color:#6b8b97;font-size:10px;font-weight:750}
.rv-time-header-day strong{font-size:16px;font-weight:800;color:#285568}
.rv-time-header-day small{font-size:8px;color:#92aab3;white-space:nowrap}
.rv-time-header-day.rv-is-today strong{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#348da0;color:#fff}
.rv-time-main{min-height:1152px}
.rv-time-ruler{position:relative;min-height:1152px;background:rgba(227,244,250,.46);border-right:1px solid var(--rv-line)}
.rv-time-ruler span{position:absolute;left:0;right:6px;text-align:right;transform:translateY(-8px);color:#8ba3ad;font-size:9px;font-weight:700}
.rv-time-day{
 position:relative;min-height:1152px;cursor:crosshair;border-left:1px solid rgba(171,205,216,.42);
 background:
  repeating-linear-gradient(to bottom,rgba(152,191,203,.28) 0px,rgba(152,191,203,.28) 1px,transparent 1px,transparent 48px),
  repeating-linear-gradient(to bottom,transparent 0px,transparent 24px,rgba(176,211,220,.13) 24px,rgba(176,211,220,.13) 25px,transparent 25px,transparent 48px),
  rgba(254,255,255,.3);
}
.rv-time-day.rv-is-today{background-color:rgba(219,242,249,.34)}
.rv-time-block{
 position:absolute;z-index:2;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;
 min-height:24px;max-height:1152px;padding:4px 7px;text-align:left;border-radius:7px;
 line-height:1.3;font-size:10px;
}
.rv-time-block-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:800;max-width:100%}
.rv-time-block-sub{font-size:9px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rv-calendar-agenda{
 border:1px solid rgba(255,255,255,.8);background:rgba(247,253,255,.75);border-radius:20px;
 box-shadow:0 12px 30px rgba(30,75,96,.085);padding:22px;backdrop-filter:blur(12px);
}
.rv-calendar-agenda-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.rv-calendar-agenda h2{font-size:23px;letter-spacing:-.055em;font-weight:800;color:#244a5e;margin:0}
.rv-calendar-agenda-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.rv-calendar-agenda-items .rv-item-chip{min-height:47px;padding:12px;font-size:11px}
.rv-calendar-agenda-items .rv-chip-time{font-size:10px}
.rv-calendar-base{display:flex;align-items:center;justify-content:space-between;gap:13px;flex-wrap:wrap;padding:0 7px;color:#668998;font-size:10px}
.rv-calendar-base a{display:inline-flex;align-items:center;gap:7px;color:#277e9a;font-size:11px;font-weight:800}
.rv-calendar-base .icon{width:16px;height:16px}
.rv-calendar-history{padding:16px 22px;border:1px solid rgba(255,255,255,.77);border-radius:17px;background:rgba(249,253,255,.7)}
.rv-calendar-history summary{font-weight:800;font-size:11px;color:#537c8c;cursor:pointer}
.rv-calendar-history .history-row{padding:13px 0}
.rv-move-review dl{display:grid;grid-template-columns:repeat(2,1fr);gap:11px;margin:16px 0}
.rv-move-review dl>div{padding:14px;border-radius:12px;background:rgba(229,244,249,.75);border:1px solid rgba(255,255,255,.88)}
.rv-move-review dt{color:#648a98;font-size:10px;font-weight:800}
.rv-move-review dd{margin:5px 0 0;font-size:13px;font-weight:800;color:#255266}
.rv-move-review>p{line-height:1.7}
.rv-move-review .form-actions{margin-top:17px}
/* Dark-mode preserves the same colored categories without over-saturating. */
body[data-theme=dark] .rv-calendar{--rv-ink:#effcff;--rv-line:rgba(165,214,234,.2);--rv-edge:rgba(186,224,241,.3)}
body[data-theme=dark] .rv-calendar-hero{background:linear-gradient(120deg,rgba(25,60,79,.92),rgba(29,76,88,.7));border-color:rgba(159,209,227,.38)}
body[data-theme=dark] .rv-calendar-lede h1,body[data-theme=dark] .rv-calendar-range h2,body[data-theme=dark] .rv-calendar-agenda h2{color:#f1fcff}
body[data-theme=dark] .rv-calendar-lede h1 em{color:#92d7eb}
body[data-theme=dark] .rv-calendar-lede>p,body[data-theme=dark] .rv-calendar-legend>span{color:#b6d7df}
body[data-theme=dark] .rv-calendar-panel,body[data-theme=dark] .rv-calendar-agenda,body[data-theme=dark] .rv-calendar-history{background:rgba(24,50,69,.82);border-color:rgba(174,218,233,.28)}
body[data-theme=dark] .rv-calendar-range small,body[data-theme=dark] .rv-calendar-foot p,body[data-theme=dark] .rv-calendar-counts>span{color:#b2cedb}
body[data-theme=dark] .rv-calendar-pager,body[data-theme=dark] .rv-calendar-views{background:rgba(46,79,97,.6);border-color:rgba(178,222,235,.23)}
body[data-theme=dark] .rv-calendar-pager button,body[data-theme=dark] .rv-calendar-views button{color:#d2ebf4}
body[data-theme=dark] .rv-calendar-views button.active,body[data-theme=dark] .rv-calendar-pager button:hover,body[data-theme=dark] .rv-calendar-views button:hover{background:rgba(80,128,146,.41);color:#f2fcff}
body[data-theme=dark] .rv-month-cell{background:rgba(22,48,64,.39);border-color:rgba(180,217,233,.19)}
body[data-theme=dark] .rv-month-cell:hover{background:rgba(56,91,110,.43)}
body[data-theme=dark] .rv-month-cell.rv-other-month{background:rgba(17,41,55,.44)}
body[data-theme=dark] .rv-cell-date,body[data-theme=dark] .rv-time-header-day strong{color:#d5edf5}
body[data-theme=dark] .rv-weekday,body[data-theme=dark] .rv-cell-add{color:#a0bfc9}
body[data-theme=dark] .rv-time-header{background:#234656;border-color:rgba(168,209,228,.22)}
body[data-theme=dark] .rv-time-header-day,body[data-theme=dark] .rv-time-ruler{background:rgba(34,69,88,.76);border-color:rgba(162,204,222,.19)}
body[data-theme=dark] .rv-time-day{background-color:rgba(24,52,68,.66)}
body[data-theme=dark] .rv-time-day.rv-is-today{background-color:rgba(42,79,101,.72)}
body[data-theme=dark] .rv-calendar-agenda-items .rv-item{color:var(--rv-kind-ink)}
body[data-theme=dark] .rv-calendar-base,body[data-theme=dark] .rv-calendar-history summary{color:#afd0dd}
body[data-theme=dark] .rv-move-review dl>div{background:rgba(43,75,93,.76);border-color:rgba(169,216,233,.24)}
body[data-theme=dark] .rv-move-review dd{color:#e6faff}
@media(max-width:1100px){
 .rv-calendar-toolbar{align-items:flex-start}
 .rv-calendar-tools{justify-content:flex-start}
 .rv-calendar-hero{grid-template-columns:1.2fr .8fr}
}
@media(max-width:800px){
 .rv-calendar-hero{grid-template-columns:1fr .65fr}
 .rv-calendar-lede{padding:22px}
 .rv-calendar-lede h1{font-size:34px}
 .rv-calendar-art{min-height:220px}
 .rv-calendar-panel{backdrop-filter:none}
 .rv-calendar-toolbar{padding:17px}
 .rv-calendar-foot{padding:13px 17px}
 .rv-calendar-agenda{backdrop-filter:none}
 .rv-time-overflow{max-height:65vh}
}
@media(max-width:580px){
 .rv-calendar{gap:13px}
 .rv-calendar-hero{display:block;min-height:0}
 .rv-calendar-lede{padding:22px 19px}
 .rv-calendar-lede h1{font-size:37px}
 .rv-calendar-lede>p{font-size:11px}
 .rv-calendar-legend{gap:7px 11px}
 .rv-calendar-legend>span{font-size:8px}
 .rv-calendar-art{height:125px;min-height:125px}
 .rv-calendar-art span{bottom:14px;right:15px;font-size:8px}
 .rv-calendar-toolbar{padding:17px 13px;gap:13px}
 .rv-calendar-range h2{font-size:25px}
 .rv-calendar-tools{width:100%;justify-content:flex-start}
 .rv-calendar-pager button,.rv-calendar-views button{min-height:35px;padding:7px 8px}
 .rv-calendar-add{min-height:42px;font-size:10px;margin-left:auto;padding:9px}
 .rv-month-grid{min-width:640px}
 .rv-month-cell{min-height:108px;padding:7px 6px}
 .rv-item-chip{font-size:9px}
 .rv-chip-time{display:none}
 .rv-calendar-foot{gap:9px}
 .rv-calendar-foot p{font-size:9px}
 .rv-time-overflow{max-height:62vh}
 .rv-calendar-agenda{padding:17px}
 .rv-calendar-agenda h2{font-size:20px}
 .rv-calendar-base{font-size:9px}
}
@media(max-width:380px){
 .rv-calendar-tools{gap:7px}
 .rv-calendar-views button{padding:7px 6px}
 .rv-calendar-add{padding:8px}
 .rv-calendar-pager button{padding:6px}
}
@media(prefers-reduced-motion:reduce){
 .rv-calendar .rv-item,.rv-calendar .rv-month-cell,.rv-calendar .rv-time-day,
 .rv-calendar .rv-calendar-pager button,.rv-calendar .rv-calendar-views button,
 .rv-calendar .rv-calendar-art img{transition:none!important;animation:none!important}
}
