/* A keepsake page, rather than another performance dashboard. */
.weekly-entry { margin:24px 0; padding:24px; background:#f8edce; border-radius:24px; display:flex; align-items:center; justify-content:space-between; gap:20px; color:#33463c; border:1px solid #e9d9b0; }
.weekly-entry[hidden] { display:none; }
.weekly-entry h2 { font-size:21px; margin:8px 0; }
.weekly-entry p { font-size:13px; margin:0; color:#647063; }
.weekly-entry button { flex-shrink:0; border-radius:24px; background:#36766a; color:#fff; padding:13px 20px; font:inherit; font-size:13px; cursor:pointer; }
.weekly-eyebrow { font-size:10px; font-weight:750; letter-spacing:1.4px; color:#687b68; }
.weekly-dialog { width:min(820px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:0; border:0; border-radius:28px; background:#fffaf0; color:#304639; box-shadow:0 24px 100px #23372d38; overflow:auto; }
.weekly-dialog::backdrop { background:#283e3780; backdrop-filter:blur(6px); }
.weekly-dialog * { box-sizing:border-box; }
.weekly-dialog button,.weekly-dialog select { font:inherit; cursor:pointer; min-height:44px; }
.weekly-dialog button:focus-visible,.weekly-dialog select:focus-visible { outline:3px solid #417f76; outline-offset:3px; }
.weekly-toolbar { display:flex; align-items:center; gap:12px; padding:16px 24px; position:sticky; top:0; z-index:10; background:#fffaf0f5; border-bottom:1px solid #e6e6cf; }
.weekly-brand { font-size:10px; letter-spacing:1.2px; font-weight:750; margin-right:auto; }
#weeklyClose { background:#efeddf; color:#3b5747; width:44px; border-radius:50%; border:0; font-size:25px; flex-shrink:0; }
.weekly-history { display:flex; gap:10px; flex-wrap:wrap; padding:14px 28px 0; align-items:center; font-size:11px; color:#697366; }
.weekly-history select { min-height:36px; max-width:100%; background:transparent; border:1px solid #e0dfcc; border-radius:10px; padding:5px 9px; color:#52634f; }
#weeklyStatus { width:100%; min-height:16px; }
.weekly-hero { text-align:center; padding:0 70px 42px; }
.weekly-date { display:inline-block; padding:6px 15px; background:#f7e4aa; border-radius:4px; transform:rotate(-2deg); font-size:11px; font-weight:600; letter-spacing:1px; margin:0 0 20px; }
.weekly-hero h1 { font-size:clamp(26px,4.5vw,40px); letter-spacing:-1.2px; line-height:1.28; margin:0 auto 20px; max-width:630px; color:#325843; }
.weekly-intro { font-size:15px; line-height:1.9; max-width:540px; margin:auto; color:#667160; }
.weekly-phase-highlight { color:#244e3b; background:#f6df96; padding:.08em .3em; border-radius:5px; font-weight:750; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.weekly-art { width:320px; max-width:100%; height:190px; margin:0 auto 10px; position:relative; overflow:hidden; }
.weekly-hill { position:absolute; bottom:10px; width:200px; height:70px; background:#d4dfba; border-radius:100% 100% 0 0; left:0; transform:rotate(-6deg); }
.weekly-hill.second { left:140px; bottom:5px; background:#b9d3b7; transform:rotate(10deg); }
.weekly-sun { position:absolute; width:48px; height:48px; background:#edbc5a; border-radius:50%; left:58px; top:32px; box-shadow:0 0 0 10px #edbc5a20; }
.weekly-cloud { position:absolute; width:72px; height:20px; background:#ebe6d5; top:39px; right:25px; border-radius:30px; }
.weekly-cloud::before { content:''; position:absolute; width:38px; height:30px; bottom:4px; left:14px; background:inherit; border-radius:50%; }
.weekly-book { position:absolute; width:110px; height:116px; background:#d8866e; border:4px solid #ad6753; border-radius:9px 16px 16px 9px; bottom:17px; left:110px; transform:rotate(-10deg); box-shadow:6px 7px 0 #4d6f3922,inset 7px 0 #b56854; animation:weekly-book-arrive .65s cubic-bezier(.2,1.4,.4,1) both; }
.weekly-book::before { content:''; position:absolute; height:10px; left:3px; right:5px; bottom:3px; border-radius:5px; background:#fff7dc; border-bottom:2px solid #efdfb8; }
.weekly-book::after { content:'✦'; position:absolute; color:#ffe8a7; font-size:25px; right:12px; top:5px; }
.weekly-eyes { position:absolute; width:7px; height:10px; background:#573f30; border-radius:50%; left:27px; top:43px; box-shadow:35px 0 #573f30; }
.weekly-smile { position:absolute; left:42px; top:56px; width:18px; height:12px; border:3px solid #573f30; border-top:0; border-radius:0 0 15px 15px; }
.weekly-bookmark { position:absolute; background:#ead587; width:17px; height:42px; left:182px; top:48px; transform:rotate(8deg); clip-path:polygon(0 0,100% 0,100% 100%,50% 80%,0 100%); }
.weekly-spark { position:absolute; font-size:33px; color:#b2a1ce; top:87px; left:67px; }
.weekly-spark.two { left:auto; right:37px; top:94px; color:#ce8967; font-size:27px; }
.weekly-section { padding:34px 44px; border-top:1px dashed #dfdfc9; }
.weekly-section h2 { font-size:23px; line-height:1.4; margin:10px 0 24px; letter-spacing:-.5px; }
.weekly-section p { font-size:14px; line-height:1.8; }
.weekly-trail { background:#edf3df; }
.weekly-metrics { display:flex; flex-wrap:wrap; gap:22px 26px; padding:8px 0 15px; }
.weekly-metric { flex:1; min-width:92px; }
.weekly-metric strong { font-size:38px; font-weight:750; display:block; line-height:1.2; color:#3c6e53; }
.weekly-metric span { font-size:11px; color:#61765d; display:block; margin-top:9px; }
.weekly-section .weekly-detail { font-size:12px; color:#70806b; }
.weekly-section .weekly-current { color:#466c53; font-size:12px; border-top:1px solid #cfddc1; padding-top:12px; }
.weekly-focus { background:#f9e8df; }
.weekly-focus .weekly-eyebrow { color:#a16e5b; }
.weekly-word-tags { display:flex; gap:10px; flex-wrap:wrap; margin:18px 0 0; }
.weekly-word-tags span { padding:7px 16px; background:#fff9f1; border-radius:9px; color:#9a6553; font-size:17px; font-weight:700; transform:rotate(-3deg); }
.weekly-word-tags span:nth-child(even) { transform:rotate(3deg); }
.weekly-next { background:#ece7f3; }
.weekly-next .weekly-eyebrow { color:#8b7aa5; }
.weekly-action { display:flex; align-items:baseline; gap:18px; }
.weekly-action>span { font-size:23px; font-weight:700; color:#a18cb8; }
.weekly-action p { margin:10px 0; }
.weekly-stage-note { padding-top:18px; border-top:1px solid #d6cde1; color:#6c627a; }
.weekly-footer { text-align:center; padding:28px 36px 34px; }
.weekly-footer p { max-width:580px; margin:0 auto 20px; font-size:11px; color:#7c8274; line-height:1.8; }
#weeklyDone { padding:13px 28px; background:#39766a; border:0; border-radius:25px; color:white; transition:transform .2s,background .2s; }
#weeklyDone:hover { transform:translateY(-2px); background:#2c6459; }
.weekly-loading { text-align:center; padding:60px 24px; font-size:22px; }
@keyframes weekly-book-arrive { from { opacity:0;transform:translateY(20px) rotate(-18deg); } to { opacity:1;transform:translateY(0) rotate(-10deg); } }
@media(max-width:600px) { .weekly-entry { padding:20px; display:block; }.weekly-entry button { margin-top:18px; }.weekly-dialog { border-radius:20px; }.weekly-toolbar { padding:10px 12px; gap:6px; }.weekly-brand { max-width:180px; line-height:1.7; font-size:8px; }.weekly-history { padding:12px 20px 0; }.weekly-hero { padding:0 24px 32px; }.weekly-hero h1 { font-size:28px; }.weekly-intro { font-size:14px; }.weekly-section { padding:28px 24px; }.weekly-section h2 { font-size:21px; }.weekly-metrics { gap:22px 15px; }.weekly-metric { flex-basis:27%; min-width:75px; }.weekly-metric strong { font-size:33px; }.weekly-metric span { font-size:10px; }.weekly-footer { padding:26px 24px; } }
@media(prefers-reduced-motion:reduce) { .weekly-dialog * { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }
