*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #f5ede0;--color-surface: #faf6ee;--color-surface-hover: #f0e9db;--color-surface-active: #e8dfd0;--color-ink: #1c1917;--color-ink-secondary: #3c3836;--color-ink-tertiary: #6b6560;--color-ink-muted: #9c958d;--color-ink-ghost: #c4beb5;--color-rule: #cdc5b8;--color-rule-heavy: #a39b8e;--color-rule-light: #e0d9cc;--color-accent: #7b1f2e;--color-accent-hover: #5e1622;--color-accent-light: rgba(123, 31, 46, .08);--color-gold: #92750c;--color-gold-light: #c9a84c;--color-sidebar-bg: #1c1917;--color-sidebar-surface: #292524;--color-sidebar-text: #d4d0cb;--color-sidebar-text-muted: #78716c;--color-sidebar-accent: #c9363c;--color-sidebar-rule: #3a3633;--color-link: #7b1f2e;--color-danger: #991b1b;--color-danger-hover: #7f1d1d;--color-success: #2d5f2e;--font-display: "Sora", "DM Sans", "Helvetica Neue", sans-serif;--font-sans: "DM Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace;--radius: 0px;--transition: .15s ease}body{font-family:var(--font-sans);font-size:15px;background:var(--color-bg);color:var(--color-ink);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0}body:after{display:none}#root{min-height:100vh;position:relative;z-index:1}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}a{color:var(--color-link);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#7b1f2e26;color:var(--color-ink)}.app-layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--color-sidebar-bg);border-right:none;padding:0;display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;transition:width .25s ease}.sidebar-collapsed{width:60px}.sidebar-brand{padding:28px 24px 20px;border-bottom:1px solid var(--color-sidebar-rule);display:flex;align-items:center;justify-content:space-between;gap:8px;position:relative}.sidebar-brand:after{content:"";position:absolute;bottom:-1px;left:24px;right:24px;height:1px;background:linear-gradient(90deg,var(--color-sidebar-accent),transparent)}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:20px 0 16px}.sidebar-collapsed .sidebar-brand:after{left:12px;right:12px}.sidebar-brand>div:first-child{min-width:0;flex:1}.sidebar-brand h1{font-family:var(--font-display);font-size:17px;font-weight:700;color:#fff;letter-spacing:-.01em;line-height:1.2}.sidebar-brand .edition-date{font-family:var(--font-mono);font-size:10px;color:var(--color-sidebar-text-muted);letter-spacing:.05em;text-transform:uppercase;margin-top:4px}.sidebar-toggle{background:transparent;border:none;border-radius:4px;color:var(--color-sidebar-text-muted);padding:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition)}.sidebar-toggle:hover{color:#fff;background:var(--color-sidebar-surface)}.sidebar-nav{display:flex;flex-direction:column;flex:1;gap:0;padding:12px 0}.sidebar-link{display:flex;align-items:center;gap:14px;padding:12px 24px;border:none;border-left:2px solid transparent;background:none;color:var(--color-sidebar-text-muted);font-family:var(--font-sans);font-size:13px;font-weight:500;text-align:left;transition:all var(--transition);width:100%;border-radius:0;letter-spacing:.02em;text-transform:uppercase}.sidebar-link:before{display:none}.sidebar-link:hover{background:var(--color-sidebar-surface);color:var(--color-sidebar-text);border-left-color:var(--color-sidebar-rule)}.sidebar-link.active{background:var(--color-sidebar-surface);color:var(--color-sidebar-accent);border-left-color:var(--color-sidebar-accent);font-weight:600}.sidebar-link svg{width:17px;height:17px;flex-shrink:0;opacity:.4}.sidebar-link.active svg{opacity:1;color:var(--color-sidebar-accent)}.sidebar-link:hover svg{opacity:.7}.sidebar-collapsed .sidebar-link{justify-content:center;padding:12px;border-left:none}.sidebar-collapsed .sidebar-link.active{border-left:none;border-bottom:2px solid var(--color-sidebar-accent)}.sidebar-badge{margin-left:auto;background:var(--color-sidebar-accent);color:var(--color-sidebar-bg);font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 7px;border:none;border-radius:2px;line-height:1.4}.main-content{flex:1;padding:40px 52px;overflow-y:auto;min-width:0}.page-header{margin-bottom:32px;padding-top:4px;padding-bottom:16px;border-top:4px solid var(--color-ink);border-bottom:1px solid var(--color-rule);position:relative}.page-header:after{content:"";position:absolute;top:4px;left:0;right:0;height:1px;background:var(--color-rule-heavy)}.page-header h2{font-family:var(--font-display);font-size:32px;font-weight:700;color:var(--color-ink);letter-spacing:-.03em;margin-bottom:6px;margin-top:12px;line-height:1.15}.page-header p{color:var(--color-ink-tertiary);font-family:var(--font-sans);font-size:13px;font-weight:400;letter-spacing:.03em;text-transform:uppercase}.page-header-title-row{display:flex;align-items:baseline;gap:10px}.info-popover-wrapper{position:relative}.info-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--color-rule-heavy);background:transparent;color:var(--color-ink-tertiary);font-family:var(--font-serif);font-size:13px;font-weight:600;cursor:pointer;line-height:1;transition:border-color .15s,color .15s;position:relative;top:-2px}.info-btn:hover{border-color:var(--color-ink-secondary);color:var(--color-ink-secondary)}.info-popover{position:absolute;top:calc(100% + 8px);left:0;z-index:100;width:320px;background:var(--color-surface);border:1px solid var(--color-rule);padding:18px 20px;font-family:var(--font-sans);font-size:13.5px;line-height:1.6;color:var(--color-ink-secondary);box-shadow:0 4px 16px #00000014}.info-popover p{text-transform:none;letter-spacing:normal;margin-bottom:10px}.info-popover p:last-child{margin-bottom:0}.info-popover-label{font-weight:600;color:var(--color-ink);margin-bottom:4px!important;font-size:12px;text-transform:uppercase!important;letter-spacing:.04em!important}.info-popover-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.info-popover-list li{font-size:12.5px;padding:3px 10px;background:var(--color-accent-light);border:1px solid var(--color-rule-light);color:var(--color-ink-secondary);font-family:var(--font-sans)}.info-popover-cta{font-style:italic;color:var(--color-ink-tertiary);font-size:13px}.card{background:var(--color-surface);border:none;border-bottom:1px solid var(--color-rule-light);border-radius:0;box-shadow:none;margin-bottom:0;transition:all var(--transition);position:relative;overflow:hidden;animation:fadeIn .3s ease-out both}.card:before{display:none}.card:hover{background:var(--color-surface-hover);border-color:var(--color-rule)}.card-body{padding:18px 24px}.card:nth-child(2){animation-delay:.04s}.card:nth-child(3){animation-delay:.08s}.card:nth-child(4){animation-delay:.12s}.card:nth-child(5){animation-delay:.16s}.card:nth-child(6){animation-delay:.2s}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.newsletter-item{display:flex;align-items:flex-start;gap:16px;cursor:pointer;transition:all var(--transition)}.newsletter-item.unread .newsletter-subject{font-weight:600;color:var(--color-ink)}.newsletter-unread-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent);flex-shrink:0;margin-top:9px}.newsletter-unread-dot.read{background:var(--color-ink-ghost)}.newsletter-meta{flex:1;min-width:0}.newsletter-subject{font-family:var(--font-sans);font-size:15px;font-weight:500;color:var(--color-ink-secondary);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--transition);line-height:1.4}.newsletter-item:hover .newsletter-subject{color:var(--color-ink)}.newsletter-sender{font-family:var(--font-sans);font-size:12px;font-weight:500;color:var(--color-ink-tertiary);letter-spacing:.01em}.newsletter-date{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-muted);white-space:nowrap;flex-shrink:0;letter-spacing:.02em}.newsletter-detail-header{margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--color-rule)}.newsletter-detail-header h2{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.03em;margin-bottom:12px;color:var(--color-ink);line-height:1.2}.newsletter-detail-meta{display:flex;gap:24px;font-family:var(--font-sans);font-size:13px;color:var(--color-ink-tertiary);letter-spacing:.01em}.newsletter-detail-content{font-family:var(--font-sans);font-size:15px;line-height:1.7;white-space:pre-wrap;color:var(--color-ink-secondary)}.back-button{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--color-accent);font-family:var(--font-sans);font-size:12px;font-weight:600;padding:0;margin-bottom:24px;transition:all var(--transition);text-transform:uppercase;letter-spacing:.05em}.back-button:hover{color:var(--color-ink)}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.tag{display:inline-block;background:var(--color-ink);color:var(--color-bg);font-family:var(--font-mono);font-size:10px;font-weight:500;padding:2px 8px;border:none;border-radius:1px;letter-spacing:.04em;text-transform:uppercase}.form-group{margin-bottom:20px}.form-group label{display:block;font-family:var(--font-sans);font-size:12px;font-weight:600;margin-bottom:6px;color:var(--color-ink-secondary);text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 14px;background:#fff;border:1px solid var(--color-rule);border-radius:0;color:var(--color-ink);font-size:14px;outline:none;transition:all var(--transition)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-ink-ghost);font-style:italic;font-size:14px}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-ink-tertiary);box-shadow:0 0 0 1px var(--color-ink-tertiary)}.form-group textarea{min-height:200px;resize:vertical;font-family:var(--font-mono);font-size:13px;line-height:1.6}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 22px;border-radius:0;border:1px solid transparent;font-family:var(--font-sans);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;transition:all var(--transition);position:relative}.btn:before{display:none}.btn-primary{background:var(--color-ink);color:var(--color-bg);border-color:var(--color-ink)}.btn-primary:hover{background:var(--color-ink-secondary);border-color:var(--color-ink-secondary)}.btn-primary:active{background:#000}.btn-secondary{background:transparent;color:var(--color-ink-tertiary);border-color:var(--color-rule)}.btn-secondary:hover{background:var(--color-surface-hover);color:var(--color-ink);border-color:var(--color-rule-heavy)}.btn-danger{background:transparent;color:var(--color-danger);border-color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-sm{padding:5px 14px;font-size:11px}.btn-group{display:flex;gap:8px}.briefing-card{background:var(--color-surface);border-top:3px solid var(--color-accent);border-bottom:1px solid var(--color-rule);margin-bottom:28px;position:relative}.briefing-card .card-body{padding:24px 28px}.briefing-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-rule-light)}.briefing-title{font-family:var(--font-sans);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--color-accent)}.briefing-title:before{content:"◆";margin-right:8px;font-size:8px;vertical-align:1px}.briefing-meta{display:flex;align-items:center;gap:10px}.briefing-timestamp{font-family:var(--font-mono);font-size:11px;color:var(--color-ink-muted);letter-spacing:.02em}.summary-card{margin-bottom:20px}.summary-card .card-body{padding:24px 28px}.summary-date{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--color-ink);letter-spacing:-.01em;margin-bottom:4px}.summary-count{font-family:var(--font-sans);font-size:12px;color:var(--color-ink-muted);margin-bottom:14px;text-transform:uppercase;letter-spacing:.04em}.summary-topics{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.summary-text{font-family:var(--font-sans);font-size:14px;line-height:1.7;color:var(--color-ink-secondary)}.summary-text strong{font-weight:600;color:var(--color-ink)}.summary-text a{color:var(--color-accent);text-decoration:underline;text-decoration-color:var(--color-rule);text-underline-offset:2px;transition:all var(--transition)}.summary-text a:hover{color:var(--color-accent-hover);text-decoration-color:var(--color-accent)}.summary-rule{border:none;border-top:1px solid var(--color-rule-light);margin:16px 0}.summary-section-heading{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--color-ink);margin:20px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--color-rule-light);letter-spacing:-.02em;line-height:1.3}.summary-subsection-heading{font-family:var(--font-sans);font-size:14px;font-weight:600;color:var(--color-ink-secondary);margin:16px 0 8px;text-transform:uppercase;letter-spacing:.04em}.summary-bullet{margin-bottom:4px;padding-left:18px;position:relative;line-height:1.7}.summary-bullet-marker{position:absolute;left:0;color:var(--color-accent);font-weight:700}.summary-bold-line{font-weight:600;color:var(--color-ink);margin:0 0 4px}.summary-story-title{margin:0 0 2px;line-height:1.5}.summary-story-title strong{font-weight:600;color:var(--color-ink)}.summary-category-heading{font-family:var(--font-sans);font-size:13px;font-weight:600;color:var(--color-ink-tertiary);margin:14px 0 6px;letter-spacing:.02em}.summary-spacer{height:8px}.summary-line{margin:0 0 4px;line-height:1.7}.backfill-banner{display:flex;align-items:center;gap:12px;padding:14px 20px;margin-bottom:16px;background:var(--color-accent-light);border:1px solid var(--color-rule-light);border-radius:var(--radius);font-family:var(--font-sans);font-size:14px;color:var(--color-ink-secondary)}.backfill-spinner{width:18px;height:18px;border:2px solid var(--color-rule-light);border-top-color:var(--color-ink-tertiary);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.archive-week-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 24px;background:none;border:none;cursor:pointer;font-family:var(--font-sans);text-align:left;transition:background var(--transition)}.archive-week-toggle:hover{background:var(--color-surface-hover)}.archive-week-content{border-top:1px solid var(--color-rule-light);padding:16px 24px}.archive-summary-block{padding:16px 20px;background:var(--color-accent-light);border-left:3px solid var(--color-accent);margin-bottom:20px}.archive-newsletter-item{cursor:pointer;padding:12px 0;border-bottom:1px solid var(--color-rule-light);transition:all var(--transition)}.archive-newsletter-item:last-child{border-bottom:none}.archive-newsletter-item:hover .newsletter-subject{color:var(--color-ink)}.summary-actions{margin-top:20px;padding-top:14px;border-top:1px solid var(--color-rule-light)}.generate-banner{background:var(--color-surface);border:1px solid var(--color-rule);border-top:3px solid var(--color-accent);padding:20px 24px;margin-bottom:28px;display:flex;align-items:center;justify-content:space-between}.generate-banner:before{display:none}.generate-banner:after{display:none}.generate-banner-text h3{font-family:var(--font-display);font-size:16px;font-weight:700;margin-bottom:4px;color:var(--color-ink)}.generate-banner-text p{font-family:var(--font-sans);font-size:12px;color:var(--color-ink-tertiary);letter-spacing:.02em}.empty-state{text-align:center;padding:80px 20px;color:var(--color-ink-tertiary)}.empty-state svg{width:40px;height:40px;margin-bottom:20px;opacity:.2;color:var(--color-ink-muted)}.empty-state h3{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--color-ink);margin-bottom:8px}.empty-state p{font-family:var(--font-sans);font-size:14px;margin-bottom:24px;color:var(--color-ink-muted)}.delete-actions{display:flex;gap:8px;margin-top:10px}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-rule);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--color-rule-heavy)}.sidebar::-webkit-scrollbar-thumb{background:var(--color-sidebar-rule)}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--color-sidebar-text-muted)}.admin-login-container{max-width:420px;margin:40px auto}.admin-login-title{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--color-ink);margin-bottom:6px}.admin-login-subtitle{font-family:var(--font-sans);font-size:14px;color:var(--color-ink-tertiary);margin-bottom:20px;line-height:1.6}.admin-login-error{color:var(--color-danger);font-family:var(--font-sans);font-size:13px;margin-bottom:12px}.admin-section{margin-bottom:36px}.admin-section-title{font-family:var(--font-sans);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink-tertiary);margin-bottom:16px;padding-bottom:10px;border-bottom:2px solid var(--color-ink)}.mobile-menu-btn{display:none;position:fixed;top:max(16px,env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));z-index:900;width:42px;height:42px;border:none;border-radius:0;background:var(--color-sidebar-bg);color:var(--color-sidebar-text);align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #00000026;transition:all var(--transition);-webkit-tap-highlight-color:transparent}.mobile-menu-btn:hover{background:var(--color-sidebar-surface)}.mobile-menu-btn svg{width:20px;height:20px}.sidebar-mobile-close{display:none;background:transparent;border:none;color:var(--color-sidebar-text-muted);padding:6px;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition);-webkit-tap-highlight-color:transparent}.sidebar-mobile-close:hover{color:#fff}.sidebar-backdrop{display:none}@media(max-width:768px){.mobile-menu-btn{display:flex}.sidebar{position:fixed;top:0;left:0;z-index:1000;width:260px;height:100vh;height:100dvh;transform:translate(-100%);-webkit-transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);-webkit-transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1);box-shadow:none;-webkit-overflow-scrolling:touch}.sidebar.sidebar-collapsed{width:260px;transform:translate(-100%)}.sidebar.sidebar-mobile-open{transform:translate(0);-webkit-transform:translateX(0);box-shadow:4px 0 24px #0000004d}.sidebar.sidebar-mobile-open .sidebar-brand{justify-content:space-between;padding:28px 24px 20px}.sidebar.sidebar-mobile-open .sidebar-link{justify-content:flex-start;padding:12px 24px;border-left:2px solid transparent}.sidebar.sidebar-mobile-open .sidebar-link.active{border-left-color:var(--color-sidebar-accent);border-bottom:none}.sidebar-toggle{display:none}.sidebar.sidebar-mobile-open .sidebar-mobile-close{display:flex}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .3s ease;-webkit-tap-highlight-color:transparent}.sidebar-backdrop.sidebar-backdrop-visible{display:block;opacity:1}.main-content{padding:72px 20px 24px}.page-header h2{font-size:28px}.generate-banner{flex-direction:column;gap:12px;text-align:center}}
