:root{--bg:#f3f7f3;--surface:#fff;--surface-2:#eaf3eb;--surface-3:#dcebdd;--text:#162c20;--muted:#687b6d;--line:#dce8dd;--green:#176c4d;--green-2:#0f573d;--green-soft:#e4f1e7;--gold:#f2c867;--red:#d75a64;--shadow:0 14px 42px #173d2120;--radius:20px;color-scheme:light}
:root[data-theme="dark"]{--bg:#111b16;--surface:#1a2920;--surface-2:#24372b;--surface-3:#304a37;--text:#eef7ed;--muted:#a5b9a9;--line:#354c3b;--green:#8ed6a4;--green-2:#b5e8bd;--green-soft:#294533;--gold:#ebc46e;--red:#ef818b;--shadow:0 16px 50px #0006;color-scheme:dark}
:root[data-theme="rose"]{--bg:#fff5f9;--surface:#fff;--surface-2:#fff0f5;--surface-3:#fbd8e6;--text:#3b2432;--muted:#806678;--line:#f1d8e3;--green:#b23872;--green-2:#922554;--green-soft:#ffe4ee;--gold:#eab86c;--red:#db5e84;--shadow:0 14px 42px #9d35621a;color-scheme:light}
:root[data-theme="rose"] body{background:radial-gradient(circle at 10% 14%,#ffe5ef 0,transparent 260px),radial-gradient(circle at 90% 76%,#ffeaf1 0,transparent 290px),var(--bg)}
:root[data-theme="rose"] .orbit:after{background:#f4a0bc}
:root[data-theme="rose"] button:focus-visible,:root[data-theme="rose"] a:focus-visible,:root[data-theme="rose"] input:focus-visible,:root[data-theme="rose"] textarea:focus-visible{outline-color:#e998ba}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Arabic","Noto Sans Arabic",Tahoma,sans-serif;font-size:14px;line-height:1.65}
html[lang="en"] body{font-family:Inter,-apple-system,BlinkMacSystemFont,Arial,sans-serif}
html[lang="de"] body{font-family:"Source Sans 3",-apple-system,BlinkMacSystemFont,Arial,sans-serif}
button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}img{max-width:100%}svg{width:19px;height:19px;stroke-width:2.2}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #82cda0;outline-offset:2px}
.site-header{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header-inner{max-width:1240px;min-height:76px;margin:auto;padding:10px 22px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.brand{display:inline-flex;align-items:center;gap:8px;color:var(--green);direction:ltr;white-space:nowrap}.brand-word{font:800 32px/1 Inter,-apple-system,sans-serif;letter-spacing:-2px}.orbit{width:37px;height:37px;border:5px solid var(--green);border-top-color:transparent;border-right-color:transparent;border-radius:50%;transform:rotate(26deg);position:relative}.orbit:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#9ccf73;right:-3px;top:-4px}
.header-tools{display:flex;align-items:center;gap:8px}.icon-button,.language-button,.mini-button{border:1px solid var(--line);background:var(--surface);color:var(--green);border-radius:13px;min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.icon-button:hover,.language-button:hover,.mini-button:hover{background:var(--green-soft)}.notification-button{position:relative}.notification-dot{position:absolute;top:3px;right:3px;width:9px;height:9px;border:2px solid var(--surface);border-radius:50%;background:var(--red)}.language-button{padding:0 10px;color:var(--text);font-weight:700;white-space:nowrap}.language-button svg{width:15px}.language-flag{font-size:18px}
.app-layout{max-width:1240px;margin:0 auto;padding:28px 22px 100px;display:grid;grid-template-columns:212px minmax(0,660px) 245px;gap:23px;align-items:start}.app-layout>*{min-width:0}
.desktop-nav-inner,.rail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 7px 26px #15351b0b}.desktop-nav-inner{position:sticky;top:101px;padding:12px}.nav-link{width:100%;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;gap:13px;text-align:start;border-radius:14px;padding:12px 13px;font-weight:700}.nav-link:hover{background:var(--surface-2)}.nav-link.active{background:var(--green-soft);color:var(--green-2)}.nav-link svg{width:22px;height:22px;flex:none}.nav-divider{border-top:1px solid var(--line);margin:12px 5px}.nav-foot{color:var(--muted);font-size:11px;padding:6px 12px}.side-rail{position:sticky;top:101px}.rail-card{padding:18px;margin-bottom:14px}.rail-eyebrow,.eyebrow{font-size:11px;font-weight:800;color:var(--green);letter-spacing:.02em}.rail-card h3{margin:5px 0 9px;font-size:16px}.rail-card p{margin:0;color:var(--muted);font-size:12px}.rail-progress,.progress{height:8px;background:var(--surface-3);border-radius:99px;overflow:hidden}.rail-progress span,.progress span{display:block;height:100%;border-radius:inherit;background:var(--green);width:32%}.rail-card .rail-progress{margin:15px 0 8px}.rail-link{display:inline-flex;align-items:center;gap:4px;margin-top:14px;color:var(--green);font-weight:800;font-size:12px}.rail-link svg{width:16px;height:16px}.rail-list{margin:12px 0 0;padding:0;list-style:none}.rail-list li{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-top:1px solid var(--line);font-size:12px}.rail-list b{color:var(--green)}
#main-content{min-height:70vh}.page-title{margin:0 0 4px;font-size:30px;line-height:1.35;font-weight:800;letter-spacing:-.035em}.page-subtitle{margin:0 0 22px;color:var(--muted);font-size:13px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:26px 2px 13px}.section-title h2{font-size:17px;margin:0}.section-title small{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 7px 24px #15351b09}.muted{color:var(--muted)}.small{font-size:12px}.notice-banner{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--line);border-radius:14px;background:var(--green-soft);color:var(--green-2);font-size:12px;margin-bottom:17px}.notice-banner svg{flex:none;width:17px}
.primary-button,.soft-button,.outline-button,.danger-button{border:0;border-radius:12px;padding:10px 17px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}.primary-button{background:var(--green);color:var(--surface)}.primary-button:hover{filter:brightness(.93)}.soft-button{background:var(--green-soft);color:var(--green-2)}.outline-button{border:1px solid var(--line);background:var(--surface);color:var(--text)}.danger-button{background:#fde9e9;color:#a23944}.primary-button svg,.soft-button svg,.outline-button svg{width:17px;height:17px}.link-button{border:0;background:transparent;color:var(--green);padding:4px;font-weight:800}.button-row{display:flex;flex-wrap:wrap;gap:9px}.field{display:grid;gap:6px;margin:13px 0;color:var(--muted);font-size:12px;font-weight:700}.field input,.field textarea,.field select,.search-field{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:11px;padding:11px 12px;outline:none}.field textarea{min-height:110px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus,.search-field:focus{border-color:var(--green)}.empty-state{padding:30px;text-align:center;color:var(--muted);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}
.hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px;background:linear-gradient(135deg,var(--green-soft),var(--surface));border:1px solid var(--line);border-radius:24px}.hero:after{content:"";position:absolute;width:230px;height:230px;border:1px solid color-mix(in srgb,var(--green) 22%,transparent);border-radius:50%;left:-86px;top:-132px}.hero .eyebrow{margin-bottom:5px}.hero h2{margin:0;font-size:21px;line-height:1.45}.hero p{margin:5px 0 0;color:var(--muted);font-size:12px}.hero-action{position:relative;z-index:1;flex:none;min-width:42px;height:42px;border:0;border-radius:13px;background:var(--green);color:var(--surface);display:grid;place-items:center}.hero-action svg{transform:rotate(180deg)}
.chip-row{display:flex;gap:8px;overflow:auto;padding:2px 0 7px;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:99px;padding:7px 15px;font-size:12px;font-weight:800;white-space:nowrap}.chip.active{background:var(--green);border-color:var(--green);color:var(--surface)}.compose-prompt{width:100%;margin:10px 0 18px;padding:13px 16px;display:flex;align-items:center;gap:11px;text-align:start;background:var(--surface);border:1px solid var(--line);border-radius:17px;color:var(--muted)}.compose-prompt:hover{border-color:var(--green)}.compose-avatar,.avatar{display:grid;place-items:center;flex:none;width:37px;height:37px;border-radius:50%;background:var(--surface-3);color:var(--green);font-weight:800}.compose-prompt svg{margin-inline-start:auto;color:var(--green)}
.post{position:relative;margin:14px 0;overflow:visible}.post-inner{padding:18px}.post-head{display:flex;align-items:center;gap:9px}.post-head .avatar{width:35px;height:35px}.post-author{display:grid;line-height:1.35}.post-author b{font-size:12px}.post-author small{font-size:10px;color:var(--muted)}.post-type{margin-inline-start:auto;background:var(--green-soft);color:var(--green-2);border-radius:8px;padding:4px 8px;font-size:10px;font-weight:800}.post h3{font-size:19px;line-height:1.55;margin:17px 0 7px}.post-body{margin:0;color:var(--muted);font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.post-reason{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--green);margin:17px 0 0}.post-reason svg{width:15px;height:15px}.post-media{margin:14px -18px 0;min-height:210px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#83a58b,#3d6752);color:#f8fff6}.post-media img{width:100%;max-height:420px;object-fit:cover;display:block}.quiz-card{width:min(78%,430px);padding:26px 24px;text-align:center;background:#faf9ef;color:#243d2d;border-radius:7px;transform:rotate(-3deg);box-shadow:0 20px 30px #143b2830}.quiz-card small{display:block;color:#628674;letter-spacing:.15em;font-weight:800}.quiz-card strong{display:block;font-size:22px;margin:16px 0 10px}.quiz-card em{color:#738f75}.post-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding-top:13px;margin-top:15px;border-top:1px solid var(--line)}.post-actions button{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--muted);border-radius:9px;padding:6px 8px;font-size:11px;font-weight:800}.post-actions button:hover,.post-actions button.active{background:var(--green-soft);color:var(--green-2)}.post-actions button svg{width:18px;height:18px}.vote-group{display:flex;background:var(--surface-2);border-radius:11px}.vote-group button{font-size:12px}.post-actions .spacer{flex:1}
.rocket-scene{position:absolute;inset:0;z-index:8;overflow:hidden;border-radius:inherit;pointer-events:none;isolation:isolate}
.rocket-flight{position:absolute;left:var(--rocket-x);top:var(--rocket-y);width:76px;height:82px;transform-origin:center;filter:drop-shadow(0 8px 7px #12291a55);will-change:transform,opacity}
.rocket-scene.up .rocket-flight{animation:rocket-cartoon-up 1.05s cubic-bezier(.22,.8,.25,1) both}
.rocket-scene.down .rocket-flight{animation:rocket-cartoon-down .82s cubic-bezier(.4,.04,.8,.65) both}
.rocket-ship{position:absolute;inset:0;display:grid;place-items:center}.rocket-ship .apple-emoji{width:68px;height:68px;object-fit:contain}
.rocket-fire{position:absolute;left:20px;bottom:-12px;filter:drop-shadow(0 0 9px #ff9d2e);animation:rocket-fire-flicker .19s ease-in-out infinite alternate}
.rocket-fire .apple-emoji{width:36px;height:36px;object-fit:contain}.rocket-scene.down .rocket-fire{opacity:.7}
.rocket-puff{position:absolute;left:calc(var(--rocket-x) + var(--puff-x));top:calc(var(--rocket-y) + var(--puff-y));width:19px;height:19px;border-radius:50%;background:#e4eee6;border:2px solid #c8dacc;box-shadow:0 4px 7px #183a2633;animation:rocket-puff-out .7s ease-out both}
.rocket-scene.down .rocket-puff{display:none}.rocket-spark{position:absolute;left:calc(var(--rocket-x) + var(--spark-x));top:calc(var(--rocket-y) + var(--spark-y));font-size:23px;line-height:1;color:#f7b945;text-shadow:0 0 8px #ffd76d;animation:rocket-spark-pop .6s ease-out both}
.rocket-crater{position:absolute;left:var(--rocket-x);bottom:9px;width:86px;height:27px;border-radius:50%;background:radial-gradient(ellipse at center,#694a35 0 31%,#a1714c 38%,#c39b65 54%,transparent 70%);box-shadow:0 4px 8px #5b36273a;animation:rocket-crater-pop .7s ease-out .48s both}
.rocket-dirt{position:absolute;left:calc(var(--rocket-x) + var(--dirt-x));bottom:28px;width:12px;height:12px;border-radius:40% 60% 55% 45%;background:#b77b51;box-shadow:0 0 0 2px #e4c49c;animation:rocket-dirt-fly .5s ease-out both}
.post.rocket-lift{animation:post-cartoon-lift .9s ease-out}.post.rocket-dive{animation:post-cartoon-dive .75s ease-out}
@keyframes rocket-cartoon-up{0%{transform:translate(-50%,-50%) translateY(13px) rotate(-23deg) scale(.5);opacity:0}12%{transform:translate(-50%,-50%) translateY(2px) rotate(-20deg) scale(1.15);opacity:1}25%{transform:translate(-50%,-50%) translateY(9px) rotate(-25deg) scale(.95)}48%{transform:translate(-50%,-50%) translate(var(--drift-a),-65px) rotate(-17deg) scale(1.22)}74%{transform:translate(-50%,-50%) translate(var(--drift-b),-155px) rotate(-12deg) scale(1.18);opacity:1}100%{transform:translate(-50%,-50%) translate(var(--drift),-255px) rotate(-7deg) scale(.78);opacity:0}}
@keyframes rocket-cartoon-down{0%{transform:translate(-50%,-50%) translateY(-8px) rotate(130deg) scale(.65);opacity:0}16%{transform:translate(-50%,-50%) translateY(-16px) rotate(148deg) scale(1.17);opacity:1}36%{transform:translate(-50%,-50%) translateY(-25px) rotate(151deg) scale(1.08)}72%{transform:translate(-50%,-50%) translate(8px,66px) rotate(154deg) scale(1.25);opacity:1}100%{transform:translate(-50%,-50%) translate(15px,148px) rotate(165deg) scale(.7);opacity:0}}
@keyframes rocket-fire-flicker{from{transform:scale(.9) rotate(-8deg)}to{transform:scale(1.17) rotate(8deg)}}
@keyframes rocket-puff-out{0%{transform:translate(-50%,-50%) scale(.25);opacity:0}25%{opacity:.9}100%{transform:translate(-50%,12px) scale(2.5);opacity:0}}
@keyframes rocket-spark-pop{0%{transform:scale(.2) rotate(-30deg);opacity:0}35%{transform:scale(1.3) rotate(10deg);opacity:1}100%{transform:scale(.5) rotate(40deg);opacity:0}}
@keyframes rocket-crater-pop{0%{transform:translateX(-50%) scale(0);opacity:0}35%{transform:translateX(-50%) scale(1.24);opacity:1}100%{transform:translateX(-50%) scale(.9);opacity:0}}
@keyframes rocket-dirt-fly{0%{transform:translate(-50%,0) scale(.3);opacity:0}25%{opacity:1}100%{transform:translate(-50%,-58px) scale(.6);opacity:0}}
@keyframes post-cartoon-lift{0%,100%{transform:translateY(0)}18%{transform:translateY(4px) scale(.996)}43%{transform:translateY(-8px) scale(1.008)}70%{transform:translateY(-3px)}}
@keyframes post-cartoon-dive{0%,100%{transform:translateY(0)}36%{transform:translateY(3px) rotate(.3deg)}55%{transform:translateY(-2px) rotate(-.25deg)}76%{transform:translateY(2px)}}
.comments{border-top:1px solid var(--line);padding:18px 19px 20px;font-family:"Noto Sans Arabic","Segoe UI",Tahoma,sans-serif}
html[lang="en"] .comments{font-family:Inter,"Noto Sans Arabic","Segoe UI",Arial,sans-serif}
html[lang="de"] .comments{font-family:"Source Sans 3","Noto Sans Arabic","Segoe UI",Arial,sans-serif}
.comments>b.small{font-size:13px;font-weight:800;line-height:1.5}
.comment{display:flex;gap:11px;padding:15px 0;border-bottom:1px solid var(--line)}
.comment .avatar{width:34px;height:34px;font-size:13px}
.comment-main{min-width:0;flex:1}
.comment-main b{font-size:13.5px;font-weight:800;line-height:1.5}
.comment-main small{font-size:11px;font-weight:500;color:var(--muted);margin-inline-start:8px}
.comment-main p{margin:5px 0 7px;font-size:15px;line-height:1.8;font-weight:400;white-space:pre-wrap;overflow-wrap:anywhere}
.comment-reply{font-family:inherit;font-size:11.5px;border:0;background:none;color:var(--green);font-weight:800;padding:3px 0}
.comment-image{display:block;margin-top:8px;max-height:200px;border-radius:10px}
.comment-form{display:flex;align-items:flex-end;gap:6px;margin-top:18px}
.comment-form .emoji-field{flex:1}
.comment-form .icon-button{height:42px;min-width:42px}
.comment-form .primary-button{padding:8px 11px;height:42px}
.comment-form input[type=file]{display:none}
.route-grid,.resource-grid,.saved-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.route-card,.resource-card,.saved-card{padding:18px}.route-card .route-icon,.resource-icon{width:40px;height:40px;border-radius:12px;background:var(--green-soft);color:var(--green);display:grid;place-items:center}.route-card h3,.resource-card h3{font-size:15px;margin:10px 0 5px}.route-card p,.resource-card p{font-size:11px;color:var(--muted);margin:0 0 13px}.route-card .progress{margin:16px 0 8px}.route-card small{color:var(--muted)}.lesson-list{display:grid;gap:9px}.lesson{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.lesson-number{width:31px;height:31px;border-radius:10px;display:grid;place-items:center;background:var(--green-soft);color:var(--green);font-weight:800}.lesson-main{flex:1}.lesson-main b{display:block;font-size:12px}.lesson-main small{font-size:10px;color:var(--muted)}.lesson svg{color:var(--green)}
.library-toolbar{display:flex;gap:9px;margin:0 0 13px}.library-toolbar .search-field{flex:1}.library-toolbar button{flex:none}.resource-card{display:flex;flex-direction:column}.resource-card .resource-meta{display:flex;justify-content:space-between;gap:8px;color:var(--green);font-size:10px;font-weight:800}.resource-card .resource-icon{margin-bottom:3px}.resource-card .resource-footer{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px}.resource-card .resource-footer small{color:var(--muted)}.resource-card .resource-footer button{padding:7px 10px;font-size:11px}
.chat-layout{display:grid;grid-template-columns:225px minmax(0,1fr);gap:13px;min-height:560px}.chat-list,.conversation{overflow:hidden}.chat-list-head,.conversation-head{padding:14px;border-bottom:1px solid var(--line)}.chat-tabs{display:flex;gap:14px;margin-top:12px}.chat-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:4px 3px 8px;font-weight:800}.chat-tabs button.active{color:var(--green);border-color:var(--green)}.chat-search{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px;margin:10px 0 0;background:var(--surface);color:var(--text)}.peer{width:100%;display:flex;align-items:center;gap:8px;padding:12px;border:0;border-bottom:1px solid var(--line);background:var(--surface);text-align:start;color:var(--text)}.peer:hover,.peer.active{background:var(--green-soft)}.peer b{font-size:11px}.peer small{display:block;color:var(--muted);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:110px}.peer time{margin-inline-start:auto;color:var(--muted);font-size:9px}.conversation{display:flex;flex-direction:column;min-height:560px}.conversation-head{display:flex;align-items:center;gap:9px}.conversation-head b{font-size:12px}.conversation-head small{display:block;color:var(--muted);font-size:10px}.conversation-head .icon-button{margin-inline-start:auto;min-width:30px;height:30px}.message-list{flex:1;display:flex;flex-direction:column;gap:9px;padding:17px;min-height:330px;max-height:480px;overflow:auto;background:var(--bg)}.message{max-width:83%;align-self:flex-start;position:relative;border:1px solid var(--line);border-radius:14px 14px 3px 14px;background:var(--surface);padding:8px 11px;min-width:75px}.message.me{align-self:flex-end;background:var(--green-soft);border-color:transparent;border-radius:14px 14px 14px 3px}.message p{margin:0;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.message small{display:block;color:var(--muted);text-align:end;font-size:9px;margin-top:3px}.message .message-menu{position:absolute;top:0;inset-inline-end:-25px;border:0;background:none;color:var(--muted);padding:3px}.message.emoji-only p .apple-emoji{width:44px;height:44px}.message.emoji-only.just-sent p{animation:emoji-bounce .55s ease-out}@keyframes emoji-bounce{50%{transform:scale(1.3)}}.chat-compose{padding:11px;display:flex;gap:6px;align-items:flex-end;border-top:1px solid var(--line)}.chat-compose .emoji-field{flex:1}.chat-compose .icon-button{min-width:36px;height:38px}.chat-compose .primary-button{height:38px;padding:8px 11px}
.profile-card{padding:22px}.profile-head{display:flex;align-items:center;gap:15px}.profile-avatar{width:74px;height:74px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);color:var(--green);font-size:29px;font-weight:800;position:relative;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar svg{position:absolute;bottom:1px;right:0;width:22px;height:22px;padding:3px;background:var(--surface);border-radius:6px}.profile-head h2{margin:0;font-size:19px}.profile-head p{margin:1px 0 8px;color:var(--muted);direction:ltr;text-align:right}.follow-counts{display:flex;gap:18px;font-size:11px}.follow-counts b{color:var(--green)}.profile-card>.soft-button{width:100%;margin-top:17px}.profile-help{color:var(--muted);font-size:10px;margin:10px 0 0}.saved-card{display:flex;align-items:center;gap:12px}.saved-card svg{width:27px;height:27px;color:var(--green)}.saved-card b{display:block}.saved-card small{color:var(--muted)}.task-list{overflow:hidden}.task{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid var(--line)}.task:last-child{border-bottom:0}.task-check{width:25px;height:25px;border:2px solid var(--green);background:none;border-radius:50%;flex:none}.task.done{animation:task-done .45s ease-in forwards}@keyframes task-done{to{transform:translateX(-20px);opacity:0;max-height:0;padding:0}}.task-main{flex:1;min-width:0}.task-main b{display:block;font-size:12px}.task-main small{font-size:10px;color:var(--muted)}.status-tag{font-size:10px;border-radius:7px;padding:4px 7px;background:#fff0d2;color:#855e0a;white-space:nowrap}.status-tag.overdue{background:#fce7e8;color:#ab4551}.status-tag.done-tag{background:var(--green-soft);color:var(--green)}.account-links{overflow:hidden}.account-links a{display:flex;align-items:center;gap:11px;padding:15px;border-bottom:1px solid var(--line)}.account-links a:last-child{border-bottom:0}.account-links svg{color:var(--green)}.account-links a>span{flex:1}.account-links b{display:block;font-size:12px}.account-links small{color:var(--muted);font-size:10px}
.article{padding:24px;line-height:1.9}.article h2{font-size:20px;margin:0 0 12px}.article h3{font-size:15px;margin:22px 0 5px}.article p,.article li{font-size:13px;color:var(--muted)}.article ul{padding-inline-start:22px}.article a{color:var(--green);text-decoration:underline}.article .notice-banner{line-height:1.6}
.modal-backdrop{position:fixed;inset:0;z-index:80;background:#0d1a12a6;display:grid;place-items:center;padding:16px}.modal{width:min(100%,510px);max-height:min(90vh,850px);overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:var(--shadow)}.modal-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.modal-head h2{margin:0;font-size:18px}.modal-close{min-width:32px;height:32px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.toast{position:fixed;z-index:100;bottom:85px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--surface);border-radius:12px;padding:9px 15px;box-shadow:var(--shadow);font-size:12px;max-width:min(90vw,480px);text-align:center}.toast[hidden]{display:none}
.emoji-field{position:relative;min-width:0}.emoji-field .emoji-mirror{position:absolute;inset:0;z-index:1;pointer-events:none;white-space:pre-wrap;overflow:hidden;border:1px solid transparent;border-radius:11px;padding:9px 11px;color:var(--text);font-size:12px;line-height:20px}.emoji-field textarea{width:100%;min-height:38px;max-height:115px;resize:vertical;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:transparent;caret-color:var(--text);padding:9px 11px;font-size:12px;line-height:20px;outline:none}.emoji-field textarea::placeholder{color:var(--muted)}.emoji-field .emoji-mirror .apple-emoji{width:16px;height:16px;vertical-align:-.2em}.apple-emoji{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.23em;object-fit:contain}.apple-emoji-symbol svg{width:100%;height:100%}.emoji-picker{border:1px solid var(--line);border-radius:13px;background:var(--surface);padding:10px;margin-top:8px}.emoji-picker[hidden]{display:none}.emoji-picker .search-field{font-size:11px;padding:8px}.emoji-categories{display:flex;gap:4px;overflow:auto;margin:8px 0;border-bottom:1px solid var(--line);padding-bottom:7px;scrollbar-width:none}.emoji-categories button{flex:0 0 30px;border:0;background:transparent;border-radius:7px;height:30px}.emoji-categories button.active{background:var(--green-soft)}.emoji-categories button .apple-emoji{width:21px;height:21px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:205px;overflow:auto}.emoji-grid button{border:0;background:transparent;border-radius:7px;min-height:34px;display:grid;place-items:center}.emoji-grid button:hover{background:var(--green-soft)}.emoji-grid button .apple-emoji{width:25px;height:25px}.emoji-grid .more-emoji{grid-column:1/-1;background:var(--green-soft);color:var(--green);font-size:11px}.emoji-picker-title{font-size:11px;color:var(--green);font-weight:800;margin:0 2px 6px}
.comments .emoji-field textarea,.comments .emoji-field .emoji-mirror{font-family:inherit;font-size:16px;line-height:24px;padding:8px 11px;min-height:42px}
.mobile-nav{display:none}
.task.completing{animation:task-done .5s ease-in forwards}.peer[hidden]{display:none}.language-options{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.search-result,.notification-row{display:flex;align-items:center;gap:10px;padding:11px;border-bottom:1px solid var(--line);font-size:12px}.search-result:hover{background:var(--green-soft)}.search-results{margin-top:10px}.notification-row svg{color:var(--green);flex:none}
.guest-account{padding:27px}.guest-account-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:var(--green);background:var(--green-soft)}.guest-account-icon svg{width:27px;height:27px}.guest-account h2{font-size:21px;margin:18px 0 5px}.guest-account p{font-size:13px;color:var(--muted);line-height:1.8;margin:0 0 18px}.guest-account .button-row{gap:9px}.account-logout{width:100%;margin-top:8px;font-size:12px}
.post-heading-controls{display:flex;align-items:center;gap:11px}
.vote-sound-toggle{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px 9px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--green);font:inherit;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer;transition:background .2s ease,transform .2s ease}
.vote-sound-toggle:hover{background:var(--green-soft);transform:translateY(-1px)}
.vote-sound-toggle[aria-pressed="false"]{color:var(--muted)}
.vote-sound-toggle svg{width:17px;height:17px}
.post:not(.post-detail) .post-inner{cursor:pointer}
.post-open{display:block;color:inherit}
.post-open:hover h3,.post-open:focus-visible h3{color:var(--green)}
.post-detail-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 14px;color:var(--muted);font-size:12px;font-weight:700}
.post-back{display:inline-flex;align-items:center;gap:7px;color:var(--green);font-weight:800}
.post-back svg{width:17px;height:17px}
.post-detail{margin-top:0}
.post-detail .post-inner{padding:22px}
.post-detail .post-body{font-size:15px;line-height:1.9;color:var(--text)}
.comment-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.comment-heading b{font-size:14px;font-weight:800}
.comment-heading>span{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:700}
.comment-heading svg{width:14px;height:14px;color:var(--red)}
.comment-actions{display:flex;align-items:center;gap:17px;margin-top:2px}
.comment-love{display:inline-flex;align-items:center;gap:5px;min-height:29px;padding:4px 8px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-family:inherit;font-size:12px;font-weight:800;line-height:1}
.comment-love:hover{background:var(--surface-2);color:var(--red)}
.comment-love svg{width:17px;height:17px;stroke-width:2.3}
.comment-love.active{background:#fff0f1;color:#c94360}
.comment-love.active svg{fill:currentColor}
:root[data-theme="dark"] .comment-love.active{background:#4e2633;color:#ff9aaf}
.comment-love.just-loved svg{animation:comment-heart-pop .42s ease-out}
@keyframes comment-heart-pop{0%{transform:scale(.55)}45%{transform:scale(1.3)}100%{transform:scale(1)}}
.comment.ranking-winner{position:relative;z-index:1;border-radius:14px;background:color-mix(in srgb,var(--red) 9%,var(--surface));box-shadow:0 10px 25px -17px var(--red)}
.comment.ranking-winner::before,.comment.ranking-winner::after{content:'✦';position:absolute;pointer-events:none;color:var(--red);font-size:21px;line-height:1;animation:comment-rank-spark .85s ease-out both}
.comment.ranking-winner::before{top:-8px;inset-inline-start:12px}
.comment.ranking-winner::after{top:16px;inset-inline-end:10px;font-size:14px;animation-delay:.08s}
@keyframes comment-rank-spark{0%{opacity:0;transform:translateY(9px) scale(.4) rotate(-25deg)}40%{opacity:1;transform:translateY(-5px) scale(1.25) rotate(10deg)}100%{opacity:0;transform:translateY(-19px) scale(.65) rotate(34deg)}}
.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}
.theme-option{display:grid;gap:9px;justify-items:center;border:2px solid var(--line);border-radius:15px;background:var(--surface);color:var(--text);padding:10px 7px;font-size:12px}
.theme-option.active{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft)}
.theme-swatch{display:block;width:100%;height:53px;border-radius:9px;border:1px solid #0001}
.theme-swatch.light{background:linear-gradient(135deg,#f3f7f3 50%,#176c4d 51%)}
.theme-swatch.dark{background:linear-gradient(135deg,#111b16 50%,#8ed6a4 51%)}
.theme-swatch.rose{background:linear-gradient(135deg,#fff5f9 50%,#b23872 51%)}
@media(max-width:1100px){.app-layout{grid-template-columns:185px minmax(0,1fr);max-width:980px}.side-rail{display:none}}
@media(max-width:720px){.site-header .header-inner{min-height:64px;padding:9px 14px}.brand-word{font-size:28px}.orbit{width:31px;height:31px;border-width:4px}.header-tools{gap:5px}.header-tools .icon-button{width:36px;min-width:36px;height:36px}.language-button{height:36px;min-width:39px;padding:0 7px}.language-button .language-name,.language-button svg{display:none}.app-layout{display:block;padding:18px 12px 215px}.desktop-nav{display:none}.mobile-nav{position:fixed;z-index:40;inset-inline:0;bottom:0;display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--surface);border-top:1px solid var(--line);padding:6px 5px max(6px,env(safe-area-inset-bottom))}.mobile-nav .nav-link{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:5px 1px;font-size:10px;border-radius:12px;text-align:center}.mobile-nav .nav-link svg{width:21px;height:21px}.page-title{font-size:25px}.hero{padding:19px}.hero h2{font-size:18px}.post h3{font-size:17px}.route-grid,.resource-grid{grid-template-columns:1fr 1fr}.chat-layout{grid-template-columns:1fr}.chat-list{min-height:unset}.chat-layout.open .chat-list{display:none}.chat-layout:not(.open) .conversation{display:none}.conversation{min-height:calc(100vh - 190px)}.message-list{max-height:calc(100vh - 305px)}}
@media(max-width:410px){.route-grid,.resource-grid,.saved-grid{grid-template-columns:1fr}.post-actions{gap:3px}.post-actions button{padding:6px}.header-tools .icon-button{width:33px;min-width:33px}.brand-word{font-size:26px}.language-flag{font-size:16px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
