/* JINTAECHOI.COM • Soft Green DOS / non-animated comfort theme */
:root {
  color-scheme:dark;
  --bg:#09140e;--panel:#112219;--panel-2:#182d20;
  --text:#c4dbc0;--muted:#93b198;--line:#34533b;
  --accent:#a1d8a2;--accent-soft:#203b29;
  --warn:#e3c994;--success:#a9d9af;--max:1180px;
  --term-head:#bce7b8;--term-ink:#d4ebcf;--term-dark:#0b1c12;
  --term-mono:"SFMono-Regular",Menlo,Monaco,"Cascadia Mono",Consolas,
    "Liberation Mono","D2Coding","Nanum Gothic Coding",
    "Noto Sans Mono CJK KR","Apple SD Gothic Neo","Malgun Gothic",monospace;
}
html{color-scheme:dark;background:var(--bg);scroll-padding-top:25px}
body{
  margin:0;color:var(--text);font:14px/1.8 var(--term-mono);
  letter-spacing:-.012em;-webkit-font-smoothing:antialiased;
  background:radial-gradient(ellipse 85% 550px at 50% -150px,#386d3d22,transparent 80%),
    linear-gradient(90deg,#9add9a06 1px,transparent 1px) 0 0/50px 50px,
    var(--bg);min-height:100vh;
}
::selection{background:#40744b;color:#f6fff0}
*{scrollbar-color:#426e4c #0b1b10}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:#d5f4cc}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,summary:focus-visible,.day-cell:focus-visible{
  outline:2px solid #b7e7ac;outline-offset:3px;
}
button,input,select,textarea{font-family:var(--term-mono);font-size:inherit;letter-spacing:inherit}
input,select,textarea,button{accent-color:var(--accent)}
input::placeholder,textarea::placeholder{color:#84a589}
option{background:var(--term-dark);color:var(--text)}
button:disabled,input:disabled{opacity:.55}
.topbar{
  position:relative;max-width:var(--max);min-height:96px;
  margin:17px auto 0;padding:34px 28px 20px;display:flex;align-items:center;
  gap:20px;border:1px solid var(--line);border-top:3px solid #7fb388;
  background:linear-gradient(180deg,#142a1b,#0c1c13);
  box-shadow:0 15px 35px #0003;
}
.topbar::before{
 content:"JINTAECHOI.COM / PERSONAL KNOWLEDGE OS";
 position:absolute;top:7px;left:28px;color:#8bae91;
 font:10px/1.3 var(--term-mono);letter-spacing:.12em;
}
.brand{display:inline-flex;align-items:center;gap:10px;color:#d0e9c9;
  font-weight:750;font-size:15px;letter-spacing:.07em;text-decoration:none;white-space:nowrap}
.brand::before{content:"C:\\>";color:#a8e2ab;font-weight:650}
.site-brand-mark{border-radius:2px!important;border:1px solid #527254;filter:saturate(.75)}
.topnav{gap:5px 10px;justify-content:flex-end}
.topnav a,.topnav .linkbutton{
  display:inline-block;padding:5px 4px;color:#bad8b8;font:600 12px/1.6 var(--term-mono);
  text-decoration:none;white-space:nowrap;border:1px solid transparent;border-radius:2px;
  background:transparent;cursor:pointer
}
.topnav a::before,.topnav .linkbutton::before{content:"[";margin-right:2px;color:#799f80}
.topnav a::after,.topnav .linkbutton::after{content:"]";margin-left:2px;color:#799f80}
.topnav a:hover,.topnav .linkbutton:hover{background:#24432b;border-color:#456e50;color:#e2f8da}
.language-select{border-left-color:var(--line)!important;padding-left:12px}
.language-select select{background:#14291b!important;color:#cbe7c6!important;
  border:1px solid #456c4c;border-radius:2px!important;font-size:12px!important;
  padding:6px 20px 6px 8px!important;min-height:35px}
.shell{
  position:relative;max-width:var(--max);min-height:68vh;margin:auto;
  padding:52px 30px 98px;border-left:1px solid #38593a30;border-right:1px solid #38593a30;
  background:linear-gradient(180deg,#17311d32,transparent 520px)
}
.shell::before{content:"C:\\JINTAE>";display:block;margin:-24px 0 31px;
  color:#8db291;font:11px/1.6 var(--term-mono);letter-spacing:.08em}
.footer{
  max-width:var(--max);margin:0 auto 22px;padding:21px 28px;
  border:1px solid var(--line);border-top:3px double #426b4a;
  background:#0d1d13;color:var(--muted);font-size:11px
}
.footer::before{content:"END OF FILE";color:#81a687;font-size:10px;letter-spacing:.07em;white-space:nowrap}
.footer a{color:#acdcaf}
.eyebrow,.meta,.status-label{
 color:#9abb9c;font:550 11px/1.7 var(--term-mono);letter-spacing:.12em
}
.eyebrow::before{content:"// ";color:#7baf83}
.muted,.calendar-note,.recent-date,.post-date,.field-note{color:var(--muted)}
.identity{
 position:relative;max-width:none;margin:7px 0 74px;
 padding:53px clamp(19px,3vw,45px) 43px;border:1px solid #3a6043;
 border-top:3px solid #8fca91;background:linear-gradient(145deg,#132b1c,#0d2015 76%);
 box-shadow:0 18px 38px #00000022
}
.identity::before{
 content:"A:\\HOME / START";position:absolute;top:0;left:0;right:0;
 padding:5px 14px;background:#25442c;border-bottom:1px solid #466b4d;
 color:#bcdfb8;font:10px/1.6 var(--term-mono);letter-spacing:.16em
}
.identity h1{max-width:980px;margin:17px 0 0;color:var(--term-head);
 font-size:clamp(26px,3.35vw,43px);font-weight:680;line-height:1.35;
 letter-spacing:-.035em;text-shadow:none}
.home-admin-actions{margin-top:24px}
.section-header{align-items:center;margin-bottom:22px}
.section-header h2,.pagehead h1,.authbox h1{
 margin:5px 0 0;color:var(--term-head);font-size:clamp(24px,3.4vw,37px);
 line-height:1.32;font-weight:700;letter-spacing:-.035em
}
.section-header h2::before,.pagehead h1::before{content:"> ";color:#83b98c}
.pagehead{max-width:880px;margin-bottom:40px}
.pagehead>p:last-child{color:#a5c3a8;font-size:15px;line-height:1.8}
.recent-section{border-top:1px dashed var(--line);margin-top:76px;padding-top:41px}
.recent-post,.post-row{border-color:var(--line);padding:24px 10px}
.recent-post:hover,.post-row:hover{background:#a5d7a007}
.recent-post h3,.post-row h2{font-size:clamp(17px,2vw,21px);font-weight:650;line-height:1.5;color:var(--term-head)}
.recent-post h3::before,.post-row h2::before{content:"> ";color:#83b98c}
.recent-post p,.post-row p,.worklog-card p{color:#a8c4a9;font-size:13px;line-height:1.8}
.recent-date,.post-date{font-size:11px;padding-top:5px}
.text-link{color:var(--accent)}.text-link::after{content:" ↗"}
.badge,.badge.success,.badge.warning{
  background:#182d20;border:1px solid #43664c;border-radius:2px;
  color:#acd4ad;font-size:10px;letter-spacing:.06em
}
.badge.success{color:#b9e8b8;border-color:#5b9066}
.badge.warning{color:#e3ca9b;border-color:#8b7349}
.month-button,.calendar-filter,.small-button,.button,.button.secondary,
.admin-filter-tabs a,.form input,.form select,.form textarea{border-radius:2px}
.month-button,.calendar-filter,.small-button,.button.secondary,.admin-filter-tabs a{
  background:#152a1d;color:#bcdabc;border:1px solid #42654a
}
.month-button:hover,.calendar-filter:hover,.small-button:hover,
.button.secondary:hover,.admin-filter-tabs a:hover{
  background:#24452e;color:#e6fbe0;border-color:#8ac68f
}
.month-button.current-month{border-color:#7fb98b;color:#cbe7c5}
.calendar-filter.active,.admin-filter-tabs a.active{
  background:#9cd59f;color:#09190e;border-color:#a7e0a8;font-weight:800
}
.calendar-filter.active:hover,.admin-filter-tabs a.active:hover{background:#b6edb7;color:#0a180c}
.month-button,.calendar-filter,.small-button,.button,.admin-filter-tabs a{min-height:35px}
.button{
  padding:9px 15px;background:#9ed79f;border:1px solid #9ed79f;
  color:#0a1a10;font-weight:750;font-size:12px;letter-spacing:.025em;cursor:pointer
}
.button:hover{background:#b8efb5;border-color:#b8efb5;color:#061209}
.button.secondary{color:var(--text);background:transparent}
.form label{color:#c0d9bd;font-size:12px}
.form input,.form select,.form textarea{
  color:#d0e5cb;background:#0b1d12;border:1px solid #476d4e;font-size:13px;
  line-height:1.7;caret-color:#b6f5b0
}
.form input:focus,.form textarea:focus,.form select:focus{background:#12291b;border-color:#8ccc94}
.manual-translation-fields{background:#10241a;border-color:var(--line);border-radius:2px}
.manual-translation-fields legend{color:var(--accent);padding:0 8px}
.authbox,.authbox.wide{
  border-radius:2px;border:1px solid #3e6448;border-top:3px solid #86bd8b;
  background:#11231a;box-shadow:0 12px 35px #0003
}
.authbox>p:not(.eyebrow){color:#9fbba3}
.danger-button{border-color:#855a52!important;background:#2b1d1b!important;color:#e4aea4!important}
.error,.notice{border-radius:0;border-left:3px solid #c6ad7e;background:#302819;color:#e8d7af}
.notice{border-left-color:#84bd91;background:#1a3021;color:#cbe4c6}
.status-strip,.schedule-date,.worklog-card,.admin-table-wrap{border-color:#385a42;border-radius:2px}
.status-strip>div,.schedule-date,.worklog-card{background:#13261a}
.status-strip strong{color:#d0efcb}
.admin-table th,.admin-table td,.analytics-status-table th,.analytics-status-table td{border-color:var(--line)}
.admin-table th{color:#a9c7ac}
.admin-filter-tabs{flex-wrap:wrap}.admin-filter-tabs a{padding:7px 12px}
.event-meta,.event-meta>div{border-color:var(--line)}
.weekday-head{border-color:#3c5d42;border-radius:2px 2px 0 0}
.weekday{background:#203924;color:#bdd9b9;letter-spacing:.07em}
.calendar-grid{border-color:#3c5d42;border-radius:0 0 2px 2px}
.day-cell{background:#112319;border-color:#32513a}
.day-cell:nth-child(even){background:#14271c}
.day-cell:hover{background:#1e3927}
.day-cell.outside{background:#0d1c12;color:#75967b}
.day-cell.outside:hover{background:#0d1c12}
.day-number{color:#d7eed1}
.day-label{color:#90b594}
.dot{height:6px;width:6px;border-radius:1px}
.schedule-dot{background:#abdba4}.post-dot{background:#7cbea8}
.calendar-item{border-radius:1px;color:#c4dec3;font-size:11px;line-height:1.5;padding:7px 8px}
.calendar-item:hover{filter:brightness(1.18)}
.schedule-item,.schedule-item.range-start,.schedule-item.range-middle,.schedule-item.range-end{
  background:#213b27;border-left-color:#aee0a4
}
.post-item{background:#19342a;border-left-color:#7ac4ad}
.private-item{opacity:.84}.calendar-time{color:#a9c9a9}
.day-cell.selected{background:#21422b;box-shadow:inset 0 0 0 1px #97ca9d}
.mobile-day-panel{background:#14291c;border:1px solid #436b4d;border-radius:2px}
.mobile-day-heading h3{color:var(--term-head)}
.article{max-width:980px}
.article h1{
  margin:12px 0 18px;max-width:960px;color:var(--term-head);
  font-size:clamp(29px,4.2vw,46px);font-weight:700;line-height:1.35;
  letter-spacing:-.045em;overflow-wrap:anywhere
}
.lede{color:#accbb0;font-size:clamp(15px,1.65vw,17px);line-height:1.86}
.prose{
  max-width:100%;margin-top:37px;color:#bbd5b9;font-size:14px;line-height:1.91;
  letter-spacing:-.018em;overflow-wrap:anywhere
}
.prose>p,.prose>ul,.prose>ol,.prose>blockquote{max-width:91ch}
.prose p{margin:14px 0 18px}
.prose :is(h2,h3,h4){color:#c0e9ba;line-height:1.43;letter-spacing:-.025em;scroll-margin-top:24px}
.prose h2{
 margin:53px 0 22px;padding:13px 15px;background:#17311f;
 border:1px solid #3e6445;border-left:3px solid #90c793;
 font-size:clamp(18px,2.15vw,23px);font-weight:710
}
.prose h2::before{content:"> ";color:#85b98e}
.prose h3{font-size:clamp(16px,1.9vw,19px);margin-top:32px;font-weight:690}
.prose h3::before{content:":: ";color:#87ae8b}
.prose strong,.prose b{color:#dff5d9;font-weight:750}
.prose a{color:#a7e4a8;text-decoration:underline;text-decoration-color:#6eae79}
.prose a:hover{color:#d8fad4}
.prose :is(ul,ol){padding-left:26px}.prose li{padding-left:3px;margin:5px 0}
.prose li::marker{color:#90c595}
.prose blockquote{margin:23px 0;padding:17px 18px;background:#183322;
  border-left:3px solid #86c192;color:#c9e3c7}
.prose blockquote p{margin:0}
.prose code{padding:2px 5px;background:#203826;border:1px solid #416446;
  border-radius:1px;color:#def2d6;font: .9em var(--term-mono)}
.prose pre{overflow:auto;padding:18px;background:#0b1b11;border:1px solid #395a41;
  border-left:3px solid #84b78b;border-radius:2px;font-size:12px;line-height:1.75}
.prose pre code{background:none;border:0;padding:0;color:#c6dec2;font-size:inherit}
.prose table{
  display:block;width:100%;max-width:100%;max-height:720px;
  overflow:auto;border:1px solid #3a5b41;border-collapse:separate;
  border-spacing:0;background:#102117;font-size:11px;line-height:1.6;
  scrollbar-color:#487955 #102117
}
.prose table th,.prose table td{
  padding:9px 12px;text-align:left;vertical-align:top;white-space:nowrap;
  border:0;border-right:1px solid #34513b;border-bottom:1px solid #2c4a34
}
.prose table th{position:sticky;top:0;z-index:1;background:#27462e;
  color:#e1f5da;font-weight:700;border-bottom:1px solid #63926c}
.prose table tr:nth-child(even) td{background:#172c1e}
.prose table tr:hover td{background:#23402c}
.prose table td{color:#b8d4b5}
.prose table th:last-child,.prose table td:last-child{border-right:0}
.prose img{max-width:100%;height:auto}
@media(max-width:940px){
  .topbar{max-width:none;margin:12px 12px 0}
  .shell{margin:0 12px;padding:42px 23px 78px}
  .footer{margin:0 12px 13px}
}
@media(max-width:820px){
  .topbar{display:grid;grid-template-columns:1fr auto;padding:33px 17px 17px;gap:12px}
  .topbar::before{left:17px;font-size:9px}
  .topnav{grid-column:1/-1;justify-content:flex-start;gap:3px 8px}
  .topnav a,.topnav .linkbutton{font-size:11px;padding:5px 3px}
  .language-select{margin-left:auto}
  .shell{padding:35px 18px 70px}
  .shell::before{margin:-17px 0 23px}
  .identity{padding:51px 23px 36px;margin-bottom:56px}
  .identity h1{font-size:clamp(25px,5.8vw,36px)}
  .day-cell{min-height:58px;padding:6px 3px}
  .mobile-day-panel .calendar-item{font-size:12px}
  .recent-post,.post-row{padding:20px 8px}
}
@media(max-width:560px){
  body{font-size:13px;line-height:1.75}
  .topbar{margin:8px 8px 0;padding:31px 12px 13px}
  .topbar::before{left:12px;letter-spacing:.045em}
  .brand{font-size:12px;gap:7px;letter-spacing:0}
  .brand>span:last-child{font-size:12px}
  .site-brand-mark{width:22px!important;height:22px!important;max-width:22px;flex-basis:22px!important}
  .topnav{gap:2px 5px}.topnav a,.topnav .linkbutton{font-size:10px}
  .language-select{margin-left:0;padding-left:6px}
  .language-select select{max-width:85px!important;min-width:75px!important;font-size:11px!important}
  .shell{margin:0 8px;padding:29px 12px 55px}
  .shell::before{margin:-12px 0 20px}
  .footer{margin:0 8px 11px;padding:16px;font-size:10px}
  .footer::before{display:block;margin-bottom:9px}
  .identity{padding:45px 15px 29px;margin:8px 0 42px}
  .identity h1{font-size:clamp(24px,7vw,32px)}
  .section-header h2,.pagehead h1{font-size:clamp(23px,6.5vw,32px)}
  .month-nav{gap:5px}.month-button{padding:7px 8px;font-size:11px}
  .weekday{font-size:9px}.day-number{font-size:12px}
  .calendar-filter{padding:8px 11px;font-size:12px}
  .article h1{font-size:clamp(26px,7vw,35px)}
  .lede{font-size:14px}
  .prose{font-size:13px;line-height:1.89}
  .prose h2{margin-top:43px;padding:12px;font-size:clamp(16px,4.7vw,21px)}
  .prose h3{font-size:clamp(15px,4.3vw,18px)}
  .prose table{max-height:470px;font-size:10px}
  .prose table th,.prose table td{padding:8px 9px}
  .authbox{padding:19px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
   transition-duration:.01ms!important;scroll-behavior:auto!important}
}
@media print{
  body{background:#fff;color:#243b28}
  .topbar,.footer,.shell::before{display:none!important}
  .shell{border:0;padding:0;background:#fff}
  .prose,.prose p,.prose li{color:#243b28}
  .article h1,.prose :is(h2,h3,h4){color:#1d4825}
  .prose h2{background:#eef4ee;border-color:#8ca88f}
  .prose table{display:table;max-height:none;overflow:visible}
  .prose table th{position:static;background:#e9f2e9;color:#254c2d}
  .prose table td{color:#243b28}
}

/* Auxiliary pages are rendered with their own stylesheets after base.html. */
.journey-consent{
  background:#11271a!important;color:#cbe5c6!important;
  border:1px solid #537459!important;border-top:3px solid #8cc690!important;
  border-radius:2px!important;
  box-shadow:0 14px 32px #0008!important;
  font:13px/1.7 var(--term-mono)!important;
}
.journey-consent h2{font:700 17px/1.45 var(--term-mono)!important;color:#c5ebc0!important}
.journey-consent p{color:#b2d1b2!important}
.journey-consent a{color:#a6dda6!important}
.journey-buttons button{
  font:650 12px/1.5 var(--term-mono)!important;
  border:1px solid #638b69!important;background:#23422c!important;
  color:#dcf3d4!important;border-radius:2px!important;
}
.journey-buttons button:hover{background:#31573a!important}
.journey-controls button{border-color:#53785a!important;background:#172e20!important;
  border-radius:2px!important;color:#c1e3be!important;font:12px var(--term-mono)!important}
.analytics-status-note{
  border-color:#4c7852!important;background:#142b1c!important;color:#c7dec2!important;
  border-radius:2px!important
}
.analytics-status-table th,.analytics-status-table td{
  border-color:#456748!important;color:#c0d9bd!important
}
.analytics-muted,.gov-note{color:#9abb9d!important;opacity:1}
.gov-banner{
  background:#282717!important;border-color:#8f8050!important;color:#e2dbad!important;
  border-radius:2px!important
}
.gov-banner p{color:#d6d0a5!important}
.gov-card,.gov-product{
  background:#11251a!important;border-color:#3e6346!important;border-radius:2px!important
}
.gov-badge{color:#e0c992!important;border-color:#8d7648!important;
  border-radius:2px!important;background:#312919!important}
.gov-table th,.gov-table td,.gov-card dl>div{
  border-color:#3c6444!important;color:#bbd9b8!important
}
.gov-nav a,.gov-card a{color:#b0e2ad!important}
.gov-code{color:#b5d7b5!important;font-family:var(--term-mono)!important}
.privacy-content,.privacy-content p{color:#bfd8bc}
