*{box-sizing:border-box}
:root{--bg:#eef3f6;--text:#15212a;--muted:#71808b;--green:#0d835d;--gold:#bd8128;--line:#dfe7eb;--shadow:0 20px 60px rgba(27,55,68,.13)}
body{margin:0;color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 5% 0%,rgba(20,154,111,.16),transparent 27%),radial-gradient(circle at 96% 5%,rgba(67,128,205,.14),transparent 30%),linear-gradient(135deg,#f4f7f9,#eaf0f3 50%,#f7f9fa);min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.2;background-image:radial-gradient(rgba(0,0,0,.07) .7px,transparent .7px);background-size:7px 7px}
.app-shell{width:min(1180px,calc(100% - 28px));margin:auto;padding:18px 0 105px}
.overlay-header,.overlay-footer{position:fixed;z-index:50;left:50%;transform:translateX(-50%);width:min(1180px,calc(100% - 28px));background:rgba(255,255,255,.88);backdrop-filter:blur(22px);border:1px solid rgba(213,223,229,.95);box-shadow:0 14px 45px rgba(29,57,70,.13)}
.overlay-header{top:14px;border-radius:22px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand-wrap{display:flex;align-items:center;gap:12px;min-width:0}.logo-box{width:50px;height:50px;border-radius:14px;background:#fff;border:1px solid #e2e8eb;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.logo-box img{width:100%;height:100%;object-fit:contain}
.brand-kicker{font-size:9px;font-weight:950;letter-spacing:2px;color:var(--green)}.brand-name{font-size:15px;font-weight:950;letter-spacing:.15px;white-space:nowrap}.brand-sub{font-size:10px;color:var(--muted);margin-top:2px}
.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}button{font:inherit;font-size:11px;font-weight:850;border:1px solid #d5dfe5;background:#fff;color:#16232b;padding:9px 12px;border-radius:10px;cursor:pointer;transition:.18s}button:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(0,0,0,.09)}.icon-btn{width:36px;padding:9px 0}.action-btn.green{background:var(--green);border-color:var(--green);color:#fff}
main{padding-top:103px}.week-card{position:relative;border-radius:28px;padding:2px;overflow:hidden;box-shadow:var(--shadow)}.rainbow-frame:before{content:"";position:absolute;inset:-70%;background:conic-gradient(#ff4d6d,#ff9f1c,#ffe66d,#3ddc97,#24b6ff,#7b61ff,#e83e8c,#ff4d6d);animation:spin 8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.week-card-inner{position:relative;z-index:1;background:rgba(250,252,253,.96);border-radius:26px;padding:18px}
.week-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;padding:5px 4px 15px}.eyebrow{font-size:9px;font-weight:950;letter-spacing:2px;color:var(--green)}h1{margin:4px 0 2px;font-size:22px;letter-spacing:-.5px}.period{font-size:12px;font-weight:650;color:#697781}.data-status{font-size:10px;color:#7d8992;white-space:nowrap}
.days{display:grid;grid-template-columns:1fr;gap:11px}.day-card{background:#fff;border:1px solid var(--line);border-radius:19px;overflow:hidden;box-shadow:0 7px 23px rgba(30,55,67,.06)}.day-head{text-align:center;padding:14px 12px 12px;background:linear-gradient(90deg,#f5fbf8,#f7f9fa);border-bottom:1px solid var(--line)}.day-name{font-size:13px;font-weight:950;letter-spacing:1px;color:var(--green)}.day-body{padding:12px 14px;text-align:center}
.block{border:1px solid var(--line);border-radius:14px;padding:0 0 10px;background:#fff}.block+.block{margin-top:10px}.block.birth{background:linear-gradient(135deg,#fff,#f9fdfb)}.block.marriage{background:linear-gradient(135deg,#fff,#fffaf1)}
.block-title{display:block;padding:9px 12px;margin:0 0 7px;border-radius:13px 13px 0 0;font-size:12px;font-weight:950;letter-spacing:1.2px;text-decoration:none;background:linear-gradient(90deg,#dff5eb,#edf9f4);color:var(--green)}.marriage .block-title{background:linear-gradient(90deg,#fff0cf,#fff8e9);color:#8a5a13}
.entry{font-size:14px;line-height:1.45;padding:4px 12px;text-align:center}.name{font-weight:850}.years{font-weight:900;color:#096d4e}.env{font-size:11px;color:#7c8790;font-weight:650}.empty{font-size:14px;color:#8e9aa3;font-weight:850;padding:4px}
.closing-note{margin-top:13px;padding:12px 14px;border-radius:15px;background:#f0f7f4;color:#64736d;font-size:10px;line-height:1.5;border:1px solid #d9ebe3;text-align:center}
.overlay-footer{bottom:12px;border-radius:17px;padding:9px 14px;text-align:center;font-size:9px;font-weight:800;letter-spacing:.45px;color:#6f7d86}.overlay-footer div+div{margin-top:2px;font-weight:650;letter-spacing:.2px}.overlay-footer span{margin:0 4px;color:var(--green)}
@media(max-width:900px){.app-shell{width:calc(100% - 14px);padding-bottom:92px}.overlay-header{position:sticky;top:7px;transform:none;left:auto;width:100%;display:block;border-radius:18px}.brand-name{white-space:normal;font-size:13px}.brand-sub{font-size:9px}.toolbar{margin-top:11px;justify-content:flex-start}main{padding-top:14px}.week-card-inner{padding:12px;border-radius:22px}.week-intro{display:block}.data-status{margin-top:7px}h1{font-size:19px}}
@media(max-width:480px){.brand-wrap{align-items:flex-start}.logo-box{width:42px;height:42px;border-radius:11px}.brand-kicker{font-size:8px}.brand-name{font-size:11px}.brand-sub{font-size:8px}.toolbar button{font-size:10px;padding:8px 9px}.icon-btn{width:33px}.day-name{font-size:12px}.entry{font-size:12px}.env{font-size:10px}}
