diff --git a/index.html b/index.html
index 3291d19..b5f38db 100644
--- a/index.html
+++ b/index.html
@@ -10,7 +10,7 @@
document.documentElement.setAttribute('data-theme',dark?'dark':'light');
})();
-
+
@@ -47,6 +47,10 @@
--err:#F87171;
--radius:12px;
--radius-sm:8px;
+ --safe-top:env(safe-area-inset-top, 0px);
+ --safe-right:env(safe-area-inset-right, 0px);
+ --safe-bottom:env(safe-area-inset-bottom, 0px);
+ --safe-left:env(safe-area-inset-left, 0px);
}
[data-theme="light"]{
--accent:#0891B2;
@@ -64,7 +68,9 @@
--warn:#D97706;
--err:#DC2626;
}
-html,body{height:100%;background:var(--bg);color:var(--text);font-family:'Geist',sans-serif;overflow:hidden}
+html{height:100%}
+html,body{background:var(--bg);color:var(--text);font-family:'Geist',sans-serif;overflow:hidden}
+body{min-height:100%;min-height:-webkit-fill-available}
.aurora{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.aurora-blob{position:absolute;border-radius:50%;will-change:transform}
@@ -76,7 +82,7 @@ html,body{height:100%;background:var(--bg);color:var(--text);font-family:'Geist'
@keyframes ab3{from{transform:translate(0,0) scale(1)}to{transform:translate(-50px,60px) scale(0.93)}}
[data-theme="light"] .aurora-blob{opacity:0.35}
-#app{position:relative;z-index:1;height:100vh;display:flex;flex-direction:column}
+#app{position:relative;z-index:1;box-sizing:border-box;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}
/* Header */
header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:52px;border-bottom:1px solid var(--border);background:rgba(12,18,33,0.75);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);flex-shrink:0}
@@ -219,7 +225,7 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
.overlay-mob{display:none;position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.5)}
.overlay-mob.open{display:block}
@media(max-width:680px){
- #sidebar{position:fixed;left:0;top:52px;bottom:0;z-index:50;transform:translateX(-100%);transition:transform .25s cubic-bezier(.2,.9,.2,1);width:260px}
+ #sidebar{position:fixed;left:0;top:calc(52px + var(--safe-top));bottom:var(--safe-bottom);z-index:50;transform:translateX(-100%);transition:transform .25s cubic-bezier(.2,.9,.2,1);width:260px}
#sidebar.open{transform:translateX(0)}
.sidebar-toggle{display:flex}
#main{padding:16px}
diff --git a/sw.js b/sw.js
index ce64ae2..4bceac0 100644
--- a/sw.js
+++ b/sw.js
@@ -1,5 +1,5 @@
// posimai-boki SW — stale-while-revalidate + skipWaiting
-const CACHE = 'posimai-boki-v5';
+const CACHE = 'posimai-boki-v6';
const STATIC = ['/', '/index.html', '/manifest.json', '/logo.png'];
self.addEventListener('install', e => {