.cal-builder{grid-template-columns:1fr;gap:20px;padding:4px 0 60px;display:grid}@media (width>=900px){.cal-builder{grid-template-columns:340px 1fr;align-items:start}}.cal-panel{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:18px;padding:20px}.cal-field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.cal-field label{color:var(--muted);font-size:13px;font-weight:700}.cal-field input,.cal-field select{border:1px solid var(--border);background:var(--input-bg);color:var(--ink);border-radius:10px;padding:11px 12px;font-family:inherit;font-size:14.5px}.cal-field-row{gap:10px;display:flex}.cal-field-row .cal-field{flex:1}.cal-hint{color:var(--faint);margin:2px 0 0;font-size:11.5px;line-height:1.4}.cal-upload-tile{border:1.5px dashed var(--border);background:var(--input-bg);border-radius:12px;justify-content:center;align-items:center;width:100%;height:112px;transition:border-color .15s;display:flex;position:relative;overflow:hidden}.cal-upload-tile:hover{border-color:var(--primary)}.cal-upload-input{z-index:1;opacity:0;cursor:pointer;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.cal-upload-placeholder{color:var(--faint);pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex}.cal-upload-placeholder svg{width:30px;height:30px;color:var(--muted)}.cal-upload-placeholder span{font-size:12px;font-weight:600}.cal-upload-preview{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.cal-upload-remove{z-index:2;color:#fff;cursor:pointer;background:#14121c99;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:16px;line-height:1;display:flex;position:absolute;top:7px;right:7px}.cal-upload-preview.is-hidden,.cal-upload-remove.is-hidden,.cal-upload-placeholder.is-hidden{display:none}.cal-theme-row{flex-wrap:wrap;gap:10px;display:flex}.cal-theme-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:36px;height:36px;padding:0;transition:transform .15s,border-color .15s;box-shadow:inset 0 0 0 1px #201e2b14}.cal-theme-swatch:hover{transform:scale(1.08)}.cal-theme-swatch.is-active{border-color:var(--primary)}.cal-preview-panel{justify-content:center;padding:20px;display:flex}.cal-poster{--cal-from:#fffdf8;--cal-to:#faf2e4;--cal-ink:#201e2b;--cal-accent:#1fb6b0;--cal-muted:#9c96a8;--cal-on-accent:#fff;aspect-ratio:1080/1440;background:linear-gradient(165deg, var(--cal-from), var(--cal-to));width:100%;max-width:460px;box-shadow:var(--shadow-lg);z-index:0;border-radius:18px;flex-direction:column;padding:5.5% 5.5% 4%;display:flex;position:relative;overflow:hidden}.cal-poster-bg-image{z-index:-1;border-radius:inherit;opacity:.18;background-position:50%;background-size:cover;position:absolute;inset:0}.cal-poster-header{text-align:center;margin-bottom:4%}.cal-poster-month{color:var(--cal-ink);font-family:Baloo,sans-serif;font-size:clamp(22px,6.5vw,34px);font-weight:800;line-height:1.1}.cal-poster-year{color:var(--cal-muted);margin-top:2px;font-size:clamp(13px,3vw,16px);font-weight:600}.cal-weekdays{text-align:center;grid-template-columns:repeat(7,1fr);margin-bottom:6px;display:grid}.cal-weekdays span{color:var(--cal-muted);font-size:clamp(10px,2.4vw,13px);font-weight:700}.cal-grid{flex:1;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;display:grid}.cal-cell{cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-family:inherit;display:flex;position:relative}.cal-cell-empty{cursor:default}.cal-cell-num{color:var(--cal-ink);z-index:2;font-size:clamp(13px,3.4vw,18px);font-weight:600;position:relative}.cal-cell.is-selected .cal-cell-num{color:var(--cal-on-accent);font-weight:800}.cal-cell.is-selected:before{content:"";z-index:1;aspect-ratio:1;background:var(--cal-accent);border-radius:50%;width:68%;position:absolute}.cal-cell-label{z-index:3;background:var(--cal-accent);color:var(--cal-on-accent);white-space:nowrap;text-overflow:ellipsis;border-radius:100px;max-width:220%;padding:3px 7px;font-size:clamp(7px,1.7vw,10px);font-weight:700;position:absolute;top:72%;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 3px 8px #00000026}.cal-poster-brand{text-align:center;color:var(--cal-muted);margin-top:3%;font-size:clamp(10px,2.2vw,13px);font-weight:700}
