:root{--ao-ink: #1f1b16;--ao-muted: #655d52;--ao-faint: #a39a8c;--ao-surface: #ffffff;--ao-paper: #faf6ee;--ao-card: #fffdf8;--ao-line: #e6ddcc;--ao-green: #1d6b57;--ao-green-dark: #14513f;--ao-green-soft: #e4f1ec;--ao-amber: #b8741f;--ao-radius: 14px;--ao-radius-sm: 9px;--ao-shadow: 0 12px 30px rgba(31,27,22,0.08);--ao-focus: 0 0 0 3px rgba(29,107,87,0.28);--ao-serif: Georgia,"Times New Roman",serif;--ao-mono: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--primary: var(--ao-green);--primary-dark: var(--ao-green-dark);--border: var(--ao-line);--surface: var(--ao-surface);--shadow-soft: var(--ao-shadow);--surface-muted: var(--ao-paper);--text-main: var(--ao-ink);--text-muted: var(--ao-muted);}
.ao-tool{background: var(--ao-surface);border: 1px solid var(--ao-line);border-radius: var(--ao-radius);box-shadow: var(--ao-shadow);color: var(--ao-ink);overflow: hidden;}
.ao-tool [hidden]{display: none !important;}
.ao-byline{display: flex;flex-wrap: wrap;justify-content: space-between;gap: 0.3rem 1rem;padding: 0.75rem 1.4rem;background: var(--ao-paper);border-bottom: 1px solid var(--ao-line);font-size: 0.86rem;color: var(--ao-muted);}
.ao-byline-author{font-weight: 600;color: var(--ao-ink);}
.ao-byline .author-link{color: var(--ao-green);text-decoration: none;}
.ao-byline .author-link:hover{text-decoration: underline;}
.ao-body{display: grid;grid-template-columns: minmax(0,1fr) minmax(0,1fr);}
.ao-in,.ao-res{padding: 1.4rem;display: flex;flex-direction: column;gap: 0.9rem;min-width: 0;}
.ao-in{border-right: 1px solid var(--ao-line);}
.ao-head{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;gap: 0.5rem 1rem;}
.ao-label{font-weight: 700;font-size: 0.95rem;margin: 0;}
.ao-sep{display: inline-flex;align-items: center;gap: 0.45rem;margin: 0;font-size: 0.88rem;font-weight: 600;color: var(--ao-muted);}
.ao-sep select,.ao-select{border: 1px solid var(--ao-line);border-radius: var(--ao-radius-sm);padding: 0.4rem 0.6rem;font-size: 0.9rem;color: var(--ao-ink);background: var(--ao-surface);max-width: 100%;}
.ao-sep select:focus,.ao-select:focus{outline: none;box-shadow: var(--ao-focus);border-color: var(--ao-green);}
.ao-text{width: 100%;min-height: 300px;resize: vertical;font-size: 1rem;line-height: 1.6;padding: 0.85rem 1rem;border: 2px solid var(--ao-line);border-radius: var(--ao-radius-sm);background: var(--ao-surface);color: var(--ao-ink);transition: border-color 0.15s ease;}
.ao-text:hover{border-color: #d3c7b2;}
.ao-text:focus{outline: none;border-color: var(--ao-green);box-shadow: var(--ao-focus);}
.ao-text-out{background: var(--ao-card);}
.ao-actions{display: flex;flex-wrap: wrap;gap: 0.6rem;}
.ao-btn{border: 1px solid var(--ao-green);background: var(--ao-green);color: #ffffff;font-weight: 600;font-size: 0.92rem;padding: 0.55rem 1.1rem;border-radius: 999px;cursor: pointer;transition: background 0.15s ease;}
.ao-btn:hover{background: var(--ao-green-dark);border-color: var(--ao-green-dark);}
.ao-btn:focus-visible{outline: none;box-shadow: var(--ao-focus);}
.ao-btn:disabled{opacity: 0.45;cursor: not-allowed;}
.ao-btn-ghost{background: transparent;color: var(--ao-green);}
.ao-btn-ghost:hover{background: var(--ao-green-soft);color: var(--ao-green-dark);}
.ao-hint{margin: 0;font-size: 0.85rem;color: var(--ao-muted);}
.ao-tabs{display: inline-flex;align-self: flex-start;background: var(--ao-paper);border: 1px solid var(--ao-line);border-radius: 999px;padding: 3px;}
.ao-tab{border: 0;background: transparent;color: var(--ao-muted);font-weight: 600;font-size: 0.9rem;padding: 0.45rem 0.95rem;border-radius: 999px;cursor: pointer;}
.ao-tab.is-on{background: var(--ao-ink);color: #ffffff;}
.ao-tab:focus-visible{outline: none;box-shadow: var(--ao-focus);}
.ao-empty{min-height: 300px;display: flex;flex-direction: column;justify-content: center;align-items: center;text-align: center;padding: 1.5rem;border: 2px dashed var(--ao-line);border-radius: var(--ao-radius-sm);background: var(--ao-card);color: var(--ao-muted);}
.ao-empty p{margin: 0.2rem 0;}
.ao-empty-h{font-family: var(--ao-serif);font-size: 1.2rem;color: var(--ao-ink);}
.ao-groups{height: 300px;overflow-y: auto;border: 2px solid var(--ao-line);border-radius: var(--ao-radius-sm);background: var(--ao-card);padding: 0.4rem 1rem 1rem;position: relative;}
.ao-groups:focus{outline: none;box-shadow: var(--ao-focus);}
.ao-group{padding-top: 0.6rem;}
.ao-group-h{display: inline-block;font-family: var(--ao-serif);font-size: 1.05rem;font-weight: 700;color: var(--ao-green-dark);background: var(--ao-green-soft);border: 1px solid #c7e0d7;border-radius: 6px 6px 0 0;padding: 0.1rem 0.7rem;margin: 0;}
.ao-group ul{list-style: none;margin: 0;padding: 0.35rem 0 0.35rem 0.8rem;border-top: 2px solid var(--ao-green-soft);}
.ao-group li{padding: 0.18rem 0;border-bottom: 1px dotted var(--ao-line);overflow-wrap: anywhere;}
.ao-group li:last-child{border-bottom: 0;}
.ao-strip{display: flex;flex-wrap: wrap;gap: 4px;}
.ao-tile{display: inline-flex;align-items: center;justify-content: center;min-width: 1.75rem;height: 1.75rem;padding: 0 0.3rem;border-radius: 5px;font-family: var(--ao-serif);font-size: 0.88rem;font-weight: 700;background: var(--ao-paper);color: var(--ao-faint);border: 1px solid var(--ao-line);}
.ao-tile.is-on{background: var(--ao-ink);color: #ffffff;border-color: var(--ao-ink);cursor: pointer;}
.ao-tile.is-on:hover{background: var(--ao-green);border-color: var(--ao-green);}
.ao-tile.is-on:focus-visible{outline: none;box-shadow: var(--ao-focus);}
.ao-stats{display: grid;grid-template-columns: repeat(4,minmax(0,1fr));gap: 0.5rem;margin: 0;}
.ao-stats div{background: var(--ao-paper);border: 1px solid var(--ao-line);border-radius: var(--ao-radius-sm);padding: 0.55rem 0.7rem;}
.ao-stats dt{font-size: 0.72rem;font-weight: 600;text-transform: uppercase;letter-spacing: 0.05em;color: var(--ao-muted);}
.ao-stats dd{margin: 0;font-size: 1.2rem;font-weight: 700;color: var(--ao-ink);}
.ao-opts{display: grid;grid-template-columns: repeat(4,minmax(0,auto));justify-content: start;align-items: end;gap: 1rem 1.6rem;padding: 1.2rem 1.4rem;border-top: 1px solid var(--ao-line);background: var(--ao-paper);}
.ao-opt{display: flex;flex-direction: column;gap: 0.4rem;min-width: 0;}
.ao-opt-label{font-size: 0.78rem;font-weight: 700;text-transform: uppercase;letter-spacing: 0.06em;color: var(--ao-muted);margin: 0;}
.ao-seg{display: inline-flex;flex-wrap: wrap;background: var(--ao-surface);border: 1px solid var(--ao-line);border-radius: 999px;padding: 3px;}
.ao-seg-btn{border: 0;background: transparent;color: var(--ao-muted);font-weight: 600;font-size: 0.88rem;padding: 0.4rem 0.85rem;border-radius: 999px;cursor: pointer;white-space: nowrap;}
.ao-seg-btn.is-on{background: var(--ao-green);color: #ffffff;}
.ao-seg-btn:focus-visible{outline: none;box-shadow: var(--ao-focus);}
.ao-checks{grid-column: 1 / -1;display: flex;flex-wrap: wrap;gap: 0.5rem 1.4rem;}
.ao-check{display: inline-flex;align-items: center;gap: 0.45rem;margin: 0;font-size: 0.92rem;cursor: pointer;}
.ao-check input{width: 1.05rem;height: 1.05rem;accent-color: var(--ao-green);}
.ao-rule{grid-column: 1 / -1;margin: 0;padding: 0.55rem 0.8rem;border-left: 3px solid var(--ao-amber);background: var(--ao-surface);border-radius: 0 var(--ao-radius-sm) var(--ao-radius-sm) 0;font-size: 0.9rem;color: var(--ao-ink);}
.ao-article{margin: 2.5rem auto 1rem;color: var(--ao-ink);line-height: 1.7;}
.ao-article h2{font-family: var(--ao-serif);font-size: 1.6rem;font-weight: 700;margin: 2.2rem 0 0.8rem;}
.ao-article h2:first-child{margin-top: 0;}
.ao-article p,.ao-article li{color: #3b352d;font-size: 1.02rem;}
.ao-article ul{padding-left: 1.2rem;}
.ao-article li{margin-bottom: 0.4rem;}
.ao-article a{color: var(--ao-green);text-decoration: underline;text-underline-offset: 2px;}
.ao-article code{font-family: var(--ao-mono);font-size: 0.9em;background: var(--ao-paper);border: 1px solid var(--ao-line);border-radius: 4px;padding: 0.05rem 0.3rem;color: var(--ao-ink);}
.ao-code{background: var(--ao-ink);color: #f4efe6;border-radius: var(--ao-radius-sm);padding: 0.9rem 1.1rem;font-family: var(--ao-mono);font-size: 0.92rem;line-height: 1.55;overflow-x: auto;}
.ao-code code{background: none;border: 0;padding: 0;color: inherit;}
.ao-table-wrap{overflow-x: auto;margin: 1rem 0;}
.ao-table{width: 100%;border-collapse: collapse;font-size: 0.95rem;background: var(--ao-surface);border: 1px solid var(--ao-line);}
.ao-table caption{caption-side: top;font-size: 0.85rem;color: var(--ao-muted);padding-bottom: 0.4rem;}
.ao-table th,.ao-table td{padding: 0.5rem 0.8rem;border-bottom: 1px solid var(--ao-line);text-align: left;}
.ao-table thead th{background: var(--ao-paper);font-size: 0.8rem;text-transform: uppercase;letter-spacing: 0.05em;color: var(--ao-muted);}
.ao-limits{list-style: none;padding-left: 0 !important;}
.ao-limits li{padding: 0.7rem 0.9rem;border: 1px solid var(--ao-line);border-left: 3px solid var(--ao-amber);border-radius: 0 var(--ao-radius-sm) var(--ao-radius-sm) 0;background: var(--ao-card);margin-bottom: 0.6rem;}
@media (max-width: 991px){.ao-opts{grid-template-columns: repeat(2,minmax(0,1fr));}}
@media (max-width: 860px){.ao-body{grid-template-columns: 1fr;}.ao-in{border-right: 0;border-bottom: 1px solid var(--ao-line);}.ao-text,.ao-empty{min-height: 220px;}.ao-groups{height: 260px;}}
@media (max-width: 560px){.ao-in,.ao-res,.ao-opts{padding: 1rem;}.ao-opts{grid-template-columns: 1fr;}.ao-stats{grid-template-columns: repeat(2,minmax(0,1fr));}.ao-article h2{font-size: 1.35rem;}}