:root{--blue: #2563eb;--blue-deep: #1d4ed8;--blue-soft: #eff6ff;--navy: #0f2744;--slate: #3b4b5c;--slate-deep: #24303c;--accent: #e8785a;--accent-deep: #d46345;--surface: #f5f7fa;--surface-2: #e8edf3;--ink: #0f2744;--muted: #64748b;--border: #e2e8f0;--danger: #b42318;--ok: #047857;--shadow: 0 8px 24px rgba(15, 39, 68, .07);--shadow-lg: 0 16px 40px rgba(15, 39, 68, .1);--radius: 14px;--font: "IBM Plex Sans", system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--tone-green-bg: #dcfce7;--tone-green-fg: #15803d;--tone-blue-bg: #dbeafe;--tone-blue-fg: #1d4ed8;--tone-purple-bg: #ede9fe;--tone-purple-fg: #6d28d9;--tone-orange-bg: #ffedd5;--tone-orange-fg: #c2410c;--tone-indigo-bg: #e0e7ff;--tone-indigo-fg: #4338ca}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--surface);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--blue)}img{max-width:100%}.shell{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:1120px;margin:0 auto;padding:1.5rem 1.25rem 3.5rem}.muted{color:var(--muted)}.error{color:var(--danger)}.toast-ok{color:var(--ok);font-weight:500}.stack{display:flex;gap:.5rem;flex-wrap:wrap}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--blue);background:var(--blue);color:#fff;border-radius:12px;padding:.65rem 1rem;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;transition:background .15s ease,border-color .15s ease}.btn:hover{background:var(--blue-deep);border-color:var(--blue-deep)}.btn-ghost{background:transparent;color:var(--navy);border-color:var(--border)}.btn-ghost:hover{background:var(--surface-2)}.btn-accent{background:var(--accent);border-color:var(--accent);color:#1a1210}.btn-accent:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:#fff}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-ok{background:var(--ok);border-color:var(--ok);color:#fff}.empty-state{color:var(--muted);padding:2rem 1rem;text-align:center;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow)}.page-title{margin:0;letter-spacing:-.03em;font-size:clamp(1.45rem,2.4vw,1.85rem);color:var(--navy)}.lead{margin:.35rem 0 0}.page-actions{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:1.15rem}.public-header{background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.site-header-inner{max-width:1120px;margin:0 auto;padding:.85rem 1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.brand-row{display:flex;flex-direction:row;align-items:center;gap:.65rem;text-decoration:none;color:inherit}.brand-mark{width:2.1rem;height:2.1rem;border-radius:10px;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:700;font-size:1.05rem}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text strong{font-size:1.05rem;letter-spacing:-.03em;color:var(--navy)}.brand-text span{font-size:.72rem;color:var(--muted)}.public-nav{display:flex;gap:.35rem;flex-wrap:wrap;flex:1}.nav-pill{text-decoration:none;color:var(--navy);padding:.5rem .85rem;border-radius:999px;font-size:.92rem;font-weight:500}.nav-pill:hover{background:var(--surface)}.nav-pill.active{background:var(--blue-soft);color:var(--blue-deep)}.header-actions{display:flex;gap:.65rem;align-items:center;margin-left:auto}.search-form{margin:0;position:relative;display:flex;align-items:center}.search-form .ui-icon{position:absolute;left:.75rem;color:var(--muted);pointer-events:none}.search-input{border:1px solid var(--border);border-radius:999px;padding:.55rem .95rem .55rem 2.15rem;font:inherit;min-width:14rem;background:#fff;color:var(--navy)}.search-input:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb26}.admin-chip{display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;color:var(--navy);font-weight:600;font-size:.9rem;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--border);background:#fff}.page-head{margin-bottom:1.25rem}.page-head p{margin:.4rem 0 0;color:var(--muted);max-width:40rem}.featured-panel{background:#fff;border-radius:var(--radius);padding:1.25rem 1.35rem;box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;margin-bottom:1.25rem;border:1px solid var(--border)}.featured-panel h2{margin:.45rem 0 .4rem;font-size:clamp(1.2rem,2.2vw,1.55rem);letter-spacing:-.03em;color:var(--navy)}.featured-panel .summary{margin:0 0 .75rem;color:var(--muted)}.featured-meta{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;font-size:.82rem;color:var(--muted)}.featured-label{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--blue-deep);background:var(--blue-soft);padding:.22rem .5rem;border-radius:999px}.toolbar-row{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem}.chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:#fff;border-radius:999px;padding:.42rem .85rem;font:inherit;font-size:.86rem;color:var(--navy);cursor:pointer}.chip:hover{border-color:#bfdbfe}.chip.active{background:var(--blue);border-color:var(--blue);color:#fff}.module-select{display:inline-flex;align-items:center;gap:.45rem;font-size:.88rem;color:var(--muted);background:#fff;border:1px solid var(--border);border-radius:999px;padding:.28rem .55rem .28rem .85rem}.module-select select{border:0;background:transparent;font:inherit;color:var(--navy);font-weight:600}.feed-heading{margin:0 0 .85rem;font-size:1.02rem;letter-spacing:-.02em;color:var(--navy)}.feed-list{display:grid;gap:.7rem}.feed-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.95rem;align-items:center;background:#fff;border-radius:var(--radius);padding:1rem 1.1rem;text-decoration:none;color:inherit;box-shadow:var(--shadow);border:1px solid var(--border)}.feed-card:hover{border-color:#bfdbfe}.feed-icon{width:2.75rem;height:2.75rem;border-radius:12px;display:grid;place-items:center}.feed-icon.tone-green{background:var(--tone-green-bg);color:var(--tone-green-fg)}.feed-icon.tone-blue{background:var(--tone-blue-bg);color:var(--tone-blue-fg)}.feed-icon.tone-purple{background:var(--tone-purple-bg);color:var(--tone-purple-fg)}.feed-icon.tone-orange{background:var(--tone-orange-bg);color:var(--tone-orange-fg)}.feed-icon.tone-indigo{background:var(--tone-indigo-bg);color:var(--tone-indigo-fg)}.cat-badge{display:inline-block;padding:.16rem .5rem;border-radius:999px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.cat-badge.tone-green{background:var(--tone-green-bg);color:var(--tone-green-fg)}.cat-badge.tone-blue{background:var(--tone-blue-bg);color:var(--tone-blue-fg)}.cat-badge.tone-purple{background:var(--tone-purple-bg);color:var(--tone-purple-fg)}.cat-badge.tone-orange{background:var(--tone-orange-bg);color:var(--tone-orange-fg)}.cat-badge.tone-indigo{background:var(--tone-indigo-bg);color:var(--tone-indigo-fg)}.feed-top{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;margin-bottom:.25rem}.feed-meta{font-size:.8rem;color:var(--muted)}.feed-content strong{display:block;color:var(--navy);font-size:1.02rem;letter-spacing:-.02em;margin-bottom:.15rem}.feed-content p{margin:0;color:var(--muted);font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.feed-chevron{color:#94a3b8;display:grid;place-items:center}.post-meta{display:flex;flex-wrap:wrap;gap:.55rem;font-size:.8rem;color:var(--muted);align-items:center}.article-wrap{max-width:820px}.article-header{margin-bottom:1.5rem}.article-header h1{margin:.55rem 0 .65rem;font-size:clamp(1.75rem,3.2vw,2.4rem);letter-spacing:-.04em;line-height:1.15;color:var(--navy)}.article-summary{margin:0;color:var(--muted);font-size:1.05rem}.article-body{background:#fff;border-radius:var(--radius);padding:1.6rem 1.45rem;box-shadow:var(--shadow);border:1px solid var(--border)}.article-body :is(h2,h3){margin-top:1.5rem}.article-body img{border-radius:10px;border:1px solid var(--border);cursor:zoom-in}.article-body img.is-zoom{position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;max-width:92vw;max-height:92vh;z-index:50;cursor:zoom-out;box-shadow:0 20px 60px #00000059}.site-footer{margin-top:auto;border-top:1px solid var(--border);background:#fff;padding:1.1rem 1.25rem;color:var(--muted);font-size:.85rem;text-align:center}.ui-icon{width:1.1rem;height:1.1rem;display:inline-block;vertical-align:middle;flex-shrink:0}.ui-icon svg{width:100%;height:100%;display:block}.feed-icon .ui-icon{width:1.25rem;height:1.25rem}@media(max-width:920px){.featured-panel{grid-template-columns:1fr}.search-input{min-width:10rem}.module-select{width:100%;justify-content:space-between}}.admin-shell .brand{display:flex;flex-direction:column;text-decoration:none;color:inherit;min-width:10rem}.admin-shell .brand strong{font-size:1.05rem;letter-spacing:-.03em}.admin-shell .header-actions{display:flex;gap:.55rem;align-items:center;margin-left:auto}.admin-shell .site-header{background:linear-gradient(120deg,var(--slate-deep),var(--slate));color:#fff;border:0}.admin-shell .site-header-inner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:0 auto;padding:.85rem 1.25rem;width:100%}.admin-shell .site-header-inner{max-width:1180px}.admin-shell .brand,.admin-shell .nav a,.admin-shell .muted{color:#f5f6f5}.admin-shell .brand span{color:#f5f6f5b3}.admin-shell .nav{display:flex;gap:.3rem;flex:1;flex-wrap:wrap}.admin-shell .nav a{text-decoration:none;padding:.45rem .75rem;border-radius:8px;color:#f5f6f5}.admin-shell .nav a.router-link-active,.admin-shell .nav a:hover{background:#ffffff1f}.admin-shell .btn-ghost{color:#f5f6f5;border-color:#f5f6f559}.admin-shell .btn-ghost:hover{background:#ffffff1a}.btn-deploy-quiet{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:#f5f6f573;font:inherit;font-size:.78rem;padding:.25rem .4rem;cursor:pointer;border-radius:4px}.btn-deploy-quiet:hover:not(:disabled){color:#f5f6f5d9;background:#ffffff14}.btn-deploy-quiet:disabled{opacity:.55;cursor:wait}.deploy-hint{font-size:.75rem;color:#f5f6f5b3;max-width:14rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel,.card{background:#fff;border:1px solid transparent;border-radius:var(--radius);padding:1.25rem 1.3rem;box-shadow:var(--shadow)}.panel-head h2{margin:0 0 .25rem;letter-spacing:-.02em}.panel-head p{margin:0 0 1rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.95rem}.field input,.field select,.field textarea,.inline-form input,.settings-list input{border:1px solid var(--border);border-radius:10px;padding:.6rem .75rem;font:inherit;background:#fff}.field input:focus,.field select:focus,.field textarea:focus,.inline-form input:focus,.settings-list input:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb1f}.title-input{font-size:1.25rem;font-weight:600;letter-spacing:-.02em}.editor-toolbar{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.editor-surface{border:1px solid var(--border);border-radius:10px;min-height:300px;background:#fff;padding:.95rem 1.05rem}.editor-surface .ProseMirror{outline:none;min-height:260px}.editor-surface .ProseMirror p.is-editor-empty:first-child:before{color:var(--muted);content:attr(data-placeholder);float:left;height:0;pointer-events:none}.status-pill{display:inline-block;padding:.22rem .6rem;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.status-draft{background:#e5e7eb;color:#374151}.status-scheduled{background:#ffedd5;color:#c2410c}.status-published{background:#d1fae5;color:#047857}.status-archived{background:#fee2e2;color:#b91c1c}.login-page{min-height:100vh;display:grid;place-items:center;padding:1rem;background:linear-gradient(125deg,#0b3a8a,#1d4ed8 55%,#2563eb)}.login-card{width:min(100%,420px);background:#fff;border-radius:calc(var(--radius) + 2px);padding:1.75rem 1.6rem;box-shadow:0 24px 60px #00000038}.login-card h1{letter-spacing:-.03em}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1.1rem;align-items:start}.editor-side .side-title{margin:0 0 1rem;font-size:.95rem;letter-spacing:-.02em}.check-row{display:flex;align-items:center;gap:.55rem;margin:.5rem 0 0;font-size:.95rem}.tiny{font-size:.82rem;margin:-.25rem 0 .9rem}.tiny a{color:var(--blue-deep)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem}.inline-form{display:flex;gap:.5rem;margin-bottom:1rem}.inline-form input{flex:1}.settings-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}.settings-list li{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;padding:.7rem .75rem;border-radius:10px;background:var(--surface)}.settings-name{font-weight:600;margin-right:auto}.settings-slug{font-family:var(--mono);font-size:.75rem;color:var(--muted);margin-right:.35rem}.grow{flex:1;min-width:10rem}.admin-post-list{display:grid;gap:.55rem}.admin-post-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;text-decoration:none;color:inherit;padding:.9rem 1rem;border-radius:12px;background:var(--surface)}.admin-post-row:hover{background:var(--surface-2)}.filters{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}@media(max-width:920px){.editor-layout,.settings-grid{grid-template-columns:1fr}}
