* {  margin: 0;  padding: 0;  box-sizing: border-box;}body {  background: #f0ede8;  font-family: 'Inter', 'Poppins', system-ui, 'Segoe UI', monospace;  padding: 2rem;  min-height: 100vh;}/* NEOBRUTALISM CORE */.neo-card, .neo-btn, .neo-input, .neo-textarea, .history-item, .modal-content, .file-label {  border: 3px solid #1e1e2a;  box-shadow: 7px 7px 0px 0px #1e1e2a;  background: #ffffff;  transition: all 0.08s linear;}.neo-card {  padding: 1.5rem;  background: #fff9ef;}.neo-btn {  background: #facc15;  color: #1e1e2a;  font-weight: 800;  font-size: 1rem;  padding: 0.7rem 1.5rem;  cursor: pointer;  display: inline-flex;  align-items: center;  justify-content: center;  gap: 0.6rem;  font-family: monospace;  letter-spacing: -0.3px;  transition: 0.05s linear;  border: 3px solid #1e1e2a;}.neo-btn:active {  transform: translate(2px, 2px);  box-shadow: 3px 3px 0px 0px #1e1e2a;}.neo-input, .neo-textarea {  width: 100%;  padding: 0.8rem;  font-size: 1rem;  background: white;  border: 3px solid #1e1e2a;  font-family: monospace;  resize: vertical;}.neo-textarea {  min-height: 140px;}.file-label {  display: flex;  align-items: center;  justify-content: space-between;  padding: 0.7rem 1rem;  background: #f9f7f2;  font-weight: 600;  cursor: pointer;  margin-bottom: 0.8rem;}input[type="file"] {  display: none;}/* layout utama */.app-header {  display: flex;  justify-content: space-between;  align-items: center;  flex-wrap: wrap;  margin-bottom: 2rem;  gap: 1rem;}.logo h1 {  font-size: 2.8rem;  font-weight: 800;  letter-spacing: -2px;  background: #1e1e2a;  display: inline-block;  color: #facc15;  padding: 0.2rem 1rem;  border: 3px solid #1e1e2a;  box-shadow: 5px 5px 0 0 #1e1e2a;  transform: rotate(-0.5deg);}.sub {  font-weight: 600;  margin-top: 0.5rem;  color: #2d2f36;  font-family: monospace;}.sub i, .logo i {  margin-right: 0.3rem;}.grid-1col {  display: grid;  grid-template-columns: 1fr;  gap: 2rem;}/* History button in header */.history-btn {  background: #1e1e2a;  color: #facc15;  border-color: #1e1e2a;  box-shadow: 5px 5px 0 0 #1e1e2a;  font-size: 1.1rem;  padding: 0.6rem 1.2rem;}.history-btn span:first-child {  margin-right: 0.3rem;}.history-btn #itemCountHeader {  background: #facc15;  color: #1e1e2a;  padding: 0.1rem 0.6rem;  margin-left: 0.5rem;  border: 2px solid #1e1e2a;}/* Modal history */.history-modal-content {  width: 90%;  max-width: 700px;  max-height: 80vh;  display: flex;  flex-direction: column;  background: #fdf8ed;  padding: 1.2rem;}.history-modal-content .history-header {  display: flex;  justify-content: space-between;  align-items: center;  border-bottom: 3px solid #1e1e2a;  padding-bottom: 0.7rem;  margin-bottom: 1.2rem;  font-weight: 800;  font-size: 1.4rem;}.history-modal-content .history-list {  overflow-y: auto;  flex: 1;  display: flex;  flex-direction: column;  gap: 1rem;}.history-item {  padding: 0.8rem;  background: #fffef7;  transition: 0.05s linear;}.history-item h4 {  font-weight: 800;  font-size: 1rem;  word-break: break-word;  margin-bottom: 0.3rem;  display: flex;  align-items: center;  justify-content: space-between;}.history-item h4 i {  margin-right: 0.4rem;}.meta {  font-size: 0.7rem;  font-family: monospace;  background: #f1ede4;  display: inline-block;  padding: 0.2rem 0.5rem;  border: 1px solid #1e1e2a;  margin: 0.3rem 0;}.item-actions {  display: flex;  gap: 0.6rem;  margin-top: 0.7rem;  flex-wrap: wrap;}.small-btn {  background: #e0e0e0;  border: 2px solid #1e1e2a;  box-shadow: 3px 3px 0 0 #1e1e2a;  padding: 0.3rem 0.7rem;  font-size: 0.7rem;  font-weight: bold;  cursor: pointer;  font-family: monospace;  display: inline-flex;  align-items: center;  gap: 0.4rem;}.small-btn.danger {  background: #ffb7b2;}.small-btn.download {  background: #c1e6cf;}.empty-history {  text-align: center;  padding: 2rem;  font-weight: bold;  opacity: 0.7;  border: 2px dashed #1e1e2a;}/* MODAL (untuk judul) */.modal-overlay {  position: fixed;  top: 0;  left: 0;  width: 100%;  height: 100%;  background: rgba(0, 0, 0, 0.7);  display: none;  justify-content: center;  align-items: center;  z-index: 1000;}.modal-content {  width: 90%;  max-width: 450px;  background: #fff4e6;  padding: 1.8rem;  position: relative;}.modal-content input {  margin: 1rem 0 1.5rem;  width: 100%;  padding: 0.8rem;  border: 3px solid black;  font-family: monospace;  font-weight: bold;}.modal-buttons {  display: flex;  gap: 1rem;  justify-content: flex-end;}/* modal untuk melihat teks panjang */.view-modal {  position: fixed;  top: 0;  left: 0;  width: 100%;  height: 100%;  background: rgba(0,0,0,0.8);  display: none;  justify-content: center;  align-items: center;  z-index: 1100;}.view-card {  background: #fef7e8;  border: 4px solid black;  box-shadow: 15px 15px 0 0 black;  width: 90%;  max-width: 600px;  max-height: 70vh;  padding: 1.5rem;  display: flex;  flex-direction: column;}.view-card pre {  background: #1e1e2a;  color: #facc15;  padding: 1rem;  overflow: auto;  white-space: pre-wrap;  font-family: monospace;  margin: 1rem 0;  border: 2px solid black;}button {  background: none;  border: none;  font-family: monospace;}.footer-note {  margin-top: 2rem;  font-family: monospace;  text-align: center;  font-weight: bold;  border-top: 2px solid #1e1e2a;  padding-top: 1rem;}/* ---- HEADER ACTIONS (history + dark toggle) ---- */.header-actions {    display: flex;    align-items: center;    gap: 0.8rem;    flex-wrap: wrap;}.dark-toggle-btn {    background: #1e1e2a;    color: #facc15;    border-color: #1e1e2a;    box-shadow: 5px 5px 0 0 #1e1e2a;    font-size: 1.4rem;    padding: 0.4rem 0.9rem;    line-height: 1;    min-width: 48px;    justify-content: center;}/* ---- DARK MODE ---- */body.dark-mode {    background: #12121a;    color: #eaeaea;}body.dark-mode .neo-card,body.dark-mode .neo-btn,body.dark-mode .neo-input,body.dark-mode .neo-textarea,body.dark-mode .history-item,body.dark-mode .modal-content,body.dark-mode .file-label {    background: #1e1e2a;    color: #f0ede8;    border-color: #facc15;    box-shadow: 7px 7px 0px 0px #facc15;}body.dark-mode .neo-btn {    background: #facc15;    color: #12121a;    border-color: #facc15;    box-shadow: 5px 5px 0 0 #facc15;}body.dark-mode .neo-btn:active {    transform: translate(2px, 2px);    box-shadow: 3px 3px 0 0 #facc15;}body.dark-mode .history-btn,body.dark-mode .dark-toggle-btn {    background: #facc15;    color: #12121a;    border-color: #facc15;    box-shadow: 5px 5px 0 0 #facc15;}body.dark-mode .history-btn #itemCountHeader {    background: #12121a;    color: #facc15;    border-color: #12121a;}body.dark-mode .file-label {    background: #2a2a3a;}body.dark-mode .neo-textarea,body.dark-mode .neo-input {    background: #12121a;    color: #f0ede8;}body.dark-mode .sub {    color: #cccccc;}body.dark-mode .small-btn {    background: #2a2a3a;    color: #f0ede8;    border-color: #facc15;    box-shadow: 3px 3px 0 0 #facc15;}body.dark-mode .small-btn.danger {    background: #7a2a2a;    color: #ffd0d0;}body.dark-mode .small-btn.download {    background: #1a4a3a;    color: #d0ffd0;}body.dark-mode .meta {    background: #2a2a3a;    border-color: #facc15;    color: #dddddd;}body.dark-mode .history-item {    background: #1a1a28;}body.dark-mode .history-item h4 {    color: #facc15;}body.dark-mode .empty-history {    border-color: #facc15;    color: #aaaaaa;}body.dark-mode .modal-content {    background: #1a1a28;}body.dark-mode .modal-content input {    background: #12121a;    color: #f0ede8;    border-color: #facc15;}body.dark-mode .view-card {    background: #1a1a28;    border-color: #facc15;    box-shadow: 15px 15px 0 0 #facc15;}body.dark-mode .view-card pre {    background: #12121a;    color: #facc15;    border-color: #facc15;}body.dark-mode .footer-note {    border-color: #facc15;    color: #cccccc;}body.dark-mode .footer-note a {    border-bottom-color: #facc15;}body.dark-mode .logo h1 {    background: #facc15;    color: #12121a;    border-color: #facc15;    box-shadow: 5px 5px 0 0 #facc15;}body.dark-mode .history-modal-content .history-header {    border-bottom-color: #facc15;}body.dark-mode ::-webkit-scrollbar {    background: #1e1e2a;}body.dark-mode ::-webkit-scrollbar-thumb {    background: #facc15;    border-color: #12121a;}/* ---- tombol toggle saat dark mode aktif (ikon berubah) ---- */body.dark-mode .dark-toggle-btn #darkModeIcon {    content: "☀️";}body.dark-mode .donation-box {    background: #1e1e2a !important;    color: #f0ede8;    border-color: #facc15;}body.dark-mode .donation-box p {    color: #dddddd;}body.dark-mode .donation-box a {    border-color: #facc15;}/* ---- STORAGE USAGE INDICATOR ---- */.storage-usage {    display: inline-flex;    align-items: center;    gap: 0.5rem;    background: #f9f7f2;    padding: 0.4rem 0.8rem;    border: 3px solid #1e1e2a;    box-shadow: 5px 5px 0 0 #1e1e2a;    font-weight: 700;    font-size: 0.8rem;    font-family: monospace;    margin: 0 1rem;    white-space: nowrap;}body.dark-mode .storage-usage {    background: #1e1e2a;    color: #f0ede8;    border-color: #facc15;    box-shadow: 5px 5px 0 0 #facc15;}@media (max-width: 600px) {    .storage-usage {        font-size: 0.65rem;        padding: 0.2rem 0.5rem;        margin: 0.5rem 0 0 0;        width: 100%;        justify-content: center;    }    .app-header {        flex-direction: column;        align-items: stretch;    }    .header-actions {        justify-content: center;    }}/* ---- STORAGE WRAPPER: selalu kolom, teks di bawah ---- */.storage-wrapper {    display: flex;    flex-direction: column;    align-items: center;    gap: 0.6rem;          /* jarak antara indikator dan teks */    flex: 0 1 auto;    margin: 0 1rem;}.storage-usage {    display: inline-flex;    align-items: center;    gap: 0.5rem;    background: #f9f7f2;    padding: 0.4rem 0.8rem;    border: 3px solid #1e1e2a;    box-shadow: 5px 5px 0 0 #1e1e2a;    font-weight: 700;    font-size: 0.8rem;    font-family: monospace;    white-space: nowrap;}.storage-info-text {    font-size: 0.6rem;    opacity: 0.7;    text-align: center;    line-height: 1.4;    max-width: 300px;    font-family: monospace;    color: #1e1e2a;    /* margin-top sudah digantikan oleh gap di wrapper */}body.dark-mode .storage-usage {    background: #1e1e2a;    color: #f0ede8;    border-color: #facc15;    box-shadow: 5px 5px 0 0 #facc15;}body.dark-mode .storage-info-text {    color: #dddddd;    opacity: 0.8;}/* ---- HEADER tetap flex dengan 3 kolom ---- */.app-header {    display: flex;    justify-content: space-between;    align-items: center;    flex-wrap: wrap;    gap: 1rem;}/* Responsif: di mobile semua menjadi kolom */@media (max-width: 600px) {    .app-header {        flex-direction: column;        align-items: stretch;    }    .storage-wrapper {        margin: 0.5rem 0;        align-items: center;        gap: 0.5rem;      /* jarak sedikit lebih kecil di mobile */    }    .storage-info-text {        max-width: 100%;        font-size: 0.55rem;        /* margin-top tidak perlu karena gap di wrapper */    }    .header-actions {        justify-content: center;    }}@media (max-width: 800px) {    body { padding: 1rem; }    .grid-1col { grid-template-columns: 1fr; gap: 2rem; }    .history-modal-content { max-width: 95%; }}::-webkit-scrollbar {  width: 8px;  background: #e0ddd5;}::-webkit-scrollbar-thumb {  background: #1e1e2a;  border: 1px solid #facc15;}i {  pointer-events: none;}