:root{color:#0f172a;background:#f8fafc;font-family:system-ui,Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f8fafc}button,input{font:inherit}button{min-height:44px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a;font-weight:800}button:disabled{opacity:.55}.app-shell{max-width:680px;min-height:100vh;margin:0 auto;padding:env(safe-area-inset-top) 14px calc(24px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;padding:10px 0;background:#f8fafce6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.icon-button{width:44px;padding:0;font-size:24px}.mode-pill{border:1px solid #0e7490;border-radius:999px;padding:5px 10px;color:#155e75;font-weight:900;font-size:13px}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.toolbar-toggle{min-width:44px;min-height:44px;padding:0 10px;border-radius:999px;font-family:"Noto Serif CJK KR","Noto Serif KR",Batang,Malgun Gothic,serif;font-size:18px;font-weight:900}.toolbar-toggle.active.noble{border-color:#ca8a04;background:#fef3c7;box-shadow:0 0 0 2px #facc1540 inset}.toolbar-toggle.active.void{border-color:#7c3aed;background:#ede9fe;color:#4c1d95;box-shadow:0 0 0 2px #7c3aed2e inset}.toolbar-toggle.active.heart{border-color:#9ca3af;background:#e5e7eb;color:#374151;box-shadow:0 0 0 2px #6b72802e inset}main>section{padding:10px 0 32px}h1{margin:8px 0 16px;font-size:25px;line-height:1.25;letter-spacing:0}h2{margin:20px 0 10px;font-size:18px}.result-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:clamp(20px,5.8vw,26px)}.clock-panel{padding:18px 0 8px}.civil-time{color:#475569;font-weight:700}.clock-panel h1{font-size:clamp(30px,9vw,48px);margin:10px 0;word-break:keep-all}.home-ganji-block{display:flex;flex-direction:column;gap:.16em}.home-ganji-row{display:flex;align-items:baseline;gap:.34em;white-space:nowrap}.home-ganji-row-year-month{justify-content:flex-start}.home-ganji-row-day-hour{justify-content:flex-end;text-align:right}.clock-panel p{color:#334155;font-weight:700}.home-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.primary{border-color:#155e75;background:#155e75;color:#fff}.secondary{border-color:#a16207;background:#facc15;color:#1f2937}.big{min-height:58px;font-size:18px;min-width:96px}.ghost{background:transparent}.settings-strip{display:grid;gap:8px}details{border:1px solid #cbd5e1;border-radius:8px;padding:12px;background:#fff}.form-screen{display:grid;gap:10px}label{font-weight:900}input[type=date],input[type=time]{min-height:50px;width:100%;border:1px solid #cbd5e1;border-radius:8px;padding:0 12px;background:#fff}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}.segmented .selected{border-color:#155e75;background:#cffafe}.check-row{display:flex;align-items:center;gap:10px;min-height:44px}.pillars-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:start}.pillar-column{display:grid;gap:5px;justify-items:center;padding:8px 4px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.pillar-column.highlight{border-color:#155e75;box-shadow:0 0 0 2px #67e8f9 inset}.pillar-label{font-size:13px;font-weight:900;color:#475569}.ganji-tile{width:min(64px,20vw);aspect-ratio:1 / 1;display:grid;place-items:center;border:3px solid #111827;border-radius:7px;position:relative}.ganji-tile span{font-family:"Noto Serif CJK KR","Noto Serif KR","Source Han Serif K",Nanum Myeongjo,Batang,Malgun Gothic,serif;font-size:clamp(32px,10.8vw,44px);font-weight:800;line-height:.98;-webkit-text-stroke:.15px currentColor;text-shadow:0 .5px 0 rgba(17,24,39,.35)}.ganji-tile-empty{background:#f8fafc;color:transparent;border-color:#d1d5db;opacity:.72;box-shadow:none}.pillar-char-main{display:block;transform:translateY(-1px)}.element-wood{background:#16a34a;color:#fff}.element-fire{background:#dc2626;color:#fff}.element-earth{background:#facc15;color:#111827}.element-metal{background:#f8fafc;color:#111827}.element-water{background:#111827;color:#fff}.shinsal-line{min-height:20px;font-size:12px;font-weight:900;color:#155e75}.hidden-stems-line{min-height:19px;font-family:"Noto Serif CJK KR","Noto Serif KR","Source Han Serif K",Batang,Malgun Gothic,serif;font-size:13px;font-weight:800;color:#111827;letter-spacing:0}.hidden-stems-empty{color:transparent}.shinsal-line.subtle{color:#64748b}.notice,.info-card{margin:12px 0;padding:12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.info-card{display:flex;justify-content:space-between;gap:12px;align-items:center}.scroll-tiles{display:flex;gap:8px;overflow-x:auto;padding:2px 0 10px;scrollbar-width:thin;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.luck-tile{flex:0 0 auto;min-width:92px;display:grid;gap:5px;justify-items:center;padding:8px}.luck-tile.selected{border-color:#2563eb;box-shadow:0 0 0 2px #bfdbfe inset}.luck-tile small{color:#64748b;font-size:12px;font-weight:800}.luck-ganji-badge{display:inline-flex;gap:3px;align-items:center;justify-content:center}.mini-ganji-tile{width:30px;height:30px;display:grid;place-items:center;border:2px solid #111827;border-radius:6px;font-family:"Noto Serif CJK KR","Noto Serif KR","Source Han Serif K",Batang,Malgun Gothic,serif;font-size:19px;font-weight:850;line-height:1;text-shadow:0 .5px 0 rgba(17,24,39,.25);position:relative}.ganji-tile.is-gongmang,.mini-ganji-tile.is-gongmang{border-color:#7c3aedf2;border-width:3px;box-shadow:0 0 0 2px #7c3aed29}.mini-ganji-tile.is-gongmang{border-width:2px}.ganji-tile.is-cheoneul,.mini-ganji-tile.is-cheoneul{background-image:radial-gradient(circle at 28% 20%,rgba(255,255,255,.45),transparent 30%),radial-gradient(circle at 70% 32%,rgba(255,221,87,.42),transparent 42%),linear-gradient(135deg,rgba(255,244,180,.28),transparent 58%);box-shadow:0 0 0 2px #facc156b,0 0 12px #facc155c}.ganji-tile.is-gongmang.is-cheoneul,.mini-ganji-tile.is-gongmang.is-cheoneul{border-color:#7c3aedf2;box-shadow:0 0 0 2px #7c3aed29,0 0 0 4px #facc1542,0 0 12px #facc1557}.criteria-list{display:grid;gap:4px;margin:10px 0 0;padding-left:18px;color:#334155;font-size:14px;font-weight:700}.recent-inputs-panel{display:grid;gap:8px;margin:0 0 4px}.recent-inputs-panel h2{margin:0;font-size:15px}.recent-inputs-list{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.recent-input-chip{flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:7px 8px 7px 10px;white-space:nowrap;font-size:13px}.recent-input-delete{width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:#f1f5f9;color:#475569;font-weight:900}.calendar-nav{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;gap:8px;margin-bottom:8px;text-align:center}.week-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.week-row span{min-height:28px;text-align:center;font-weight:900;color:#64748b}.day-cell{min-height:68px;display:grid;align-content:start;gap:2px;padding:6px 3px;text-align:center;font-size:12px}.day-cell b{font-size:15px}.day-cell span{font-weight:900}.day-cell em{color:#b91c1c;font-style:normal;font-weight:900}.day-cell.outside{opacity:.42}.day-cell.today{border-color:#155e75;background:#cffafe}.day-cell.selected{border-color:#2563eb;box-shadow:0 0 0 2px #bfdbfe inset}.terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.terms-grid button{min-height:66px;display:grid;gap:3px;align-content:center}.terms-grid span{font-size:12px;color:#475569}.toast,.update-bar{position:fixed;left:50%;z-index:20;width:min(92vw,520px);transform:translate(-50%);border-radius:8px;background:#0f172a;color:#fff;box-shadow:0 16px 40px #0f172a33}.toast{bottom:calc(18px + env(safe-area-inset-bottom));padding:13px 16px;text-align:center;font-weight:900}.update-bar{top:calc(12px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px}.update-bar button{min-height:40px;background:#fff}@media(max-width:380px){.app-shell{padding-left:10px;padding-right:10px}.day-cell{min-height:64px;font-size:11px}}
