:root{
    --glass: rgba(255,255,255,.13);
    --glass-strong: rgba(255,255,255,.2);
    --line: rgba(255,255,255,.25);
    --text: #f8fbff;
    --soft: rgba(248,251,255,.72);
    --pink: #ff8ad8;
    --cyan: #58f4ff;
    --purple: #9c7cff;
    --dark: #0b1026;
}
*{box-sizing:border-box}
body.app-body{
    min-height:100vh;
    color:var(--text);
    background:#0b1026;
    background-attachment:fixed;
    overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
.text-soft{color:var(--soft)!important}.small{font-size:.86rem}.eyebrow{letter-spacing:.2em;text-transform:uppercase;color:#9ff8ff;font-weight:700;font-size:.78rem;margin-bottom:.35rem}.lead{color:var(--soft)}
.bg-galaxy{background:radial-gradient(circle at 15% 15%,rgba(255,138,216,.38),transparent 30%),radial-gradient(circle at 85% 12%,rgba(88,244,255,.28),transparent 28%),linear-gradient(135deg,#0b1026,#20205a 55%,#15142f)}
.bg-bubble{background:radial-gradient(circle at 20% 20%,rgba(255,197,231,.7),transparent 22%),radial-gradient(circle at 85% 18%,rgba(145,232,255,.55),transparent 24%),linear-gradient(135deg,#8b5cf6,#ff8ad8 55%,#56d5ff)}
.bg-neon{background:linear-gradient(130deg,#050816,#111b4a 45%,#1b0d3a),repeating-linear-gradient(90deg,transparent 0 48px,rgba(88,244,255,.1) 49px 50px)}
.bg-cloud{background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.7),transparent 18%),radial-gradient(circle at 70% 15%,rgba(255,255,255,.5),transparent 22%),linear-gradient(135deg,#71c7ff,#eab8ff)}
.bg-rain{background:linear-gradient(135deg,#071324,#1f3159),repeating-linear-gradient(115deg,rgba(255,255,255,.18) 0 1px,transparent 1px 18px)}
.bg-bear{background:radial-gradient(circle at 25% 20%,rgba(255,230,186,.6),transparent 24%),radial-gradient(circle at 75% 22%,rgba(255,160,198,.45),transparent 23%),linear-gradient(135deg,#38234f,#9b67a3 65%,#f0b4bc)}
.animated-orbs{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.animated-orbs span{position:absolute;width:170px;height:170px;border-radius:999px;filter:blur(18px);opacity:.45;animation:floatOrb 12s ease-in-out infinite}.animated-orbs span:nth-child(1){background:var(--pink);top:10%;left:8%}.animated-orbs span:nth-child(2){background:var(--cyan);top:16%;right:8%;animation-delay:2s}.animated-orbs span:nth-child(3){background:var(--purple);bottom:10%;left:18%;animation-delay:4s}.animated-orbs span:nth-child(4){background:#ffe7a8;bottom:18%;right:18%;animation-delay:6s}@keyframes floatOrb{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-28px) scale(1.08)}}
.glass-card,.glass-nav,.glass-alert{background:var(--glass);border:1px solid var(--line);box-shadow:0 20px 60px rgba(0,0,0,.22);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:28px}.glass-nav{border-radius:0 0 22px 22px}.navbar-brand,.nav-link{color:var(--text)!important}.nav-link{opacity:.85}.nav-link:hover{opacity:1;color:#9ff8ff!important}.user-chip{font-size:.92rem}.app-main{max-width:1480px;margin:0 auto}.btn{border-radius:999px}.btn-primary{border:none;background:linear-gradient(135deg,#7c5cff,#ff80d5)}.glow-btn{box-shadow:0 0 30px rgba(255,128,213,.42)}.btn-soft{background:rgba(255,255,255,.18);color:var(--text);border:1px solid var(--line)}.btn-soft:hover{background:rgba(255,255,255,.28);color:var(--text)}.form-control,.form-select{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);color:var(--text);border-radius:16px}.form-control:focus,.form-select:focus{background:rgba(255,255,255,.2);border-color:#8ff7ff;box-shadow:0 0 0 .25rem rgba(88,244,255,.18);color:var(--text)}.form-control::placeholder{color:rgba(255,255,255,.58)}.form-select option{background:#1b2245;color:#fff}.form-label{font-weight:700;color:rgba(255,255,255,.9)}
.login-wrap{min-height:calc(100vh - 70px);display:grid;grid-template-columns:1.3fr .7fr;gap:24px;align-items:center;max-width:1180px;margin:0 auto}.login-hero,.login-card{padding:42px}.brand-mascot{font-size:5rem;filter:drop-shadow(0 12px 22px rgba(0,0,0,.35));animation:bounce 3s ease-in-out infinite}.login-hero h1{font-size:clamp(2.2rem,4.2vw,4.8rem);font-weight:900;line-height:1.05}.feature-pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.feature-pills span,.tag-row span,.diary-meta span{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:7px 12px;color:#fff}.login-card h2{font-weight:900;margin-bottom:16px}@keyframes bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.hero-panel{padding:32px;display:flex;justify-content:space-between;gap:24px;align-items:center}.hero-panel h1,.page-title-row h1{font-weight:900}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.stat-card{padding:24px;text-align:center;display:flex;flex-direction:column;gap:6px;min-height:150px;justify-content:center}.stat-card span{font-size:2.2rem}.stat-card strong{font-size:2.5rem}.stat-card small{color:var(--soft)}.section-head,.page-title-row{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.section-head h2,.form-panel h2{font-weight:900}.section-head a{color:#9ff8ff}.diary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.diary-grid.list-mode{grid-template-columns:repeat(3,minmax(0,1fr))}.diary-card{padding:22px;min-height:230px;display:flex;flex-direction:column;gap:12px;transition:.25s transform,.25s box-shadow;position:relative;overflow:hidden}.diary-card:hover{transform:translateY(-5px);box-shadow:0 26px 70px rgba(0,0,0,.32)}.diary-card::after{content:'✦';position:absolute;right:18px;top:12px;color:rgba(255,255,255,.35);font-size:1.5rem}.diary-card h3{font-size:1.35rem;font-weight:900}.diary-card p{color:var(--soft);flex:1}.diary-card-date{font-weight:800;color:#9ff8ff}.diary-meta{display:flex;gap:8px;flex-wrap:wrap;font-size:.88rem}.diary-meta.large{font-size:1rem}.card-actions,.form-actions,.view-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.empty-state{padding:32px;text-align:center;color:var(--soft);grid-column:1/-1}.timeline-list{padding:22px}.timeline-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.13)}.timeline-item:last-child{border-bottom:0}.dot{width:14px;height:14px;border-radius:99px;background:linear-gradient(135deg,var(--cyan),var(--pink));margin-top:6px;box-shadow:0 0 18px rgba(88,244,255,.6)}.timeline-item p{margin:3px 0 0;color:var(--soft)}
.filter-bar{padding:18px;display:grid;grid-template-columns:1fr 220px auto;gap:12px}.form-panel{padding:26px}.form-panel.narrow{max-width:720px}.diary-editor{min-height:320px}.diary-view{padding:34px;background-size:cover;background-position:center;position:relative;overflow:hidden}.diary-view::before{content:'';position:absolute;inset:0;background:rgba(6,8,20,.25);z-index:0}.diary-view>*{position:relative;z-index:1}.diary-view-head{display:flex;justify-content:space-between;gap:18px;margin-bottom:24px}.diary-view h1{font-size:clamp(2rem,4vw,4rem);font-weight:900}.diary-content{font-size:1.15rem;line-height:2;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:26px;margin:22px 0}.music-player.inner{padding:16px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;gap:14px}.music-player audio{width:min(420px,100%)}.tag-row{display:flex;gap:8px;flex-wrap:wrap}.photo-wall{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.photo-wall img{width:100%;height:180px;object-fit:cover;border-radius:18px;border:1px solid rgba(255,255,255,.2);transition:.25s transform}.photo-wall img:hover{transform:scale(1.03)}
.people-grid,.future-board,.music-list,.background-grid{display:grid;gap:14px}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.person-card{padding:18px;display:flex;gap:16px}.avatar{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:rgba(255,255,255,.18);font-size:2rem;overflow:hidden;flex:0 0 72px}.avatar img{width:100%;height:100%;object-fit:cover}.person-card h3,.future-card h3,.music-row h3,.bg-card h3{font-weight:900;margin:0 0 6px}.person-card p,.future-card p,.music-row p,.bg-card p{color:var(--soft)}.future-board{grid-template-columns:repeat(2,minmax(0,1fr))}.future-card{padding:22px}.status-pill{display:inline-block;border-radius:999px;padding:5px 10px;background:rgba(88,244,255,.18);border:1px solid rgba(88,244,255,.35);margin-right:8px}.status-done{opacity:.72}.music-row{padding:18px;display:flex;justify-content:space-between;gap:18px;align-items:center}.music-row audio{width:min(460px,100%)}.background-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bg-card{padding:22px;min-height:170px;background-size:cover;background-position:center;position:relative;overflow:hidden}.bg-card::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.2)}.bg-card>*{position:relative;z-index:1}.table-panel{padding:16px;overflow:auto}.table{--bs-table-bg:transparent;--bs-table-border-color:rgba(255,255,255,.12)}.pagination-wrap{display:flex;justify-content:center;gap:8px}.page-dot{min-width:38px;height:38px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid var(--line);display:grid;place-items:center}.page-dot.active{background:linear-gradient(135deg,#7c5cff,#ff80d5)}.back-top{position:fixed;right:22px;bottom:22px;width:48px;height:48px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(12px);box-shadow:0 10px 30px rgba(0,0,0,.25);z-index:20}.glass-alert{border-radius:18px;color:#fff}.alert-danger{background:rgba(255,77,125,.25);border-color:rgba(255,77,125,.45)}.alert-success{background:rgba(55,220,160,.22);border-color:rgba(55,220,160,.4)}.alert-warning{background:rgba(255,203,80,.24);border-color:rgba(255,203,80,.45)}
@media(max-width:1100px){.login-wrap{grid-template-columns:1fr}.diary-grid,.diary-grid.list-mode{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-wall{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.hero-panel,.diary-view-head{flex-direction:column}.filter-bar{grid-template-columns:1fr}.diary-grid,.diary-grid.list-mode,.people-grid,.future-board,.background-grid{grid-template-columns:1fr}.photo-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.login-hero,.login-card,.hero-panel,.form-panel,.diary-view{padding:22px}.music-player.inner,.music-row{flex-direction:column;align-items:flex-start}}
