:root { --paper:#f8f6f2; --panel:#fffefd; --ink:#29282d; --muted:#8e8a91; --line:#e8e3dc; --lavender:#e9e6ff; --lavender-ink:#5e5a99; --peach:#ffe5dd; --peach-ink:#a75d54; --shadow:0 10px 30px rgba(64,50,41,.07); }
* { box-sizing:border-box; } body { margin:0; color:var(--ink); background:radial-gradient(circle at 8% 0%,#fff 0,transparent 28%),var(--paper); font-family:"Avenir Next","Helvetica Neue",sans-serif; } button,input,select,textarea { font:inherit; } button { cursor:pointer; }.app-shell { min-height:100vh; }.topbar { height:76px; max-width:1510px; margin:auto; padding:0 40px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }.wordmark { color:var(--ink); text-decoration:none; font-size:20px; font-weight:700; letter-spacing:-.7px; }.wordmark span { color:#9d9aaa; font-weight:500; }.nav { display:flex; gap:5px; }.nav-link,.text-button,.today-button,.date-field,.close-button,.delete-button { border:0; border-radius:12px; background:transparent; color:var(--ink); }.nav-link { padding:9px 12px; color:var(--muted); font-size:14px; }.nav-link:hover,.nav-link.is-active { color:var(--ink); background:#efede9; }.main-content { max-width:1510px; padding:38px 40px 64px; margin:auto; }.view { display:none; }.view.is-visible { display:block; }.calendar-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:30px; }.week-navigation { display:flex; align-items:center; gap:24px; }.week-navigation h1 { min-width:215px; margin:0; text-align:center; font-size:22px; font-weight:650; letter-spacing:-.8px; }.text-button { padding:9px 10px; font-size:14px; color:#66626b; }.text-button:hover { background:#efede9; color:var(--ink); }.toolbar-actions { display:flex; gap:10px; align-items:center; }.today-button { padding:10px 15px; background:#2d2c32; color:white; box-shadow:0 4px 12px rgba(45,44,50,.14); font-size:14px; }.today-button:hover { background:#484650; }.date-field { position:relative; width:42px; height:40px; background:var(--panel); border:1px solid var(--line); }.date-field::before { content:"⌁"; position:absolute; inset:8px 0 0; text-align:center; color:#77727c; font-size:20px; pointer-events:none; }.date-field input { position:absolute; inset:0; width:100%; opacity:0; cursor:pointer; }.today-strip { display:none; }.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:12px; align-items:start; }.day-column { min-width:0; padding:0 4px; }.day-header { height:68px; padding:4px 7px 14px; border-bottom:1px solid var(--line); }.day-header time { display:block; color:var(--muted); font-size:11px; font-weight:700; letter-spacing:.8px; }.day-header strong { display:block; margin-top:5px; font-size:15px; font-weight:650; }.day-column.is-today .day-header strong::after { content:""; display:inline-block; width:6px; height:6px; margin-left:6px; border-radius:50%; background:#706bb5; vertical-align:middle; }.day-events { padding-top:13px; display:grid; gap:9px; }.activity-card { position:relative; overflow:hidden; border:0; width:100%; text-align:left; padding:13px 13px 14px; border-radius:16px; box-shadow:var(--shadow); transition:transform .15s ease,box-shadow .15s ease; }.activity-card:hover { transform:translateY(-2px); box-shadow:0 15px 27px rgba(64,50,41,.11); }.activity-card.eva { background:var(--lavender); color:var(--lavender-ink); }.activity-card.jade { background:var(--peach); color:var(--peach-ink); }.activity-card.modified-eva::before,.activity-card.modified-jade::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; }.activity-card.modified-eva::before { background:#857dca; }.activity-card.modified-jade::before { background:#d98575; }.modifier-dot { position:absolute; right:11px; top:12px; width:7px; height:7px; border-radius:50%; background:transparent; }.modified-eva .modifier-dot { background:#857dca; }.modified-jade .modifier-dot { background:#d98575; }.activity-time { font-size:11px; font-weight:600; letter-spacing:.1px; opacity:.78; }.activity-title { margin:7px 0 4px; font-size:15px; font-weight:700; letter-spacing:-.2px; color:var(--ink); }.activity-child { font-size:11px; font-weight:700; letter-spacing:.8px; }.empty-note { margin:20px 7px; color:#b7b1aa; font-size:12px; }.section-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:24px; }.section-kicker { margin:0 0 6px; color:var(--muted); font-size:11px; letter-spacing:1.1px; text-transform:uppercase; }.section-heading h2 { margin:0; font-size:30px; letter-spacing:-1px; }.table-panel,.settings-card,.location-card { background:var(--panel); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); padding:22px; }.table-section+.table-section { margin-top:28px; } table { width:100%; border-collapse:collapse; font-size:14px; } th,td { padding:11px 8px; text-align:left; border-bottom:1px solid var(--line); } th { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.7px; }.location-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.location-card h3,.settings-card h3 { margin:3px 0 10px; }.location-card p,.settings-card p { color:#67636b; font-size:14px; line-height:1.55; }.modal { border:0; padding:0; background:transparent; }.modal::backdrop { background:rgba(29,28,32,.25); backdrop-filter:blur(6px); }.modal-card { width:min(680px,calc(100vw - 28px)); padding:24px; border:0; border-radius:22px; background:#fffdfa; box-shadow:0 30px 80px rgba(24,20,20,.25); }.modal-head,.modal-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; }.modal-head h3 { margin:0; font-size:24px; }.close-button { width:34px; height:34px; font-size:24px; color:var(--muted); }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:20px 0; } label { display:grid; gap:7px; color:#67636b; font-size:13px; } label input,label select,label textarea { width:100%; padding:10px; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--ink); }.full-width { grid-column:1/-1; }.toggle { display:flex; align-items:center; gap:8px; }.scope-row { display:flex; gap:14px; align-items:center; flex-wrap:wrap; padding-bottom:16px; font-size:13px; }.scope-row label { display:flex; align-items:center; gap:5px; }.delete-button { padding:10px 15px; color:#a54d4d; }.hidden { display:none; }
@media (max-width:800px) { .topbar { height:auto; padding:18px 20px 12px; display:block; }.nav { margin-top:15px; overflow-x:auto; }.main-content { padding:24px 18px 44px; }.calendar-toolbar { align-items:stretch; flex-direction:column; margin-bottom:18px; }.week-navigation { justify-content:space-between; gap:2px; }.week-navigation h1 { min-width:0; flex:1; font-size:18px; }.text-button span { display:none; }.toolbar-actions { justify-content:space-between; }.today-button { flex:1; }.date-field { width:42px; flex:none; }.today-strip { display:block; background:#fffdfa; border:1px solid var(--line); border-radius:16px; padding:14px 16px; margin-bottom:16px; box-shadow:var(--shadow); }.today-strip p { margin:0; }.today-strip .today-label { font-size:11px; color:var(--muted); letter-spacing:.9px; text-transform:uppercase; }.today-strip .today-events { margin-top:5px; font-size:14px; }.calendar-grid { display:block; }.day-column { display:block; padding:0; margin-bottom:26px; }.day-header { height:auto; padding:0 4px 13px; }.day-header time { font-size:12px; }.day-header strong { font-size:22px; }.day-events { padding-top:12px; gap:10px; }.activity-card { padding:16px; }.activity-title { font-size:17px; }.empty-note { padding:16px 0; }.location-grid,.form-grid { grid-template-columns:1fr; }.section-heading { align-items:start; }.full-width { grid-column:auto; } table { min-width:640px; }.table-panel { overflow:auto; }.modal-actions { flex-direction:row; } }
.table-edit { border:1px solid var(--line); border-radius:9px; padding:6px 10px; background:#fff; color:#5e5a67; font-size:12px; font-weight:650; }.table-edit:hover { background:#f2f0ed; }
.account-actions { display:flex; align-items:center; gap:10px; }.role-badge { color:var(--muted); font-size:12px; }.logout-button { border:0; background:transparent; color:var(--muted); font-size:12px; padding:8px; }.logout-button:hover { color:var(--ink); }.login-screen { position:fixed; inset:0; z-index:10; display:grid; place-items:center; padding:20px; background:radial-gradient(circle at 15% 0%,#fff 0,transparent 32%),var(--paper); }.login-card { width:min(420px,100%); padding:32px; border:1px solid var(--line); border-radius:22px; background:var(--panel); box-shadow:var(--shadow); display:grid; gap:16px; }.login-card h1,.login-card p { margin:0; }.login-card h1 { font-size:32px; letter-spacing:-1px; }.login-card > p:not(.section-kicker):not(.login-error) { color:var(--muted); }.login-card .today-button { width:100%; }.login-error { color:#af4c4c; font-size:13px; }.app-shell.hidden,.hidden { display:none; } body.role-child [data-parent-only],body.role-child [data-view-panel="activities"],body.role-child [data-view-panel="locations"],body.role-child [data-view-panel="settings"] { display:none !important; } body.role-child .activity-card { cursor:default; } body.role-child .activity-card:hover { transform:none; box-shadow:var(--shadow); }
