Spaces:
Sleeping
Sleeping
| /* Base reset */ | |
| * { box-sizing: border-box; } | |
| html, body { margin: 0; padding: 0; height: 100%; background: #050505; color: #eaeaea; } | |
| body { overflow: hidden; } /* we scroll inside .mcList */ | |
| /* Root container uses dynamic viewport so fullscreen on mobile behaves */ | |
| .mcRoot { | |
| height: 100dvh; /* important for mobile */ | |
| width: 100%; | |
| overflow: hidden; | |
| background: | |
| radial-gradient(1200px 800px at 20% 10%, rgba(0, 255, 106, 0.14), transparent 60%), | |
| radial-gradient(900px 700px at 85% 35%, rgba(255, 211, 0, 0.12), transparent 60%), | |
| linear-gradient(180deg, rgba(0,0,0,.80), rgba(0,0,0,.92)), | |
| repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 16px), | |
| repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 16px); | |
| font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; | |
| } | |
| /* Desktop centers; mobile is edge-to-edge */ | |
| .mcShell { | |
| height: 100%; | |
| display: flex; | |
| justify-content: center; | |
| align-items: stretch; | |
| padding: 16px; | |
| min-height: 0; /* IMPORTANT for flex scrolling */ | |
| } | |
| .mcFrame { | |
| width: 100%; | |
| max-width: 1020px; | |
| /* fixed height so inner list can overflow/scroll */ | |
| height: calc(100% - 0px); | |
| min-height: 0; /* IMPORTANT for flex scrolling */ | |
| border: 2px solid rgba(255,255,255,.35); | |
| background: rgba(0,0,0,.55); | |
| box-shadow: | |
| 0 0 0 2px rgba(0,0,0,.7), | |
| 0 0 0 4px rgba(255, 211, 0, 0.10); | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| /* TOP BAR */ | |
| .mcTop { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 14px; | |
| border-bottom: 2px solid rgba(255,255,255,.18); | |
| background: rgba(0,0,0,.55); | |
| flex: 0 0 auto; | |
| } | |
| .mcBrand { display: flex; align-items: center; gap: 12px; } | |
| .mcIcon { | |
| width: 44px; height: 44px; | |
| border: 2px solid rgba(255, 211, 0, 0.55); | |
| display: grid; place-items: center; | |
| background: rgba(255, 211, 0, 0.08); | |
| } | |
| .mcTitleWrap { display: grid; gap: 2px; } | |
| .mcTitle { letter-spacing: 2px; font-weight: 800; font-size: 18px; } | |
| .mcSub { font-size: 12px; opacity: .75; letter-spacing: 1px; } | |
| .mcTopRight { display: flex; align-items: center; gap: 10px; } | |
| /* BODY */ | |
| .mcBody { | |
| display: flex; | |
| flex-direction: column; | |
| flex: 1 1 auto; | |
| min-height: 0; /* IMPORTANT */ | |
| overflow: hidden; | |
| } | |
| /* SCROLLABLE LIST */ | |
| .mcList { | |
| position: relative; | |
| flex: 1 1 auto; | |
| min-height: 0; /* IMPORTANT */ | |
| overflow-y: auto; /* actual scroll */ | |
| overflow-x: hidden; | |
| padding: 14px; | |
| /* mobile scrolling quality */ | |
| -webkit-overflow-scrolling: touch; | |
| overscroll-behavior: contain; | |
| touch-action: pan-y; | |
| } | |
| /* Messages */ | |
| .mcMsg { margin-bottom: 14px; } | |
| .mcMsgMeta { | |
| display: flex; align-items: center; gap: 8px; | |
| font-size: 12px; opacity: .8; | |
| margin-bottom: 6px; | |
| } | |
| .mcWho { letter-spacing: 1px; font-weight: 700; } | |
| .mcDot { opacity: .5; } | |
| .mcTime { opacity: .7; } | |
| .mcMiniBtn { | |
| margin-left: auto; | |
| border: 2px solid rgba(255,255,255,.25); | |
| background: rgba(0,0,0,.45); | |
| color: #eaeaea; | |
| padding: 6px 10px; | |
| font-size: 12px; | |
| letter-spacing: 1px; | |
| cursor: pointer; | |
| } | |
| .mcMiniBtn:active { transform: translateY(1px); } | |
| .mcBubble { | |
| border: 2px solid rgba(255,255,255,.20); | |
| background: rgba(0,0,0,.50); | |
| padding: 12px; | |
| } | |
| .mcMsg.isUser .mcBubble { | |
| border-color: rgba(255, 211, 0, 0.35); | |
| background: rgba(255, 211, 0, 0.05); | |
| } | |
| .mcMsg.isAI .mcBubble { | |
| border-color: rgba(0, 255, 106, 0.28); | |
| background: rgba(0, 255, 106, 0.05); | |
| } | |
| .mcText { | |
| margin: 0; | |
| white-space: pre-wrap; | |
| word-break: break-word; | |
| line-height: 1.35; | |
| font-size: 14px; | |
| } | |
| /* PROMPT OVERLAY */ | |
| .mcOverlay { | |
| position: absolute; | |
| inset: 0; | |
| display: grid; | |
| place-items: center; | |
| pointer-events: none; | |
| } | |
| .mcOverlayBox { | |
| width: min(760px, 92%); | |
| border: 2px solid rgba(255,255,255,.28); | |
| background: rgba(0,0,0,.68); | |
| padding: 14px; | |
| pointer-events: auto; /* still clickable */ | |
| } | |
| .mcOverlayHead { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; } | |
| .mcOverlayBadge { | |
| border: 2px solid rgba(255, 211, 0, 0.55); | |
| padding: 6px 10px; | |
| letter-spacing: 1px; | |
| font-size: 12px; | |
| background: rgba(255, 211, 0, 0.08); | |
| } | |
| .mcOverlayText { font-size: 12px; opacity: .8; letter-spacing: 1px; } | |
| .mcChips { display: grid; gap: 10px; } | |
| .mcChip { | |
| width: 100%; | |
| text-align: left; | |
| border: 2px solid rgba(255,255,255,.22); | |
| background: rgba(255,255,255,.04); | |
| color: #eaeaea; | |
| padding: 12px; | |
| cursor: pointer; | |
| } | |
| .mcChip:active { transform: translateY(1px); } | |
| /* COMPOSER */ | |
| .mcComposer { | |
| flex: 0 0 auto; | |
| border-top: 2px solid rgba(255,255,255,.18); | |
| background: rgba(0,0,0,.60); | |
| padding: 12px; | |
| padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); | |
| } | |
| .mcInput { | |
| width: 100%; | |
| min-height: 56px; | |
| max-height: 160px; | |
| resize: vertical; | |
| border: 2px solid rgba(255,255,255,.25); | |
| background: rgba(0,0,0,.65); | |
| color: #eaeaea; | |
| padding: 12px; | |
| outline: none; | |
| } | |
| .mcActions { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; } | |
| .mcFooter { | |
| margin-top: 10px; | |
| display: flex; | |
| gap: 10px; | |
| justify-content: space-between; | |
| font-size: 12px; | |
| opacity: .75; | |
| } | |
| .mcHint { letter-spacing: 0.5px; } | |
| .mcCount { letter-spacing: 1px; } | |
| /* BUTTONS (pixel-ish) */ | |
| .btn { | |
| border: 2px solid rgba(255,255,255,.35); | |
| background: rgba(0,0,0,.55); | |
| color: #eaeaea; | |
| padding: 10px 12px; | |
| letter-spacing: 1px; | |
| cursor: pointer; | |
| user-select: none; | |
| } | |
| .pixelBtn { | |
| box-shadow: | |
| 0 0 0 2px rgba(0,0,0,.75), | |
| inset 0 -3px 0 rgba(255,255,255,.12); | |
| } | |
| .btn:disabled { opacity: .5; cursor: not-allowed; } | |
| .btn:active { transform: translateY(1px); } | |
| .btn.ghost { background: rgba(255,255,255,.04); } | |
| .btn.danger { border-color: rgba(255, 90, 90, .6); } | |
| /* MODAL */ | |
| .mcModal { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0,0,0,.72); | |
| display: grid; | |
| place-items: center; | |
| padding: 16px; | |
| z-index: 50; | |
| } | |
| .mcModalBox { | |
| width: min(920px, 96%); | |
| border: 2px solid rgba(255,255,255,.35); | |
| background: rgba(0,0,0,.82); | |
| box-shadow: 0 0 0 2px rgba(0,0,0,.7); | |
| padding: 14px; | |
| } | |
| .mcModalTop { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| margin-bottom: 12px; | |
| } | |
| .mcModalTitle { letter-spacing: 2px; font-weight: 900; } | |
| .mcGrid { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; } | |
| .mcField { border: 2px solid rgba(255,255,255,.18); padding: 12px; background: rgba(255,255,255,.03); } | |
| .mcWide { grid-column: 1 / -1; } | |
| .mcLabel { font-size: 12px; opacity: .85; letter-spacing: 1px; margin-bottom: 8px; } | |
| .mcSmall { font-size: 12px; opacity: .65; margin-top: 8px; } | |
| .mcSelect, .mcTextIn, .mcTextArea { | |
| width: 100%; | |
| border: 2px solid rgba(255,255,255,.22); | |
| background: rgba(0,0,0,.6); | |
| color: #eaeaea; | |
| padding: 10px; | |
| outline: none; | |
| } | |
| .mcTextArea { min-height: 110px; resize: vertical; } | |
| .mcRange { width: 100%; } | |
| .mcRow { display: flex; gap: 10px; align-items: center; justify-content: space-between; margin-top: 10px; flex-wrap: wrap; } | |
| .mcPill { | |
| border: 2px solid rgba(0, 255, 106, 0.35); | |
| background: rgba(0, 255, 106, 0.06); | |
| padding: 8px 10px; | |
| letter-spacing: 1px; | |
| } | |
| .mcCheck { display: inline-flex; gap: 8px; align-items: center; font-size: 12px; opacity: .85; } | |
| .mcError { margin-top: 10px; border: 2px solid rgba(255, 90, 90, .55); padding: 10px; background: rgba(255, 90, 90, .08); } | |
| .mcModalHint { margin-top: 12px; font-size: 12px; opacity: .7; letter-spacing: .5px; } | |
| /* NEW YEAR OVERLAY */ | |
| .nyOverlay { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 100; | |
| background: rgba(0,0,0,.85); | |
| display: grid; | |
| place-items: center; | |
| } | |
| .nyCanvas { | |
| position: absolute; | |
| inset: 0; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| .nyPanel { | |
| position: relative; | |
| z-index: 1; | |
| border: 2px solid rgba(255,255,255,.35); | |
| background: rgba(0,0,0,.55); | |
| padding: 18px; | |
| width: min(520px, 92%); | |
| text-align: center; | |
| } | |
| .nyTitle { letter-spacing: 3px; font-weight: 900; font-size: 18px; } | |
| .nyYear { | |
| margin-top: 6px; | |
| letter-spacing: 6px; | |
| font-weight: 900; | |
| font-size: 34px; | |
| color: #ffd300; | |
| text-shadow: 2px 2px 0 rgba(0,0,0,.6); | |
| } | |
| .nySub { margin-top: 10px; font-size: 12px; opacity: .75; letter-spacing: 1px; } | |
| .nyPanel .btn { margin-top: 14px; } | |
| /* MOBILE FULLSCREEN */ | |
| @media (max-width: 720px) { | |
| .mcShell { padding: 0; } | |
| .mcFrame { | |
| max-width: none; | |
| border: 0; | |
| box-shadow: none; | |
| } | |
| .mcTop { padding: 12px; } | |
| .mcList { padding: 12px; } | |
| .mcGrid { grid-template-columns: 1fr; } | |
| } | |