*{margin:0;padding:0;box-sizing:border-box}
body{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f5f0ea 0,#e8e0d6 50%,#f0ebe3 100%);font-family:-apple-system,"PingFang SC","Helvetica Neue",sans-serif;padding:16px;-webkit-font-smoothing:antialiased}
.container{width:100%;max-width:380px;perspective:1000px}
.card{background:rgba(255,252,248,0.75);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:40px;padding:40px 28px 32px;box-shadow:0 8px 40px rgba(150,120,90,0.08),0 2px 8px rgba(150,120,90,0.04);border:1px solid rgba(200,180,160,0.15);text-align:center;transition:transform .3s ease,box-shadow .3s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 12px 48px rgba(150,120,90,0.12),0 4px 12px rgba(150,120,90,0.06)}
.card-emoji{font-size:40px;margin-bottom:8px;opacity:.6}
.title{font-size:24px;font-weight:700;color:#5a4a3a;letter-spacing:1px;margin-bottom:2px}
.subtitle{font-size:13px;color:#a09080;margin-bottom:24px;letter-spacing:2px}
.time-section{background:rgba(200,180,160,0.06);border-radius:24px;padding:20px 16px 16px;margin-bottom:20px;border:1px solid rgba(200,180,160,0.08)}
.time-display{font-size:48px;font-weight:700;color:#2c3e50;letter-spacing:3px;font-variant-numeric:tabular-nums;line-height:1;transition:color .2s ease}
.date-display{font-size:15px;color:#8a7a6a;margin-top:8px;font-weight:400}
.status-bar{font-size:14px;color:#9a8a7a;min-height:44px;display:flex;align-items:center;justify-content:center;padding:0 8px;margin-bottom:16px;transition:all .25s ease;border-radius:12px}
.status-bar.success{color:#27ae60;background:rgba(39,174,96,0.06)}
.status-bar.error{color:#e74c3c;background:rgba(231,76,60,0.06)}
.status-bar.loading{color:#7f8c8d}
.actions{display:flex;gap:10px;justify-content:center;margin-bottom:24px}
.btn{display:inline-flex;align-items:center;gap:6px;padding:12px 22px;border:none;border-radius:28px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent;outline:none;flex:1;justify-content:center}
.btn:active{transform:scale(0.96)}
.btn-primary{background:rgba(100,170,210,0.18);color:#2980b9}
.btn-primary:hover{background:rgba(100,170,210,0.26)}
.btn-primary:active{background:rgba(100,170,210,0.34)}
.btn-secondary{background:rgba(160,130,110,0.14);color:#6a5a4a}
.btn-secondary:hover{background:rgba(160,130,110,0.22)}
.btn-secondary:active{background:rgba(160,130,110,0.3)}
.btn-icon{font-size:16px}
.footer{font-size:12px;color:#b8a898;letter-spacing:1px}
.greeting{font-size:13px;color:#b8a090;margin-top:-12px;margin-bottom:18px;min-height:20px;cursor:pointer;transition:color .3s ease;user-select:none}
.greeting:hover{color:#8a7a6a}
.weather{font-size:13px;color:#8a7a6a;margin-bottom:10px;min-height:20px}
.anniversary{font-size:14px;color:#b07060;font-weight:500;margin-bottom:14px;min-height:22px;letter-spacing:1px}
.msg-board{margin-top:8px;margin-bottom:16px;text-align:left;border-top:1px solid rgba(200,180,160,0.15);padding-top:16px}
.msg-header{font-size:14px;font-weight:600;color:#6a5a4a;margin-bottom:10px;text-align:center;letter-spacing:1px}
.msg-ashi{background:rgba(180,150,130,0.08);border-radius:14px;padding:12px 16px;font-size:13px;color:#7a6a5a;line-height:1.6;margin-bottom:8px;cursor:pointer;transition:background .2s ease;user-select:none}
.msg-ashi:hover{background:rgba(180,150,130,0.14)}
.msg-ashi-label{font-size:11px;font-weight:600;color:#a08070;margin-right:4px}
.msg-divider{height:1px;background:rgba(200,180,160,0.1);margin:8px 0}
.msg-list{min-height:0;max-height:200px;overflow-y:auto;margin-bottom:10px}
.msg-item{font-size:13px;color:#5a4a3a;padding:8px 4px;border-bottom:1px solid rgba(200,180,160,0.08);line-height:1.5;display:flex;justify-content:space-between;align-items:flex-start}
.msg-item:last-child{border-bottom:none}
.msg-item-text{flex:1}
.msg-item-time{font-size:10px;color:#b8a898;margin-left:8px;white-space:nowrap;margin-top:2px}
.msg-empty{font-size:12px;color:#c0b0a0;text-align:center;padding:12px 0}
.msg-input-row{display:flex;gap:8px;align-items:center}
.msg-input{flex:1;padding:10px 14px;border:1px solid rgba(200,180,160,0.2);border-radius:20px;font-size:13px;outline:none;background:rgba(255,252,248,0.5);color:#5a4a3a;transition:border-color .2s ease;font-family:inherit}
.msg-input:focus{border-color:rgba(160,130,110,0.3)}
.msg-input::placeholder{color:#c0b0a0}
.msg-send{width:40px;height:40px;border:none;border-radius:50%;background:rgba(180,150,130,0.15);color:#7a6a5a;font-size:18px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.msg-send:active{transform:scale(0.9);background:rgba(180,150,130,0.25)}
.msg-list::-webkit-scrollbar{width:3px}
.msg-list::-webkit-scrollbar-track{background:transparent}
.msg-list::-webkit-scrollbar-thumb{background:rgba(180,160,140,0.2);border-radius:3px}
body.dark-mode{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%)}
body.dark-mode .card{background:rgba(26,26,46,0.8);border-color:rgba(100,120,180,0.15);box-shadow:0 8px 40px rgba(0,0,0,0.3)}
body.dark-mode .title{color:#c8c0d0}
body.dark-mode .subtitle{color:#8070a0}
body.dark-mode .time-section{background:rgba(60,60,100,0.15);border-color:rgba(100,120,180,0.08)}
body.dark-mode .time-display{color:#a0b0d0}
body.dark-mode .date-display{color:#706090}
body.dark-mode .status-bar{color:#8070a0}
body.dark-mode .greeting{color:#8070a0}
body.dark-mode .weather{color:#706090}
body.dark-mode .anniversary{color:#c08070}
body.dark-mode .btn-primary{background:rgba(80,120,200,0.2);color:#7090c0}
body.dark-mode .btn-primary:hover{background:rgba(80,120,200,0.3)}
body.dark-mode .btn-secondary{background:rgba(120,100,160,0.2);color:#9080b0}
body.dark-mode .btn-secondary:hover{background:rgba(120,100,160,0.3)}
body.dark-mode .footer{color:#504070}
body.dark-mode .msg-board{border-top-color:rgba(100,120,180,0.1)}
body.dark-mode .msg-header{color:#9080b0}
body.dark-mode .msg-ashi{background:rgba(80,70,120,0.15);color:#a090b0}
body.dark-mode .msg-ashi-label{color:#706090}
body.dark-mode .msg-item{color:#a090b0;border-bottom-color:rgba(100,120,180,0.06)}
body.dark-mode .msg-item-time{color:#504070}
body.dark-mode .msg-empty{color:#504070}
body.dark-mode .msg-input{background:rgba(40,40,70,0.5);border-color:rgba(100,120,180,0.15);color:#a090b0}
body.dark-mode .msg-input::placeholder{color:#504070}
body.dark-mode .msg-send{background:rgba(80,70,120,0.2);color:#8070a0}
body,.card,.time-section,.status-bar,.msg-ashi,.msg-input{transition:background .6s ease,color .6s ease,border-color .6s ease,box-shadow .6s ease}

/* progress bar */
.progress-wrap{margin-top:-8px;margin-bottom:16px;padding:0 20px}
.progress-bar{height:4px;background:rgba(200,180,160,0.15);border-radius:4px;overflow:hidden}
.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#c09070,#e0a080,#c09070);border-radius:4px;transition:width .5s ease}
body.dark-mode .progress-bar{background:rgba(100,120,180,0.1)}
body.dark-mode .progress-fill{background:linear-gradient(90deg,#7060a0,#9080c0,#7060a0)}

/* stats */
.stats{font-size:11px;color:#c0b0a0;letter-spacing:1px;margin-top:4px;margin-bottom:2px}
body.dark-mode .stats{color:#605080}
.mood-row{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:14px;min-height:28px}
.mood-label{font-size:12px;color:#b0a090;margin-right:6px}
.mood-item{font-size:22px;cursor:pointer;transition:all .15s ease;padding:2px 4px;border-radius:8px;opacity:.5;user-select:none}
.mood-item:hover{opacity:.8;transform:scale(1.2)}
.mood-item.active{opacity:1;transform:scale(1.15)}
body.dark-mode .mood-label{color:#706090}
.omikuji{text-align:center;margin-bottom:16px}.omikuji-btn{display:inline-block;padding:10px 28px;border:none;border-radius:28px;font-size:15px;font-weight:600;cursor:pointer;background:rgba(200,160,120,0.15);color:#8a6a4a;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.omikuji-btn:active{transform:scale(0.95)}.omikuji-btn.drawed{background:rgba(180,150,130,0.08);color:#b0a090;cursor:default}.omikuji-result{font-size:16px;color:#7a5a3a;margin-top:10px;min-height:28px;font-weight:500;transition:all .3s ease}body.dark-mode .omikuji-btn{background:rgba(100,80,120,0.2);color:#9080a0}body.dark-mode .omikuji-btn.drawed{background:rgba(80,70,90,0.1);color:#605070}body.dark-mode .omikuji-result{color:#a090b0}
.iching{text-align:center;margin-bottom:16px;padding-top:4px}.iching-btn{display:inline-block;padding:10px 28px;border:none;border-radius:28px;font-size:15px;font-weight:600;cursor:pointer;background:rgba(180,120,80,0.12);color:#7a5a3a;transition:all .2s ease;-webkit-tap-highlight-color:transparent;margin-bottom:8px}.iching-btn:active{transform:scale(0.95)}.iching-btn.drawed{background:rgba(180,150,130,0.08);color:#b0a090;cursor:default}.iching-display{min-height:60px}.iching-lines{display:flex;flex-direction:column-reverse;align-items:center;gap:3px;margin:6px 0 8px}.iching-line{width:80px;height:4px;border-radius:2px;transition:all .3s ease}.iching-line.yao-yang{background:#5a4a3a}.iching-line.yao-yin{background:transparent;border-top:4px dashed #a09080;height:0}.iching-line.yao-old.yao-yang{background:#c0392b}.iching-line.yao-old.yao-yin{border-top-color:#c0392b}.iching-result{font-size:15px;color:#5a4a3a;margin-top:4px;line-height:1.6}.iching-sub{font-size:12px;color:#a09080;margin-top:2px}.iching-change{font-size:13px;color:#8a6a4a;margin-top:6px;padding:6px 12px;background:rgba(200,160,120,0.08);border-radius:10px;display:inline-block}body.dark-mode .iching-btn{background:rgba(100,80,120,0.2);color:#9080a0}body.dark-mode .iching-btn.drawed{background:rgba(80,70,90,0.1);color:#605070}body.dark-mode .iching-line.yao-yang{background:#9080a0}body.dark-mode .iching-line.yao-yin{border-top-color:#605080}body.dark-mode .iching-result{color:#a090b0}body.dark-mode .iching-sub{color:#605080}body.dark-mode .iching-change{background:rgba(80,70,100,0.1);color:#9080a0}
.iching-entry{text-align:center;margin-bottom:12px;margin-top:4px}.iching-entry-btn{display:inline-block;padding:10px 32px;border:none;border-radius:28px;font-size:15px;font-weight:600;cursor:pointer;background:rgba(180,120,80,0.12);color:#7a5a3a;transition:all .2s ease;-webkit-tap-highlight-color:transparent;width:100%;max-width:280px}.iching-entry-btn:active{transform:scale(0.96)}body.dark-mode .iching-entry-btn{background:rgba(100,80,120,0.2);color:#9080a0}.iching-room{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;font-family:-apple-system,"PingFang SC",sans-serif}.iching-room.active{display:flex;align-items:center;justify-content:center}.iching-room-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(30,20,10,0.5);backdrop-filter:blur(6px)}.iching-room-card{position:relative;width:92%;max-width:400px;max-height:85vh;background:#faf8f4;border-radius:32px;padding:24px 20px;box-shadow:0 20px 60px rgba(0,0,0,0.2);overflow-y:auto}.iching-room-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:18px;font-weight:700;color:#5a4a3a}.iching-room-close{font-size:22px;cursor:pointer;color:#b0a090;padding:4px 8px;border-radius:8px;transition:all .15s ease}.iching-room-close:active{background:rgba(0,0,0,0.05)}.iching-room-body{display:flex;flex-direction:column;align-items:center;gap:10px}.iching-room-input{width:100%;padding:12px 16px;border:1px solid rgba(200,180,160,0.3);border-radius:20px;font-size:14px;outline:none;background:rgba(255,252,248,0.6);color:#5a4a3a;font-family:inherit;text-align:center}.iching-room-input:focus{border-color:rgba(160,130,110,0.4)}.iching-room-go{display:inline-block;padding:10px 32px;border:none;border-radius:28px;font-size:15px;font-weight:600;cursor:pointer;background:rgba(180,120,80,0.15);color:#7a5a3a;transition:all .2s ease}.iching-room-go:active{transform:scale(0.95)}.iching-room-lines{display:flex;flex-direction:column-reverse;align-items:center;gap:3px;margin:8px 0}.iching-room-lines .iching-line{width:100px;height:5px}.iching-room-result{text-align:center;font-size:15px;color:#5a4a3a;line-height:1.6;min-height:30px}.iching-room-history{width:100%;margin-top:8px;border-top:1px solid rgba(200,180,160,0.12);padding-top:10px}.iching-room-hist-item{font-size:12px;color:#908070;padding:6px 4px;border-bottom:1px solid rgba(200,180,160,0.06);line-height:1.5;display:flex;justify-content:space-between;align-items:flex-start}.iching-room-hist-item:last-child{border-bottom:none}.iching-room-hist-q{color:#7a6a5a;font-weight:500}.iching-room-hist-r{color:#a09080;font-size:11px}body.dark-mode .iching-room-card{background:#1e1e32}body.dark-mode .iching-room-header{color:#c8c0d0}body.dark-mode .iching-room-close{color:#605080}body.dark-mode .iching-room-input{background:rgba(40,40,70,0.5);border-color:rgba(100,120,180,0.15);color:#a090b0}body.dark-mode .iching-room-go{background:rgba(100,80,120,0.2);color:#9080a0}body.dark-mode .iching-room-result{color:#a090b0}body.dark-mode .iching-room-hist-item{color:#706090;border-bottom-color:rgba(100,120,180,0.06)}body.dark-mode .iching-room-hist-q{color:#9080a0}body.dark-mode .iching-room-hist-r{color:#605080}body.dark-mode .iching-room-bg{background:rgba(10,10,20,0.6)}
.iching-room{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;font-family:-apple-system,"PingFang SC",sans-serif;align-items:center;justify-content:center}.iching-room.active{display:flex}.iching-room-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(30,20,10,0.5);backdrop-filter:blur(6px)}.iching-room-card{position:relative;width:92%;max-width:400px;max-height:85vh;background:#faf8f4;border-radius:32px;padding:24px 20px;box-shadow:0 20px 60px rgba(0,0,0,0.2);overflow-y:auto;margin:auto}
.memory-entry{text-align:center;margin-bottom:12px;margin-top:4px}.memory-entry-btn{display:inline-block;padding:10px 32px;border:none;border-radius:28px;font-size:15px;font-weight:600;cursor:pointer;background:rgba(120,140,180,0.12);color:#5a6a8a;transition:all .2s ease;-webkit-tap-highlight-color:transparent;width:100%;max-width:280px}.memory-entry-btn:active{transform:scale(0.96)}body.dark-mode .memory-entry-btn{background:rgba(80,90,140,0.2);color:#8090b0}.memory-room{display:none;position:fixed;top:0;left:0;width:100%;height:100%;z-index:1100;font-family:-apple-system,"PingFang SC",sans-serif;align-items:center;justify-content:center}.memory-room.active{display:flex}.memory-room-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(20,25,40,0.55);backdrop-filter:blur(6px)}.memory-room-card{position:relative;width:92%;max-width:420px;max-height:85vh;background:#faf8f4;border-radius:32px;padding:24px 20px;box-shadow:0 20px 60px rgba(0,0,0,0.2);overflow-y:auto;margin:auto}.memory-room-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:18px;font-weight:700;color:#4a5a7a}.memory-room-close{font-size:22px;cursor:pointer;color:#a0a8b8;padding:4px 8px;border-radius:8px;transition:all .15s ease}.memory-room-close:active{background:rgba(0,0,0,0.05)}.memory-room-body{display:flex;flex-direction:column;gap:10px}.memory-room-summary{font-size:13px;color:#7a8a9a;text-align:center;padding:8px 12px;background:rgba(120,140,180,0.06);border-radius:14px}.memory-room-list{display:flex;flex-direction:column;gap:8px}.memory-card{background:#fff;border-radius:16px;padding:12px 14px;border:1px solid rgba(120,140,180,0.12)}.memory-card.pinned{border-left:4px solid #c09070}.memory-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.memory-card-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.memory-card-badge.pin{background:rgba(192,144,112,0.15);color:#a07050}.memory-card-badge.dyn{background:rgba(120,140,180,0.12);color:#5a6a8a}.memory-card-badge.done{background:rgba(80,160,120,0.12);color:#3a8a60}.memory-card-meta{font-size:11px;color:#a0a8b0}.memory-card-body{font-size:13px;color:#4a5a6a;line-height:1.6;word-break:break-word}.memory-card-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.memory-tag{font-size:10px;color:#7a8a9a;background:rgba(120,140,180,0.08);padding:2px 8px;border-radius:8px}body.dark-mode .memory-room-card{background:#1e1e32}body.dark-mode .memory-room-header{color:#a0b0d0}body.dark-mode .memory-room-close{color:#607090}body.dark-mode .memory-room-summary{color:#8090b0;background:rgba(80,90,140,0.1)}body.dark-mode .memory-card{background:#26263c;border-color:rgba(100,120,180,0.1)}body.dark-mode .memory-card-body{color:#a0b0c8}body.dark-mode .memory-card-meta{color:#607090}body.dark-mode .memory-card-badge.dyn{background:rgba(80,90,140,0.2);color:#8090b0}body.dark-mode .memory-card-badge.pin{background:rgba(160,110,80,0.2);color:#c09070}body.dark-mode .memory-tag{color:#8090b0;background:rgba(80,90,140,0.1)}
body{font-family:"LXGW WenKai","PingFang SC",sans-serif!important}.title,.subtitle,.time-display,.anniversary,.btn,.mood-label,.msg-header,.msg-ashi-label,.footer,.stats,.greeting,.omikuji-btn,.iching-btn,.iching-entry-btn,.memory-entry-btn,.msg-input,.msg-send,.iching-room-input,.iching-room-go{font-family:"LXGW WenKai","PingFang SC",sans-serif!important}
.title,.subtitle,.greeting,.time-display,.date-display,.anniversary,.msg-header,.msg-ashi-label,.omikuji-result,.iching-result,.memory-room-header{font-family:"Kaiti SC","STKaiti","KaiTi","Songti SC",serif!important;letter-spacing:0.5px}
