/* APK-справочник — built on Nocturne tokens. Dark is native; light is derived from the same ramps. */
:root{
  color-scheme:dark light;
  --n-100:#f3f5fe;--n-200:#e4e7f5;--n-300:#cfd3e5;--n-400:#b2b6ca;--n-500:#9397ab;--n-600:#75798c;--n-700:#595d6c;--n-800:#3f424d;--n-900:#292b31;
  --a-100:#f5f4ff;--a-200:#e7e5fe;--a-300:#d2cefd;--a-400:#b5abfc;--a-500:#968ae0;--a-600:#796cbf;--a-700:#5d5294;--a-800:#423a6a;--a-900:#2b2741;
  --font:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"Cascadia Mono","SF Mono",Menlo,Consolas,"DejaVu Sans Mono","Liberation Mono","Noto Sans Mono",monospace;
  --r-sm:4px;--r-md:8px;--r-lg:14px;
  --s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-6:1.5rem;--s-8:2rem;--s-12:3rem;--s-16:4rem;
  --bg:#161826;--surface:#1c1e2c;--surface-2:#232532;--text:#e9e9ed;--muted:var(--n-400);
  --line:color-mix(in srgb,#e9e9ed 16%,transparent);--line-soft:color-mix(in srgb,#e9e9ed 9%,transparent);
  --accent:#9184d9;--mark:var(--a-400);--link:var(--a-300);--link-hover:var(--a-200);
  --warn-bg:var(--a-900);--warn-line:var(--a-700);
  --glow:color-mix(in srgb,#9184d9 9%,transparent);
  --shadow:0 0 0 1px var(--n-800),0 6px 18px rgba(0,0,0,.5);
}
@media (prefers-color-scheme:light){
  :root{
    --bg:var(--n-100);--surface:color-mix(in srgb,var(--n-100) 55%,var(--n-200));--surface-2:var(--n-200);--text:var(--n-900);--muted:var(--n-700);
    --line:color-mix(in srgb,var(--n-900) 20%,transparent);--line-soft:color-mix(in srgb,var(--n-900) 10%,transparent);
    --accent:var(--a-600);--mark:var(--a-600);--link:var(--a-700);--link-hover:var(--a-800);
    --warn-bg:color-mix(in srgb,var(--a-100) 50%,var(--a-200));--warn-line:var(--a-500);
    --glow:color-mix(in srgb,var(--a-400) 14%,transparent);
    --shadow:0 0 0 1px var(--n-300),0 8px 24px rgba(41,43,49,.12);
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;color:var(--text);font:400 1.0625rem/1.65 var(--font);
  background:radial-gradient(70rem 32rem at 0 0,var(--glow),transparent 70%) no-repeat,var(--bg);-webkit-font-smoothing:antialiased}
main{outline:none}
h1,h2,h3{font-weight:500;letter-spacing:-.018em;color:var(--text)}
a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,currentColor 55%,transparent)}
a:hover{color:var(--link-hover);text-decoration-color:currentColor;text-decoration-thickness:2px}
a:active{color:var(--mark)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}
strong{font-weight:600}
code{font-family:var(--mono);font-size:.875em;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);padding:.06em .35em;overflow-wrap:anywhere;hyphens:none;-webkit-hyphens:none}
.i{display:block;flex:none}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-10rem;z-index:20;padding:.75rem 1rem;background:var(--bg);color:var(--link);border:2px solid var(--accent);border-radius:var(--r-md);font-weight:500}
.skip:focus{top:1rem}

/* layout */
.wrap{width:100%;max-width:78rem;margin-inline:auto;padding-inline:clamp(1rem,4vw,2.5rem)}
.layout{flex:1;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-12);padding-block:var(--s-6) var(--s-16)}
@media (min-width:70rem){.layout{grid-template-columns:minmax(0,46rem) minmax(12rem,15rem);justify-content:space-between;padding-top:var(--s-8)}}

/* header */
.site-header{position:relative;z-index:10}
.header-in{display:flex;align-items:center;gap:var(--s-4);min-height:4.5rem;
  background:linear-gradient(to right,transparent,var(--line) 48px,var(--line) calc(100% - 48px),transparent) no-repeat bottom/100% 1px}
.brand{display:inline-flex;align-items:center;gap:.65rem;min-height:44px;margin-right:auto;color:var(--text);text-decoration:none;font-weight:500;font-size:1.125rem;letter-spacing:-.01em}
.brand:hover{color:var(--text)}
.brand-mark{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid var(--accent);border-radius:var(--r-md);color:var(--mark)}
.site-nav ul,.menu ul{list-style:none;margin:0;padding:0}
.site-nav ul{display:flex;gap:var(--s-1)}
.site-nav a{display:flex;align-items:center;min-height:44px;padding:0 .8rem;border-radius:var(--r-md);color:var(--text);text-decoration:none;font-size:.9375rem}
.site-nav a:hover{background:color-mix(in srgb,var(--text) 7%,transparent);color:var(--text)}
.site-nav a[aria-current=page]{color:var(--link);box-shadow:inset 0 -2px 0 var(--accent);border-radius:var(--r-md) var(--r-md) 0 0}
.menu{display:none;position:relative}
@media (max-width:63.99rem){.site-nav{display:none}.menu{display:block}}
.menu summary{display:flex;align-items:center;gap:.5rem;min-height:44px;padding:0 .875rem;border:1px solid var(--line);border-radius:var(--r-md);cursor:pointer;list-style:none;font-size:.9375rem;user-select:none}
.menu summary::-webkit-details-marker,.toc-m summary::-webkit-details-marker{display:none}
@media (max-width:23rem){
  .header-in{gap:var(--s-2)}
  .brand{min-width:0;gap:.5rem;font-size:1rem}
  .brand-mark{width:2rem;height:2rem}
  .menu summary{padding:0 .6rem;gap:.35rem}
  .menu summary>.i:first-child{display:none}
}
.menu summary:hover{background:color-mix(in srgb,var(--text) 7%,transparent)}
.menu[open] .chev,.toc-m[open] .chev{transform:rotate(180deg)}
.menu nav{position:absolute;right:0;top:calc(100% + .5rem);width:min(18rem,calc(100vw - 2rem));padding:.375rem;background:var(--surface-2);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.menu a{display:flex;align-items:center;gap:.7rem;min-height:44px;padding:0 .75rem;border-radius:var(--r-md);color:var(--text);text-decoration:none}
.menu a .i{color:var(--mark)}
.menu a:hover{background:color-mix(in srgb,var(--text) 7%,transparent);color:var(--text)}
.menu a[aria-current=page]{color:var(--link);background:color-mix(in srgb,var(--accent) 14%,transparent)}

/* article */
.article{min-width:0}
.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:0 .5rem;list-style:none;margin:-.5rem 0 var(--s-2);padding:0;font-size:.9375rem;color:var(--muted)}
.crumbs li{display:inline-flex;align-items:center;gap:.5rem;min-height:44px}
.crumbs li+li::before{content:"/";color:var(--muted)}
.crumbs a{color:var(--muted);display:inline-flex;align-items:center;min-height:44px}
.crumbs a:hover{color:var(--link)}
.kicker{display:flex;align-items:center;gap:.5rem;margin:0 0 var(--s-3);font-size:.8125rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--link)}
.kicker .i{color:var(--mark)}
.article h1{font-size:clamp(2rem,1.4rem + 2.6vw,3rem);line-height:1.08;letter-spacing:-.024em;margin:0 0 var(--s-4);text-wrap:balance;hyphens:manual}
.updated{display:flex;align-items:center;gap:.5rem;margin:0 0 var(--s-6);color:var(--muted);font-size:.9375rem}
.article h2{font-size:clamp(1.375rem,1.15rem + .9vw,1.75rem);line-height:1.2;margin:var(--s-12) 0 var(--s-4);scroll-margin-top:var(--s-6);text-wrap:balance}
.article p,.article li,.article dd,.article td,.article th{hyphens:auto;-webkit-hyphens:auto}
.article p,.article li,.article dd{text-wrap:pretty}
.article p{margin:0 0 var(--s-4);max-width:42rem}
.article .lead{font-size:clamp(1.125rem,1.05rem + .3vw,1.25rem);line-height:1.6;max-width:40rem}
.art-head{margin-bottom:var(--s-8)}
.article ul:not([class]){list-style:none;padding:0;margin:0 0 var(--s-6);max-width:42rem;display:grid;gap:var(--s-3)}
.article ul:not([class])>li{position:relative;padding-left:1.5rem}
.article ul:not([class])>li::before{content:"";position:absolute;left:.1rem;top:.8em;width:.6rem;height:2px;border-radius:1px;background:var(--mark)}

/* steps */
.steps{list-style:none;counter-reset:s;margin:var(--s-6) 0;padding:0;max-width:42rem}
.steps>li{counter-increment:s;position:relative;padding:0 0 var(--s-6) 3.25rem;min-height:2.5rem}
.steps>li::before{content:counter(s);position:absolute;left:0;top:-.15rem;width:2.25rem;height:2.25rem;display:grid;place-items:center;border:1px solid var(--accent);border-radius:50%;background:var(--bg);color:var(--link);font-weight:500;font-size:.9375rem;font-variant-numeric:tabular-nums}
.steps>li:not(:last-child)::after{content:"";position:absolute;left:1.125rem;top:2.35rem;bottom:.3rem;width:1px;background:var(--line)}
.steps>li:last-child{padding-bottom:0}

/* definition list */
.glossary{margin:var(--s-6) 0;max-width:46rem}
.glossary>div{display:grid;gap:var(--s-1);padding:var(--s-4) 0;
  background:linear-gradient(to right,transparent,var(--line-soft) 48px,var(--line-soft) calc(100% - 48px),transparent) no-repeat bottom/100% 1px}
.glossary>div:first-child{padding-top:0}
@media (min-width:48rem){.glossary>div{grid-template-columns:12rem minmax(0,1fr);gap:var(--s-6)}}
.glossary dt{font-weight:500}
.glossary dt strong{font-weight:600}
.glossary dd{margin:0}

/* callouts */
.note{margin:var(--s-6) 0;padding:var(--s-4) var(--s-6);max-width:42rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.note>*:last-child{margin-bottom:0}
.note-title{display:flex;align-items:center;gap:.5rem;margin:0 0 var(--s-2)!important;font-size:.8125rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.note-warn{border-color:var(--warn-line);background:var(--warn-bg)}
.note-warn .note-title{color:var(--link)}
.note-lead{font-weight:500;margin-bottom:var(--s-3)!important}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3)}
.checks li{display:flex;gap:.65rem;align-items:flex-start}
.checks .i{color:var(--mark);margin-top:.2rem}

/* tables */
.table-wrap{margin:var(--s-6) 0 var(--s-8);overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.9375rem;line-height:1.5}
th,td{text-align:left;vertical-align:top;padding:.875rem .875rem .875rem 0}
th:last-child,td:last-child{padding-right:0}
thead th{font-weight:500;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-block:.5rem .625rem;vertical-align:bottom}
tbody th{font-weight:500}
thead tr{background:linear-gradient(to right,transparent,var(--line) 48px,var(--line) calc(100% - 48px),transparent) no-repeat bottom/100% 1px}
tbody tr{background:linear-gradient(to right,transparent,var(--line-soft) 48px,var(--line-soft) calc(100% - 48px),transparent) no-repeat bottom/100% 1px}
.t-mono{font-family:var(--mono);font-size:.875rem;font-weight:400;overflow-wrap:anywhere;hyphens:none;-webkit-hyphens:none}
.t-perms tbody th{width:38%}
.t-schemes tbody th{white-space:nowrap}
.t-cmds tbody th{width:30%}
.t-cmds td:nth-child(2){width:18%}
.os{display:inline-flex;align-items:flex-start;gap:.55rem}
.os .i{color:var(--mark);margin-top:.1rem}
.sec-link{display:inline-flex;align-items:center;gap:.65rem;min-height:44px;font-weight:500}
.sec-link .i{color:var(--mark)}
@media (max-width:39.99rem){
  .stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .stack,.stack tbody,.stack tr,.stack th,.stack td{display:block;width:auto!important;white-space:normal!important}
  .stack tr{padding:var(--s-4) 0}
  .stack th,.stack td{padding:.2rem 0}
  .stack tbody th{font-size:1.0625rem}
  .stack td[data-label]::before{content:attr(data-label);display:block;margin:.6rem 0 .15rem;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
}

/* settings path */
.path{line-height:2.05}
.path-step{padding:.18em .5em;border:1px solid var(--line-soft);border-radius:var(--r-sm);background:var(--surface-2);font-size:.9375em;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.path-sep{color:var(--mark);font-weight:500;padding-inline:.15em}

/* commands */
.cmd{display:flex;align-items:flex-start;gap:.5rem;padding:.25rem .25rem .25rem .75rem;border:1px solid var(--line-soft);border-radius:var(--r-md);background:var(--surface-2)}
.cmd code{flex:1;min-width:0;padding:.55rem 0;border:0;background:none;font-size:.875rem;line-height:1.5;white-space:pre-wrap}
.code{margin:var(--s-6) 0;max-width:42rem;border:1px solid var(--line-soft);border-radius:var(--r-lg);background:var(--surface-2);overflow:hidden}
.code-head{display:flex;align-items:center;gap:.5rem;min-height:3rem;margin:0;padding:.25rem .25rem .25rem 1rem;font-size:.8125rem;font-weight:500;letter-spacing:.04em;color:var(--muted);
  background:linear-gradient(to right,transparent,var(--line-soft) 48px,var(--line-soft) calc(100% - 48px),transparent) no-repeat bottom/100% 1px}
.code-head .i{color:var(--mark)}
.code-head .copy{margin-left:auto}
.code pre{margin:0;padding:1rem 1.125rem 1.125rem;font:400 .9375rem/1.65 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;tab-size:2}
.code pre code{padding:0;border:0;background:none;font-size:inherit}
.copy{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;flex:none;min-width:44px;min-height:44px;padding:0 .7rem;border:1px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--link);font:500 .8125rem/1 var(--font);cursor:pointer}
.cmd .copy{padding:0}
.copy:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
.copy:active{background:color-mix(in srgb,var(--accent) 22%,transparent)}
.copy[data-done]{color:var(--mark)}

/* index flow */
.flow{list-style:none;margin:0 0 var(--s-8);padding:0;display:grid;gap:var(--s-3)}
.flow li{position:relative}
.fc{display:flex;align-items:center;gap:var(--s-4);height:100%;min-height:44px;padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);color:var(--text);text-decoration:none}
a.fc:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--text)}
.fi{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border:1px solid var(--accent);border-radius:var(--r-md);color:var(--mark)}
.fn{order:3;margin-left:auto;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.ft{font-weight:500;line-height:1.3;hyphens:manual}
a.fc .ft{color:var(--link)}
.flow li:not(:last-child)::after{content:"";position:absolute;left:1.95rem;bottom:-.6rem;z-index:1;width:.45rem;height:.45rem;border-right:1.5px solid var(--mark);border-bottom:1.5px solid var(--mark);transform:rotate(45deg)}
@media (min-width:40rem){
  .flow{grid-template-columns:repeat(5,minmax(0,1fr))}
  .fc{flex-direction:column;align-items:flex-start;gap:var(--s-3);padding:var(--s-4)}
  .fn{order:0;margin-left:0}
  .flow li:not(:last-child)::after{left:auto;right:-.62rem;bottom:auto;top:50%;transform:translateY(-50%) rotate(-45deg)}
}

/* table of contents */
.toc ol{list-style:none;margin:0;padding:0}
.toc a{display:flex;align-items:center;min-height:2.5rem;padding:.3rem .75rem;border-left:2px solid var(--line-soft);color:var(--muted);text-decoration:none;font-size:.9375rem;line-height:1.35}
.toc a:hover{color:var(--text);border-left-color:var(--line)}
.toc a[aria-current]{color:var(--link);border-left-color:var(--accent)}
.toc-title{margin:0 0 var(--s-2);padding-left:.875rem;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.toc-d{display:none}
@media (min-width:70rem){.toc-d{display:block;position:sticky;top:var(--s-8);align-self:start;max-height:calc(100vh - 4rem);overflow:auto;padding-top:5.5rem}.toc-m{display:none}}
@media (pointer:coarse){.toc a{min-height:44px}}
.toc-m{margin:0 0 var(--s-8);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.toc-m summary{display:flex;align-items:center;gap:.6rem;min-height:3rem;padding:0 1rem;cursor:pointer;list-style:none;font-weight:500;border-radius:var(--r-lg)}
.toc-m summary .chev{margin-left:auto}
.toc-m nav{padding:0 .5rem .5rem}
.toc-m a{min-height:44px;border-left:0;border-radius:var(--r-md)}
.toc-m a:hover{background:color-mix(in srgb,var(--text) 6%,transparent)}

/* sources + pager */
.sources{margin-top:var(--s-12);padding-top:var(--s-6);background:linear-gradient(to right,transparent,var(--line) 48px,var(--line) calc(100% - 48px),transparent) no-repeat top/100% 1px}
.article .sources h2{display:flex;align-items:center;gap:.5rem;margin:0 0 var(--s-4);font-size:1.125rem;letter-spacing:-.01em}
.sources h2 .i{color:var(--mark)}
.src-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-3);font-size:.9375rem}
.src-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .75rem}
.src-host{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}
.pager{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:var(--s-3);margin-top:var(--s-12)}
.pager a{display:flex;flex-direction:column;gap:.3rem;min-height:44px;padding:var(--s-4) var(--s-6);border:1px solid var(--line);border-radius:var(--r-lg);color:var(--text);text-decoration:none}
.pager a:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--text)}
.pager .next{align-items:flex-end;text-align:right;grid-column:-2/-1}
.pager .dir{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pager .ttl{font-size:1.0625rem;font-weight:500;color:var(--link)}

/* 404 */
.layout-single{grid-template-columns:minmax(0,46rem)!important}
.nf{padding-top:var(--s-8)}
.nf-code{font:500 .875rem/1 var(--mono);letter-spacing:.12em;color:var(--link);margin-bottom:var(--s-4)!important}
.btn-line{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:0 1rem;border:1px solid var(--accent);border-radius:var(--r-md);color:var(--link);text-decoration:none;font-weight:500}
.btn-line:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--link)}
.nf-list{list-style:none;margin:var(--s-8) 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--s-3)}
.nf-list a{display:flex;align-items:center;gap:.7rem;min-height:3.25rem;padding:0 1rem;border:1px solid var(--line);border-radius:var(--r-lg);color:var(--link);text-decoration:none;font-weight:500}
.nf-list a:hover{border-color:var(--accent)}
.nf-list .i{color:var(--mark)}

/* footer */
.site-footer{padding-block:var(--s-8) var(--s-12);color:var(--muted);font-size:.9375rem}
.foot-in{display:grid;gap:var(--s-3);background:linear-gradient(to right,transparent,var(--line) 48px,var(--line) calc(100% - 48px),transparent) no-repeat top/100% 1px;padding-top:var(--s-8)}
.foot-brand{display:flex;align-items:center;gap:.6rem;margin:0;color:var(--text);font-weight:500}
.foot-brand .brand-mark{width:2rem;height:2rem}
.foot-nav{display:flex;flex-wrap:wrap;gap:0 var(--s-2);list-style:none;margin:0;padding:0}
.foot-nav a{display:inline-flex;align-items:center;min-height:44px;padding-right:.5rem;color:var(--muted)}
.foot-nav a:hover{color:var(--link)}
.foot-note{margin:0;max-width:44rem}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){
  .path-step,.cmd,.code,.note,.toc-m,.pager a,.fc,.fi,.brand-mark,.copy,.menu summary,.menu nav,.nf-list a,.btn-line{border:1px solid CanvasText}
  th,td,.glossary>div{border-bottom:1px solid CanvasText}
  .toc a[aria-current]{border-left-color:Highlight}
  .site-nav a[aria-current=page]{text-decoration:underline}
  .steps>li::before{border-color:CanvasText}
  .article ul:not([class])>li::before,.steps>li::after{background:CanvasText}
  .flow li::after{border-color:CanvasText}
  .i{forced-color-adjust:auto}
}
@media print{
  .site-header,.toc,.pager,.copy,.skip,.flow{display:none!important}
  body{background:none;color:#000}
  a{color:inherit}
  .layout{display:block}
}
