/* Shared LifeOps visual language: every screen uses the daily-card palette. */
:root {
    color-scheme: light;
    --bg: #f4f7f5;
    --panel: #fff;
    --panel-strong: #fff;
    --text: #202a27;
    --ink: #202a27;
    --muted: #6d8073;
    --line: #e0e9e3;
    --border: #e0e9e3;
    --mint: #03c75a;
    --cyan: #078744;
    --accent: #078744;
    --accent-strong: #163d2d;
    --red: #b74545;
    --shadow: 0 5px 18px #193a2410;
    --font: 'Malgun Gothic', 'Apple SD Gothic Neo', 'Segoe UI', sans-serif;
}
*,*::before,*::after { box-sizing:border-box; }
body { background:var(--bg);color:var(--text);font-family:var(--font); }
button,input,textarea,select { font-family:inherit; }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid #03a94e;outline-offset:3px; }
a { color:#147c45;text-underline-offset:4px; }
button:disabled { opacity:.5;cursor:wait; }
.lifeops-app .shell { gap:22px; }
.lifeops-app .tab-panel { padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none; }
.lifeops-app .section-card,.lifeops-app .digest-card,.content-card,.service-card,.lifeops-panel {
    background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);backdrop-filter:none;min-width:0;
}
.lifeops-app .section-card,.lifeops-app .digest-card,.lifeops-panel { padding:24px; }
.lifeops-app .digest-layout,.lifeops-app .ipo-layout,.lifeops-app .digest-summary { gap:24px; }
.lifeops-app .digest-card h3 { font-size:20px;line-height:1.6;letter-spacing:-.5px; }
.lifeops-app .subtle,.lifeops-app .section-head p { font-size:13px;color:var(--muted);line-height:1.9;overflow-wrap:anywhere; }
.section-heading { margin-bottom:22px; }
.section-heading h2 { font-size:22px;line-height:1.5;letter-spacing:-.6px;margin:9px 0 0; }
.section-label { display:flex;align-items:center;gap:8px;color:#2c553e;font-size:10px;font-weight:700;letter-spacing:1.8px; }
.section-label::before { content:'';width:6px;height:6px;border-radius:50%;background:var(--mint);flex-shrink:0; }
.lifeops-app .digest-kicker { color:#078744;font-size:11px;letter-spacing:.5px;line-height:1.8;margin-bottom:10px; }
.lifeops-app .digest-list { gap:18px; }
.lifeops-app .digest-list article { padding-bottom:18px;border-color:var(--line);min-width:0;overflow-wrap:anywhere; }
.lifeops-app .digest-list article:last-child { padding-bottom:0; }
.lifeops-app .digest-list a { color:var(--text); }
.lifeops-app .digest-list a:hover { color:#078744; }
.lifeops-app .section-card .tabs { padding:0;border:0;gap:8px;flex-wrap:wrap; }
.lifeops-app .section-card .tabs .tab-btn { border:1px solid var(--line);background:#fafcfb;color:#607869;max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left;line-height:1.65; }
.lifeops-app .section-card .tabs .tab-btn.active { border-color:#cee7d7;background:#e7f6ed;color:#078744; }
.lifeops-app .tab-btn,.lifeops-app .ipo-range-btn { font-family:inherit; }
.lifeops-app form>.tab-btn,.lifeops-app input+.tab-btn,.lifeops-app .section-card button[type=submit],#research-question-submit { border-radius:9px;padding:11px 15px;font-size:12px;background:#e7f6ed;color:#078744;border:1px solid #cee7d7; }
.lifeops-app input:not([type=hidden]),.lifeops-app textarea,.lifeops-app select,.lifeops-login input:not([type=hidden]) {
    background:#fafcfb;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px;min-width:0;max-width:100%;
}
.lifeops-app input::placeholder,.lifeops-app textarea::placeholder { color:#92a096; }
.lifeops-app .pill { border:1px solid #deebe2;background:#f0f6f2;color:#496854;padding:6px 10px;font-size:11px; }
.lifeops-app .digest-empty,.lifeops-app .ipo-empty,.lifeops-app .placeholder { background:#fafcfb;color:var(--muted);font-size:13px;line-height:1.8;border-color:var(--line); }
.lifeops-app .ipo-stack { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start; }
.lifeops-app .ipo-card { padding:0;overflow:hidden; }
.lifeops-app .ipo-card-head { padding:23px 25px 22px;background:#f0f7f2;border-bottom:1px solid #deebe2; }
.lifeops-app .ipo-card-head h3 { font-size:27px;margin:11px 0;letter-spacing:-1px; }
.lifeops-app .ipo-card .ipo-detail { margin:0;border:0;border-radius:0;padding:23px 25px;background:#fff; }
.lifeops-app .ipo-detail dl { margin:0;grid-template-columns:94px minmax(0,1fr);gap:15px 14px; }
.lifeops-app .ipo-detail dt { font-size:11px;color:#7b8e80;line-height:1.8; }
.lifeops-app .ipo-detail dd { font-size:13px;line-height:1.8;overflow-wrap:anywhere; }
.lifeops-app .ipo-detail dd a { color:#147c45; }
.lifeops-app .ipo-item-meta { margin:0;gap:7px; }
.lifeops-app .reaction-pill { font-size:10px;padding:6px 9px; }
.reaction-hot { background:#fff0f0;color:#ac3c3c; }
.reaction-warm { background:#fff3e4;color:#98601b; }
.reaction-neutral { background:#f0f6e8;color:#627237; }
.reaction-cool { background:#eaf3fb;color:#286491; }
.reaction-pending { background:#eef0fa;color:#5b659d; }
.reaction-delayed,.reaction-cancelled { background:#f1f2f4;color:#6f7784; }
#research-digest-content .digest-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start; }
#research-papers-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;max-height:none;overflow:visible;padding:0; }
#research-papers-list .paper-card { padding:22px;border:1px solid var(--line);border-radius:15px;background:#fafcfb; }
#research-papers-list .paper-card:last-child { padding-bottom:22px; }
#research-papers-list .paper-card h3 { font-size:18px;line-height:1.65; }
.paper-links { display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:15px;border-top:1px solid var(--line); }
.lifeops-app .paper-links a,.event-source-link { display:inline-block;padding:7px 10px;border:1px solid #dce9df;border-radius:7px;background:#fff;color:#147c45;text-decoration:none;font-size:11px; }
.local-event-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px; }
.event-card { padding:0;overflow:hidden; }
.event-card-head { padding:23px 25px;background:#f0f7f2;border-bottom:1px solid #deebe2; }
.event-card-head h3 { font-size:25px;line-height:1.6;letter-spacing:-.7px; }
.event-card-head h3 a { color:var(--text);text-decoration:none; }
.event-card-body { padding:22px 25px; }
.event-details { display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px 14px;margin-bottom:18px; }
.event-details dt { color:#7b8e80;font-size:11px;line-height:1.8; }
.event-details dd { margin:0;font-size:13px;line-height:1.8;overflow-wrap:anywhere; }
.event-note { color:var(--muted);font-size:13px;line-height:1.9;padding-top:18px;border-top:1px solid var(--line); }
.event-card-footer { padding:15px 25px;border-top:1px solid var(--line);background:#fcfdfc; }
.service-card-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px; }
.service-card { padding:25px;position:relative;overflow:hidden; }
.service-card::after { content:'';position:absolute;bottom:0;left:0;right:0;height:4px;background:#dfe6e1; }
.service-card.is-running::after { background:var(--mint); }
.service-card-head { display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:25px; }
.service-icon { display:grid;place-items:center;width:42px;height:42px;border:1px solid #d9ebde;border-radius:11px;background:#edf7f0;color:#19834a;font-size:14px;font-weight:700; }
.service-state { display:inline-flex;align-items:center;gap:6px;font-size:11px;color:#8a625e; }
.service-state::before { content:'';width:6px;height:6px;border-radius:50%;background:#b87067; }
.is-running .service-state { color:#138549; }.is-running .service-state::before { background:var(--mint); }
.service-card h3 { font-size:23px;letter-spacing:-.7px;line-height:1.5;margin:0 0 11px; }
.service-card p { margin:0;color:var(--muted);font-size:12px;line-height:1.9; }
.lifeops-app .status::before { box-shadow:none; }.lifeops-app .status.running::before { box-shadow:none; }
.lifeops-page { margin:0;padding:28px;min-height:100vh; }
.lifeops-page .shell { max-width:1280px;margin:auto;display:grid;gap:24px; }
.page-header { padding:30px 8px 8px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px; }
.page-brand { font-size:12px;font-weight:900;letter-spacing:3px;color:#03a84e; }
.page-header h1 { font-size:clamp(34px,4.6vw,57px);line-height:1.2;letter-spacing:-2.8px;margin:14px 0; }
.page-header p { font-size:14px;line-height:1.8;color:var(--muted);margin:0; }
.page-back { border:1px solid var(--line);padding:10px 14px;border-radius:9px;font-size:12px;white-space:nowrap;text-decoration:none;color:#496854;background:#fff; }
.page-feedback { margin:20px 0 0;color:var(--muted);font-size:12px;line-height:1.9; }
.lifeops-login { margin:0;min-height:100vh;display:grid;place-items:center;padding:24px; }
.login-card { width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:37px;box-shadow:var(--shadow); }
.login-mark { width:44px;height:44px;display:grid;place-items:center;background:var(--mint);color:white;border-radius:12px;font-size:30px;font-weight:900;margin-bottom:27px; }
.login-card h1 { font-size:33px;letter-spacing:-1.5px;line-height:1.3;margin:12px 0; }
.login-card p { font-size:13px;line-height:1.9;color:var(--muted);margin:0 0 25px; }
.login-card label { display:block;margin:18px 0 9px;color:#496854;font-size:12px;font-weight:700; }
.lifeops-login input:not([type=hidden]) { width:100%;padding:13px 14px;font-size:14px; }
.login-card button { width:100%;border:0;border-radius:10px;padding:14px 16px;background:#163d2d;color:#fff;font-size:13px;font-weight:700;cursor:pointer;margin-top:25px; }
.login-error { padding:12px 14px;border:1px solid #f1dddd;background:#fff5f4;color:#a4473c;font-size:12px;line-height:1.8;border-radius:9px;margin-top:15px; }
@media(max-width:900px) { .service-card-grid { grid-template-columns:1fr; }.lifeops-app .ipo-stack,#research-digest-content .digest-grid,.local-event-grid { grid-template-columns:1fr; } }
@media(max-width:760px) {
    .lifeops-app .section-card,.lifeops-app .digest-card,.lifeops-panel { padding:19px; }
    .lifeops-app .digest-layout,.lifeops-app .ipo-layout,.lifeops-app .digest-summary { gap:20px; }
    .lifeops-app .ipo-card { padding:0; }.lifeops-app .ipo-card-head,.lifeops-app .ipo-card .ipo-detail { padding:20px; }
    #research-papers-list { grid-template-columns:1fr;gap:16px; }#research-papers-list .paper-card { padding:17px; }
    .lifeops-app .digest-card h3 { font-size:18px; }.lifeops-app .ipo-card-head h3 { font-size:25px; }
    .event-card-head,.event-card-body { padding:20px; }.event-card-head h3 { font-size:22px; }
    .lifeops-app .section-card .tabs { flex-wrap:wrap;overflow:visible; }
    .section-heading { margin-bottom:18px; }.section-heading h2 { font-size:20px; }
    .lifeops-page { padding:16px 13px; }.page-header { padding:13px 5px 7px;flex-wrap:wrap; }.page-header h1 { font-size:35px;letter-spacing:-2px; }.page-header p { font-size:12px; }
    .login-card { padding:28px; }.login-card h1 { font-size:29px; }
}
