:root{--bg-1: #2a0f3d;--bg-2: #6a1b6e;--bg-3: #d94a8c;--card-bg: rgba(255, 255, 255, .08);--card-border: rgba(255, 255, 255, .16);--text: #fff5fa;--text-dim: rgba(255, 245, 250, .7);--accent: #ff5fa2;--accent-2: #ffd166;--danger: #ff5c5c;--radius: 18px;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overscroll-behavior:none}body{font-family:Segoe UI,Helvetica Neue,Arial,sans-serif;background:radial-gradient(circle at 20% 0%,var(--bg-3),transparent 55%),linear-gradient(160deg,var(--bg-1),var(--bg-2) 70%);color:var(--text)}button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer}.app-shell{height:100dvh;width:100%;max-width:520px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden;position:relative;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.splash{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:linear-gradient(160deg,var(--bg-1),var(--bg-2) 70%);z-index:100;text-align:center;padding:24px}.splash-emoji{font-size:3rem}.splash-hearts{display:flex;gap:6px}.heart-pip{font-size:1.3rem}.splash-line{color:var(--text-dim);font-size:.95rem;min-height:1.2em}.app-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px 10px}.app-header h1{margin:0;font-size:1.15rem;font-weight:700;line-height:1.25}.app-header h1 span{display:block;font-size:1.4rem;margin-top:2px}.identity-badge{flex:0 0 auto;background:var(--card-bg);border:1px solid var(--card-border);border-radius:999px;padding:6px 12px;font-size:.85rem;white-space:nowrap}.error-banner{margin:0 16px 8px;padding:10px 14px;background:#ff5c5c2e;border:1px solid rgba(255,92,92,.4);border-radius:12px;font-size:.85rem}.movie-list-wrap{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 16px 100px}.movie-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-dim)}.empty-emoji{font-size:2.5rem;margin-bottom:10px}.movie-card{display:flex;align-items:stretch;gap:10px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius);padding:10px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.movie-card-main{flex:1 1 auto;display:flex;align-items:center;gap:12px;text-align:left;min-width:0}.movie-poster{flex:0 0 auto;width:56px;height:80px;border-radius:10px;overflow:hidden;background:#ffffff1a;display:flex;align-items:center;justify-content:center}.movie-poster img{width:100%;height:100%;object-fit:cover}.movie-poster-placeholder{font-size:1.6rem}.movie-info{min-width:0;flex:1 1 auto}.movie-title{font-weight:600;font-size:.98rem;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movie-card-controls{flex:0 0 auto;display:flex;flex-direction:column;justify-content:center;gap:4px}.icon-btn{width:30px;height:30px;border-radius:8px;background:#ffffff14;font-size:.8rem;display:flex;align-items:center;justify-content:center}.icon-btn:disabled{opacity:.25}.icon-btn-danger{background:#ff5c5c26}.drama-meter{display:flex;flex-direction:column;gap:6px}.drama-meter-compact{gap:2px}.drama-row{display:flex;align-items:center;gap:6px}.drama-row-label{font-size:.9rem;opacity:.85;width:1.1em}.drama-row-pips{display:flex;gap:3px}.drama-pip{font-size:1rem;line-height:1;padding:2px}.drama-meter-compact .drama-pip{font-size:.72rem;padding:1px}.drama-row-interactive .drama-pip{cursor:pointer}.fab{position:absolute;right:20px;bottom:calc(24px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#2a0f3d;font-size:1.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #d94a8c80}.fab:active{transform:scale(.92)}.app-footer{position:absolute;bottom:env(safe-area-inset-bottom);left:0;right:0;text-align:center;font-size:.7rem;color:var(--text-dim);padding:6px 12px;pointer-events:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a001499;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:16px}.confirm-dialog,.add-dialog,.detail-dialog{width:100%;max-width:460px;background:linear-gradient(160deg,#3a1550,#6a1b6e);border:1px solid var(--card-border);border-radius:20px;padding:22px;margin-bottom:env(safe-area-inset-bottom);display:flex;flex-direction:column;gap:14px}.confirm-emoji{font-size:2rem;text-align:center}.confirm-dialog p{margin:0;text-align:center;color:var(--text)}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.btn{padding:10px 18px;border-radius:12px;font-weight:600;font-size:.9rem}.btn-ghost{background:#ffffff14;color:var(--text)}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#2a0f3d}.btn-primary:disabled{opacity:.5}.btn-danger{background:var(--danger);color:#fff}.add-dialog h2{margin:0;font-size:1.1rem;text-align:center}.poster-upload{align-self:center;width:120px;height:170px;border-radius:14px;border:2px dashed var(--card-border);display:flex;align-items:center;justify-content:center;overflow:hidden;background:#ffffff0d;text-align:center}.poster-upload img{width:100%;height:100%;object-fit:cover}.poster-upload-placeholder{font-size:.85rem;color:var(--text-dim);padding:8px}.text-input{border-radius:12px;border:1px solid var(--card-border);background:#ffffff14;color:var(--text);padding:12px 14px;font-size:1rem}.text-input::placeholder{color:var(--text-dim)}.detail-dialog{align-items:center;text-align:center}.detail-poster{width:140px;height:200px;border-radius:16px;overflow:hidden;background:#ffffff14;display:flex;align-items:center;justify-content:center}.detail-poster img{width:100%;height:100%;object-fit:cover}.detail-poster-placeholder{font-size:2.4rem}.detail-dialog h2{margin:4px 0 0;font-size:1.15rem}.detail-hint{margin:0;color:var(--text-dim);font-size:.85rem}.detail-dialog .drama-meter{align-items:center}.detail-close{margin-top:4px}
