:root{--forest:#14532d;--lime:#cbeb6e;--ink:#16241b;--muted:#6e7a70;--line:#d8dcd4;--wash:#f3f5ef;--white:#fff;--radius:12px}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;color:var(--ink);background:var(--wash);-webkit-font-smoothing:antialiased}.auth-shell{min-height:100dvh;display:grid;place-items:center;padding:24px}.auth-card{width:100%;max-width:380px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px;text-align:center}.auth-card h1{margin:0 0 4px;font-size:20px}.auth-card .sub{margin:0 0 22px;color:var(--muted);font-size:14px}.auth-card form{text-align:left}label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}input[type=password],input[type=text]{width:100%;padding:11px 12px;border:1.5px solid var(--line);border-radius:9px;font-size:15px;margin-bottom:16px;background:var(--white);color:var(--ink)}input:focus,select:focus{outline:none;border-color:var(--forest);box-shadow:0 0 0 3px rgba(20,83,45,.12)}button[type=submit]:not(.sa-btn):not(.primary):not(.sd-action){width:100%;padding:12px;border:0;border-radius:9px;background:var(--forest);color:var(--lime);font-weight:600;font-size:15px;cursor:pointer}button[type=submit]:not(.sa-btn):not(.primary):not(.sd-action):disabled{opacity:.6;cursor:default}.btn-spinner{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid;border-right:2px solid transparent;animation:btn-spin .7s linear infinite;vertical-align:-2px;margin-right:8px;flex-shrink:0}@keyframes btn-spin{to{transform:rotate(1turn)}}.error{background:#fcf0f1;border:1px solid #e6a5a8;color:#8a1f26;padding:10px 12px;border-radius:9px;font-size:13.5px;margin-bottom:16px}.hint{color:var(--muted);font-size:12.5px;margin-top:14px}.portal__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--forest);color:var(--white);padding:14px 22px}.portal__bar strong{display:block;font-size:15px}.portal__who{font-size:12.5px;color:rgba(255,255,255,.72)}.portal__bar nav{display:flex;gap:16px;align-items:center}.linkish,.portal__bar a{color:var(--lime);text-decoration:none;font-size:13.5px;background:none;border:0;cursor:pointer;font-family:inherit;padding:0}.portal__body{padding:26px 22px;max-width:1000px;margin:0 auto}.page-title{margin:0 0 20px;font-size:22px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.stat{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.stat b{display:block;font-size:26px}.stat span{font-size:12.5px}.muted,.stat span{color:var(--muted)}.muted{font-size:14px}.tbl.tbl{width:100%;border-collapse:collapse;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.tbl.tbl td,.tbl.tbl th{text-align:left;padding:12px 14px;font-size:14px;border-bottom:1px solid var(--line)}.tbl.tbl th{background:#14532d;font-size:12px;font-weight:650;color:var(--white)}.tbl.tbl tbody tr:hover{background:var(--wash)}.tbl.tbl tr:last-child td{border-bottom:0}.tbl.tbl a{color:var(--forest)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.table-wrap{overflow-x:auto;margin-top:16px}.pager{display:flex;gap:14px;align-items:center;margin-top:14px}.pager__link{padding:8px 16px;border:1.5px solid var(--line);border-radius:9px;background:var(--white);color:var(--ink);font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}.pager__link:disabled{opacity:.45;cursor:default}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center}.filters input[type=search]{flex:1 1 240px;margin:0}.filters input[type=search],.filters select{padding:9px 11px;border:1.5px solid var(--line);border-radius:9px;font-size:14px}.filters select{background:var(--white)}.filters button{padding:9px 16px;border:0;border-radius:9px;background:var(--forest);color:var(--lime);font-weight:600;cursor:pointer}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;background:var(--wash);color:var(--muted)}.pill--active{background:#e8f3ea;color:#1f6b33}.pill--suspended{background:#fef3c7;color:#92400e}.pill--expelled,.pill--withdrawn{background:#fee2e2;color:#991b1b}.pill--pending_approval{background:#e0f2fe;color:#075985}.note{background:#fcf9e8;border:1px solid #dba617;padding:10px 14px;border-radius:9px;font-size:13.5px;margin-bottom:14px}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card h2{margin:0 0 12px;font-size:16px}.sub-head{font-size:14px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:24px 0 10px}.bullets{margin:0;padding-left:20px;column-count:2}.bullets li{padding:3px 0;page-break-inside:avoid;break-inside:avoid}.id-card{display:flex;gap:24px;flex-wrap:wrap;background:linear-gradient(155deg,#14532d,#0f2818);color:var(--white);border-radius:var(--radius);padding:22px;margin-bottom:16px}.id-card__photo{flex:0 0 auto;width:112px;height:134px;border-radius:10px;border:2px solid rgba(203,235,110,.65);display:grid;place-items:center;overflow:hidden;font-size:12px;color:rgba(255,255,255,.75);text-align:center}.id-card__photo img{width:100%;height:100%;object-fit:cover}.id-card__body{flex:1 1 300px}.id-card__body h1{margin:0 0 4px;font-size:20px}.id-card__meta{margin:0 0 14px;color:rgba(255,255,255,.72);font-size:13.5px}.facts{display:grid;grid-gap:7px 16px;gap:7px 16px;margin:0;font-size:14px}.facts>div{display:flex;gap:8px}.facts dt{color:rgba(255,255,255,.68);white-space:nowrap}.facts dd{margin:0;font-weight:500}.card:not(.sa-card) input[type=number],.card:not(.sa-card) input[type=text],.card:not(.sa-card) select,.card:not(.sa-card) textarea{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;font-size:14.5px;margin-bottom:14px;font-family:inherit;background:var(--white);color:var(--ink)}.card button[type=submit]:not(.sa-btn):not(.primary):not(.sd-action){padding:10px 18px;border:0;border-radius:9px;background:var(--forest);color:var(--lime);font-weight:600;font-size:14.5px;cursor:pointer;width:auto}.opt-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.opt-row input[type=radio]{width:auto;margin:0}.opt-row .opt-key{width:20px;font-weight:700;margin:0}.opt-row input[type=text]{flex:1 1;margin:0}.totp-qr{margin:6px 0 14px}.totp-qr img{display:block;width:256px;height:256px;background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px}.totp-manual{margin-bottom:14px}.totp-secret{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:17px;letter-spacing:2px;word-break:break-all;background:var(--wash);border:1px solid var(--line);border-radius:9px;padding:12px 14px}.primary-wide{padding:12px 22px;border:0;border-radius:9px;background:var(--forest);color:var(--lime);font-weight:600;font-size:15px;cursor:pointer}.ok{background:#e8f3ea;border:1px solid #8fc39c;color:#1f6b33;padding:10px 14px;border-radius:9px;font-size:13.5px;margin-bottom:14px}.short{color:#b45309}.short,.tag{font-weight:600}.tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:4px;background:var(--wash);color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.qlist{margin:0;padding-left:20px}.qlist li{padding:6px 0;border-bottom:1px solid var(--line)}.qlist li:last-child{border-bottom:0}.pill--draft{background:var(--wash);color:var(--muted)}.pill--submitted,.pill--under_review{background:#e0f2fe;color:#075985}.pill--returned{background:#fef3c7;color:#92400e}.pill--approved,.pill--published{background:#e8f3ea;color:#1f6b33}.pill--closed{background:#eef1ed;color:#52624e}.card button.danger{background:#fff;color:#b91c1c;border:1.5px solid #fca5a5}.exam{min-height:100dvh;display:flex;flex-direction:column;background:var(--wash)}.exam__bar{justify-content:space-between;background:var(--forest);color:var(--white);padding:12px 20px}.exam__bar,.exam__right{display:flex;align-items:center;gap:16px}.sync{font-size:12.5px;padding:3px 10px;border-radius:999px}.sync--saved{background:rgba(203,235,110,.2);color:var(--lime)}.sync--saving{background:rgba(255,255,255,.15);color:#fff}.sync--offline{background:#fef3c7;color:#92400e}.sync--error{background:#fee2e2;color:#991b1b}.timer{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;color:var(--lime)}.timer--low{color:#fca5a5}.exam__warn{background:#fef3c7;border-bottom:1px solid #dba617;color:#92400e;padding:10px 20px;font-size:13.5px;display:flex;justify-content:space-between;gap:12px}.exam__warn button{border:0;background:none;color:#92400e;text-decoration:underline;cursor:pointer;font-size:13px}.exam__body{flex:1 1;display:flex;gap:20px;padding:20px;max-width:1100px;margin:0 auto;width:100%;align-items:flex-start;flex-wrap:wrap}.exam__main{flex:1 1 420px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px}.passage{background:var(--wash);border-radius:10px;padding:14px 16px;margin-bottom:16px}.passage h3{margin:0 0 8px;font-size:14px}.passage p{margin:0 0 10px;line-height:1.7;font-size:14.5px}.exam__instr{font-style:italic;color:var(--muted);margin:0 0 12px}.exam__num{margin:0 0 6px;font-size:13px;color:var(--muted);font-weight:600}.exam__text{font-size:16.5px;line-height:1.65;margin:0 0 18px}.exam__img{max-width:100%;height:auto;border:1px solid var(--line);border-radius:10px;margin:0 0 18px}.exam__theory{width:100%;min-height:240px;padding:13px 15px;border:1.5px solid var(--line);border-radius:10px;font:inherit;font-size:15px;line-height:1.65;color:var(--ink);background:var(--white);resize:vertical}.exam__theory:focus{outline:2px solid var(--forest);outline-offset:1px;border-color:var(--forest)}.exam__options{display:flex;flex-direction:column;gap:10px}.exam__options--grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}@media (max-width:560px){.exam__options--grid{grid-template-columns:1fr}}.opt{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:1.5px solid var(--line);border-radius:10px;padding:13px 15px;background:var(--white);cursor:pointer;font-size:15px;font-family:inherit;color:var(--ink)}.opt--chosen,.opt:hover{border-color:var(--forest)}.opt--chosen{background:#f2f8e8}.opt__key{font-weight:700;width:18px;color:var(--muted)}.opt--chosen .opt__key{color:var(--forest)}.exam__nav{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.exam__nav button{padding:9px 16px;border:1.5px solid var(--line);border-radius:9px;background:var(--white);cursor:pointer;font-size:14px;font-family:inherit}.exam__nav button:disabled{opacity:.45;cursor:default}.exam__palette{flex:0 0 210px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.palette{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:6px;gap:6px;margin:10px 0 16px}.pal{aspect-ratio:1;border:1.5px solid var(--line);border-radius:7px;background:var(--white);cursor:pointer;font-size:12.5px;font-family:inherit;padding:0}.pal--done{background:#e8f3ea;border-color:#8fc39c;color:#1f6b33;font-weight:600}.pal--marked{border-color:#dba617}.pal--here{outline:2px solid var(--forest);outline-offset:1px}.exam__submit{width:100%;padding:11px;border:0;border-radius:9px;background:var(--forest);color:var(--lime);font-weight:600;cursor:pointer;font-size:14.5px}.exam__submit:disabled{opacity:.6}.paper-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.paper-row:last-of-type{border-bottom:0}.paper-row a.primary-wide{text-decoration:none;display:inline-block}.family-list{list-style:none;margin:0;padding:0}.family-list li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.family-list li:last-child{border-bottom:0}.family-list a.primary-wide{text-decoration:none;display:inline-block}.family-child{display:flex;align-items:center;gap:14px}.family-child__photo{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}.answer-box{background:var(--wash);border:1px solid var(--line);border-radius:9px;padding:12px 14px;font-size:14.5px;line-height:1.65;white-space:pre-wrap}.stats{display:flex;gap:14px;margin:18px 0 26px;flex-wrap:wrap}.practice-review{list-style:none;padding:0;margin:0;display:grid;grid-gap:14px;gap:14px}.practice-q{border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:9px;padding:14px 16px;background:var(--white)}.practice-q--right{border-left-color:#1a7f37}.practice-q--wrong{border-left-color:#b42318}.practice-q__tag{font-size:12.5px;font-weight:600;margin:0 0 6px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.practice-q__answers{font-size:14px;color:var(--muted);margin:8px 0 0}.practice-q__explanation{font-size:14.5px;background:var(--wash);border:1px solid var(--line);border-radius:7px;padding:10px 12px;margin-top:10px}.stack{display:grid;grid-gap:22px;gap:22px}.stack>*{min-width:0}.form-grid{display:grid;grid-gap:14px 18px;gap:14px 18px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));border:0;margin:0 0 16px;padding:0}.form-grid legend{display:none}.form-grid>h2,.form-grid>h3,.form-grid>p{grid-column:1/-1}.form-grid label{display:grid;grid-gap:6px;gap:6px;font-size:13.5px;color:var(--muted)}.form-grid input,.form-grid select{width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:9px;font:inherit;font-size:14px;color:var(--ink);background:var(--white)}fieldset>legend{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}.check-grid{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0 0 16px;padding:0;border:0}.check{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--ink)}.check input{accent-color:var(--green,#1a7f37)}.credentials{background:var(--wash);border:1px solid var(--line);border-radius:7px;padding:10px 12px;font-family:var(--mono,monospace);font-size:13.5px}.btn-small{display:inline-block;padding:4px 10px;font-size:12.5px;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink);cursor:pointer}.btn-small:hover{background:var(--wash)}.btn-small.danger{color:#b42318;border-color:#e6c9c5}.btn-small.danger:hover{background:#faf1f0}.inline-form{display:inline-block;margin-left:8px}.inline-edit{display:grid;grid-gap:12px;gap:12px;margin:12px 0 4px;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--wash)}.details-plain{cursor:pointer;list-style:none}.details-plain::-webkit-details-marker{display:none}.details-plain img{border-radius:4px;margin-right:8px;vertical-align:middle;object-fit:cover}.duty-list{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-gap:6px;gap:6px;font-size:13px}.stand-down,.stand-down summary{display:inline-block}.stand-down .inline-edit{box-shadow:0 4px 14px rgba(22,36,27,.08);background:var(--white)}.row--inactive td{color:var(--muted)}.row--message td{background:transparent}.row--message .error,.row--message .note{margin:0;padding:6px 0}.row-actions{white-space:nowrap}.row-actions form{display:inline-block}@media (max-width:720px){.tbl.tbl{display:block;overflow-x:auto}.form-grid{grid-template-columns:1fr}}.empty-state{padding:18px 0}.comm-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.inbox-card{padding:0;overflow:hidden}.inbox-list{list-style:none;margin:0;padding:0}.inbox-list li{border-bottom:1px solid var(--line)}.inbox-list li:last-child{border-bottom:0}.inbox-list li form{margin:0}.inbox-row{display:flex;align-items:center;gap:14px;width:100%;padding:14px 18px;border:0;background:none;cursor:pointer;font:inherit;text-align:left;color:var(--ink);text-decoration:none}.inbox-row:hover{background:#f5f7f6}.inbox-row__main{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:10px}.inbox-row__title{font-weight:500;white-space:nowrap;flex:0 0 auto;max-width:42%;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:7px}.inbox-row.unread .inbox-row__title{font-weight:700}.inbox-row__dot{width:8px;height:8px;border-radius:50%;background:#14532d;flex:0 0 auto}.inbox-row__excerpt{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;min-width:0}.inbox-row__meta{flex:0 0 auto;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px}.inbox-row__time,.inbox-row__type{white-space:nowrap}.inbox-row__type{color:#3f4a42;font-weight:500}.inbox-row .ps-badge{margin-left:0}@media (max-width:640px){.inbox-row{flex-wrap:wrap;padding:12px 16px}.inbox-row__main{flex-basis:100%}.inbox-row__title{max-width:100%}.inbox-row__meta{flex-basis:100%;justify-content:space-between}}.prefs{margin-top:28px}.prefs summary{cursor:pointer;font-weight:600}.prefs form{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.announcement-list{list-style:none;margin:0;padding:0}.announcement-list li{border-bottom:1px solid var(--line);padding:16px 18px}.announcement-list li:last-child{border-bottom:0}.announcement-list h3{margin:0 0 6px;font-size:15px}.announcement-list p{margin:0 0 8px}.thread.active .inbox-row{background:#f0f6f1}.thread-view{margin-top:4px}.thread-view__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.message-list{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-gap:10px;gap:10px}.message{border:1px solid var(--line);border-radius:9px;padding:10px 14px;background:var(--wash);max-width:72ch;justify-self:start}.message.mine{background:#f0f6f1;border-color:#14532d;justify-self:end}.message p{margin:4px 0}.message strong{display:block}.reply-form{margin-top:4px}.password-row{position:relative}.password-row input{padding-right:46px}.password-toggle{position:absolute;top:0;bottom:0;right:0;width:42px;display:grid;place-items:center;border:0;background:none;color:var(--muted);cursor:pointer}.password-toggle:hover{color:var(--ink)}.auth-card .notice{margin:0 0 18px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#f4faf4;color:#1f5f20;font-size:14px}.auth-logo{display:block;max-height:56px;max-width:100%;margin:0 auto 12px}.auth-links{margin:16px 0 0;font-size:14px}.auth-links a{color:var(--ink)}.recovery-details{margin-top:16px}.recovery-details summary{cursor:pointer;color:var(--muted);font-size:13px;margin-bottom:10px}.recovery-details input{margin-bottom:10px}button.linklike{border:0;background:none;color:var(--ink);font-size:14px;text-decoration:underline;padding:0;cursor:pointer}ul.recovery-codes{list-style:none;padding:0;margin:12px 0}ul.recovery-codes li{font-family:ui-monospace,monospace;font-size:15px;letter-spacing:1px;padding:4px 0}.auth-card .ok{margin:0 0 16px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#f4faf4;color:#1f5f20;font-size:14px}table.kv{width:100%;border-collapse:collapse;margin-bottom:20px;font-size:14px}table.kv th{text-align:left;color:var(--muted);font-weight:600;padding:4px 12px 4px 0;white-space:nowrap}table.kv td{padding:4px 0}.primary{border:0;border-radius:9px;background:var(--forest);color:var(--lime);font-weight:600;font-size:14px;cursor:pointer;padding:9px 18px}.primary--small{padding:3px 10px;font-size:12.5px}.card form{margin:0}.search-row{display:flex;gap:10px;align-items:flex-end;margin:10px 0 4px}.search-row>label{display:flex;flex-direction:column;gap:6px}.search-row input[type=text]{margin-bottom:0}.search-row>label{flex:1 1;margin-bottom:0}.field-label{display:block;font-size:13.5px;color:var(--muted);margin-bottom:6px}.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}.batch-list{list-style:none;margin:0;padding:0}.batch-list li{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 2px;border-bottom:1px solid var(--line);font-size:14px}.batch-list li:last-child{border-bottom:0}.batch-list a{color:var(--forest);font-weight:600}.chip-select{position:relative}.chip-select__input{min-height:42px;border:1.5px solid var(--line);border-radius:10px;padding:6px 36px 6px 8px;background:var(--white);cursor:pointer;display:flex;flex-wrap:wrap;gap:4px;align-items:center;width:100%;font:inherit;text-align:left}.chip-select__input:hover{border-color:var(--forest)}.chip-select__chips{display:contents}.chip-select__placeholder{color:var(--muted);font-size:13px}.chip-select__arrow{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.chip-select__dropdown{position:absolute;top:100%;left:0;right:0;z-index:100;max-height:200px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;background:var(--white);box-shadow:0 8px 24px rgba(0,0,0,.12);margin-top:4px}.chip-select__option{padding:8px 12px;font-size:13px;cursor:pointer}.chip-select__option:hover{background:var(--wash)}.chip-select__option.is-selected{background:#d1fae5;color:#065f46;font-weight:600}.chip-select__chip{display:inline-flex;align-items:center;gap:4px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;padding:3px 8px 3px 10px;font-size:12px;font-weight:600;color:#065f46}.chip-select__remove{background:none;border:none;cursor:pointer;font-size:14px;line-height:1;color:#6b7280;padding:0 2px;font-family:inherit}.chip-select__remove:hover{color:#b91c1c}