:root{--ink:#213c35;--muted:#74817b;--green:#285c48;--line:#e1e5dd;--paper:#f6f7f2;--surface:#fff;--gold:#d5bd86;font-family:-apple-system,BlinkMacSystemFont,"Noto Sans Thai","Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;font-size:14px;line-height:1.55}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid #78a58d;outline-offset:4px}input:focus,select:focus{outline:2px solid #78a58d;outline-offset:1px}[hidden]{display:none!important}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;background:#1f3d34;color:#eaf0e6;padding:40px 24px 24px;display:flex;flex-direction:column}.brand{text-decoration:none;font-size:34px;font-weight:650;letter-spacing:-1.6px;display:flex;align-items:center;gap:12px}.brand-dot{color:var(--gold);margin-left:-11px}.cairn-mark{width:30px;display:flex;align-items:center;flex-direction:column;gap:3px}.cairn-mark i{display:block;background:var(--gold);height:7px;border-radius:70% 45% 40% 40%}.cairn-mark i:nth-child(1){width:12px;transform:rotate(-10deg)}.cairn-mark i:nth-child(2){width:22px;transform:rotate(5deg)}.cairn-mark i:nth-child(3){width:30px}.sidebar-caption{font-size:8px;letter-spacing:1.5px;opacity:.5;margin-top:14px}.nav-label{font-size:10px;letter-spacing:2px;color:#91aaa0;margin:60px 10px 16px}nav{display:grid;gap:6px}.nav-item{display:flex;align-items:center;gap:13px;border:0;border-radius:9px;background:transparent;color:#b9ccc2;padding:13px 14px;text-decoration:none;text-align:left;width:100%;font-size:14px}.nav-item>span:first-child{font-size:20px;width:20px}.nav-item.selected{background:#37564a;color:#fff}.nav-item:hover{background:#304d42}.nav-arrow{margin-left:auto;font-size:14px;opacity:0}.selected .nav-arrow{opacity:.7}.nav-item small{font-size:8px;border:1px solid #6a8277;padding:1px 4px;border-radius:4px;margin-left:auto}.sidebar-note{margin-top:auto;padding:36px 10px 28px}.mini-label{font-size:8px;letter-spacing:1.5px;color:var(--gold)}.sidebar-note p{font-size:17px;line-height:1.8;color:#c2d1c7;font-weight:300}.note-line{display:block;width:28px;height:2px;background:var(--gold);opacity:.6}.local-badge{display:flex;gap:9px;border-top:1px solid #3e584d;padding:22px 6px 0;font-size:11px;color:#d0dbd2}.local-badge>span{width:6px;height:6px;border-radius:50%;background:#a3caa7;margin-top:6px}.local-badge small{display:block;color:#95aaa0;font-size:10px;margin-top:3px}main{margin-left:246px;padding:0 52px;max-width:1680px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;border-bottom:1px solid var(--line)}.slash{margin:0 13px;color:#a4afa5}.top-note{font-size:11px}.intro{display:flex;align-items:center;justify-content:space-between;padding:43px 0 30px;gap:24px}.eyebrow{font-size:9px;font-weight:650;letter-spacing:2px;color:#8c977e;margin:0 0 10px}h1{font-size:50px;line-height:1.1;letter-spacing:-2px;margin:0;font-weight:550}h1 span{color:#a4b092}.intro p:not(.eyebrow){color:var(--muted);font-size:13px;margin:14px 0 0}.primary,.secondary{border-radius:7px;padding:10px 17px;font-size:12px;min-height:40px;border:1px solid transparent;font-weight:550;white-space:nowrap}.primary{background:var(--green);color:#fff}.primary:hover{background:#204b3b}.primary>span:first-child{font-size:17px;margin-right:5px}.secondary{background:#fff;border-color:var(--line);color:var(--ink)}.secondary:hover{background:#f0f3ec}.workspace-info{border:1px solid #dde4d5;background:#eef2e8;border-radius:10px;display:flex;gap:16px;align-items:center;padding:19px 23px;margin:2px 0 32px}.info-symbol{background:#e1e8d7;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;font-size:22px;color:#657855;flex-shrink:0}.workspace-info strong{font-weight:550;font-size:12px}.workspace-info p{margin:3px 0 0;color:#7c8773;font-size:11px}.info-tag{margin-left:auto;white-space:nowrap;color:#869478;font-size:8px;letter-spacing:1.8px}.library-toolbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:27px}.tab{background:none;border:0;color:var(--muted);padding:0 0 15px;border-bottom:2px solid transparent;font-size:13px}.tab.active{color:var(--green);border-bottom-color:var(--green);font-weight:650}.count{font-size:11px;color:var(--muted)}.filters{display:flex;gap:12px;align-items:center;padding:22px 0}.search{display:flex;align-items:center;background:white;border:1px solid var(--line);border-radius:7px;max-width:420px;flex:1}.search>span{font-size:24px;margin-left:12px;color:#8d9b91}.search input{border:none;background:transparent;width:100%;padding:10px 12px;min-width:0;font-size:12px}.filters select{border:1px solid var(--line);background:white;border-radius:7px;padding:10px 28px 10px 12px;color:var(--ink);font-size:12px;height:41px}.filters>#refresh{margin-left:auto}.load-status{font-size:12px;color:var(--muted);margin-bottom:12px}.load-status:empty{display:none}.load-status.error{background:#fbede9;color:#944630;padding:12px;border-radius:6px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:0 9px 25px #213c350b;transform:translateY(-2px)}.card-main{display:block;text-align:left;border:0;width:100%;padding:0;background:transparent;color:inherit}.cover-stage{height:184px;display:flex;align-items:center;justify-content:center;background:var(--stage,#e9ede6);position:relative}.cover{height:137px;width:95px;background:var(--cover,#416456);border-radius:1px 5px 5px 1px;box-shadow:5px 7px 10px #172e3728;position:relative;padding:14px 12px 11px 16px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;overflow:hidden}.cover:before{content:"";position:absolute;inset:0 auto 0 6px;border-right:1px solid #ffffff30;border-left:2px solid #00000015;width:2px}.cover small{font-size:5px;letter-spacing:1.4px;opacity:.75}.cover strong{font-size:14px;line-height:1.4;font-weight:550;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.cover .cover-line{height:1px;background:#ffffff66;width:20px}.course-cover{width:170px;height:105px;padding:13px;border-radius:6px;background:var(--cover);box-shadow:5px 7px 10px #172e371a;color:white;display:flex;flex-direction:column;justify-content:space-between}.course-cover span{font-size:24px}.course-cover strong{font-size:12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cover-label{position:absolute;right:12px;bottom:10px;font-size:8px;color:#6d7a70;letter-spacing:1px}.card-body{padding:19px 19px 16px}.card-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}.status{font-size:9px;padding:3px 7px;background:#edf1eb;color:#7a886b;border-radius:4px}.status.active{background:#e7efe8;color:#3f7354}.status.paused{background:#f4ede0;color:#977945}.status.completed{background:#e8eff0;color:#517b83}.platform{font-size:9px;color:#8b938c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50%}.card h2{font-size:15px;line-height:1.55;margin:0 0 5px;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:46px;overflow-wrap:anywhere}.creator{font-size:11px;color:var(--muted);margin:0 0 16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-line{display:flex;align-items:center;gap:12px}.track{height:4px;background:#edf0e9;flex:1;border-radius:5px;overflow:hidden}.track span{display:block;height:100%;background:#729781;border-radius:5px}.percent{font-size:10px;color:#698471;min-width:29px;text-align:right}.activity{font-size:9px;color:#909a92;margin:12px 0 0}.card-actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eef0ea;padding:9px 18px;min-height:41px}.card-actions button,.card-actions a{font-size:10px;color:#718275;text-decoration:none;background:none;border:0;padding:4px 0}.card-actions button:hover,.card-actions a:hover{color:var(--green);text-decoration:underline}.no-source{font-size:10px;color:#afb5ac}.empty{text-align:center;border:1px dashed #ccd6c7;border-radius:10px;padding:60px 18px;color:var(--muted)}.empty-icon{font-size:34px;color:#8ca285}.empty h2{font-size:19px;color:#4c6455;font-weight:500}.empty p{font-size:12px;margin-bottom:22px}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;padding:26px 0 10px}.pagination span{font-size:11px;color:var(--muted)}footer{border-top:1px solid var(--line);margin:22px 0 0;padding:24px 0;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:#9aa491}footer span{letter-spacing:0;font-size:10px}dialog{border:1px solid var(--line);border-radius:15px;box-shadow:0 20px 90px #162c3240;padding:29px;width:min(570px,calc(100% - 28px));max-height:90vh;color:var(--ink)}dialog::backdrop{background:#18362965;backdrop-filter:blur(3px)}.editor-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.editor-heading h2{font-weight:550;font-size:25px;margin:0}.close{border:0;background:#f3f5ef;width:32px;height:32px;border-radius:50%;font-size:23px;color:#748173}.editor-copy{font-size:11px;color:var(--muted);margin-bottom:25px}fieldset{border:0;padding:0;margin:0}fieldset label{display:block;font-size:12px;margin-bottom:17px;font-weight:550}fieldset input,fieldset select{display:block;width:100%;margin-top:7px;border:1px solid #dbe1d5;border-radius:6px;padding:10px 12px;color:var(--ink);background:#fff;min-height:41px;font-weight:400}fieldset input:disabled{background:#f3f5ef;color:var(--muted)}fieldset small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:5px}.required{color:#b58b58}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.editor-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:19px;margin-top:20px}#formMessage{font-size:12px;color:#a34834;overflow-wrap:anywhere}.updated-at{font-size:10px;color:var(--muted)}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#203d33;color:white;padding:13px 24px;border-radius:8px;font-size:12px;box-shadow:0 8px 30px #0002;z-index:10;max-width:90vw;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}.cover-stage{height:205px}}
@media(max-width:1150px){.sidebar{width:215px;padding-inline:18px}main{margin-left:215px;padding:0 30px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-note,.info-tag{display:none}}
@media(max-width:700px){.sidebar{position:static;width:auto;padding:18px 20px 0}.brand{font-size:27px}.cairn-mark{transform:scale(.85)}.sidebar-caption,.nav-label,.sidebar-note,.local-badge{display:none}nav{display:flex;gap:6px;margin-top:18px}.nav-item{padding:10px;font-size:12px;width:auto;flex:1;justify-content:center;gap:7px;border-radius:6px 6px 0 0}.nav-arrow{display:none}.nav-item small{margin-left:0}.nav-item>span:first-child{font-size:15px;width:auto}main{margin:0;padding:0 20px}.topbar{height:53px;font-size:10px}.intro{padding:26px 0 22px;gap:10px}h1{font-size:39px}.intro p:not(.eyebrow){font-size:11px;max-width:210px}.intro .primary{padding:9px 11px;font-size:11px}.eyebrow{font-size:7px;letter-spacing:1.4px}.workspace-info{padding:13px;margin-bottom:25px;gap:10px}.workspace-info strong{font-size:11px}.workspace-info p{font-size:10px}.info-symbol{width:29px;height:29px}.filters{gap:8px;flex-wrap:wrap;padding:17px 0}.search{max-width:none;flex-basis:100%}.status-filter{flex:1}.status-filter select{width:100%}.grid{gap:12px}.cover-stage{height:153px}.cover{height:118px;width:82px;padding:11px 9px 10px 13px}.cover strong{font-size:12px}.card-body{padding:13px}.card h2{font-size:13px;min-height:40px}.card-actions{padding:8px 13px}.card-meta{gap:4px}.platform{font-size:8px}.course-cover{width:125px;height:88px}.creator{font-size:10px}.activity{font-size:8px}.pagination{padding-top:20px}footer{font-size:7px}footer span{font-size:9px}dialog{padding:22px}.form-row{gap:12px}.editor-copy{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Keep secondary text readable on the light surfaces and dark navigation. */
:root{--muted:#58675d}
.sidebar-caption{opacity:.75}
.slash,.eyebrow,.workspace-info p,.info-tag,.platform,.activity,.no-source,footer{color:#59694f}
h1 span{color:#71835d}
.status{color:#546444}.status.paused{color:#755b2e}.status.completed{color:#41646a}
.percent,.card-actions button,.card-actions a{color:#506b57}
.required{color:#87612d}
.cover small{opacity:1}.cover-label{color:#52604e}
/* Compact library: one working row, shared controls relocated on small screens. */
.library-toolbar{display:flex;flex-wrap:nowrap;gap:10px;justify-content:initial;padding:0 0 16px;margin-bottom:16px}
.library-toolbar h1{font-size:23px;letter-spacing:-.6px;flex:none}
.library-toolbar select{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;min-height:44px;padding:8px}
[data-icon]{display:inline-flex;align-items:center;flex:none}[data-icon] svg,#mobileView svg{width:18px;height:18px;flex:none}
.primary,.secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;font-size:13px;text-decoration:none}
.primary>[data-icon]:first-child{margin:0;font-size:inherit}
.desktop-search{margin-left:auto;min-width:100px;max-width:280px;flex:1}.search{max-width:none}.search>[data-icon]{margin:0 0 0 12px;color:var(--muted)}.search input{min-height:42px;font-size:14px}
.view-switch{display:flex;border:1px solid var(--line);border-radius:8px;padding:2px;background:var(--surface)}.view-switch button{width:36px;min-height:36px;border:0;padding:6px}.view-switch [aria-pressed=true]{background:var(--green);color:white}
.compact-tool{display:none}.library-actions{position:relative}.library-actions summary{list-style:none;position:relative;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}.library-actions summary::-webkit-details-marker{display:none}.library-actions[open] summary{background:var(--soft);border-color:var(--green)}.library-actions summary:focus-visible{outline:3px solid #547d69;outline-offset:3px}
.actions-panel{position:absolute;z-index:20;right:0;top:52px;width:218px;max-width:calc(100vw - 32px);padding:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 35px #213c351c}.actions-panel button{width:100%;justify-content:flex-start;background:transparent;color:var(--ink);border:0;white-space:normal;text-align:left}.actions-panel button:hover{background:var(--soft)}.actions-panel p{padding:0 16px;margin:0 0 8px;font-size:12px;color:var(--muted)}
.filter-badge{position:absolute;right:-5px;top:-5px;min-width:19px;height:19px;border-radius:10px;background:var(--green);color:white;font-size:11px;text-align:center;line-height:19px;box-shadow:0 0 0 2px var(--paper)}.inline-count{font-size:11px;background:var(--green);color:white;border-radius:10px;padding:0 5px}
.library-summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 0}.count{font-size:12px;overflow-wrap:anywhere}.text-button{border:0;background:none;color:var(--green);text-decoration:underline;font-size:12px;min-height:44px}.pagination{padding-top:0}
.grid{gap:18px}.cover-initial{display:none}.card:hover{transform:none}.card-actions button,.card-actions a{min-height:44px;display:inline-flex;align-items:center;font-size:12px}.card-actions{padding:0 16px}.no-source{font-size:11px}.creator{font-size:12px}.status{font-size:12px}.activity{font-size:11px}.percent{font-size:12px}.card h2{font-size:16px}.card-main:focus-visible{outline-offset:-3px}
.list-view{display:flex;flex-direction:column;gap:0}.list-view .card{display:grid;grid-template-columns:minmax(0,1fr) 120px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;overflow:visible}.list-view .card:hover{box-shadow:none;background:var(--soft)}
.list-view .card-main{display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;align-items:center;padding:16px 12px 16px 0}.list-view .cover-stage{width:44px;height:60px;background:none}.list-view .cover{width:44px;height:60px;padding:8px;box-shadow:none}.list-view .cover small,.list-view .cover strong,.list-view .cover-line,.list-view .cover-label{display:none}.list-view .cover-initial{display:block;font-family:Georgia,serif;font-size:24px}.list-view .course-cover{width:44px;height:44px;padding:8px;box-shadow:none;justify-content:center;align-items:center}.list-view .course-cover strong{display:none}
.list-view .card-body{display:grid;grid-template-columns:minmax(0,1fr) 100px 90px;gap:4px 18px;align-items:center;padding:0}.list-view .card h2{grid-column:1;grid-row:1;min-height:0;margin:0;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:15px}.list-view .creator{grid-column:1;grid-row:2;margin:0}.list-view .card-meta{grid-column:2;grid-row:1/3;margin:0}.list-view .progress-line{grid-column:3;grid-row:1/3;flex-direction:column-reverse;align-items:stretch;gap:5px}.list-view .track{flex:none}.list-view .activity{display:none}.list-view .card-actions{border:0;padding:4px 0;display:flex;flex-direction:column;align-items:flex-end;justify-content:center}.list-view .card-actions .no-source{display:none}
#filterDialog select{display:block;width:100%;padding:12px;margin-top:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.home-main{margin:0 auto;max-width:1150px;padding:64px 40px 32px}.home-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:44px;align-items:center}.home-main .eyebrow{font-size:11px;color:#846534}.home-main h1{font-size:clamp(32px,4vw,48px);line-height:1.4;letter-spacing:-1.3px}.home-lead{font-size:16px;line-height:1.9;color:var(--muted);margin:22px 0 28px}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.home-secondary{padding:12px;text-decoration:none}.landscape{height:310px;background:linear-gradient(150deg,var(--paper),#e6edde);border-radius:150px 150px 24px 24px;display:grid;place-items:center;position:relative;overflow:hidden}.landscape:after{content:"";position:absolute;width:450px;height:160px;background:#e5dbc5;border-radius:50%;bottom:-75px;transform:rotate(-12deg)}.stones{z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;transform:rotate(-4deg)}.stones i{display:block;width:145px;height:43px;background:var(--green);border-radius:55% 60% 38% 42%;opacity:.9}.stones i:first-child{width:50px;height:33px;opacity:.55;transform:rotate(-12deg)}.stones i:nth-child(2){width:88px;opacity:.72;transform:rotate(8deg)}.journey-label{font-size:13px;color:var(--muted);margin:48px 0 16px}.entry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.home-entry{display:block;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:12px;text-decoration:none}.home-entry:hover{background:var(--soft)}.home-entry h2{font-size:18px;margin:14px 0 10px}.home-entry p{font-size:14px;color:var(--muted);margin:0;line-height:1.8}.home-footer{font-size:12px;letter-spacing:0;gap:16px;flex-wrap:wrap;margin-top:32px;color:var(--muted)}.home-footer span{font-size:12px}
@media(max-width:1100px) and (min-width:900px){.library-toolbar{gap:6px}.library-toolbar .secondary,.library-toolbar .primary{padding-inline:10px}.desktop-search{max-width:180px}}
@media(max-width:899px){.library-toolbar{gap:8px;padding-bottom:14px;margin-bottom:0}.library-toolbar h1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.view-switch,.desktop-search,#desktopFilter,#desktopAdd{display:none}.compact-tool{display:inline-flex;width:44px;padding:8px;flex:none}#mobileView{margin-left:auto}.library-toolbar select{max-width:120px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.list-view{gap:0}.list-view .card{grid-template-columns:minmax(0,1fr)}.list-view .card-main{padding:14px 0 4px;gap:12px}.list-view .card-body{grid-template-columns:minmax(0,1fr) 62px;gap:4px 10px}.list-view .card-meta{grid-column:1;grid-row:3}.list-view .progress-line{grid-column:2;grid-row:1/4}.list-view .status{background:none;padding:0;font-size:11px}.list-view .card-actions{flex-direction:row;align-items:center;justify-content:space-between;padding-left:56px;gap:12px}.list-view .card-actions button{margin-left:auto}.list-view .card h2{font-size:14px}.search input,dialog input,dialog select{font-size:16px}.home-main{padding:32px 20px}.home-hero{grid-template-columns:1fr;gap:28px}.landscape{height:180px;max-width:440px;width:100%;justify-self:center}.stones{transform:scale(.7) rotate(-4deg)}.entry-grid{grid-template-columns:1fr}.home-entry{padding:18px}.home-entry h2{margin:8px 0}.journey-label{margin-top:28px}.home-main h1{font-size:34px}.cover-stage{height:156px}.card-body{padding:14px}.card-actions{padding:0 12px;gap:6px}.card-actions a,.card-actions button{font-size:11px}.course-cover{max-width:90%}}
