/* Tailwind utility layer for «План»'s on-device AI panel.
 *
 * `@tailwind base` is intentionally OMITTED — Plan is hand-styled
 * inline everywhere, the base reset would clobber existing margins,
 * heading sizes, list bullets, and button defaults across the whole
 * app. We only ship the components + utilities layers, and only the
 * AI panel uses className= to opt in. Outside the AI panel nothing
 * changes.
 *
 * Loaded once from dist/styles.tailwind.css, referenced from
 * index.html in cycle 130. Compiled output is content-hash-named
 * (styles.tailwind-<hash>.css) so a future bundle update busts
 * the WebView's HTTP cache the same way bundle-<hash>.js does.
 */
.container { width: 100%;
}
@media (min-width: 640px) {
    .container { max-width: 640px;
    }
}
@media (min-width: 768px) {
    .container { max-width: 768px;
    }
}
@media (min-width: 1024px) {
    .container { max-width: 1024px;
    }
}
@media (min-width: 1280px) {
    .container { max-width: 1280px;
    }
}
@media (min-width: 1536px) {
    .container { max-width: 1536px;
    }
}
.visible { visibility: visible;
}
.static { position: static;
}
.fixed { position: fixed;
}
.absolute { position: absolute;
}
.relative { position: relative;
}
.left-0 { left: 0px;
}
.top-full { top: 100%;
}
.z-10 { z-index: 10;
}
.m-0 { margin: 0px;
}
.mb-0\.5 { margin-bottom: 0.125rem;
}
.mb-1 { margin-bottom: 0.25rem;
}
.mb-3 { margin-bottom: 0.75rem;
}
.mb-4 { margin-bottom: 1rem;
}
.ml-auto { margin-left: auto;
}
.mt-0\.5 { margin-top: 0.125rem;
}
.mt-1 { margin-top: 0.25rem;
}
.mt-1\.5 { margin-top: 0.375rem;
}
.mt-2 { margin-top: 0.5rem;
}
.mt-2\.5 { margin-top: 0.625rem;
}
.block { display: block;
}
.inline { display: inline;
}
.flex { display: flex;
}
.inline-flex { display: inline-flex;
}
.table { display: table;
}
.hidden { display: none;
}
.h-11 { height: 2.75rem;
}
.h-14 { height: 3.5rem;
}
.h-16 { height: 4rem;
}
.h-8 { height: 2rem;
}
.h-9 { height: 2.25rem;
}
.w-11 { width: 2.75rem;
}
.w-14 { width: 3.5rem;
}
.w-16 { width: 4rem;
}
.w-8 { width: 2rem;
}
.w-9 { width: 2.25rem;
}
.w-full { width: 100%;
}
.min-w-0 { min-width: 0px;
}
.min-w-\[200px\] { min-width: 200px;
}
.max-w-\[240px\] { max-width: 240px;
}
.max-w-\[260px\] { max-width: 260px;
}
.max-w-\[82\%\] { max-width: 82%;
}
.flex-1 { flex: 1 1 0%;
}
.flex-shrink-0 { flex-shrink: 0;
}
.rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.cursor-not-allowed { cursor: not-allowed;
}
.resize-none { resize: none;
}
.flex-col { flex-direction: column;
}
.items-center { align-items: center;
}
.justify-end { justify-content: flex-end;
}
.justify-center { justify-content: center;
}
.gap-1\.5 { gap: 0.375rem;
}
.gap-2 { gap: 0.5rem;
}
.gap-2\.5 { gap: 0.625rem;
}
.gap-3 { gap: 0.75rem;
}
.overflow-hidden { overflow: hidden;
}
.overflow-y-auto { overflow-y: auto;
}
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.whitespace-pre-wrap { white-space: pre-wrap;
}
.break-words { overflow-wrap: break-word;
}
.rounded { border-radius: 0.25rem;
}
.rounded-2xl { border-radius: 1rem;
}
.rounded-full { border-radius: 9999px;
}
.rounded-lg { border-radius: 0.5rem;
}
.rounded-md { border-radius: 0.375rem;
}
.rounded-xl { border-radius: 0.75rem;
}
.border { border-width: 1px;
}
.bg-transparent { background-color: transparent;
}
.p-0 { padding: 0px;
}
.p-3 { padding: 0.75rem;
}
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem;
}
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem;
}
.px-3\.5 { padding-left: 0.875rem; padding-right: 0.875rem;
}
.px-4 { padding-left: 1rem; padding-right: 1rem;
}
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem;
}
.px-8 { padding-left: 2rem; padding-right: 2rem;
}
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem;
}
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem;
}
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem;
}
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem;
}
.py-4 { padding-top: 1rem; padding-bottom: 1rem;
}
.pb-3 { padding-bottom: 0.75rem;
}
.pb-6 { padding-bottom: 1.5rem;
}
.pl-4 { padding-left: 1rem;
}
.pl-6 { padding-left: 1.5rem;
}
.pr-1\.5 { padding-right: 0.375rem;
}
.pr-2 { padding-right: 0.5rem;
}
.pt-1 { padding-top: 0.25rem;
}
.pt-3 { padding-top: 0.75rem;
}
.text-left { text-align: left;
}
.text-center { text-align: center;
}
.font-sans { font-family: Inter, system-ui, -apple-system, sans-serif;
}
.text-\[10px\] { font-size: 10px;
}
.text-\[11\.5px\] { font-size: 11.5px;
}
.text-\[11px\] { font-size: 11px;
}
.text-\[12\.5px\] { font-size: 12.5px;
}
.text-\[12px\] { font-size: 12px;
}
.text-\[13\.5px\] { font-size: 13.5px;
}
.text-\[13px\] { font-size: 13px;
}
.text-\[14\.5px\] { font-size: 14.5px;
}
.text-\[14px\] { font-size: 14px;
}
.text-\[15px\] { font-size: 15px;
}
.text-\[17px\] { font-size: 17px;
}
.text-sm { font-size: 0.875rem; line-height: 1.25rem;
}
.font-medium { font-weight: 500;
}
.font-semibold { font-weight: 600;
}
.uppercase { text-transform: uppercase;
}
.italic { font-style: italic;
}
.leading-6 { line-height: 1.5rem;
}
.leading-7 { line-height: 1.75rem;
}
.leading-none { line-height: 1;
}
.leading-relaxed { line-height: 1.625;
}
.leading-snug { line-height: 1.375;
}
.text-accent { --tw-text-opacity: 1; color: rgb(184 176 240 / var(--tw-text-opacity, 1));
}
.text-muted { --tw-text-opacity: 1; color: rgb(154 154 154 / var(--tw-text-opacity, 1));
}
.text-muted\/55 { color: rgb(154 154 154 / 0.55);
}
.text-muted\/60 { color: rgb(154 154 154 / 0.6);
}
.text-muted\/70 { color: rgb(154 154 154 / 0.7);
}
.text-muted\/80 { color: rgb(154 154 154 / 0.8);
}
.text-text { --tw-text-opacity: 1; color: rgb(232 232 232 / var(--tw-text-opacity, 1));
}
.text-text\/85 { color: rgb(232 232 232 / 0.85);
}
.text-white\/85 { color: rgb(255 255 255 / 0.85);
}
.line-through { text-decoration-line: line-through;
}
.shadow-2xl { --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.outline { outline-style: solid;
}
.ring { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}
.blur { --tw-blur: blur(8px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.filter { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;
}
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;
}
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;
}
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms;
}
/* Smooth-edged glass panel — used on the AI floating sheet and
   * the prompt-input. WebKit prefix for older Safari + iOS. */
/* A typing-dot pulse animation for the «Думаю…» state. */
@keyframes typing-pulse {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.35; }
    30%           { transform: translateY(-3px); opacity: 1; }
  }

/* Custom utilities — small extensions that aren't worth a Tailwind
 * plugin but are reused across the AI panel. */
.placeholder\:text-muted\/60::-moz-placeholder { color: rgb(154 154 154 / 0.6);
}
.placeholder\:text-muted\/60::placeholder { color: rgb(154 154 154 / 0.6);
}
.hover\:scale-105:hover { --tw-scale-x: 1.05; --tw-scale-y: 1.05; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.hover\:bg-white\/5:hover { background-color: rgb(255 255 255 / 0.05);
}
.hover\:text-text:hover { --tw-text-opacity: 1; color: rgb(232 232 232 / var(--tw-text-opacity, 1));
}
.active\:scale-95:active { --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
