:root{--jm-bg: #f4f8fb;--jm-panel: #ffffff;--jm-primary: #0f9ec9;--jm-accent: #ff6f61;--jm-border: #dde5f0;--jm-text: #1f2933;--jm-muted: #6b7280;--jm-radius: 14px;--jm-shadow: 0 10px 30px rgba(15, 158, 201, .08);--jm-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--jm-font);background:radial-gradient(circle at top left,#e0f2fe,#fdfdfd 48%,#f4f8fb);color:var(--jm-text)}#root{min-height:100vh;display:flex;align-items:stretch;justify-content:center;padding:24px}.app-shell{width:100%;max-width:1200px;background:linear-gradient(135deg,#fffffff2,#f4f8fbfa);border-radius:24px;box-shadow:var(--jm-shadow);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(221,229,240,.8)}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px 8px;border-bottom:1px solid rgba(226,232,240,.9)}.app-title{margin:0;font-size:1.3rem;font-weight:800;letter-spacing:.04em}.app-subtitle{margin:4px 0 0;font-size:.85rem;color:var(--jm-muted)}.app-header-right{display:flex;align-items:center;gap:8px}.app-main{display:grid;grid-template-columns:minmax(280px,1.1fr) minmax(320px,1.4fr);gap:16px;padding:16px 20px 20px}@media(max-width:900px){#root{padding:12px}.app-shell{border-radius:0}.app-main{grid-template-columns:1fr}}.panel{background:var(--jm-panel);border-radius:18px;box-shadow:0 12px 30px #0f9ec90f;border:1px solid rgba(221,229,240,.9);padding:16px 18px;display:flex;flex-direction:column;gap:12px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.panel-title{font-size:1rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--jm-muted)}.badge-soft{padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:#0f9ec914;color:var(--jm-primary)}.button{border-radius:999px;padding:8px 14px;border:none;font-size:.85rem;font-weight:600;display:inline-flex;align-items:center;gap:8px;cursor:pointer;background:var(--jm-primary);color:#fff;box-shadow:0 8px 16px #0f9ec959;transition:transform .08s ease,box-shadow .08s ease,background .1s ease}.button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #0f9ec966}.button:active{transform:translateY(0);box-shadow:0 4px 10px #0f9ec940}.button-secondary{background:transparent;color:var(--jm-primary);border:1px solid rgba(15,158,201,.45);box-shadow:none}.button-secondary:hover{background:#0f9ec90f;box-shadow:none}.input,.select,.textarea{width:100%;border-radius:999px;border:1px solid var(--jm-border);padding:8px 12px;font-size:.85rem;font-family:var(--jm-font);outline:none;background:#f9fbff;transition:border .1s ease,box-shadow .1s ease,background .1s ease}.textarea{border-radius:14px;min-height:58px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:var(--jm-primary);box-shadow:0 0 0 1px #0f9ec92e;background:#fff}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#f1f5f9;font-size:.75rem;color:var(--jm-muted)}.chip-dot{width:7px;height:7px;border-radius:999px;background:var(--jm-accent)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;font-size:.8rem}.calendar-day-header{text-align:center;font-weight:600;color:var(--jm-muted)}.calendar-cell{position:relative;height:32px;border-radius:999px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--jm-text);border:none;background:transparent}.calendar-cell span{pointer-events:none}.calendar-cell--selected{background:#0f9ec914;border:1px solid rgba(15,158,201,.5);font-weight:600}.calendar-cell--muted{opacity:.4;cursor:default}.calendar-cell-dot{position:absolute;bottom:4px;width:6px;height:6px;border-radius:999px;background:var(--jm-accent)}.appointment-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;padding-right:4px}.appointment-item{border-radius:14px;padding:8px 10px;border:1px solid rgba(221,229,240,.9);background:linear-gradient(135deg,#fff,#f8fafc);display:flex;flex-direction:column;gap:4px}.appointment-title-row{display:flex;justify-content:space-between;align-items:center;gap:6px}.appointment-title{font-size:.9rem;font-weight:600}.appointment-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:.75rem;color:var(--jm-muted)}.icon-button{border-radius:999px;border:none;background:transparent;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--jm-muted)}.icon-button:hover{background:#94a3b826}.upcoming-section{padding:0 20px 12px}.app-footer{border-top:1px solid rgba(226,232,240,.9);padding:8px 20px 12px;font-size:11px;color:#6b7280;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.app-footer a{color:#2563eb;text-decoration:underline;margin-left:4px}.calendar-cell{height:32px;border-radius:999px;display:flex;align-items:center;justify-content:center;cursor:default;color:var(--jm-text)}.calendar-cell--today{background:linear-gradient(120deg,var(--jm-primary),#22d3ee);color:#fff;font-weight:700;box-shadow:0 8px 14px #0f9ec966}.calendar-cell--weekend{font-weight:700}.calendar-cell--holiday{background:linear-gradient(120deg,#f97373,#fb923c);color:#fff;font-weight:700;box-shadow:0 8px 16px #dc262673}.calendar-cell--muted{opacity:.4}.calendar-cell--holiday{background:linear-gradient(135deg,#fee2e2,#fef2f2)}.calendar-cell--selected{box-shadow:0 0 0 2px #0f9ec9b3}.calendar-cell-dot{width:6px;height:6px;border-radius:999px;background:var(--jm-accent);margin-top:2px}.calendar-cell{position:relative}.calendar-cell--selected{box-shadow:0 0 0 2px #0f9ec959}.calendar-cell-weekend{font-weight:600}.calendar-cell--holiday{background:linear-gradient(135deg,#fee2e2,#fecaca)}.calendar-cell--event{border:1px dashed rgba(249,115,22,.7)}.calendar-cell-has-appointment:after{content:"";position:absolute;bottom:5px;width:6px;height:6px;border-radius:999px;background:#f97316}.calendar-cell--selected{outline:2px solid rgba(15,158,201,.8)}.calendar-cell--holiday{background:linear-gradient(135deg,#fee2e2,#fffbeb)}
